Functions を使用して Azure Storage キューにメッセージを追加する
Azure Functions では、入力および出力バインディングによって、外部サービスからのデータをコードに使用できるようにする宣言方法が提供されます。 この記事では、出力バインドを使用して、HTTP 要求が関数をトリガーするときにキューにメッセージを作成します。 関数で作成するキュー メッセージを表示するには、Azure ストレージ コンテナーを使用します。
前提条件
Azure サブスクリプション。 お持ちでない場合は、開始する前に無料アカウントを作成してください。
この記事で使用する関数アプリと関数を作成するには、「リソースをクリーンアップする」の手順を省略して、「Azure portal で初めての関数を作成する」の指示に従います。
出力バインディングを追加する
このセクションでは、portal の UI を使用して、前提条件で作成した関数に Azure Queue Storage の出力バインディングを追加します。 このバインディングにより、最小限のコードの記述でキューにメッセージを作成できるようになります。 ストレージ接続のオープン、キューの作成、キューへの参照の取得のようなタスクのためにコードを記述する必要はありません。 Azure Functions ランタイムおよびキューの出力バインディングが、ユーザーに代わってこれらのタスクを処理します。
Azure portal で、「Azure portal で初めての関数を作成する」で作成した関数アプリを検索して選択します。
関数アプリで、作成した関数を選択します。
[統合] を選択し、 [+ 出力を追加する] を選択します。
[Azure Queue Storage] というバインディングの種類を選択して、このスクリーンショットの次の表で指定されている設定を追加します。
設定 提案された値 description メッセージ パラメーター名 outputQueueItem 出力バインディング パラメーターの名前。 キュー名 outqueue ストレージ アカウント内の接続先のキューの名前。 ストレージ アカウント接続 AzureWebJobsStorage 関数アプリによって使用されている既存のストレージ アカウント接続を使用するか、新しく作成できます。 [OK] を選択して、バインディングを追加します。
出力バインディングが定義されたので、コードを更新し、バインディングを使用して、メッセージをキューに追加する必要があります。
出力バインディングを使用するコードを追加する
このセクションでは、出力キューにメッセージを書き込むコードを追加します。 メッセージには、クエリ文字列の HTTP トリガーに渡される値が含まれています。 たとえば、クエリ文字列に name=Azure
が含まれる場合、キュー メッセージは Name passed to the function: Azure です。
関数で、 [Code + Test](コード + テスト) を選択して、エディターに関数コードを表示します。
関数の言語に従って関数コードを更新します。
次の例で示すように、outputQueueItem パラメーターをメソッド シグネチャに追加します。
public static async Task<IActionResult> Run(HttpRequest req, ICollector<string> outputQueueItem, ILogger log) { ... }
return
ステートメントの直前の関数の本文で、パラメーターを使用してキュー メッセージを作成するコードを追加します。outputQueueItem.Add("Name passed to the function: " + name);
[保存] を選択して変更を保存します。
関数をテストする
コードの変更が保存されたら、 [テスト] を選択します。
テストがこのスクリーンショットと一致することを確認し、[実行] を選択します。
要求本文に
name
値 Azure が含まれていることに注意してください。 この値は、関数が呼び出されたときに作成されるキュー メッセージに表示されます。[実行] を選択する代わりに、ブラウザーで URL を入力してクエリ文字列に
name
値を指定すると、関数を呼び出すことができます。 このブラウザー メソッドは、「Azure portal で初めての関数を作成する」に示されています。ログを確認して、関数が成功したことを確認します。
出力バインディングを最初に使用するときに、outqueue という名前の新しいキューが、Functions ランタイムによってストレージ アカウントに作成されます。 キューとその中のメッセージが作成されたことを確認するには、ストレージ アカウントを使用します。
AzureWebJobsStorage に接続されているストレージ アカウントを検索します。
出力キューを確認する
関数アプリのリソース グループで、使用しているストレージ アカウントを選択します。
[Queue サービス] で、[キュー] を選択し、outqueue という名前のキューを選択します。
このキューには、HTTP によってトリガーされる関数を実行したときにキューの出力バインディングが作成されたというメッセージが含まれます。 Azure の既定の
name
値で関数を呼び出した場合、キュー メッセージは「Name passed to the function: Azure」(関数に渡された名前: Azure) になります。関数をもう一度を実行します。
キューに新しいメッセージが表示されます。
リソースをクリーンアップする
前の手順では、リソース グループ内に Azure リソースを作成しました。 これらのリソースが将来必要になると思わない場合は、リソース グループを削除してリソースを削除できます。
Azure portal メニューまたは [ホーム] ページから、 [リソース グループ] を選択します。 次に、 [リソース グループ] ページで [myResourceGroup] を選択します。
[myResourceGroup] ページで、一覧表示されたリソースが、削除しようとするリソースであることを確認します。
[リソース グループの削除] を選択し、確認のためテキスト ボックスに「myResourceGroup」と入力して、 [削除] を選択します。
関連するコンテンツ
この記事では、既存の関数に出力バインディングを追加しました。 Queue Storage へのバインディングの詳細については、Queue Storage のトリガーとバインディングに関する記事を参照してください。
- Azure Functions でのトリガーとバインドの概念
Functions を他のサービスと統合する方法について学習します。 - Azure Functions 開発者向けリファレンス
Functions ランタイムに関する詳細な技術情報と、関数のコーディングやトリガーおよびバインドの定義に関するリファレンスを提供します。 - Azure Functions をローカルでコーディングしてテストする
関数をローカルで開発するためのオプションについて説明します。