Publicera händelser till Azure Event Grid-anpassade ämnen genom att använda accessnycklar

Ett Event Grid-anpassat ämne är en endpoint som dina applikationer skickar sina egna händelser till, så att Event Grid kan dirigera dessa händelser till intresserade prenumeranter. Den här artikeln visar hur du publicerar händelser till ett anpassat ämne med hjälp av accessnycklar, som autentiserar dina förfrågningar utan att du behöver ställa in Microsoft Entra ID. Du får ämnesändpunkten och accessnyckeln, formaterar en händelsepayload, skickar ett exempelevent och granskar svaret.

Service Level Agreement (SLA) gäller endast för inlägg som matchar det förväntade formatet.

Förutsättningar

Kommentar

Microsoft Entra-autentisering ger bättre autentiseringsstöd än autentisering för åtkomstnyckel eller delad åtkomstsignatur (SAS). Genom att använda Microsoft Entra-autentisering validerar Microsoft Entra-identitetsleverantören identiteten, så du behöver inte hantera nycklar i din kod. Du drar också nytta av säkerhetsfunktioner inbyggda i Microsofts identitetsplattform, såsom villkorad åtkomst, som hjälper till att förbättra din applikations säkerhet. Mer information finns i Autentisera publiceringsklienter med Microsoft Entra-ID.

Hämta ämnesslutpunkten

För att publicera händelser till ett anpassat ämne, skicka en HTTP POST-förfrågan med följande URI-format: 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. För att få endpointen för ett anpassat ämne, använd Azure-portalen, Azure CLI eller Azure PowerShell.

Hitta ämnets slutpunkt på fliken Översiktsidan Event Grid Topic i Azure-portalen.

Skärmbild av event grid-ämnessidan i Azure-portalen med ämnesslutpunkten markerad.

Hämta åtkomstnyckeln

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: xxxxxxxxxxxxxxxxxxxxxxxtill exempel . För att få nyckeln till ett anpassat ämne, använd Azure-portalen, Azure CLI eller Azure PowerShell.

För att få åtkomstnyckeln för det anpassade ämnet, välj fliken Åtkomstnycklar på sidan Event Grid Topic i Azure-portalen.

Skärmbild som visar fliken Åtkomstnycklar på sidan Event Grid-ämne på Azure Portal.

Formatera händelsens nyttolast

Formatera varje händelse som ett JSON-objekt. Fälten på högsta nivå är desamma som standard resursdefinierade händelser, och egenskapen data innehåller de egenskaper som är unika för ditt anpassade ämne. Som utgivare definierar du innehållet i objektet data . För en beskrivning av varje egenskap, se Azure Event Grid event schema.

[
  {
    "id": string,
    "eventType": string,
    "subject": string,
    "eventTime": string-in-date-time-format,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string
  }
]

Ha dessa storleksgränser i åtanke när du bygger lasten:

  • Händelsearrayen kan ha en total storlek på upp till 1 MB.
  • Maxstorleken för en enskild händelse är 1 MB. Händelser över 64 KB medför avgifter i 64-KB-steg.
  • En batch kan innehålla maximalt 5 000 händelser.

Följande exempel visar en giltig händelsenyttolast:

[{
  "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 en exempelhändelse

Det här avsnittet visar hur du skickar en exempelhändelse till det anpassade ämnet.

  1. Starta Cloud Shell i Azure Portal.

  2. Kör kommandona från Azure PowerShell eller Azure CLI i Bash- eller PowerShell-sessionen i Cloud Shell.

    Skärmbild som visar Cloud Shell i Azure Portal.

Granska svaret

Efter att du postat på ämnesändpunkten får du ett svar. Svaret är en HTTP-standardsvarskod. Några vanliga svar är:

Resultat Svar
Lyckades 200 Okej
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

Vid fel används följande format i meddelandetexten:

{
    "error": {
        "code": "<HTTP status code>",
        "message": "<description>",
        "details": [{
            "code": "<HTTP status code>",
            "message": "<description>"
    }]
  }
}