次の方法で共有


Event Grid ハンドラーをローカルでテストする

Event Grid でトリガーされる Azure 関数をローカルでテストするのは、複雑になる可能性があります。 フローをテストするためにイベントを何度も何度もトリガーしたくはないでしょう。 これらのイベントをトリガーすると、SMS を送信したり電話をかけたりするなどコストがかかるイベントを実行しなければならないため、高額になってしまう可能性もあります。 テストに役立つように、Postman を使用して、Event Grid イベントに似たペイロードで Azure 関数をトリガーする方法について紹介します。

前提条件

  • Postman をインストールします。
  • Event Grid によってトリガーできる実行中の Azure 関数があること。 ない場合は、クイックスタートに従って作成できます。

Azure 関数は、いくつかのテスト イベントでテストしたい場合も、あるいはフロー全体をローカルでテストしたい場合 (Visual Studio Code で F5 を押してローカルで実行する) も、Azure で実行できます。 外部でトリガーされた webhook を使用してフロー全体をテストする場合は、ngrok を使用してローカルで実行されている Azure 関数をパブリックに公開し、インターネット ソース (Azure Event WebHooks の例) によってトリガーできるようにする必要があります。 次のコマンドを実行して ngrok を構成します。


ngrok http 7071

開発リソースを公開しても安全とは見なされない可能性があることに注意してください。 そのため、次の要求を呼び出すことで、ngrok なしでワークフロー全体をローカルで実行することもできます。

http://localhost:7071/runtime/webhooks/EventGrid?functionName={functionname}

Postman を構成する

  1. Postman を開いて新しいリクエストを作成します。

    Screenshot of Postman body configuration.

  2. POST メソッドを選択します。

  3. Azure 関数の URL を入力します。 Azure で実行中の Azure 関数の URL でもよいし、ローカルで実行している場合は ngrok URL でも構いません。 関数名を URL の末尾に、/runtime/webhooks/EventGrid?functionName=<<FUNCTION_NAME>> のように追加してください。

  4. Body タブを選択して、rawJSON をドロップダウンから選択します。 本文で、トリガーしたいイベントのテスト スキーマを追加します。 たとえば、テストしている Azure 関数が SMS イベントを受け取ることによりトリガーされる場合は、次のように追加します。

    
    {
      "id": "Incoming_20200918002745d29ebbea-3341-4466-9690-0a03af35228e",
      "topic": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/acse2e/providers/microsoft.communication/communicationservices/{communication-services-resource-name}",
      "subject": "/phonenumber/15555555555",
      "data": {
        "MessageId": "Incoming_20200918002745d29ebbea-3341-4466-9690-0a03af35228e",
        "From": "15555555555",
        "To": "15555555555",
        "Message": "Great to connect with Azure Communication Services events",
        "ReceivedTimestamp": "2020-09-18T00:27:45.32Z"
      },
      "eventType": "Microsoft.Communication.SMSReceived",
      "dataVersion": "1.0",
      "metadataVersion": "1",
      "eventTime": "2020-09-18T00:27:47Z"
    }
    
    

    Azure Communication Service に使用されるさまざまなイベントの種類の詳細については、このドキュメントをご覧ください。

  5. Headers タブを選択して、次のヘッダーを追加します。

    • Content-Type: application/json
    • aeg-event-type: Notification

    Screenshot of Postman headers configuration.

  6. Send ボタンを選択してイベントをトリガーします。

    Screenshot of Postman send button.

    この時点で、イベントが Azure 関数でトリガーするはずです。 Azure 関数の実行を調べることでイベントを検証することができます。 これで、関数はそのジョブを正しく行っていることを確認できます。