HTTP によってトリガーされない関数を手動で実行するManually run a non HTTP-triggered function

この記事では、特殊な形式の HTTP 要求を介して、HTTP によってトリガーされない関数を手動で実行する方法について説明します。This article demonstrates how to manually run a non HTTP-triggered function via specially formatted HTTP request.

状況によっては、間接的にトリガーされる Azure 関数を "オンデマンドで" 実行する必要があります。In some contexts, you may need to run "on-demand" an Azure Function that is indirectly triggered. 間接的なトリガーの例として、スケジュールに対する関数別リソースのアクションの結果として実行される関数などがあります。Examples of indirect triggers include functions on a schedule or functions that run as the result of another resource's action.

次の例では Postman が使用されていますが、cURLFiddler などの同様のツールを使用して HTTP 要求を送信できます。Postman is used in the following example, but you may use cURL, Fiddler or any other like tool to send HTTP requests.

要求の場所を定義するDefine the request location

HTTP によってトリガーされない関数を実行するには、関数を実行するために Azure に要求を送信する方法が必要です。To run a non HTTP-triggered function, you need to a way to send a request to Azure to run the function. この要求の送信に使用される URL には特定の形式があります。The URL used to make this request takes a specific form.

要求の場所の定義: ホスト名 + フォルダー パス + 関数名

  • ホスト名: 関数アプリの発行場所。関数アプリの名前と、azurewebsites.net またはカスタム ドメインから構成されます。Host name: The function app's public location that is made up from the function app's name plus azurewebsites.net or your custom domain.
  • フォルダー パス: HTTP によってトリガーされない関数に HTTP 要求を介してアクセスするには、フォルダー admin/functions から要求を送信する必要があります。Folder path: To access non HTTP-triggered functions via an HTTP request, you have to send the request through the folders admin/functions.
  • 関数名: 実行する関数の名前。Function name: The name of the function you want to run.

関数を実行する Azure への要求で、関数のマスター キーと共に Postman でこの要求の場所を使用します。You use this request location in Postman along with the function's master key in the request to Azure to run the function.

注意

ローカルで実行する場合、関数のマスター キーは必要ありません。When running locally, the function's master key is not required. x-functions-key ヘッダーを省略して、直接関数を呼び出すことができます。You can directly call the function omitting the x-functions-key header.

関数のマスター キーを取得するGet the function's master key

Azure portal で関数に移動し、 [管理] をクリックし、 [ホスト キー] セクションを見つけます。Navigate to your function in the Azure portal and click on Manage and find the Host Keys section. _master 行で [コピー] ボタンをクリックして、マスター キーをクリップボードにコピーします。Click on the Copy button in the _master row to copy the master key to your clipboard.

関数の [管理] 画面からマスター キーをコピーする

マスター キーをコピーしたら、関数名をクリックしてコード ファイル ウィンドウに戻ります。After copying the master key, click on the function name to return to the code file window. 次に、 [ログ] タブをクリックします。Postman から手動で関数を実行すると、ログに記録された関数のメッセージがここに表示されます。Next, click on the Logs tab. You'll see messages from the function logged here when you manually run the function from Postman.

注意事項

マスター キーによって付与された関数 app の権限が昇格しているため、このキーを第三者と共有したり、アプリケーションに配布したりしないでください。Due to the elevated permissions in your function app granted by the master key, you should not share this key with third parties or distribute it in an application.

関数を呼び出すCall the function

Postman を開き、次の手順を実行します。Open Postman and follow these steps:

  1. [URL] テキスト ボックスに要求の場所を入力します。Enter the request location in the URL text box.

  2. HTTP メソッドが [POST] に設定されていることを確認します。Ensure the HTTP method is set to POST.

  3. [ヘッダー] タブをクリックします。Click on the Headers tab.

  4. 最初の [キー] に「x-functions-key」と入力し、 [値] ボックスに (クリップボードから) マスター キーを貼り付けます。Enter x-functions-key as the first key and paste the master key (from the clipboard) into the value box.

  5. 2 番目の [キー] に「Content-Type」と入力し、 [値] に「application/json」と入力します。Enter Content-Type as the second key and enter application/json as the value.

    Postman のヘッダーの設定

  6. [本文] タブをクリックします。Click on the Body tab.

  7. 要求の本文に「 { "input": "test" } 」と入力します。Enter { "input": "test" } as the body for the request.

    Postman の本文の設定

  8. [送信] をクリックします。Click Send.

    Postman を使用して要求を送信する

Postman から 202 Accepted の状態が報告されます。Postman then reports a status of 202 Accepted.

次に、Azure portal で関数に戻ります。Next, return to your function in the Azure portal. ログ ウィンドウに移動すると、関数の手動呼び出しの結果によるメッセージが表示されます。Locate the Logs window and you'll see messages coming from the manual call to the function.

手動呼び出しの関数ログの結果

次の手順Next steps