Cíle obslužných rutin událostí ve službě Event Grid v Kubernetes

Obslužná rutina události je jakýkoli systém, který zveřejňuje koncový bod a je cílem událostí odesílaných službou Event Grid. Obslužná rutina události, která přijímá událost, na ni působí a používá datovou část události ke spuštění určité logiky, což může vést k výskytu nových událostí.

Způsob, jak nakonfigurovat Event Grid tak, aby odesílal události do cíle, je vytvoření odběru událostí. Můžete to provést prostřednictvím Azure CLI, sady SDK pro správu nebo použití přímých volání HTTPs pomocí verze rozhraní API verze 2020-10-15-preview.

Obecně platí, že Event Grid v Kubernetes může odesílat události do libovolného cíle prostřednictvím webhooků. Webhooky jsou koncové body HTTP vystavené službou nebo úlohou, ke kterým má Služba Event Grid přístup. Webhook může být úloha hostovaná ve stejném clusteru, ve stejném síťovém prostoru, v cloudu, místně nebo kdekoli, kde se služba Event Grid může spojit.

Důležité

Event Grid v Kubernetes s Azure Arc je aktuálně ve verzi Public Preview. Tato verze Preview se poskytuje bez smlouvy o úrovni služeb a nedoporučuje se pro úlohy v produkčním prostředí. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Služba Event Grid prostřednictvím webhooků podporuje následující cíle hostované v clusteru Kubernetes:

  • Aplikace Azure Service v Kubernetes se službou Azure Arc.
  • Azure Functions v Kubernetes se službou Azure Arc
  • Azure Logic Apps v Kubernetes s Azure Arc

Kromě webhooků může Event Grid v Kubernetes odesílat události do následujících cílů hostovaných v Azure:

  • Azure Event Grid s využitím Webhooků
  • Azure Functions pouze s využitím webhooků
  • Azure Event Hubs s použitím ID prostředku Azure Resource Manageru
  • Témata nebo fronty služby Azure Service Bus s použitím ID prostředku Azure Resource Manageru
  • Fronta azure Storage s použitím ID prostředku Azure Resource Manageru

Parita funkcí

Event Grid v Kubernetes nabízí dobrou úroveň parity funkcí s podporou azure Event Gridu pro odběry událostí. Následující seznam uvádí hlavní rozdíly ve funkcích odběru událostí. Kromě těchto rozdílů můžete jako referenci použít rozhraní REST API služby Azure Event Grid verze 2020-10-15-preview jako referenci při správě odběrů událostí ve službě Event Grid v Kubernetes.

  1. Použijte rozhraní REST API verze 2020-10-15-preview.
  2. Trigger Azure Event Gridu pro Azure Functions se nepodporuje. Cílový typ WebHooku můžete použít k doručování událostí do Azure Functions.
  3. Není žádná podpora místa nedoručených dopisů. To znamená, že v datové části odběru událostí nemůžete použít properties.deadLetterDestination .
  4. Hybridní Připojení azure Relay se zatím nepodporuje jako cíl.
  5. Podporuje se pouze schéma CloudEvents. Podporovaná hodnota schématu je "CloudEventSchemaV1_0". Schéma cloudových událostí je rozšiřitelné a založené na otevřených standardech.
  6. Popisky (properties.labels) se nevztahují na Event Grid v Kubernetes. Proto nejsou k dispozici.
  7. Doručování s identitou prostředku se nepodporuje. Proto se nepodporují všechny vlastnosti identity odběru událostí.
  8. Ověření cílového koncového bodu se zatím nepodporuje.

Filtrování událostí v odběrech událostí

Dalším důležitým aspektem konfigurace odběru událostí je výběr událostí, které mají být doručeny do cíle. Další informace najdete v tématu Filtrování událostí.

Ukázkové konfigurace cíle

Následuje několik základních ukázkových konfigurací v závislosti na zamýšleném cíli.

WebHook

Pokud chcete publikovat do koncového bodu WebHook, nastavte endpointType hodnotu WebHook a zadejte:

  • endpointUrl: Adresa URL koncového bodu WebHook

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

Azure Event Grid

Pokud chcete publikovat do koncového bodu cloudu Azure Event Gridu, nastavte endpointType hodnotu WebHook a zadejte:

  • endpointUrl: Adresa URL tématu služby Azure Event Grid v cloudu s parametrem verze rozhraní API nastaveným na 2018-01-01 a aeg-sas-key nastavenou na klíč SAS kódovaný na adrese URL.

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

Pokud chcete publikovat do služby Event Hubs, nastavte endpointType hodnotu eventHub a zadejte:

  • resourceId: ID prostředku pro konkrétní centrum událostí.

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

Fronty služby Service Bus

Pokud chcete publikovat do fronty služby Service Bus, nastavte endpointType hodnotu serviceBusQueue a zadejte:

  • resourceId: ID prostředku pro konkrétní frontu služby Service Bus.

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

Témata služby Service Bus

Pokud chcete publikovat do tématu služby Service Bus, nastavte endpointType hodnotu serviceBusTopic a zadejte:

  • resourceId: ID prostředku pro konkrétní téma služby Service Bus.

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

Fronty služby Storage

Pokud chcete publikovat do fronty úložiště, nastavte endpointType hodnotu storageQueue a zadejte:

  • queueName: Název fronty Azure Storage, do které publikujete.

  • resourceID: ID prostředku Azure účtu úložiště, který obsahuje frontu.

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

Další kroky