Benutzerdefinierte Übermittlungseigenschaften

Mit Ereignisabonnements können Sie HTTP-Header einrichten, die in übermittelte Ereignisse eingeschlossen werden. Diese Funktion ermöglicht es Ihnen, benutzerdefinierte Header festzulegen, die für ein Ziel erforderlich sind. Beim Erstellen eines Ereignisabonnements können bis zu zehn Header festgelegt werden. Die einzelnen Headerwert dürfen nicht größer als 4.096 Bytes (4K) sein.

Sie können benutzerdefinierte Header für die Ereignisse festlegen, die an die folgenden Ziele übermittelt werden:

  • webhooks
  • Azure Service Bus-Themen und -Warteschlangen
  • Azure Event Hubs
  • Azure-Funktionen
  • Azure Relay-Hybridverbindungen

Wenn Sie ein Ereignisabonnement im Azure-Portal erstellen, können Sie die Registerkarte Übermittlungseigenschaften verwenden, um benutzerdefinierte HTTP-Header festzulegen. Auf dieser Seite können feste und dynamische Headerwerte festgelegt werden.

Festlegen statischer Headerwerte

Wenn Sie Header mit einem festen Wert festlegen möchten, geben Sie den Namen des Headers und dessen Wert in die entsprechenden Felder ein:

Delivery properties - static

Es kann empfehlenswert sein, Geheim? zu aktivieren, wenn Sie vertrauliche Daten bereitstellen. Die Sichtbarkeit vertraulicher Daten im Azure-Portal hängt von der RBAC-Berechtigung der Benutzer*innen ab.

Festlegen dynamischer Headerwerte

Sie können den Wert eines Headers auf der Grundlage einer Eigenschaft in einem eingehenden Ereignis festlegen. Verwenden Sie die JsonPath-Syntax, um auf den Eigenschaftswert eines eingehenden Ereignisses zu verweisen, der als Wert für einen Header in ausgehenden Anforderungen verwendet werden soll. Es werden nur JSON-Werte von Zeichenfolgen, Zahlen und booleschen Werten unterstützt. Wenn Sie beispielsweise in den Ereignisdaten den Wert eines Headers namens Channel mit dem Wert der Eigenschaft system eines eingehenden Ereignisses festlegen möchten, können Sie Ihr Ereignisabonnement wie folgt konfigurieren:

Delivery properties - dynamic

Mithilfe der Azure-Befehlszeilenschnittstelle

Verwenden Sie den --delivery-attribute-mapping-Parameter, wenn Sie ein Abonnement mit dem az eventgrid event-subscription create-Befehl erstellen. Hier sehen Sie ein Beispiel:

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

Beispiele

Dieser Abschnitt enthält ein paar Beispiele für die Verwendung von Übermittlungseigenschaften.

Festlegen des Autorisierungsheaders mit einem Bearertoken (nicht normatives Beispiel)

Legen Sie einen Wert für einen Autorisierungsheader fest, um die Anforderung mit Ihrem Webhook-Handler zu identifizieren. Ein Autorisierungsheader kann festgelegt werden, wenn Sie nicht Ihren Webhook mit Microsoft Entra ID schützen.

Headername Headertyp Headerwert
Authorization statischen BEARER SlAV32hkKG...

Ausgehende Anforderungen sollten jetzt den für das Ereignisabonnement festgelegten Header enthalten:

POST /home.html HTTP/1.1
Host: acme.com

Authorization: BEARER SlAV32hkKG...

Hinweis

Das Definieren von Autorisierungsheadern ist sinnvoll, wenn es sich bei dem Ziel um einen Webhook handelt. Für mit einer Ressourcen-ID abonnierte Funktionen, Service Bus, Event Hubs und Hybridverbindungen sollte diese Option nicht verwendet werden, da diese Ziele bei Verwendung mit Event Grid ihre eigenen Authentifizierungsschemas unterstützen.

Service Bus-Beispiel

Von Azure Service Bus wird die Verwendung der folgenden Nachrichteneigenschaften beim Senden einzelner Nachrichten unterstützt.

Headername Headertyp
MessageId Dynamisch
PartitionKey Statisch oder dynamisch
SessionId Statisch oder dynamisch
CorrelationId Statisch oder dynamisch
Label Statisch oder dynamisch
ReplyTo Statisch oder dynamisch
ReplyToSessionId Statisch oder dynamisch
To Statisch oder dynamisch
ViaPartitionKey Statisch oder dynamisch

Hinweis

  • Der Standardwert von MessageId ist die interne ID des Event Grid Ereignisses. Sie kann außer Kraft gesetzt werden. Beispielsweise data.field.
  • Sie können nur SessionId oder MessageId festlegen.

Sie können auch benutzerdefinierte Eigenschaften angeben, wenn Sie Nachrichten an Service Bus-Warteschlangen oder -Themen senden. Verwenden Sie das Präfix aeg- nicht, da es von Systemeigenschaften in Nachrichtenheadern verwendet wird. Eine Liste der Nachrichtenheadereigenschaften finden Sie unter Service Bus als Ereignishandler.

Event Hubs-Beispiel

Wenn Sie Ereignisse für eine bestimmte Partition innerhalb eines Event Hub veröffentlichen müssen, legen Sie die PartitionKey-Eigenschaft für Ihr Ereignisabonnement fest, um den Partitionsschlüssel zur Identifizierung der Event Hub-Zielpartition anzugeben.

Headername Headertyp
PartitionKey Statisch oder dynamisch

Sie können auch benutzerdefinierte Eigenschaften angeben, wenn Sie Nachrichten an einen Event Hub senden. Verwenden Sie das Präfix aeg- nicht für den Eigenschaftennamen, da es von Systemeigenschaften in Nachrichtenheadern verwendet wird. Eine Liste der Nachrichtenheadereigenschaften finden Sie unter Event Hubs als Ereignishandler.

Konfigurieren der Gültigkeitsdauer für ausgehende Ereignisse in Azure Storage-Warteschlangen

Für das Azure Storage-Warteschlangenziel können Sie nur die Gültigkeitsdauer der ausgehenden Nachricht nach Übermittlung an eine Azure Storage-Warteschlange konfigurieren. Ohne Zeitangabe beträgt die Gültigkeitsdauer der Nachricht standardmäßig sieben Tage. Sie können auch festlegen, dass das Ereignis nie ablaufen soll.

Delivery properties - storage queue

Nächste Schritte

Weitere Informationen zur Ereignisübermittlung finden Sie in den folgenden Artikeln: