アクセス キーを使用して Azure Event Grid カスタム トピックにイベントを公開する

この記事では、アクセス キーを使用し、カスタム トピックにイベントを投稿する方法について説明します。 投稿とイベント データの形式を示します。 サービス レベル アグリーメント (SLA) は、予期される形式と一致する投稿に対してのみ適用されます。

Note

Microsoft Entra 認証は、アクセス キーや Shared Access Signature (SAS) トークン認証よりも優れた認証サポートを提供します。 Microsoft Entra 認証では、ID は Microsoft Entra ID プロバイダーに対して検証されます。 Microsoft Entra 認証を使用する場合、開発者がコード内のキーを処理する必要はありません。 Microsoft ID プラットフォームに組み込みのすべてのセキュリティ機能 (条件付きアクセスなど) の恩恵を受けることもでき、アプリケーションのセキュリティ態勢を向上させることができます。 詳細については、Azure Microsoft Entra ID を使用した発行クライアントの認証に関するページを参照してください。

エンドポイント

カスタム トピックに HTTP POST を送信するときは、https://<topic-endpoint>?api-version=2018-01-01 という URI 形式を使います。 たとえば、https://exampletopic.westus2-1.eventgrid.azure.net/api/events?api-version=2018-01-01 は有効な URI です。 Azure CLI を使用してカスタム トピックのエンドポイントを取得するには、以下を使用します。

トピックのエンドポイントは、Azure portal の [Event Grid トピック] ページの [概要] タブにあります。

トピック エンドポイントが強調表示された、Azure portal の [Event Grid トピック] ページを示すスクリーンショット。

要求では、認証用のキーを含む aeg-sas-key という名前のヘッダー値を設定します。 たとえば、aeg-sas-key: xxxxxxxxxxxxxxxxxxxxxxx は有効なヘッダー値です。 Azure CLI を使用してカスタム トピックのキーを取得するには、以下を使用します。

カスタム トピックのアクセス キーを取得するには、Azure portal の [Event Grid トピック] ページの [アクセス キー] タブを選択します。

Azure portal の [Event Grid トピック] ページの [アクセス キー] タブを示すスクリーンショット。

イベント データ

カスタム トピックでは、最上位レベルのデータに、リソースによって定義される標準的なイベントと同じフィールドが含まれます。 これらのプロパティの 1 つは、カスタム トピックに固有のプロパティを含む data プロパティです。 イベント発行元として、そのデータ オブジェクトのプロパティを決定します。 スキーマを次に示します。

[
  {
    "id": string,    
    "eventType": string,
    "subject": string,
    "eventTime": string-in-date-time-format,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string
  }
]

これらのプロパティについては、「Azure Event Grid イベント スキーマ」をご覧ください。 クライアントから Event Grid トピックにイベントが送信される際の、配列の合計サイズの上限は 1 MB です。 イベントの最大許容サイズも 1 MB です。 64 KB を超えるイベントは、64 KB の増分単位で課金されます。 クライアントでイベントがバッチで受信される場合、イベントの最大許容数は、バッチあたり 5,000 です。

たとえば、次に示すのは有効なイベント データ スキーマです。

[{
  "id": "1807",
  "eventType": "recordInserted",
  "subject": "myapp/vehicles/motorcycles",
  "eventTime": "2017-08-10T21:03:07+00:00",
  "data": {
    "make": "Ducati",
    "model": "Monster"
  },
  "dataVersion": "1.0"
}]

サンプル イベントを送信する

このセクションでは、サンプル イベントをカスタム トピックに送信する方法について説明します。

  1. Azure portal で Cloud Shell を起動します。

  2. Cloud Shell 内で、Bash または PowerShell セッションで Azure PowerShell または Azure CLI からコマンドを実行します。

    Azure portal の Cloud Shell を示すスクリーンショット。

回答

トピック エンドポイントへの投稿後に、応答を受信します。 応答は、標準 HTTP 応答コードです。 いくつかの一般的な応答を次に示します。

結果 Response
Success 200 OK
イベント データの形式が正しくない 400 Bad Request
無効なアクセス キー 401 権限がありません
エンドポイントが正しくない 404 見つかりません
配列またはイベントが、サイズ制限を超えています 413 ペイロードが大きすぎます

エラーの場合、メッセージ本文は次の形式になります。

{
    "error": {
        "code": "<HTTP status code>",
        "message": "<description>",
        "details": [{
            "code": "<HTTP status code>",
            "message": "<description>"
    }]
  }
}