Destinos de manipuladores de eventos na Grade de Eventos no Kubernetes
Um manipulador de eventos é qualquer sistema que expõe um ponto de extremidade e é o destino para eventos enviados pela Grade de Eventos. Um manipulador de eventos que recebe um evento age sobre ele e usa a carga útil do evento para executar alguma lógica, o que pode levar à ocorrência de novos eventos.
A maneira de configurar a Grade de Eventos para enviar eventos para um destino é por meio da criação de uma assinatura de evento. Isso pode ser feito por meio da CLI do Azure, SDK de gerenciamento ou usando chamadas HTTPs diretas usando a versão da API 2020-10-15-preview.
Em geral, a Grade de Eventos no Kubernetes pode enviar eventos para qualquer destino via Webhooks. Webhooks são pontos de extremidade HTTP(s) expostos por um serviço ou carga de trabalho à qual a Grade de Eventos tem acesso. O webhook pode ser uma carga de trabalho hospedada no mesmo cluster, no mesmo espaço de rede, na nuvem, no local ou em qualquer lugar que a Grade de Eventos possa alcançar.
Importante
A Grade de Eventos no Kubernetes com o Azure Arc está atualmente em visualização pública. Esta versão de pré-visualização é disponibiliza sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.
Através de Webhooks, a Grade de Eventos suporta os seguintes destinos hospedados em um cluster Kubernetes:
- Serviço de Aplicativo do Azure no Kubernetes com Azure Arc.
- Azure Functions no Kubernetes com Azure Arc.
- Aplicativos Lógicos do Azure no Kubernetes com o Azure Arc.
Além dos Webhooks, a Grade de Eventos no Kubernetes pode enviar eventos para os seguintes destinos hospedados no Azure:
- Grade de Eventos do Azure usando Webhooks
- Azure Functions usando apenas Webhooks
- Hubs de Eventos do Azure usando sua ID de recurso do Azure Resource Manager
- Tópicos ou filas do Barramento de Serviço do Azure usando sua ID de recurso do Azure Resource Manager
- Fila de Armazenamento do Azure usando sua ID de recurso do Azure Resource Manager
Paridade de recursos
A Grade de Eventos no Kubernetes oferece um bom nível de paridade de recursos com o suporte da Grade de Eventos do Azure para assinaturas de eventos. A lista a seguir enumera as principais diferenças na funcionalidade de assinatura de eventos. Além dessas diferenças, você pode usar a API REST da Grade de Eventos do Azure versão 2020-10-15-preview como referência ao gerenciar assinaturas de eventos na Grade de Eventos no Kubernetes.
- Use a API REST versão 2020-10-15-preview.
- O gatilho de Grade de Eventos do Azure para o Azure Functions não é suportado. Você pode usar um tipo de destino WebHook para entregar eventos ao Azure Functions.
- Não há suporte de localização de letra morta. Isso significa que você não pode usar
properties.deadLetterDestination
a carga útil da assinatura do evento. - As Conexões Híbridas do Azure Relay como destino ainda não são suportadas.
- Apenas o esquema CloudEvents é suportado. O valor do esquema suportado é "CloudEventSchemaV1_0". O esquema Cloud Events é extensível e baseado em padrões abertos.
- Os rótulos (properties.labels) não são aplicáveis à Grade de Eventos no Kubernetes. Por isso, não estão disponíveis.
- A entrega com identidade de recurso não é suportada. Portanto, todas as propriedades da Identidade de Assinatura de Evento não são suportadas.
- A validação do ponto de extremidade de destino ainda não é suportada.
Filtragem de eventos em subscrições de eventos
O outro aspeto importante da configuração de uma assinatura de evento é selecionar os eventos que devem ser entregues em um destino. Para obter mais informações, consulte Filtragem de eventos.
Exemplos de configurações de destino
A seguir estão algumas configurações básicas de exemplo, dependendo do destino pretendido.
Gancho WebHook
Para publicar em um ponto de extremidade WebHook, defina o endpointType
como WebHook
e forneça:
endpointUrl: A URL do ponto de extremidade WebHook
{ "properties": { "destination": { "endpointType": "WebHook", "properties": { "endpointUrl": "<your-webhook-endpoint>" } } } }
Grelha de Eventos do Azure
Para publicar em um ponto de extremidade de nuvem da Grade de Eventos do Azure, defina o endpointType
como WebHook
e forneça:
endpointUrl: URL do tópico da Grade de Eventos do Azure na nuvem com o parâmetro de versão da API definido como 2018-01-01 e
aeg-sas-key
definido como a chave SAS codificada pela 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)" } } } }
Hubs de Eventos
Para publicar em Hubs de Eventos, defina como endpointType
eventHub
e forneça:
resourceId: ID do recurso para o hub de eventos específico.
{ "properties": { "destination": { "endpointType": "eventHub", "properties": { "resourceId": "<Azure Resource ID of your event hub>" } } } }
Filas do Service Bus
Para publicar em uma fila do Service Bus, defina como endpointType
serviceBusQueue
e forneça:
resourceId: ID do recurso para a fila específica do Service Bus.
{ "properties": { "destination": { "endpointType": "serviceBusQueue", "properties": { "resourceId": "<Azure Resource ID of your Service Bus queue>" } } } }
Tópicos do Service Bus
Para publicar em um tópico do Service Bus, defina o endpointType
como serviceBusTopic
e forneça:
resourceId: ID do recurso para o tópico específico do Service Bus.
{ "properties": { "destination": { "endpointType": "serviceBusTopic", "properties": { "resourceId": "<Azure Resource ID of your Service Bus topic>" } } } }
Filas de Armazenamento
Para publicar em uma fila de armazenamento, defina como endpointType
storageQueue
e forneça:
queueName: Nome da fila de Armazenamento do Azure na qual você está publicando.
resourceID: ID de recurso do Azure da conta de armazenamento que contém a fila.
{ "properties": { "destination": { "endpointType": "storageQueue", "properties": { "queueName": "<your-storage-queue-name>", "resourceId": "<Azure Resource ID of your Storage account>" } } } }
Próximos passos
- Adicione a configuração de filtro à sua assinatura de evento para selecionar os eventos a serem entregues.
- Para saber mais sobre esquemas suportados pela Grade de Eventos no Azure Arc for Kubernetes, consulte Grade de Eventos no Kubernetes - Esquemas de eventos.