Resolver problemas de conectividade – Azure Event Grid

Existem vários motivos para as aplicações cliente não conseguirem ligar a um tópico/domínio do Event Grid. Os problemas de conectividade com que se depara podem ser permanentes ou transitórios. Se o problema ocorrer a toda a hora (permanente), poderá querer verificar as definições da firewall da sua organização, as definições da firewall de IP, as etiquetas de serviço, os pontos finais privados e muito mais. Para problemas transitórios, executar comandos para verificar pacotes removidos e obter rastreios de rede pode ajudar a resolver os problemas.

Este artigo fornece sugestões para resolver problemas de conectividade com Azure Event Grid.

Resolver problemas de conectividade permanentes

Se a aplicação não conseguir ligar-se à grelha de eventos, siga os passos desta secção para resolver o problema.

Verificar se ocorreu uma indisponibilidade do serviço

Verifique a indisponibilidade do serviço Azure Event Grid no site de estado do serviço do Azure.

Verifique se as portas necessárias para comunicar com o Event Grid não estão bloqueadas pela firewall da organização

Verifique se as portas utilizadas na comunicação com Azure Event Grid não estão bloqueadas na firewall da sua organização. Consulte a tabela seguinte para as portas de saída que precisa de abrir para comunicar com Azure Event Grid.

Protocolo Portas
HTTPS 443

Eis um comando de exemplo que verifica se a porta 443 está bloqueada.

.\psping.exe -n 25 -i 1 -q {sampletopicname}.{region}-{suffix}.eventgrid.azure.net:443 -nobanner

No Linux:

telnet {sampletopicname}.{region}-{suffix}.eventgrid.azure.net 443

Verifique se os endereços IP são permitidos na firewall empresarial

Quando está a trabalhar com o Azure, por vezes tem de permitir intervalos ou URLs de endereços IP específicos na sua firewall ou proxy empresarial para aceder a todos os serviços do Azure que está a utilizar ou a tentar utilizar. Verifique se o tráfego é permitido em endereços IP utilizados pelo Event Grid. Para endereços IP utilizados pelo Azure Event Grid: veja Intervalos de IP do Azure e Etiquetas de Serviço – Cloud Pública e Etiqueta de Serviço – AzureEventGrid.

O documento Intervalos de IP do Azure e Etiquetas de Serviço – Cloud Pública também lista endereços IP por região. Pode permitir intervalos de endereços para a região do tópico e a região emparelhada na sua firewall ou proxy empresarial. Para uma região emparelhada para uma região, veja Replicação entre regiões no Azure: Continuidade do negócio e recuperação após desastre.

Nota

Podem ser adicionados novos endereços IP à etiqueta de serviço do AzureEventGrid, embora não seja habitual. Por isso, é bom fazer uma verificação semanal das etiquetas de serviço.

Verifique se a etiqueta de serviço do AzureEventGrid é permitida nos grupos de segurança de rede

Se a sua aplicação estiver em execução dentro de uma sub-rede e se existir um grupo de segurança de rede associado, confirme se a saída da Internet é permitida ou se a etiqueta de serviço do AzureEventGrid é permitida. Veja Etiquetas de Serviço

Verifique as definições da Firewall de IP para o tópico/domínio

Verifique se o endereço IP público do computador no qual a aplicação está a ser executada não está bloqueado pela firewall de IP do tópico/domínio do EventGrid.

Por predefinição, os tópicos/domínios do Event Grid são acessíveis a partir da Internet, desde que o pedido venha com autenticação e autorização válidas. Com a firewall de IP, pode restringi-la ainda mais a um conjunto de endereços IPv4 ou intervalos de endereços IPv4 na notação CIDR (Classless Inter-Domain Routing ).

As regras de firewall de IP são aplicadas ao nível do tópico/domínio do Event Grid. Por conseguinte, as regras aplicam-se a todas as ligações de clientes que utilizem qualquer protocolo suportado. Qualquer tentativa de ligação de um endereço IP que não corresponda a uma regra de IP permitida no tópico/domínio do Event Grid é rejeitada como proibida. A resposta não menciona a regra de IP.

Para obter mais informações, veja Configurar regras de firewall de IP para um tópico/domínio de Azure Event Grid.

Localizar os endereços IP bloqueados pela Firewall de IP

Ative os registos de diagnósticos para o tópico/domínio do Event Grid Ativar registos de diagnósticos. Verá o endereço IP da ligação negada.

{
  "time": "2019-11-01T00:17:13.4389048Z",
  "resourceId": "/SUBSCRIPTIONS/SAMPLE-SUBSCTIPTION-ID/RESOURCEGROUPS/SAMPLE-RESOURCEGROUP-NAME/PROVIDERS/MICROSOFT.EVENTGRID/TOPICS/SAMPLE-TOPIC-NAME",
  "category": "PublishFailures",
  "operationName": "Post",
  "message": "inputEventsCount=null, requestUri=https://SAMPLE-TOPIC-NAME.region-suffix.eventgrid.azure.net/api/events, publisherInfo=PublisherInfo(category=User, inputSchema=EventGridEvent, armResourceId=/SUBSCRIPTIONS/SAMPLE-SUBSCTIPTION-ID/RESOURCEGROUPS/SAMPLE-RESOURCEGROUP-NAME/PROVIDERS/MICROSOFT.EVENTGRID/TOPICS/SAMPLE-TOPIC-NAME), httpStatusCode=Forbidden, errorType=ClientIPRejected, errorMessage=Publishing to SAMPLE-TOPIC-NAME.{region}-{suffix}.EVENTGRID.AZURE.NET by client {clientIp} is rejected due to IpAddress filtering rules."
}

Verificar se o tópico/domínio do EventGrid pode ser acedido apenas com um ponto final privado

Se o tópico/domínio do Event Grid estiver configurado para ser acessível apenas através do ponto final privado, confirme que a aplicação cliente está a aceder ao tópico/domínio através do ponto final privado. Para confirmar, verifique se a aplicação cliente está em execução dentro de uma sub-rede e se existe um ponto final privado para o tópico/domínio do Event Grid nessa sub-rede.

Azure Private Link serviço permite-lhe aceder a Azure Event Grid através de um ponto final privado na sua rede virtual. Um ponto final privado é uma interface de rede que o liga a um serviço de forma privada e segura com a tecnologia Azure Private Link. O ponto final privado utiliza um endereço IP privado da VNet, para que possa aceder ao serviço de forma eficaz através da VNet. Todo o tráfego para o serviço pode ser encaminhado através do ponto final privado, pelo que não são necessários gateways, dispositivos NAT, ligações ExpressRoute ou VPN nem endereços IP públicos. O tráfego entre a rede virtual e o serviço percorre a rede de backbone da Microsoft, eliminando a exposição da Internet pública. Pode ligar-se a uma instância de um recurso do Azure, o que lhe dá o nível mais elevado de granularidade no controlo de acesso.

Para obter mais informações, veja Configurar pontos finais privados.

Resolver problemas de conectividade transitórios

Se estiver a ter problemas de conectividade intermitentes, consulte as secções seguintes para obter sugestões de resolução de problemas.

Execute o comando para verificar os pacotes removidos

Quando existirem problemas de conectividade intermitentes, execute o seguinte comando para verificar se existem pacotes removidos. Este comando tentará estabelecer 25 ligações TCP diferentes a cada 1 segundo ao serviço. Em seguida, poderá verificar quantas tiveram êxito-falharam e ver a latência da ligação TCP. Pode transferir a ferramenta a psping partir daqui.

.\psping.exe -n 25 -i 1 -q {sampletopicname}.{region}-{suffix}.eventgrid.azure.net:443 -nobanner

Pode utilizar comandos equivalentes se estiver a utilizar outras ferramentas, como tcppingtcpping.exe.

Obtenha um rastreio de rede se os passos anteriores não ajudarem e analisá-lo com ferramentas como o Wireshark. Contacte Suporte da Microsoft, se necessário.

Atualizações/reinícios do serviço

Podem ocorrer problemas de conectividade transitórios devido a atualizações e reinícios do serviço de back-end. Quando ocorrem, poderá ver os seguintes sintomas:

  • Pode haver uma queda nas mensagens/pedidos recebidos.
  • O ficheiro de registo pode conter mensagens de erro.
  • As aplicações podem estar desligadas do serviço durante alguns segundos.
  • Os pedidos podem ser limitados momentaneamente.

A deteção destes erros transitórios, a reativação e a repetição da chamada irão garantir que o código é resiliente a estes problemas transitórios.

Passos seguintes

Se precisar de mais ajuda, publique o problema no fórum do Stack Overflow ou abra um pedido de suporte.