イベント サブスクリプションを使用すると、配信されたイベントに含まれる HTTP ヘッダーを設定できます。 この機能を使用すると、宛先に必要なカスタム ヘッダーを設定できます。 イベント サブスクリプションを作成するときに、最大 10 個のヘッダーを設定できます。 各ヘッダーの値は、4,096 (4 K) バイトより大きくすることはできません。
次の宛先に配信されるイベントにカスタム ヘッダーを設定できます。
- Webhooks
- Azure Service Bus のトピックとキュー
- Azure Event Hubs
- Azure Functions
- Azure Relay ハイブリッド接続
Note
既知のヘッダーに適合しない値があると、イベントを Webhook 送信先に配信する際にはヘッダーが削除されますが、Webhook 検証時には削除されません。
When creating an event subscription in the Azure portal, you can use the Delivery Properties tab to set custom HTTP headers. このページでは、固定と動的ヘッダー値を設定できます。
静的ヘッダー値の設定
固定値を使用してヘッダーを設定するには、対応するフィールドにヘッダーの名前とその値を指定します。
You might want to check Is secret? when you're providing sensitive data. Azure portal での機密データの表示は、ユーザーの RBAC アクセス許可によって異なります。
動的ヘッダー値の設定
受信イベントのプロパティに基づいてヘッダーの値を設定できます。 JsonPath 構文を使用して、送信要求のヘッダーの値として使用する受信イベントのプロパティ値を参照します。 文字列、数値、およびブール値の JSON 値のみがサポートされています。 For example, to set the value of a header named Channel using the value of the incoming event property system in the event data, configure your event subscription in the following way:
Azure CLI の使用
--delivery-attribute-mapping
コマンドを使用してサブスクリプションを作成するときに az eventgrid event-subscription create
パラメーターを使用します。 次に例を示します。
az eventgrid event-subscription create -n es1 \
--source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1
--endpoint-type storagequeue \
--endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.Storage/storageAccounts/sa1/queueservices/default/queues/q1 \
--enable-advanced-filtering-on-arrays true
--delivery-attribute-mapping staticproperty1 static somestaticvalue2 true
--delivery-attribute-mapping staticproperty2 static somestaticvalue3 false
--delivery-attribute-mapping dynamicproperty1 dynamic data.key1
Examples
ここでは、配信プロパティの使用例をいくつか紹介します。
ベアラー トークンを使用した Authorization ヘッダーの設定 (非標準例)
Webhook ハンドラーで要求を識別するために、Authorization ヘッダーに値を設定します。 Microsoft Entra ID で Webhook を保護していない場合は、Authorization ヘッダーを設定できます。
Header name | Header type | Header value |
---|---|---|
Authorization |
Static | BEARER SlAV32hkKG... |
送信要求に、イベント サブスクリプションに設定されたヘッダーが含まれるようになりました。
POST /home.html HTTP/1.1
Host: acme.com
Authorization: BEARER SlAV32hkKG...
Note
Authorization ヘッダーを定義することは、宛先が Webhook の場合、適切なオプションです。 リソース ID を使用してサブスクライブしている関数、Service Bus、Event Hubs、および Hybrid Connections には使用しないでください。Event Grid と使用した場合、これらの宛先では独自の認証スキームがサポートされているからです。
Service Bus の例
Azure Service Bus は、単一メッセージを送信する際に、以下のメッセージプロパティの使用をサポートしています。
Header name | Header type |
---|---|
MessageId |
Dynamic |
PartitionKey |
静的または動的 |
SessionId |
静的または動的 |
CorrelationId |
静的または動的 |
Label |
静的または動的 |
ReplyTo |
静的または動的 |
ReplyToSessionId |
静的または動的 |
To |
静的または動的 |
ViaPartitionKey |
静的または動的 |
Note
-
MessageId
の既定値は、Event Grid のイベントの内部 ID です。 これはオーバーライドできます。 たとえば、「data.field
」のように入力します。 - 設定できるのは
SessionId
かMessageId
のみです。
Service Bus のキューまたはトピックにメッセージを送信する際もカスタム プロパティを指定できます。 メッセージ ヘッダーのシステム プロパティで使用されているため、aeg-
プレフィックスは使用しないでください。 メッセージ ヘッダーのプロパティ一覧については、イベント ハンドラーとしての Service Bus に関するページを参照してください
Event Hubs の例
イベントをイベント ハブ内の特定のパーティションに発行する必要がある場合は、イベント サブスクリプションに PartitionKey
プロパティを設定して、対象のイベント ハブ パーティションを識別するパーティション キーを指定します。
Header name | Header type |
---|---|
PartitionKey |
静的または動的 |
イベント ハブにメッセージを送信する際も、カスタム プロパティを指定できます。 メッセージ ヘッダーのシステム プロパティで使用されているため、aeg-
プレフィックスをプロパティ名に使用しないでください。 メッセージ ヘッダーのプロパティ一覧については、イベント ハンドラーとしての Event Hubs に関するページを参照してください
Azure Storage キューへの送信イベントの有効期限を構成する
Azure Storage キューの宛先の場合は、送信メッセージが Azure Storage キューに配信されてからのみ、その有効期限を構成できます。 時間が指定されていない場合、メッセージの既定の有効期限は 7 日間です。 また、イベントを無期限に設定することもできます。
Next steps
イベント配信の詳細については、次の記事を参照してください。