次の方法で共有


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

この記事では、アクセス キーを使用して 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 を使用した発行クライアントの認証に関するページを参照してください。

エンドポイント

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

トピックのエンドポイントは、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 応答コードです。 いくつかの一般的な応答を次に示します。

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

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

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