Azure Blob をトリガーとする Azure Functions を作成する
マイクロソフトのサーバレスコンピューティングの一つ Azure Functions は様々なトリガーが用意されています。またサーバーレスコンピューティングは使用した分だけ課金される形になるので非常に便利です。今回は Azure Functions で Blob Storage にアップロードされたことをトリガーとして実行する関数を作成します。
Azure Functions のトリガー一覧
まず最初に Azure Functions でサポートされているトリガーを整理します。Azure Functions では様々なトリガーがサポートされていますが、一般的なものには以下の様なトリガーがあります。
種類 | 目的 |
---|---|
タイマー | 設定した間隔で関数を実行します。 |
HTTP | HTTP 要求を受信したときに関数を実行します。 |
Blob | Azure Blob Storage 内にファイルがアップロードされたとき、または Azure Blob Storage 内のファイルが更新されたときに、関数を実行します。 |
キュー | Azure Storage キューにメッセージが追加されたときに、関数を実行します。 |
Azure Cosmos DB | コレクション内のドキュメントが変更されたときに、関数を実行します。 |
イベント ハブ | イベント ハブで新しいイベントが受信されたときに、関数を実行します。 |
今回は Blob にファイルがアップロードされたときをトリガーとする関数を作成します。
Azure Portal で Functions を作成する
Portal から リソースの作成
から Functions App
を検索します。
作成を選択すると、必要な値を入力する画面になるので、任意の必要事項を入力して レビューと作成
を押して作成します。
作成されリソースに移動し、左側のメニューの Functions
から + New Functions
を選択します。選択すると、開発環境を選ぶ画面に代わるので、in Portal
を選びます。
トリガーを選択する画面に遷移すると HTTP trigger
と Time trigger
が出てきますが、今回は More Triggers
を選び Azure Blob Storage Trigger
を選択します。
選択すると、Functions の名前と、Azure Blob Storage trigger の設定値である、Path
と Storage Account Connection
を入力する Windows が出てきます。ここで Storage Account Connection の右側にある New
を選択し、この同じリソースグループにある Storage Account を設定します。この設定をすることで自動的に Connection String を設定することが出来ます。
Blob Storage を設定する
先程 Connection String で設定したこの Functions が監視している Storage Account は、同じリソースグループの Storage Account になります。
この Storage Account に対して、samples-workitems
という Blob Container を作成します。
これで Blob 側の設定は完了です。
Functions を実行する
Functions は既に実行になっているので、Storage Explorer から samples-workitems
Container に対してファイルをアップロードします。
ファイルをアップロードすると、Functions のトリガーが実行され、Azure Portal の Logs に結果が出力されます。
Log の出力結果は以下のような感じです。
2020-03-30T08:29:46 Welcome, you are now connected to log-streaming service. The default timeout is 2 hours. Change the timeout with the App Setting SCM_LOGSTREAM_TIMEOUT (in seconds).
2020-03-30T08:30:22.582 [Information] Executing 'Functions.BlobTrigger2' (Reason='New blob detected: samples-workitems/analyze-form-input-data.png', Id=85e1478d-7bb7-4b76-a728-XXXXXXXXXXX)
2020-03-30T08:30:22.591 [Information] C# Blob trigger function Processed blob
Name:analyze-form-input-data.png
Size: 40711 Bytes
2020-03-30T08:30:22.592 [Information] Executed 'Functions.BlobTrigger2' (Succeeded, Id=85e1478d-7bb7-4b76-a728-XXXXXXXXXX)
これで Blob にファイルがアップロードされたことをトリガーとする Functions を作成できました。
次回は、Functions をトリガーとして、Cognitive Service を呼び出す関数と連携させてみようと思います。
Author And Source
この問題について(Azure Blob をトリガーとする Azure Functions を作成する), 我々は、より多くの情報をここで見つけました https://qiita.com/komiyasa/items/c9c18e36d64d773276c3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .