Ereignishandler und Ziele in Event Grid in Kubernetes

Ein Ereignishandler ist ein beliebiges System, das einen Endpunkt verfügbar macht und das Ziel für Ereignisse ist, die von Event Grid gesendet werden. Ein Ereignishandler, der ein Ereignis empfängt, reagiert darauf und verwendet die Ereignisnutzdaten, um Logik auszuführen, was zum Auftreten neuer Ereignisse führen kann.

Die Methode zum Konfigurieren Event Grid zum Senden von Ereignissen an ein Ziel besteht in der Erstellung eines Ereignisabonnements. Dies kann über die Azure CLI, das Verwaltungs-SDK oder direkte HTTP(s)-Aufrufe mithilfe der API-Version 2020-10-15-preview erfolgen.

Im Allgemeinen kann Event Grid in Kubernetes Ereignisse über Webhooks an beliebige Ziele senden. Webhooks sind HTTP(s)-Endpunkte, die von einem Dienst oder einer Workload verfügbar gemacht werden, auf den bzw. die Event Grid Zugriff besitzt. Der Webhook kann eine Workload sein, die im gleichen Cluster, im gleichen Netzwerkbereich, in der Cloud, lokal oder an einem beliebigen Ort gehostet wird, den Event Grid erreichen kann.

Wichtig

Event Grid in Kubernetes mit Azure Arc befindet sich derzeit in der öffentlichen Vorschau. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Über Webhooks unterstützt Event Grid die folgenden Ziele, die auf einem Kubernetes-Cluster gehostet werden:

  • Azure App Service in Kubernetes mit Azure Arc.
  • Azure Functions in Kubernetes mit Azure Arc.
  • Azure Logic Apps in Kubernetes mit Azure Arc.

Zusätzlich zu Webhooks kann Event Grid in Kubernetes Ereignisse an die folgenden Ziele senden, die in Azure gehostet werden:

  • Azure Event Grid mit Webhooks
  • Azure Functions nur mit Webhooks
  • Azure Event Hubs mit der zugehörigen Azure Resource Manager-Ressourcen-ID
  • Azure Service Bus-Themen oder -Warteschlangen mit der zugehörigen Azure Resource Manager-Ressourcen-ID
  • Azure Storage-Warteschlange mit der zugehörigen Azure Resource Manager-Ressourcen-ID

Featureparität

Event Grid in Kubernetes bietet ein gutes Maß an Featureparität durch Azure Event Grid-Unterstützung für Ereignisabonnements. In der folgenden Liste werden die wichtigsten Unterschiede bei der Ereignisabonnementfunktionalität aufgeführt. Abgesehen von diesen Unterschieden können Sie die REST-API-Version 2020-10-15-preview von Azure Event Grid als Referenz für die Verwaltung von Ereignisabonnements für Event Grid in Kubernetes verwenden.

  1. Verwenden Sie die REST-API-Version 2020-10-15-Preview.
  2. Der Azure Event Grid-Trigger für Azure Functions wird nicht unterstützt. Sie können einen WebHook-Zieltyp verwenden, um Ereignisse an Azure Functions zu übermitteln.
  3. Es gibt keine Unterstützung für den Speicherort für unzustellbare Nachrichten. Dies bedeutet, dass Sie properties.deadLetterDestination nicht in Ihren Ereignisabonnementnutzdaten verwenden können.
  4. Hybridverbindungen von Azure Relay als Ziel werden noch nicht unterstützt.
  5. Es wird nur das CloudEvents-Schema unterstützt. Der unterstützte Schemawert ist „CloudEventSchemaV1_0“. Das CloudEvents-Schema ist erweiterbar und basiert auf offenen Standards.
  6. Bezeichnungen (properties.labels) gelten nicht für Event Grid in Kubernetes. Daher sind sie nicht verfügbar.
  7. Übermittlung mit Ressourcenidentität wird nicht unterstützt. Daher werden alle Eigenschaften für Ereignisabonnementidentität nicht unterstützt.
  8. Die Überprüfung des Zielendpunkts wird noch nicht unterstützt.

Ereignisfilterung in Ereignisabonnements

Der andere wichtige Aspekt beim Konfigurieren eines Ereignisabonnements ist die Auswahl der Ereignisse, die an ein Ziel übermittelt werden sollen. Weitere Informationen dazu finden Sie unter Ereignisfilterung.

Zielbeispielkonfigurationen

Im Folgenden finden Sie einige grundlegende Beispielkonfigurationen, die vom vorgesehenen Ziel abhängen.

WebHook

Legen Sie zum Veröffentlichen eines Webhook-Endpunkts endpointType auf WebHook fest, und geben Sie Folgendes an:

  • endpointUrl: Die URL des Webhook-Endpunkts.

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

Azure Event Grid

Legen Sie zum Veröffentlichen auf einem Azure Event Grid-Cloudendpunkt endpointType auf WebHook fest, und geben Sie Folgendes an:

  • endpointUrl: Azure Event Grid-Themen-URL in der Cloud, bei welcher der API-Versionsparameter auf 2018-01-01 und aeg-sas-key auf den URL-codierten SAS-Schlüssel festgelegt sind.

      {
        "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

Legen Sie zum Veröffentlichen in Event Hubs endpointType auf eventHub fest, und geben Sie Folgendes an:

  • resourceId:Ressourcen-ID für den spezifischen Event Hub.

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

Service Bus-Warteschlangen

Legen Sie zum Veröffentlichen in einer Service Bus-Warteschlange endpointType auf serviceBusQueue fest, und geben Sie Folgendes an:

  • resourceId: Ressourcen-ID für die spezifische Service Bus-Warteschlange.

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

Service Bus-Themen

Legen Sie zum Veröffentlichen in einem Service Bus-Thema endpointType auf serviceBusTopic fest, und geben Sie Folgendes an:

  • resourceId: Ressourcen-ID für das spezifische Service Bus-Thema.

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

Storage-Warteschlangen

Legen Sie zum Veröffentlichen in einer Storage-Warteschlange endpointType auf storageQueue fest, und geben Sie Folgendes an:

  • queueName: Der Name der Storage-Warteschlange, in der Sie veröffentlichen.

  • resourceID: Azure-Ressourcen-ID des Speicherkontos, das die Warteschlange enthält.

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

Nächste Schritte