共用方式為


自訂傳遞屬性

事件訂閱可讓您設定傳遞事件中所包含的 HTTP 標頭。 這項功能可讓您設定目的地所需的自訂標頭。 建立事件訂閱時,最多可以設定 10 個標頭。 每個標頭值不應該大於 4,096 (4K) 個位元組。

您可以在傳遞至下列目的地的事件上設定自訂標頭:

  • Webhooks
  • Azure 服務匯流排主題與佇列
  • Azure 事件中樞
  • Azure Functions
  • Azure 轉送混合式連線

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 入口網站上敏感性資料的可見度取決於使用者的 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

使用 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

Examples

本節提供一些使用傳遞屬性的範例。

設定 Authorization 標頭搭配持有人權杖 (非標準範例)

將值設定為 Authorization 標頭以透過您的 Webhook 處理常式來識別要求。 如果您未使用 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

若目的地是 Webhook,則定義授權標頭是合理的選項。 此標頭不應用於透過資源識別碼訂閱的函式、服務匯流排、事件中樞和混合式連線,因為在搭配事件方格使用時,這些目的地支援其自有的驗證結構描述。

服務匯流排範例

Azure 服務匯流排支援在傳送單一訊息時使用下列訊息屬性。

Header name Header type
MessageId Dynamic
PartitionKey 靜態或動態
SessionId 靜態或動態
CorrelationId 靜態或動態
Label 靜態或動態
ReplyTo 靜態或動態
ReplyToSessionId 靜態或動態
To 靜態或動態
ViaPartitionKey 靜態或動態

Note

  • MessageId 的預設值是「事件方格」事件的內部識別碼。 您可加以覆寫。 例如: data.field
  • 您只能設定 SessionIdMessageId

將訊息傳送至服務匯流排佇列或主題時,您也可以指定自訂屬性。 請勿使用 aeg- 前置詞,因為訊息標頭中的系統屬性已使用該前置詞。 如需訊息標頭屬性的清單,請參閱服務匯流排做為事件處理常式

事件中樞範例

如果您需要將事件發佈至事件中樞內的特定分割區,請在事件訂閱上設定 PartitionKey 屬性,以指定可識別目標事件中樞分割區的分割區索引鍵。

Header name Header type
PartitionKey 靜態或動態

將訊息傳送至事件中樞時,您也可以指定自訂屬性。 請勿使用 aeg- 前置詞做為屬性名稱,因為訊息標頭中的系統屬性已使用該前置詞。 如需訊息標頭屬性的清單,請參閱事件中樞做為事件處理常式

設定傳出事件到 Azure 儲存體佇列的存留時間

若目的地是 Azure 儲存體佇列,您只能設定傳出訊息傳遞至 Azure 儲存體佇列之後,傳出訊息的存留時間。 如果未提供時間,訊息的預設存留時間是 7 天。 您也可以將事件設定為永不過期。

傳遞屬性 - 儲存體佇列

Next steps

如需事件傳遞的詳細資訊,請參閱下列文章: