Event Grid in Kubernetes - Concepten

In dit artikel worden de belangrijkste concepten in Event Grid in Kubernetes met Azure Arc (preview) beschreven.

Belangrijk

Event Grid in Kubernetes met Azure Arc is momenteel in openbare preview. Deze preview-versie wordt aangeboden zonder service level agreement en wordt niet aanbevolen voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Supplemental Terms of Use for Microsoft Azure Previews (Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews) voor meer informatie.

Gebeurtenis

Een gebeurtenis is een gegevensrecord die een feit aankondigt over de werking van een softwaresysteem. Normaal gesproken kondigt een gebeurtenis een statuswijziging aan vanwege een signaal dat door het systeem wordt gegenereerd of een signaal dat door het systeem wordt waargenomen. Gebeurtenissen bevatten twee soorten informatie:

  • Gebeurtenisgegevens die het optreden van een statuswijziging vertegenwoordigen.

  • Contextkenmerken die contextuele informatie bieden over het optreden van de gebeurtenis.

    Zowel gebeurtenisgegevens als contextkenmerken kunnen worden gebruikt voor het filteren van gebeurtenissen.

Event Grid in Kubernetes ondersteunt schemaspecificaties van CloudEvents . Hier volgt een voorbeeld van een gebeurtenis die gebruikmaakt van het schema CloudEvents. Event Grid ondersteunt een gebeurtenis van maximaal 1 MB.

[{
       "specVersion": "1.0",
       "type" : "orderCreated",
       "source": "myCompanyName/us/webCommerceChannel/myOnlineCommerceSiteBrandName",
       "id" : "eventId-n",
       "time" : "2020-12-25T20:54:07+00:00",
       "subject" : "account/acct-123224/order/o-123456",
       "dataSchema" : "1.0",
       "data" : {
          "orderId" : "123",
          "orderType" : "PO",
          "reference" : "https://www.myCompanyName.com/orders/123"
      }
}]

Bron

Het bronkenmerk beschrijft de context waarin de gebeurtenis heeft plaatsgevonden. De bron kan de oorzaak van gebeurtenissen zijn. In sommige gevallen zijn er echter producenten die gebeurtenissen maken en publiceren. En deze producenten verschillen van de bron. Ter vereenvoudiging wordt in dit artikel ervan uitgegaan dat de bron de producent van de gebeurtenissen is.

Elke gebeurtenisbron produceert gebeurtenissen van een of meer gebeurtenistypen. Als bron van gebeurtenissen definieert een toepassing een set gerelateerde gebeurtenissen om de statuswijzigingen aan te kondigen. Elke gebeurtenis heeft algemene informatie, zoals de bron van de gebeurtenis, het tijdstip waarop de gebeurtenis heeft plaatsgevonden en een unieke id. Elke gebeurtenis bevat ook specifieke informatie die alleen relevant is voor het specifieke type gebeurtenis. De ondersteuning voor een gebeurtenis van maximaal 1 MB is momenteel in preview.

Zie CloudEvents-schema voor de eigenschappen die zijn opgenomen in een gebeurtenis.

Uitgevers

Gebeurtenisuitgevers zijn toepassingen of systemen die gebeurtenissen naar Event Grid verzenden om aan gebeurtenisabonnees te worden geleverd.

Onderwerpen

Een onderwerp is een vorm van invoerkanaal dat een eindpunt beschikbaar maakt waarnaar uitgevers gebeurtenissen naar Event Grid verzenden.

Een onderwerp kan worden gebruikt voor een verzameling gerelateerde gebeurtenissen. U kunt een onderwerp maken voor elke categorie gerelateerde gebeurtenissen. In sommige gevallen kan de bron worden gebruikt om gebeurtenissen in categorieën in te delen, omdat bronnen meestal zijn gekoppeld aan een reeks nauw verwante gebeurtenistypen ('MyApp.OrderCreated', 'MyApp.OderDeleted', 'MyApp.OrderRejected', enzovoort).

Overweeg een toepassing die gebeurtenissen verzendt met betrekking tot het beheren van gebruikersaccounts en het verwerken van orders. Het is onwaarschijnlijk dat een gebeurtenisabonnee geïnteresseerd is in het gebruik van beide categorieën gebeurtenissen. Maak daarom twee aangepaste onderwerpen en laat gebeurtenis-handlers zich abonneren op het onderwerp dat hen interesseert. Voor kleine oplossingen wilt u misschien liever alle gebeurtenissen naar één onderwerp verzenden.

Gebeurtenisabonnees

Gebeurtenisabonnees zijn softwaresystemen zoals microservices die eindpunten beschikbaar maken waaraan Event Grid gebeurtenissen levert.

Gebeurtenisabonnementen

Een gebeurtenisabonnement laat Event Grid weten welke gebeurtenissen in een onderwerp u wilt ontvangen (gebeurtenisfiltering) en waar ze moeten worden verzonden (gebeurtenisroutering). Wanneer u een gebeurtenisabonnement maakt, geeft u een eindpunt op voor het verwerken van de gebeurtenis. U kunt de gebeurtenissen selecteren die u aan uw eindpunt wilt leveren door filterclausules te configureren voor het gebeurtenisabonnement.

Event Handlers

Een gebeurtenis-handler is een softwaresysteem dat een eindpunt beschikbaar maakt waarnaar gebeurtenissen worden verzonden. De handler ontvangt de gebeurtenis en onderneemt acties om de gebeurtenis te verwerken. Event Grid ondersteunt verschillende handlertypen. Als handler kunt u een ondersteunde Azure-service gebruiken die wordt gehost op Kubernetes of Azure, of uw eigen oplossing die een webhook (eindpunt) beschikbaar maakt, waar dat ook wordt gehost. Afhankelijk van het type handler volgt Event Grid verschillende mechanismen om de levering van de gebeurtenis te garanderen. Als de doel-gebeurtenis-handler een HTTP-webhook is, wordt de gebeurtenis opnieuw geprobeerd totdat de handler een statuscode van 200 – OK retourneert. Zie Gebeurtenis-handlers voor meer informatie.

SAS-verificatie

Event Grid in Kubernetes biedt verificatie op basis van SAS-sleutels voor het publiceren van gebeurtenissen naar onderwerpen.

Gebeurtenisverzending

Event Grid in Kubernetes biedt een betrouwbaar mechanisme voor levering en opnieuw proberen. Als Event Grid niet kan bevestigen dat een gebeurtenis is ontvangen door het eindpunt van de gebeurtenis-handler, wordt de gebeurtenis opnieuw uitgevoerd. Zie Event Grid-berichtbezorging en opnieuw proberen voor meer informatie.

Batchgebeurtenispublicatie

Wanneer u een onderwerp gebruikt, moeten gebeurtenissen altijd in een matrix worden gepubliceerd. Voor scenario's met lage doorvoer heeft de matrix slechts één gebeurtenis. Voor gebruiksvoorbeelden met grote volumes raden we u aan om meerdere gebeurtenissen per publicatie samen te voegen om een hogere efficiëntie te bereiken. Batches kunnen maximaal 1 MB groot zijn. Elke gebeurtenis mag nog steeds niet groter zijn dan 1 MB. Zie Levering van Batch-gebeurtenissen voor meer informatie.

Event Grid op Kubernetes-onderdelen

  • De Event Grid-operator implementeert het operatorpatroon. Het controleert op statuswijzigingen van Event Grid-resources als gevolg van aanvragen van het besturingsvlak naar de API-server van Kubernetes. Wanneer er een aanvraag is die van invloed is op de status van een van de Event Grid-resources, synchroniseert de Event Grid-operator die status met de Event Grid Broker.

  • De Event Grid-broker fungeert als bewerkingen op het besturingsvlak en het gegevensvlak.

    Als besturingsvlakservice is het verantwoordelijk voor het overbrengen van de status van Event Grid naar de gewenste status die wordt doorgegeven door de Event Grid-operator. Wanneer bijvoorbeeld een aanvraag wordt gedaan om een nieuw onderwerp te maken, wordt aan die aanvraag voldaan en worden de metagegevens van de service bijgewerkt.

    Als gegevensvlakservice worden alle aanvragen voor het publiceren van gebeurtenissen verwerkt en worden gebeurtenissen geleverd aan hun bestemmingen die zijn geconfigureerd voor gebeurtenisabonnementen.

Volgende stappen

Zie Onderwerpen en abonnementen maken om aan de slag te gaan.