Publicera händelser till anpassade Azure Event Grid-ämnen med hjälp av åtkomstnycklar
I den här artikeln beskrivs hur du publicerar en händelse i ett anpassat ämne med hjälp av en åtkomstnyckel. Den visar formatet för post- och händelsedata. Serviceavtal (SLA) gäller endast för inlägg som matchar det förväntade formatet.
Kommentar
Microsoft Entra-autentisering ger ett överlägset autentiseringsstöd än vad som erbjuds av åtkomstnyckel eller SAS-tokenautentisering (Signatur för delad åtkomst). Med Microsoft Entra-autentisering verifieras identiteten mot Microsoft Entra-identitetsprovidern. Som utvecklare behöver du inte hantera nycklar i koden om du använder Microsoft Entra-autentisering. Du kommer också att dra nytta av alla säkerhetsfunktioner som är inbyggda i Microsofts identitetsplattform, till exempel villkorsstyrd åtkomst, som kan hjälpa dig att förbättra programmets säkerhetsställning. Mer information finns i Autentisera publiceringsklienter med Microsoft Entra-ID.
Slutpunkt
När du skickar HTTP POST till ett anpassat ämne använder du URI-formatet: https://<topic-endpoint>?api-version=2018-01-01
. En giltig URI är till exempel: https://exampletopic.westus2-1.eventgrid.azure.net/api/events?api-version=2018-01-01
. Om du vill hämta slutpunkten för ett anpassat ämne med Hjälp av Azure CLI använder du:
az eventgrid topic show --name <topic-name> -g <topic-resource-group> --query "endpoint"
Om du vill hämta slutpunkten för ett anpassat ämne med Hjälp av Azure PowerShell använder du:
(Get-AzEventGridTopic -ResourceGroupName <topic-resource-group> -Name <topic-name>).Endpoint
Header
I begäran ska du inkludera ett rubrikvärde med namnet aeg-sas-key
som innehåller en nyckel för autentisering. Ett giltigt rubrikvärde är aeg-sas-key: xxxxxxxxxxxxxxxxxxxxxxx
till exempel . Om du vill hämta nyckeln för ett anpassat ämne med Hjälp av Azure CLI använder du:
az eventgrid topic key list --name <topic-name> -g <topic-resource-group> --query "key1"
Om du vill hämta nyckeln för ett anpassat ämne med Hjälp av PowerShell använder du:
(Get-AzEventGridTopicKey -ResourceGroupName <topic-resource-group> -Name <topic-name>).Key1
Händelsedata
För anpassade ämnen innehåller data på den översta nivån samma fält som standardresursdefinierade händelser. En av dessa egenskaper är en data
egenskap som innehåller egenskaper som är unika för det anpassade ämnet. Som händelseutgivare bestämmer du egenskaper för dataobjektet. Här är schemat:
[
{
"id": string,
"eventType": string,
"subject": string,
"eventTime": string-in-date-time-format,
"data":{
object-unique-to-each-publisher
},
"dataVersion": string
}
]
En beskrivning av dessa egenskaper finns i Händelseschema för Azure Event Grid. När händelser skickas till ett Event Grid-ämne kan matrisen ha en total storlek på upp till 1 MB. Den maximala tillåtna storleken för en händelse är också 1 MB. Händelser över 64 KB debiteras i steg om 64 KB. När du tar emot händelser i en batch är det maximala tillåtna antalet händelser 5 000 per batch.
Ett giltigt händelsedataschema är till exempel:
[{
"id": "1807",
"eventType": "recordInserted",
"subject": "myapp/vehicles/motorcycles",
"eventTime": "2017-08-10T21:03:07+00:00",
"data": {
"make": "Ducati",
"model": "Monster"
},
"dataVersion": "1.0"
}]
Response
När du har publicerat till ämnesslutpunkten får du ett svar. Svaret är en HTTP-standardsvarskod. Några vanliga svar är:
Resultat | Response |
---|---|
Klart | 200 OK |
Händelsedata har felaktigt format | 400 – Felaktig begäran |
Ogiltig åtkomstnyckel | 401 – Ej behörig |
Felaktig slutpunkt | 404 – Hittades inte |
Matris eller händelse överskrider storleksgränserna | 413 nyttolast är för stor |
För fel har meddelandetexten följande format:
{
"error": {
"code": "<HTTP status code>",
"message": "<description>",
"details": [{
"code": "<HTTP status code>",
"message": "<description>"
}]
}
}
Nästa steg
- Information om övervakning av händelseleveranser finns i Övervaka Event Grid-meddelandeleverans.
- Mer information om autentiseringsnyckeln finns i Säkerhet och autentisering i Event Grid.
- Mer information om hur du skapar en Azure Event Grid-prenumeration finns i Event Grid-prenumerationsschema.