アクセス キーを使用して 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 トピック] ページの [概要] タブにあります。
ヘッダー
要求では、認証用のキーを含む aeg-sas-key
という名前のヘッダー値を設定します。 たとえば、aeg-sas-key: xxxxxxxxxxxxxxxxxxxxxxx
は有効なヘッダー値です。 Azure CLI を使用してカスタム トピックのキーを取得するには、以下を使用します。
カスタム トピックのアクセス キーを取得するには、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"
}]
サンプル イベントを送信する
このセクションでは、サンプル イベントをカスタム トピックに送信する方法について説明します。
Azure portal で Cloud Shell を起動します。
Cloud Shell 内で、Bash または PowerShell セッションで Azure PowerShell または Azure CLI からコマンドを実行します。
回答
トピック エンドポイントへの投稿後に、応答を受信します。 応答は、標準 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>"
}]
}
}
関連するコンテンツ
- イベント配信の監視について詳しくは、「Event Grid メッセージ配信の監視」をご覧ください。
- 認証キーについて詳しくは、「Event Grid のセキュリティと認証」をご覧ください。
- Azure Event Grid サブスクリプションの作成の詳細については、Event Grid サブスクリプション スキーマに関する記事を参照してください。