自訂傳遞屬性
事件訂閱可讓您設定傳遞事件中包含的 HTTP 標頭。 這項功能可讓您設定目的地所需的自訂標頭。 建立事件訂閱時,最多可以設定 10 個標頭。 每個標頭值不應該大於 4,096 (4K) 個位元組。
您可以在傳遞至下列目的地的事件上設定自訂標頭:
- Webhooks
- Azure 服務匯流排主題和佇列
- Azure 事件中樞
- Azure Functions
- Azure 轉送混合式連線
在 Azure 入口網站中建立事件訂閱時,您可以使用 [傳遞屬性] 索引標籤設定自訂 HTTP 標頭。 此頁面可讓您設定固定和動態標頭值。
設定靜態標頭值
若要設定標頭搭配固定值,請在對應的欄位中提供標頭的名稱及其值:
若提供的是敏感性資料,您可能想要核取 [是祕密嗎?]。 Azure 入口網站上敏感性資料的可見度取決於使用者的 RBAC 權限。
設定動態標頭值
您可以根據傳入事件中的屬性設定標頭值。 使用 JsonPath 語法可代表傳入事件屬性值,做為傳出要求中的標頭值。 僅支援字串、數字和布林值的 JSON 值。 例如,若要使用事件資料中傳入事件屬性值 system,設定標頭名為 Channel 的值,請以下列方式設定您的事件訂閱:
使用 Azure CLI
使用 az eventgrid event-subscription create
命令建立訂閱時,請使用 --delivery-attribute-mapping
參數。 以下是範例:
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
範例
本節提供一些使用傳遞屬性的範例。
設定 Authorization 標頭搭配持有人權杖 (非標準範例)
將值設定為 Authorization 標頭以透過您的 Webhook 處理常式來識別要求。 如果您未使用 Microsoft Entra ID 保護 Webhook 的安全,您可以設定 Authorization 標頭。
標頭名稱 | 標頭類型 | 標頭值 |
---|---|---|
Authorization |
Static | BEARER SlAV32hkKG... |
傳出要求現在應該包含事件訂閱上設定的標頭:
POST /home.html HTTP/1.1
Host: acme.com
Authorization: BEARER SlAV32hkKG...
注意
若目的地是 Webhook,則定義授權標頭是合理的選項。 此標頭不應用於透過資源識別碼訂閱的函式、服務匯流排、事件中樞和混合式連線,因為在搭配事件方格使用時,這些目的地支援其自有的驗證結構描述。
服務匯流排範例
Azure 服務匯流排支援在傳送單一訊息時使用下列訊息屬性。
標頭名稱 | 標頭類型 |
---|---|
MessageId |
動態 |
PartitionKey |
靜態或動態 |
SessionId |
靜態或動態 |
CorrelationId |
靜態或動態 |
Label |
靜態或動態 |
ReplyTo |
靜態或動態 |
ReplyToSessionId |
靜態或動態 |
To |
靜態或動態 |
ViaPartitionKey |
靜態或動態 |
注意
MessageId
的預設值是「事件方格」事件的內部識別碼。 您可加以覆寫。 例如:data.field
。- 您只能設定
SessionId
或MessageId
。
將訊息傳送至服務匯流排佇列或主題時,您也可以指定自訂屬性。 請勿使用 aeg-
前置詞,因為訊息標頭中的系統屬性已使用該前置詞。 如需訊息標頭屬性的清單,請參閱服務匯流排做為事件處理常式
事件中樞範例
如果您需要將事件發佈至事件中樞內的特定分割區,請在事件訂閱上設定 PartitionKey
屬性,以指定可識別目標事件中樞分割區的分割區索引鍵。
標頭名稱 | 標頭類型 |
---|---|
PartitionKey |
靜態或動態 |
將訊息傳送至事件中樞時,您也可以指定自訂屬性。 請勿使用 aeg-
前置詞做為屬性名稱,因為訊息標頭中的系統屬性已使用該前置詞。 如需訊息標頭屬性的清單,請參閱事件中樞做為事件處理常式
設定傳出事件到 Azure 儲存體佇列的存留時間
若目的地是 Azure 儲存體佇列,您只能設定傳出訊息傳遞至 Azure 儲存體佇列之後,傳出訊息的存留時間。 如果未提供時間,訊息的預設存留時間是 7 天。 您也可以將事件設定為永不過期。
下一步
如需事件傳遞的詳細資訊,請參閱下列文章: