次の方法で共有


Functions を使用して Azure Storage キューにメッセージを追加する

Azure Functions では、入力および出力バインディングによって、外部サービスからのデータをコードに使用できるようにする宣言方法が提供されます。 この記事では、出力バインドを使用して、HTTP 要求が関数をトリガーするときにキューにメッセージを作成します。 関数で作成するキュー メッセージを表示するには、Azure ストレージ コンテナーを使用します。

前提条件

  • Azure サブスクリプション。 お持ちでない場合は、開始する前に無料アカウントを作成してください。

  • この記事で使用する関数アプリと関数を作成するには、「リソースをクリーンアップする」の手順を省略して、「Azure portal で初めての関数を作成する」の指示に従います。

出力バインディングを追加する

このセクションでは、portal の UI を使用して、前提条件で作成した関数に Azure Queue Storage の出力バインディングを追加します。 このバインディングにより、最小限のコードの記述でキューにメッセージを作成できるようになります。 ストレージ接続のオープン、キューの作成、キューへの参照の取得のようなタスクのためにコードを記述する必要はありません。 Azure Functions ランタイムおよびキューの出力バインディングが、ユーザーに代わってこれらのタスクを処理します。

  1. Azure portal で、「Azure portal で初めての関数を作成する」で作成した関数アプリを検索して選択します。

  2. 関数アプリで、作成した関数を選択します。

  3. [統合] を選択し、 [+ 出力を追加する] を選択します。

    関数の出力バインドを作成する方法を示すスクリーンショット。

  4. [Azure Queue Storage] というバインディングの種類を選択して、このスクリーンショットの次の表で指定されている設定を追加します。

    Azure portal で Queue Storage 出力バインディングを関数に追加する方法を示すスクリーンショット。

    設定 提案された値 description
    メッセージ パラメーター名 outputQueueItem 出力バインディング パラメーターの名前。
    キュー名 outqueue ストレージ アカウント内の接続先のキューの名前。
    ストレージ アカウント接続 AzureWebJobsStorage 関数アプリによって使用されている既存のストレージ アカウント接続を使用するか、新しく作成できます。
  5. [OK] を選択して、バインディングを追加します。

出力バインディングが定義されたので、コードを更新し、バインディングを使用して、メッセージをキューに追加する必要があります。

出力バインディングを使用するコードを追加する

このセクションでは、出力キューにメッセージを書き込むコードを追加します。 メッセージには、クエリ文字列の HTTP トリガーに渡される値が含まれています。 たとえば、クエリ文字列に name=Azure が含まれる場合、キュー メッセージは Name passed to the function: Azure です。

  1. 関数で、 [Code + Test](コード + テスト) を選択して、エディターに関数コードを表示します。

  2. 関数の言語に従って関数コードを更新します。

    次の例で示すように、outputQueueItem パラメーターをメソッド シグネチャに追加します。

    public static async Task<IActionResult> Run(HttpRequest req,
        ICollector<string> outputQueueItem, ILogger log)
    {
        ...
    }
    

    return ステートメントの直前の関数の本文で、パラメーターを使用してキュー メッセージを作成するコードを追加します。

    outputQueueItem.Add("Name passed to the function: " + name);
    
  3. [保存] を選択して変更を保存します。

関数をテストする

  1. コードの変更が保存されたら、 [テスト] を選択します。

  2. テストがこのスクリーンショットと一致することを確認し、[実行] を選択します。

    Azure portal で Queue Storage のバインディングをテストする方法を示すスクリーンショット。

    要求本文nameAzure が含まれていることに注意してください。 この値は、関数が呼び出されたときに作成されるキュー メッセージに表示されます。

    [実行] を選択する代わりに、ブラウザーで URL を入力してクエリ文字列に name 値を指定すると、関数を呼び出すことができます。 このブラウザー メソッドは、「Azure portal で初めての関数を作成する」に示されています。

  3. ログを確認して、関数が成功したことを確認します。

    出力バインディングを最初に使用するときに、outqueue という名前の新しいキューが、Functions ランタイムによってストレージ アカウントに作成されます。 キューとその中のメッセージが作成されたことを確認するには、ストレージ アカウントを使用します。

AzureWebJobsStorage に接続されているストレージ アカウントを検索します。

  1. 関数アプリで、[設定] を展開し、[環境変数] を選びます。

  2. [アプリ設定] タブで、AzureWebJobsStorage を選択します。

    AzureWebJobsStorage が選択されている構成ページを示すスクリーンショット。

  3. アカウント名を検索してメモします。

    AzureWebJobsStorage に接続されているストレージ アカウントを検索する方法を示すスクリーンショット。

出力キューを確認する

  1. 関数アプリのリソース グループで、使用しているストレージ アカウントを選択します。

  2. [Queue サービス] で、[キュー] を選択し、outqueue という名前のキューを選択します。

    このキューには、HTTP によってトリガーされる関数を実行したときにキューの出力バインディングが作成されたというメッセージが含まれます。 Azure の既定の name 値で関数を呼び出した場合、キュー メッセージは「Name passed to the function: Azure」(関数に渡された名前: Azure) になります。

  3. 関数をもう一度を実行します。

    キューに新しいメッセージが表示されます。

リソースをクリーンアップする

前の手順では、リソース グループ内に Azure リソースを作成しました。 これらのリソースが将来必要になると思わない場合は、リソース グループを削除してリソースを削除できます。

Azure portal メニューまたは [ホーム] ページから、 [リソース グループ] を選択します。 次に、 [リソース グループ] ページで [myResourceGroup] を選択します。

[myResourceGroup] ページで、一覧表示されたリソースが、削除しようとするリソースであることを確認します。

[リソース グループの削除] を選択し、確認のためテキスト ボックスに「myResourceGroup」と入力して、 [削除] を選択します。

この記事では、既存の関数に出力バインディングを追加しました。 Queue Storage へのバインディングの詳細については、Queue Storage のトリガーとバインディングに関する記事を参照してください。