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:
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:
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. Beispielsweisedata.field
. - Sie können nur
SessionId
oderMessageId
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.
Nächste Schritte
Weitere Informationen zur Ereignisübermittlung finden Sie in den folgenden Artikeln: