Functions を使用して Azure Storage キューにメッセージを追加するAdd messages to an Azure Storage queue using Functions

Azure Functions では、入力および出力バインディングによって、外部サービスからのデータをコードに使用できるようにする宣言方法が提供されます。In Azure Functions, input and output bindings provide a declarative way to make data from external services available to your code. このクイックスタートでは、出力バインディングを使用して、関数が HTTP 要求によってトリガーされたときにキューにメッセージを作成します。In this quickstart, you use an output binding to create a message in a queue when a function is triggered by an HTTP request. 関数で作成するキュー メッセージを表示するには、Azure ストレージ コンテナーを使用します。You use Azure storage container to view the queue messages that your function creates.

前提条件Prerequisites

このクイック スタートを完了するには、以下が必要です。To complete this quickstart:

  • Azure サブスクリプション。An Azure subscription. お持ちでない場合は、開始する前に無料アカウントを作成してください。If you don't have one, create a free account before you begin.

  • Azure Portal で初めての関数を作成する」の指示に従い、「リソースのクリーンアップ」の手順は実行しないでください。Follow the directions in Create your first function from the Azure portal and don't do the Clean up resources step. ここで使用する関数と Function App は、そのクイックスタートで作成します。That quickstart creates the function app and function that you use here.

出力バインディングを追加するAdd an output binding

このセクションでは、Portal UI を使用して、前に作成した関数にキュー ストレージの出力バインディングを追加します。In this section, you use the portal UI to add a queue storage output binding to the function you created earlier. このバインディングにより、最小限のコードの記述でキューにメッセージを作成できるようになります。This binding makes it possible to write minimal code to create a message in a queue. ストレージ接続のオープン、キューの作成、キューへの参照の取得などのタスクのためにコードを記述する必要はありません。You don't have to write code for tasks such as opening a storage connection, creating a queue, or getting a reference to a queue. Azure Functions ランタイムおよびキューの出力バインディングが、ユーザーに代わってこれらのタスクを処理します。The Azure Functions runtime and queue output binding take care of those tasks for you.

  1. Azure Portal で、「Azure Portal で初めての関数を作成する」で作成した Function App の Function App ページを開きます。In the Azure portal, open the function app page for the function app that you created in Create your first function from the Azure portal. ページを開くには、関数アプリを検索して選択します。To do open the page, search for and select Function App. 次に、関数アプリを選択します。Then, select your function app.

  2. 関数アプリを選択し、前のクイックスタートで作成した関数を選択します。Select your function app, and then select the function that you created in that earlier quickstart.

  3. [統合] を選択し、 [+ 出力を追加する] を選択します。Select Integration, and then select + Add output.

    関数の出力バインディングを作成します。

  4. [Azure Queue Storage] というバインディングの種類を選択して、このスクリーンショットの次の表で指定されている設定を追加します。Select the Azure Queue Storage binding type, and add the settings as specified in the table that follows this screenshot:

    関数の出力バインディングを作成します。

    設定Setting 推奨値Suggested value 説明Description
    メッセージ パラメーター名Message parameter name outputQueueItemoutputQueueItem 出力バインディング パラメーターの名前。The name of the output binding parameter.
    キュー名Queue name outqueueoutqueue ストレージ アカウント内の接続先のキューの名前。The name of the queue to connect to in your Storage account.
    ストレージ アカウント接続Storage account connection AzureWebJobsStorageAzureWebJobsStorage Function App によって既に使用されているストレージ アカウント接続を使用するか、新しく作成できます。You can use the storage account connection already being used by your function app, or create a new one.
  5. [OK] を選択して、バインディングを追加します。Select OK to add the binding.

出力バインディングが定義されたので、コードを更新し、バインディングを使用して、メッセージをキューに追加する必要があります。Now that you have an output binding defined, you need to update the code to use the binding to add messages to a queue.

出力バインディングを使用するコードを追加するAdd code that uses the output binding

このセクションでは、出力キューにメッセージを書き込むコードを追加します。In this section, you add code that writes a message to the output queue. メッセージには、クエリ文字列の HTTP トリガーに渡される値が含まれています。The message includes the value that is passed to the HTTP trigger in the query string. たとえば、クエリ文字列に name=Azure が含まれる場合、キュー メッセージは「Name passed to the function: Azure」(関数に渡された名前: Azure) になります。For example, if the query string includes name=Azure, the queue message will be Name passed to the function: Azure.

  1. 関数で、 [Code + Test](コード + テスト) を選択して、エディターに関数コードを表示します。In your function, select Code + Test to display the function code in the editor.

  2. 関数の言語に応じて関数コードを更新します。Update the function code depending on your function language:

    次の例で示すように、outputQueueItem パラメーターをメソッド シグネチャに追加します。Add an outputQueueItem parameter to the method signature as shown in the following example.

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

    return ステートメントの直前の関数の本体で、パラメーターを使用してキュー メッセージを作成するコードを追加します。In the body of the function just before the return statement, add code that uses the parameter to create a queue message.

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

関数をテストするTest the function

  1. コードの変更が保存されたら、 [テスト] を選択します。After the code changes are saved, select Test.

  2. テストが下の画像と一致することを確認し、 [実行] を選択します。Confirm that your test matches the image below and select Run.

    関数の出力バインディングを作成します。

    要求本文nameAzure が含まれていることに注意してください。Notice that the Request body contains the name value Azure. この値は、関数が呼び出されたときに作成されるキュー メッセージに表示されます。This value appears in the queue message that is created when the function is invoked.

    ここで [実行] を選択する代わりに、ブラウザーで URL を入力してクエリ文字列に name 値を指定することで、関数を呼び出すことができます。As an alternative to selecting Run here, you can call the function by entering a URL in a browser and specifying the name value in the query string. このブラウザーの方法は、前のクイック スタートで示されています。The browser method is shown in the previous quickstart.

  3. ログを確認して、関数が成功したことを確認します。Check the logs to make sure that the function succeeded.

出力バインディングを最初に使用するときに、outqueue という名前の新しいキューが、Functions ランタイムによってストレージ アカウントに作成されます。A new queue named outqueue is created in your Storage account by the Functions runtime when the output binding is first used. キューとその中のメッセージが作成されたことを確認するには、ストレージ アカウントを使用します。You'll use storage account to verify that the queue and a message in it were created.

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

  1. 関数アプリに移動して、 [構成] を選択します。Go to your function app and select Configuration.

  2. [アプリケーション設定] で、 [AzureWebJobsStorage] を選択します。Under Application settings, select AzureWebJobsStorage.

    関数の出力バインディングを作成します。

  3. アカウント名を検索してメモします。Locate and make note of the account name.

    関数の出力バインディングを作成します。

出力キューを確認するExamine the output queue

  1. 関数アプリのリソース グループで、このクイックスタートに使用するストレージ アカウントを選択します。In the resource group for your function app, select the storage account that you're using for this quickstart.

  2. [Queue サービス] で、 [キュー] を選択し、outqueue という名前のキューを選択します。Under Queue service, select Queues and select the queue named outqueue.

    このキューには、HTTP によってトリガーされる関数を実行したときにキューの出力バインディングが作成されたというメッセージが含まれます。The queue contains the message that the queue output binding created when you ran the HTTP-triggered function. Azure の既定の name 値で関数を呼び出した場合、キュー メッセージは「Name passed to the function: Azure」(関数に渡された名前: Azure) になります。If you invoked the function with the default name value of Azure, the queue message is Name passed to the function: Azure.

  3. 関数を再度実行すると、キューに新しいメッセージが表示されます。Run the function again, and you'll see a new message appear in the queue.

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

このコレクションの他のクイックスタートは、このクイックスタートに基づいています。Other quickstarts in this collection build upon this quickstart. クイック スタート、チュートリアル、またはこのクイック スタートで作成したサービスのいずれかでの作業を引き続き行う場合は、リソースをクリーンアップしないでください。If you plan to work with subsequent quickstarts, tutorials, or with any of the services you have created in this quickstart, do not clean up the resources.

Azure の "リソース" とは、関数アプリ、関数、ストレージ アカウントなどのことを指します。Resources in Azure refer to function apps, functions, storage accounts, and so forth. これらは "リソース グループ" に分類されており、グループを削除することでグループ内のすべてのものを削除できます。They're grouped into resource groups, and you can delete everything in a group by deleting the group.

これらのクイックスタートを完了するためにリソースを作成しました。You created resources to complete these quickstarts. これらのリソースには、アカウントの状態サービスの価格に応じて課金される場合があります。You may be billed for these resources, depending on your account status and service pricing. リソースの必要がなくなった場合にそれらを削除する方法を、次に示します。If you don't need the resources anymore, here's how to delete them:

  1. Azure Portal で、 [リソース グループ] ページに移動します。In the Azure portal, go to the Resource group page.

    Function App ページからこのページに移動するには、 [概要] タブを選択してから、 [リソース グループ] の下にあるリンクを選択します。To get to that page from the function app page, select the Overview tab and then select the link under Resource group.

    Function App ページから削除するリソース グループを選択します。

    ダッシュボードからこのページに移動するには、 [リソース グループ] を選択してから、このクイックスタート用に使用したリソース グループを選択します。To get to that page from the dashboard, select Resource groups, and then select the resource group that you used for this quickstart.

  2. [リソース グループ] ページで、含まれているリソースの一覧を確認し、削除するものであることを確認します。In the Resource group page, review the list of included resources, and verify that they're the ones you want to delete.

  3. [リソース グループの削除] を選択し、指示に従います。Select Delete resource group, and follow the instructions.

    削除には数分かかることがあります。Deletion may take a couple of minutes. 実行されると、通知が数秒間表示されます。When it's done, a notification appears for a few seconds. ページの上部にあるベルのアイコンを選択して、通知を表示することもできます。You can also select the bell icon at the top of the page to view the notification.

次のステップNext steps

このクイックスタートでは、既存の関数に出力バインディングを追加しました。In this quickstart, you added an output binding to an existing function. Queue Storage へのバインディングの詳細については、「Azure Functions における Storage キュー バインド」を参照してください。For more information about binding to Queue storage, see Azure Functions Storage queue bindings.