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 Microsoft platforma za identitete, 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:
Du hittar ämnets slutpunkt på fliken Översikt på sidan Event Grid-ämne i Azure-portalen.
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:
Om du vill hämta åtkomstnyckeln för det anpassade ämnet väljer du fliken Åtkomstnycklar på sidan Event Grid-ämne i Azure-portalen.
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 en klient skickar händelser 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 en klient 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"
}]
Skicka exempelhändelsen
Det här avsnittet visar hur du skickar en exempelhändelse till det anpassade ämnet.
Starta Cloud Shell i Azure-portalen.
Kör kommandona från Azure PowerShell eller Azure CLI i Bash- eller PowerShell-sessionen i Cloud Shell.
Response
När du har publicerat till ämnesslutpunkten får du ett svar. Svaret är en HTTP-standardsvarskod. Några vanliga svar är:
Result | 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>"
}]
}
}
Relaterat innehåll
- 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.