登壇者情報
日本マイクロソフト株式会社
クラウド&ソリューション事業本部 インテリジェントクラウド統括本部
テクノロジーソリューションプロフェッショナル
服部さん
セッション内容要約
まずは今までのAzure Functionsの基礎的な話から
Azure Functions入門
イベントに反応して、コードをもとに行動する
イベントは「HTTP要求に対するトリガー」、「BLOBストレージ」、「タイマー」などのイベントがある。
サーバーレスアーキテクチャ
Azure Functionsといったらサーバーレスアーキテクチャ
サーバーレス=「コードに集中できる環境」
とくに従量課金であることが大事
Functionsのコンセプト
バインディング:他のサービスとの連携部分はマイクロソフトがあらかじめ定義しているので、コードだけに注力できる。
ロジックだけに注力すればいいのがFunctions
Functionsのシナリオ
Functionsのシナリオはこんな感じ
全てのシナリオに共通しているのは、イベントをトリガーとして処理を行っていること。
よくある話で既存の大きなスクリプトをそのまま用いて、スクリプトの動作に時間がかかることがある。
そういう使いかたは好ましくない。既存のスクリプトを分割する。
その他のFunctions1.0のお話
ログ収集
Application Insightを使用する。
Application Insightはこれから日本リージョンで使えるようになる。プロキシ、スロットあるよ。
Azure Functions 1.0における課題点
ここから2.0のお話
Function2.0 GAのアナウンス
↑の5点を押さえておけば大丈夫
言語環境の変更 Functionsが言語別に分割された。 →立ち上がりが早くなる →クイックスタートのビューが変更 内部のランタイムが.NET Coreに変わった
Azure Functionsのホスティングプランについて
プランに関して何を使っていいかという質問が多い
コンサンプションプラン
- 実行1回ごとの課金
- 迅速で無限大のスケールアウト
→インスタンス0のスケールインがあるので時間がかかってしまう(コールドスタート)。
App Service Plan
- 時間ごとの課金
- オートスケールが遅い 2分から3分くらい
- 仮想ネットワークに接続可能
プランに関してはコンサンプションプランで使える仕組みにするのがいい
* 理想はコンサンプションプランを使う
* 課金を定額の課金にしたければApp Service Planを用いる(↑に記載のデメリットあり)
2.0から「Functions プレミアム プラン(プライベートプレビュー)」が登場
今までの2つのプランのあいのこ、いいとこどり
コールドスタートは2.0で最適化された
Functionsを長く使っていないことでインスタンスが0になってしまうことで発生。
2.0で最適化された
FunctionはOSSプロジェクト
Visual Studioからでもビジュアルを変えず編集できる。
デバッグのコールスタックでFunctions中のコードもステップインしていくことができる。
モニタリングはApplication Insightを用いる。
パッケージからの実行が追加
パッケージからの実行が追加される。
使用中のファイルがロックされない。
起動も早くなる。
Functions 開発パイプライン
Durable Functions
↑がFunctionsの弱点
Durable Functions 複数のFunctionsをオーケストレーションする仕組み
Functions 1.0 から 2.0の移行方法
言語のランタイムバージョンが変わっていることに注意
2.0ユースケース
イベントストリーミング
- イベントハブは受け身
- イベントグリッドは自らイベントをとってくる
- イベントの発生がどこなのかで判断する コスモスDBと、つなげる場合はパーティションすることをわすれない
ワークフロー自動化
- イベントかトランザクションかで、イベントグリッドかキューかを選択する
- 順序を保持するか
サーバーレスWebAPI
functionsだけでapiを作るのは危険
セキュリティ部分を外部に出す(waf、apimanafement)