Azure Queue Storage によってトリガーされる関数の作成
Azure Storage キューにメッセージが送信されたときにトリガーされる関数を作成する方法について説明します。
Note
ポータル内編集は、JavaScript、PowerShell、および C# スクリプト関数でのみサポートされます。 Python のポータル内編集は、従量課金プランで実行されている場合にのみサポートされます。 可能であれば、関数をローカルで開発する必要があります。
Azure portal での関数コードの編集に関する制限事項の詳細については、Azure portal での開発の制限事項に関するページを参照してください。
前提条件
- Azure サブスクリプション。 お持ちでない場合は、開始する前に無料アカウントを作成してください。
Azure Function App の作成
Azure portal のメニューまたは [ホーム] ページから [リソースの作成] を選択します。
[新規] ページで、 [計算]>、 [関数アプリ] の順に選択します。
[基本] ページで、下の表に指定されている関数アプリの設定を使用します。
設定 提案された値 説明 サブスクリプション 該当するサブスクリプション 新しい関数アプリを作成するサブスクリプション。 リソース グループ myResourceGroup 関数アプリを作成する新しいリソース グループの名前。 既存のリソース グループに新しい関数アプリを作成する際の既知の制限があるため、新しいリソース グループを作成する必要があります。 関数アプリ名 グローバルに一意の名前 新しい関数アプリを識別する名前。 有効な文字は、 a-z
(大文字と小文字の区別をしない)、0-9
、および-
です。コードまたはコンテナー イメージをデプロイしますか? コード コード ファイルまたは Docker コンテナーの発行オプション。 ランタイム スタック 優先言語 お気に入りの関数プログラミング言語をサポートするランタイムを選択します。 ポータル内編集は、JavaScript、PowerShell、Python、TypeScript、C# スクリプトでのみ利用できます。 C# クラス ライブラリ、Java の関数はローカルで開発する必要があります。 バージョン バージョン番号 インストールされているランタイムのバージョンを選択します。 リージョン 優先リージョン 自分の近く、または関数がアクセスできる他のサービスの近くのリージョンを選択します。 オペレーティング システム Windows オペレーティング システムは、ランタイム スタックの選択に基づいてあらかじめ選択されますが、必要に応じて設定を変更できます。 ポータルでの編集は Windows でのみサポートされます。 コンテナーの発行は Linux でのみサポートされています。 ホスティング オプションとプラン 従量課金プラン (サーバーレス) 関数アプリにどのようにリソースが割り当てられるかを定義するホスティング プラン。 既定の [従量課金プラン] では、リソースは関数の必要に応じて動的に追加されます。 このサーバーレスのホスティングでは、関数が実行された時間にのみ課金されます。 Premium プランでは、動的スケーリングも提供されます。 App Service プランで実行する場合は、関数アプリのスケーリングを管理する必要があります。 [ストレージ] タブで新しいストレージ アカウントを作成し、[監視] タブで新しい Application Insight インスタンスを作成する既定のオプションを受け入れます。既存のストレージ アカウントまたは Application Insights インスタンスを使用することもできます。
[確認と作成] を選択して選択したアプリ設定をレビューし、[作成] を選択して関数アプリをプロビジョニングおよびデプロイします。
ポータルの右上隅の [通知] アイコンを選択し、"デプロイメントに成功しました" というメッセージが表示されるまで待ちます。
[リソースに移動] を選択して、新しい関数アプリを確認します。 また、 [ダッシュボードにピン留めする] を選択することもできます。 ピン留めすると、ダッシュボードからこの関数アプリ リソースに戻るのが容易になります。
次に、新しい Function App で関数を作成します。
キューによってトリガーされる関数の作成
関数アプリで [概要] を選択し、[関数] で [+ 作成] を選択します。
[テンプレートの選択] で下にスクロールし、Azure Queue Storage トリガー テンプレートを選択します。
[テンプレートの詳細] で、次の表に示すように設定を使用して新しいトリガーを構成し、[作成] を選択します。
設定 提案された値 Description 名前 Function App 内で一意 このキューによってトリガーされる関数の名前。 キュー名 myqueue-items ストレージ アカウント内の接続先のキューの名前。 ストレージ アカウント接続 AzureWebJobsStorage Function App によって既に使用されているストレージ アカウント接続を使用するか、新しく作成できます。 Azure では、指定された値に基づいて Queue Storage によってトリガーされる関数が作成されます
次に、Azure Storage アカウントに接続して、myqueue-items ストレージ キューを作成します。
キューを作成する
関数の [概要] ページで、リソース グループを選択します。
リソース グループのストレージ アカウントを見つけて、選択します。
[キュー] を選択し、 [+ キュー] を選択します。
[名前] フィールドに「
myqueue-items
」と入力して、 [作成] を選択します。
これでストレージ キューが作成されたので、キューにメッセージを追加して、関数をテストできます。
関数をテストする
Azure Portal に戻り、関数を参照して、ページ下部の [ログ] を展開して、ログ ストリーミングが一時停止していないことを確認します。
別のブラウザー ウィンドウで、Azure portal のリソース グループに移動して、ストレージ アカウントを選択します。
[キュー] を選択し、 [myqueue-items] コンテナーを選択します。
[メッセージの追加] を選択して、[メッセージ テキスト] に「Hello World!」と入力します。 [OK] を選択します。
数秒間待ってから、関数ログに戻り、新しいメッセージがキューから読み取られていることを確認します。
ストレージ キューに戻り、 [更新] を選択し、メッセージが処理されてキュー内に存在しなくなったことを確認します。
リソースをクリーンアップする
このコレクションの他のクイックスタートは、このクイックスタートに基づいています。 クイック スタート、チュートリアル、またはこのクイック スタートで作成したサービスのいずれかでの作業を引き続き行う場合は、リソースをクリーンアップしないでください。
Azure の "リソース" とは、関数アプリ、関数、ストレージ アカウントなどのことを指します。 これらは "リソース グループ" に分類されており、グループを削除することでグループ内のすべてのものを削除できます。
これで、これらのクイックスタートを完了するためのリソースが作成されました。 アカウントの状態とサービスの価格によっては、これらのリソースに対して課金される可能性があります。 リソースの必要がなくなった場合にそれらを削除する方法を、次に示します。
Azure Portal で、 [リソース グループ] ページに移動します。
関数アプリ ページからこのページに移動するには、[概要] タブを選択し、[リソース グループ] の下にあるリンクを選択します。
ダッシュボードからこのページに移動するには、 [リソース グループ] を選択してから、この記事用に使用したリソース グループを選択します。
[リソース グループ] ページで、含まれているリソースの一覧を確認し、削除するものであることを確認します。
[リソース グループの削除] を選択し、指示に従います。
削除には数分間かかることがあります。 実行されると、通知が数秒間表示されます。 ページの上部にあるベルのアイコンを選択して、通知を表示することもできます。
次のステップ
メッセージがストレージ キューに追加されたときに実行される関数を作成しました。 Queue Storage トリガーの詳細については、「Azure Functions における Storage キュー バインド」を参照してください。
最初の関数を作成した後は、メッセージを別のキューに書き戻す出力バインディングをこの関数に追加しましょう。