Händelsehanterare mål i Event Grid på Kubernetes

En händelsehanterare är ett system som exponerar en slutpunkt och är målet för händelser som skickas av Event Grid. En händelsehanterare som tar emot en händelse agerar på den och använder händelsenyttolasten för att köra viss logik, vilket kan leda till förekomsten av nya händelser.

Sättet att konfigurera Event Grid att skicka händelser till ett mål är genom att skapa en händelseprenumeration. Det kan göras via Azure CLI, hanterings-SDK eller med hjälp av direkta HTTPs-anrop med api-versionen 2020-10-15-preview.

I allmänhet kan Event Grid på Kubernetes skicka händelser till valfri destination via Webhooks. Webhooks är HTTP-slutpunkter som exponeras av en tjänst eller arbetsbelastning som Event Grid har åtkomst till. Webhooken kan vara en arbetsbelastning som finns i samma kluster, i samma nätverksutrymme, i molnet, lokalt eller var som helst som Event Grid kan nå.

Viktigt!

Event Grid på Kubernetes med Azure Arc är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Via Webhooks stöder Event Grid följande mål i ett Kubernetes-kluster:

  • Azure App Service på Kubernetes med Azure Arc.
  • Azure Functions på Kubernetes med Azure Arc.
  • Azure Logic Apps på Kubernetes med Azure Arc.

Förutom Webhooks kan Event Grid på Kubernetes skicka händelser till följande mål som finns i Azure:

  • Azure Event Grid med webhooks
  • Endast Azure Functions använder Webhooks
  • Azure Event Hubs med hjälp av sitt Azure Resource Manager-resurs-ID
  • Azure Service Bus-ämnen eller -köer med hjälp av dess Azure Resource Manager-resurs-ID
  • Azure Storage-kö med hjälp av sitt Azure Resource Manager-resurs-ID

Funktionsparitet

Event Grid på Kubernetes erbjuder en bra nivå av funktionsparitet med Azure Event Grids stöd för händelseprenumerationer. I följande lista räknas de största skillnaderna i händelseprenumerationsfunktioner upp. Förutom dessa skillnader kan du använda Azure Event Grids REST API version 2020-10-15-preview som referens när du hanterar händelseprenumerationer på Event Grid på Kubernetes.

  1. Använd REST API version 2020-10-15-preview.
  2. Azure Event Grid-utlösare för Azure Functions stöds inte. Du kan använda en WebHook-måltyp för att leverera händelser till Azure Functions.
  3. Det finns inget platsstöd för obeställbara brev . Det innebär att du inte kan använda properties.deadLetterDestination i händelseprenumerationsnyttolasten.
  4. Azure Relays Hybrid Anslut ions som mål stöds inte ännu.
  5. Endast CloudEvents-schema stöds. Schemavärdet som stöds är "CloudEventSchemaV1_0". Schemat för molnhändelser är utökningsbart och baseras på öppna standarder.
  6. Etiketter (properties.labels) gäller inte för Event Grid i Kubernetes. Därför är de inte tillgängliga.
  7. Leverans med resursidentitet stöds inte. Därför stöds inte alla egenskaper för händelseprenumerationsidentitet .
  8. Målslutpunktsverifiering stöds inte än.

Händelsefiltrering i händelseprenumerationer

Den andra viktiga aspekten av att konfigurera en händelseprenumeration är att välja de händelser som ska levereras till ett mål. Mer information finns i Händelsefiltrering.

Exempel på målkonfigurationer

Följande är några grundläggande exempelkonfigurationer beroende på det avsedda målet.

WebHook

Om du vill publicera till en WebHook-slutpunkt anger du endpointType till WebHook och anger:

  • endpointUrl: WebHook-slutpunktens URL

        {
          "properties": {
            "destination": {
              "endpointType": "WebHook",
              "properties": {
                "endpointUrl": "<your-webhook-endpoint>"
              }
            }
          }
        }
    

Azure Event Grid

Om du vill publicera till en Azure Event Grid-molnslutpunkt anger du endpointType till WebHook och anger:

  • endpointUrl: Url för Azure Event Grid-ämne i molnet med API-versionsparametern inställd på 2018-01-01 och aeg-sas-key inställd på DEN URL-kodade SAS-nyckeln.

      {
        "properties": {
          "destination": {
            "endpointType": "WebHook",
            "properties": {
              "endpointUrl": "<your-event-grid-cloud-topic-endpoint-url>?api-version=2018-01-01&aeg-sas-key=urlencoded(sas-key-value)"
            }
          }
        }
      }
    

Event Hubs

Om du vill publicera till en händelsehubb anger du endpointType till eventHub och anger:

  • resourceId: resurs-ID för den specifika händelsehubben.

        {
          "properties": {
            "destination": {
              "endpointType": "eventHub",
              "properties": {
                "resourceId": "<Azure Resource ID of your event hub>"
              }
            }
          }
        }
    

Service Bus-köer

Om du vill publicera till en Service Bus-kö anger du endpointType till serviceBusQueue och anger:

  • resourceId: resurs-ID för den specifika Service Bus-kön.

        {
          "properties": {
            "destination": {
              "endpointType": "serviceBusQueue",
              "properties": {
                "resourceId": "<Azure Resource ID of your Service Bus queue>"
              }
            }
          }
        }
    

Service Bus-avsnitt

Om du vill publicera till ett Service Bus-ämne anger du endpointType till serviceBusTopic och anger:

  • resourceId: resurs-ID för det specifika Service Bus-ämnet.

    {
      "properties": {
        "destination": {
          "endpointType": "serviceBusTopic",
          "properties": {
            "resourceId": "<Azure Resource ID of your Service Bus topic>"
          }
        }
      }
    }
    

Lagringsköer

Om du vill publicera till en lagringskö anger du endpointType till storageQueue och anger:

  • queueName: Namnet på den Azure Storage-kö som du publicerar till.

  • resourceID: Azure-resurs-ID för lagringskontot som innehåller kön.

    {
      "properties": {
        "destination": {
          "endpointType": "storageQueue",
          "properties": {
            "queueName": "<your-storage-queue-name>",
            "resourceId": "<Azure Resource ID of your Storage account>"
          }
        }
      }
    }
    

Nästa steg