Gebeurtenissen publiceren naar Azure Event Grid onderwerpen met behulp van toegangssleutels
In dit artikel wordt beschreven hoe u een gebeurtenis in een aangepast onderwerp plaatst met behulp van een toegangssleutel. U ziet de indeling van de post- en gebeurtenisgegevens. De Service Level Agreement (SLA) is alleen van toepassing op berichten die overeenkomen met de verwachte indeling.
Notitie
Azure AD-verificatie biedt een hogere verificatieondersteuning dan wordt geboden door verificatie met een toegangssleutel of Shared Access Signature (SAS)-token. Met Azure AD-verificatie wordt de identiteit gevalideerd op basis van de Azure AD-id-provider. Als ontwikkelaar hoeft u geen sleutels in uw code te verwerken als u Azure AD-verificatie gebruikt. U profiteert ook van alle beveiligingsfuncties die zijn ingebouwd in het Microsoft Identity-platform, zoals voorwaardelijke toegang, waarmee u de beveiligingsverklaring van uw toepassing kunt verbeteren. Zie Publishing clients verifiëren met behulp van Azure Active Directory voor meer Azure Active Directory.
Eindpunt
Wanneer u de HTTP POST naar een aangepast onderwerp stuurt, gebruikt u de URI-indeling: https://<topic-endpoint>?api-version=2018-01-01 .
Een geldige URI is bijvoorbeeld: https://exampletopic.westus2-1.eventgrid.azure.net/api/events?api-version=2018-01-01 .
Gebruik het volgende om het eindpunt voor een aangepast onderwerp met Azure CLI op te halen:
az eventgrid topic show --name <topic-name> -g <topic-resource-group> --query "endpoint"
Als u het eindpunt voor een aangepast onderwerp met Azure PowerShell, gebruikt u:
(Get-AzEventGridTopic -ResourceGroupName <topic-resource-group> -Name <topic-name>).Endpoint
Header
Neem in de aanvraag een headerwaarde met de aeg-sas-key naam op die een sleutel voor verificatie bevat.
Een geldige headerwaarde is bijvoorbeeld aeg-sas-key: VXbGWce53249Mt8wuotr0GPmyJ/nDT4hgdEj9DpBeRr38arnnm5OFg== .
Gebruik het volgende om de sleutel voor een aangepast onderwerp met Azure CLI op te halen:
az eventgrid topic key list --name <topic-name> -g <topic-resource-group> --query "key1"
Gebruik het volgende om de sleutel voor een aangepast onderwerp met PowerShell op te halen:
(Get-AzEventGridTopicKey -ResourceGroupName <topic-resource-group> -Name <topic-name>).Key1
Gebeurtenisgegevens
Voor aangepaste onderwerpen bevatten de gegevens op het hoogste niveau dezelfde velden als standaard door resources gedefinieerde gebeurtenissen. Een van deze eigenschappen is een gegevenseigenschappen die eigenschappen bevatten die uniek zijn voor het aangepaste onderwerp. Als gebeurtenisuitgever bepaalt u de eigenschappen voor dat gegevensobject. Gebruik het volgende schema:
[
{
"id": string,
"eventType": string,
"subject": string,
"eventTime": string-in-date-time-format,
"data":{
object-unique-to-each-publisher
},
"dataVersion": string
}
]
Zie gebeurtenisschema voor Azure Event Grid beschrijving van deze eigenschappen. Wanneer u gebeurtenissen naar een Event Grid-onderwerp plaatst, kan de matrix een totale grootte van maximaal 1 MB hebben. De maximaal toegestane grootte voor een gebeurtenis is ook 1 MB. Gebeurtenissen van meer dan 64 kB worden in stappen van 64 kB in rekening gebracht.
Een geldig schema voor gebeurtenisgegevens is bijvoorbeeld:
[{
"id": "1807",
"eventType": "recordInserted",
"subject": "myapp/vehicles/motorcycles",
"eventTime": "2017-08-10T21:03:07+00:00",
"data": {
"make": "Ducati",
"model": "Monster"
},
"dataVersion": "1.0"
}]
Antwoord
Nadat u een bericht hebt geplaatst op het eindpunt van het onderwerp, ontvangt u een antwoord. Het antwoord is een standaard HTTP-antwoordcode. Enkele veelvoorkomende antwoorden zijn:
| Resultaat | Antwoord |
|---|---|
| Geslaagd | 200 OK |
| Gebeurtenisgegevens hebben een onjuiste indeling | 400 Ongeldige aanvraag |
| Ongeldige toegangssleutel | 401 Onbevoegd |
| Onjuist eindpunt | 404 Niet gevonden |
| Matrix of gebeurtenis overschrijdt groottelimieten | 413 Nettolading is te groot |
Voor fouten heeft de bericht-body de volgende indeling:
{
"error": {
"code": "<HTTP status code>",
"message": "<description>",
"details": [{
"code": "<HTTP status code>",
"message": "<description>"
}]
}
}
Volgende stappen
- Zie Bewaking van de levering van berichten Event Grid informatie over het bewaken van leveringen van gebeurtenissen.
- Zie beveiliging en verificatie voor Event Grid informatie over de verificatiesleutel.
- Zie abonnementschema voor meer Azure Event Grid over het maken Event Grid abonnement.