近刊検索 デルタ

2019年6月7日発売

日経BP

Azure Functions入門

サーバー管理を不要にするサーバーレスアプリ開発のすべて
このエントリーをはてなブックマークに追加
内容紹介
クライアントアプリケーションの頻繁な変化に合わせて、サーバーサイドにHTTPサーバーを構築するのはなかなか困難です。ある日は数十件だったものが、ある日は数万件も発生するようなピークに変動のあるアクセスに対して、物理サーバーを用意するのはコスト的に問題があります。
 AWS Lambda、Google Cloud Functions、そしてMicrosoft社のAzure Funcitonsは、これらの変動に素早く対応するために、サーバーレスな実行環境を用意しました。HTTPサーバーや特殊なサーバーを構築する必要はなく、あたかもプログラムで関数を呼び出すかのようにプログラミングができる実行環境です。これが関数=Functionの名前の由来でもあります。
 本書で扱うAzure Functionsは、数多くのトリガー(関数を呼び出すイベント)とバックエンドで扱えるサービス(データベースやファイルストレージなど)を持っています。また、.NET Coreでプログラミングできることから、Azureの各種のサービスを既存のクラスライブラリを通して利用できます。クライアントサイドのアプリケーションが、直接Azure内のサービスにアクセスするのではなく、Azure Functionsを通すことでサーバーサイドのさまざまなサービスを後日拡張できます。
 非常に範囲の広いAzure Functionsの機能を解説するために、本書は2部構成にしてあります。1章から5章は、基礎編として個別のトリガーについて詳しく解説しています。Azure PortalとVisual Studioを使った例を使い、実際にトリガーの動きをみていきます。6章以降は応用編として各種トリガーの組み合わせやAzureが提供するストレージサービスとの組み合わせを具体例を示して作成していきます。
目次
はじめに

第1章 Azure Functionsの概要
1.1 Azure とは何か
1.1.1 オンプレミスとクラウド環境
1.1.2 クラウドの分類とAzure Functions
1.1.3 Azure Functionsに類似するサービス
1.2 Azure Functionsとは何か
1.2.1 サーバーレスとしてのAzure Functions
1.2.2 他のサーバーレスフレームワークとの比較
1.3 Azure Functionsを何に活用するのか
1.3.1 関数単位での動作
1.3.2 豊富なトリガー
1.3.3 NET 環境、JavaScript環境、Docker
1.4 Azure Functionsとの連携
1.4.1 他システムからFunction Appの呼び出し
1.4.2 Azure Functionsから他システムを呼び出す
1.4.3 Event Gridでの連携
第2章 Azure Portalで初めての関数を作成する
2.1 ポータルから.NET CoreのFunction Appを作る
2.1.1 Azure Portalを開く
2.1.2 Function Appを新規作成する
2.1.3 関数を作成
2.1.4 関数を実行
2.2 Function Appの言語をJavaScriptに変える
2.2.1 Function Appを作成する
2.2.2 関数を作成
2.2.3 関数を実行
2.3 動作環境をLinux に変えてみる
2.3.1 Function Appを作成する
2.3.2 関数を作成
2.3.3 関数をテスト実行
2.3.4 Azure へデプロイして実行
2.4 Visual Studioでひな形を作る
2.4.1 新しいAzure Functionsを作成
2.4.2 作成した関数の確認
2.4.3 関数のテスト実行
2.4.4 関数を発行
2.5 Visual Studio Codeでひな形を作る
2.5.1 VSCode で新しいファンクションのプロジェクトを作成
2.5.2 テスト実行する
2.6 コマンドラインでひな形を作る
2.6.1 func initコマンド
2.6.2 func newコマンド
2.6.3 func host startコマンド
2.6.4 func azure functionapp publishコマンド
2.7 HTTPトリガーの動作確認方法
2.7.1 ブラウザで動作確認する
2.7.2 WPF クライアントで動作確認する
2.7.3 コマンドラインで動作確認する
2.7.4 Android スマホで動作確認する
第3章 Azure Functionsの適用範囲
3.1 Azure Functionsの動作原理
3.1.1 Azure Cloud Serviceの動作
3.1.2 Function App の動作
3.1.3 関数に引き渡されるクラス
3.1.4 呼び出し元へ返すクラス
3.2 利点・活用場所
3.2.1 サーバーレスの利点
3.2.2 開発効率の利点
3.2.3 継続的更新(インテグレーション)の利点
3.2.4 デプロイ(発行)のしやすさとコード管理(Git)のしやすさ
3.3 不得意なところ
3.3.1 すべてはVM 上で動く
3.3.2 ステートレスで動作する
3.3.3 オンプレミスのデータベースとの接続の問題
3.3.4 複雑な動作の場合はWeb Serviceを検討する
3.4 他システムとの組み合わせ
3.4.1 Function AppからAzureのサービスを利用
3.4.2 Azure Event Gridを利用する
3.4.3 Azure内のストレージを使う
3.4.4 HTTPプロトコルでの外部通信
3.5 セキュリティ・認証・APIコード
3.5.1 承認レベル
3.5.2 SSL証明書
3.5.3 Microsoftアカウントによるユーザー認証
第4章 Azure Portalの概要
4.1 リソースグループでまとめる
4.1.1 リソースグループとは何か
4.1.2 Function Appが必要とするリソース
4.1.3 リソースグループ単位の操作
4.2 アクセス数・クォート制限
4.2.1 メトリックでグラフを表示する
4.2.2 アラートルールを設定する
4.3 課金状態
4.3.1 課金の概要を表示する
4.3.2 課金状態を細かく分析する
4.3.3 予算を決めて通知させる
4.4 ログ出力・エラー発生・監視
4.4.1 関数の実行ログを監視
4.4.2 Application Insightsインスタンス
4.4.3 監視ログの保存
第5章 トリガーの種類
5.1 タイマートリガー
5.1.1 概要 105
5.1.2 Azure Portalで作成
5.1.3 Azure Portalで実行
5.1.4 Visual Studioで作成
5.1.5 Visual Studioで実行
5.1.6 バインド構成の比較
5.2 HTTPトリガー
5.2.1 概要
5.2.2 Azure Portalで作成
5.2.3 Azure Portalで実行
5.2.4 Visual Studioで作成
5.2.5 Visual Studioで実行
5.2.6 バインド構成の比較
5.2.7 ルートテンプレートの指定
5.3 Cosmos DBトリガー
5.3.1 概要
5.3.2 Azure Cosmos DBの作成
5.3.3 Azure Portalで作成
5.3.4 Azure Portalで実行
5.3.5 ローカル環境のCosmos DBの作成
5.3.6 Visual Studioで作成
5.3.7 Visual Studioで実行
5.3.8 バインド構成の比較
5.4 Blobストレージによるトリガー
5.4.1 概要
5.4.2 ストレージアカウントの作成
5.4.3 Azure Portalで作成
5.4.4 Azure Portalで実行
5.4.5 ローカル環境のBlobコンテナーの作成
5.4.6 Visual Studioで作成
5.4.7 Visual Studioで実行
5.4.8 バインド構成の比較
5.5 Queueストレージのトリガー
5.5.1 概要
5.5.2 Queueストレージの作成
5.5.3 Azure Portalで作成
5.5.4 Azure Portalで実行
5.5.5 ローカル環境でQueue ストレージの作成
5.5.6 Visual Studioで作成
5.5.7 Visual Studioで実行
5.5.8 バインド構成の比較
5.6 Event Hubトリガー
5.6.1 概要
5.6.2 Event Hub の作成
5.6.3 Visual Studio で作成
5.6.4 コンソールアプリでEvent Hubへ送信
5.6.5 Visual Studioで実行
5.6.6 Azure Portalで作成
5.6.7 Azure Portalで実行
5.6.8 バインド構成の比較
5.7 IoT Hubトリガー
5.7.1 概要
5.7.2 IoT Hubの作成
5.7.3 IoT Hubにデバイスを登録
5.7.4 Visual Studioで作成
5.7.5 コンソールアプリでIoT Hubへ送信
5.7.6 Visual Studioで実行
5.7.7 Azure Portalで作成
5.7.8 Azure Portalで実行
5.7.9 バインド構成の比較
第6章 定期起動する(タイマートリガー)
6.1 イントロダクション
6.1.1 従来のヘルスチェック機能
6.1.2 Azure Functionsを利用したヘルスチェック機能
6.1.3 検証のためのシステム構成
6.2 下準備
6.2.1 デプロイ用のリソースグループの作成
6.2.2 Cosmos DBの作成
6.2.3 ローカル環境のCosmos DBの作成
6.2.4 Visual Studio でタイマートリガーの作成
6.2.5 HTTP トリガーのURLを取得
6.3 コーディング
6.3.1 ターゲットのHTTPトリガーを作成
6.3.2 タイマートリガーからヘルスチェックAPIの呼び出し
6.3.3 Cosmos DBへの書き込み処理
6.3.4 ローカル環境のタイマートリガー
6.3.5 リリースモードの追加と発行
6.4 検証
6.4.1 タイマーの間隔を変える
6.4.2 ヘルスチェック対象のサーバー名を変更する
6.4.3 ヘルスチェック対象のサーバーが無応答の場合
6.5 応用
6.5.1 タイマートリガーと長い処理との連携
6.5.2 タイマートリガーで1回だけの実行を行う
第7章 HTTPトリガーでデータベースを更新
7.1 イントロダクション
7.1.1 従来の出退勤サイト
7.1.2 HTTP トリガーを利用した出退勤サイト
7.1.3 検証のためのシステム構成
7.2 下準備
7.2.1 デプロイ用のリソースグループの確認
7.2.2 Azure SQL Databaseの作成
7.2.3 ローカルのデータベースの作成
7.2.4 出勤簿テーブルの作成
7.2.5 Visual StudioでHTTPトリガーの作成
7.2.6 WPFクライアントのひな形を作成
7.2.7 HTMLファイルのひな形を作成
7.3 コーディング
7.3.1 エンティティクラスの生成
7.3.2 データを読み込むHTTPトリガーを作成
7.3.3 データを書き出すHTTPトリガーを作成
7.3.4 デスクトップクライアントを作成
7.3.5 ブラウザクライアントを作成
7.3.6 Azure環境での設定
7.3.7 クライアントアプリのURLを修正
7.4 検証
7.4.1 複数のデスクトップクライアントでチェック
7.4.2 未登録の社員番号で更新
7.4.3 同一の社員番号を更新
7.5 応用
7.5.1 統一的なストレージアクセスを提供
7.5.2 スケールアウトとアクセス制限
第8章 Cosmos DB トリガーの利用
8.1 イントロダクション
8.1.1 従来のアラート発生のパターン
8.1.2 Cosmos DB を利用したアラート発生パターン
8.1.3 検証のためのシステム構成
8.2 下準備
8.2.1 ローカル環境のCosmos DBの作成
8.2.2 Visual StudioでCosmos DBトリガーの作成
8.2.3 通常通知のためのHTTPトリガーを作成
8.2.4 緊急通知のためのSlack のWebhookを作成
8.3 コーディング
8.3.1 通常通知のためのHTTP トリガー
8.3.2 Cosmos DBトリガーの作成(通常通知)
8.3.3 Cosmos DBトリガーの作成(緊急通知)
8.3.4 Cosmos DBへデータ投入
8.4 検証
8.4.1 データ投入用のコンソールアプリの作成
8.4.2 発信者名を変えて通常通知を発信する
8.4.3 通常通知と緊急通知を発信する
8.5 応用
8.5.1 アクセスログと警告の組み合わせ
8.5.2 統計情報の作成と通知の組み合わせ
第9章 ファイルストレージの利用
9.1 イントロダクション
9.1.1 Web サービスのファイルアクセスの利用
9.1.2 ファイルストレージを利用したデータ抽出
9.1.3 検証のためのシステム構成
9.2 下準備
9.2.1 ストレージアカウントの作成
9.2.2 HTTPトリガーのひな形を作成
9.2.3 コンソールアプリでファイルストレージへ読み書き
9.2.4 データ蓄積用のテーブルを作成
9.2.5 エンティティクラスを作成
9.3 コーディング
9.3.1 Excel読み取りパッケージClosedXMLの利用
9.3.2 コンソールアプリでExcel読み込み
9.3.3 コンソールアプリでExcel書き出し
9.3.4 HTTPトリガーでExcel読み込み
9.3.5 HTTPトリガーでExcel書き出し
9.4 検証
9.4.1 ファイルをアップロードせずに確認通知でエラー
9.4.2 異なる形式のファイルをアップロードして確認通知でエラー
9.4.3 入力ミスで確認通知エラー
9.5 応用
9.5.1 動画を転送してから完了通知
9.5.2 複数のファイルを転送してからデータ加工
第10章 プッシュ通信
10.1 イントロダクション
10.1.1 プッシュ機能とNotification Hubの関係
10.1.2 HTTPトリガーとプッシュ通知
10.2 下準備
10.2.1 NotificationHubSampleソリューションの作成
10.2.2 通知先のUWP アプリの作成
10.2.3 UWPアプリを発行
10.2.4 Live SDKアプリケーションからSIDを取得
10.2.5 Notification Hubを作成
10.2.6 Notification HubにWNSを登録
10.2.7 HTTPトリガーを作成
10.2.8 WPFクライアントを作成
10.3 コーディング
10.3.1 UWPアプリで通知を受信
10.3.2 HTTPトリガーでプッシュ通知を送信
10.3.3 WPFアプリでプッシュ通知を送信
10.4 検証
10.4.1 プッシュ通知を表示しない設定
10.4.2 UWPアプリをアンインストールしてプッシュ通知を試す
10.5 応用
10.5.1 監視端末に対して複数の警告アプリの割り当て
10.5.2 特定デバイス対して通知
第11章 多数の連携(Event Grid)
11.1 イントロダクション
11.1.1 Event Gridの構造
11.1.2 Event Gridの動き
11.1.3 検証イベントの応答
11.2 Azure Portal で動作確認
11.2.1 ストレージアカウントの作成
11.2.2 Function App の作成
11.2.3 Event Grid トリガーの作成と登録
11.2.4 Event Grid トリガーの動作確認
11.2.5 自動検証のHTTP トリガーの作成と登録
11.2.6 自動検証のHTTP トリガーの動作確認
11.2.7 手動検証のHTTP トリガーの作成と登録
11.2.8 手動検証のHTTP トリガーの動作確認
11.2.9 検証イベントのタイムアウト
11.2.10 Azure Event Grid Viewerでイベント内容を確認
11.3 下準備
11.3.1 Event Gridトリガーの作成
11.3.2 自動検証のHTTPトリガーの作成
11.3.3 外部Webhookのシミュレート関数を作成
11.3.4 Azure へデプロイとAzure Portalで確認
11.3.5 テーブルストレージの作成
11.4 コーディング
11.4.1 Event Gridトリガーの基本情報
11.4.2 テーブルストレージへ書き出し
11.4.3 外部Webhookの呼び出し
11.4.4 自動検証のHTTP トリガーの作成
11.4.5 Azure へデプロイ
11.4.6 イベントサブスクリプションの作成
11.5 検証
11.5.1 Event Gridトリガーの基本情報をチェック
11.5.2 テーブルストレージアクセスをチェック
11.5.3 外部Webhook呼び出しをチェック
11.5.4 イベントサブスクリプションのフィルター機能
11.5.5 ローカル環境でのEvent Grid のテスト
11.6 応用
11.6.1 有効期限付きのイベント受信
11.6.2 Azure 管理のためのトリガーの利用
付録 Azure Functions開発に必要なツール
A.1 Node.js、npm のインストール
A.2 Azure Functions Core Tools
A.3 Azure CLI のインストール
A.4 Visual Studio Code のインストール
A.5 Windows Subsystem for Linux の利用
A.6 Azure Cosmos DB Emulator
A.7 Microsoft Azure Storage Explorer

索引

※近刊検索デルタの書誌情報はopenBDのAPIを使用しています。

日経BPの既刊から
e-GovernanceAcademy/著 三菱UFJリサーチ&コンサルティング/翻訳
日経BP総研コミュニケーション研究所/監修
原田隆史/著 北田瀧/著 temoko/著
カーマイン・ガロ/著 井口耕二/翻訳
本日のピックアップ
マイナビ出版:ポケットマニュアル編集部 
秀和システム:羽石相 
日本法令:税理士法人タクトコンサルティング 

連載記事

発売してからどうです(仮)

>> もっと見る

※近刊検索デルタの書誌情報はopenBDのAPIを利用しています。