Solucionar problemas de conectividade ꟷ Grade de Eventos do Azure

Há várias razões para os aplicativos cliente não poderem se conectar a um tópico/domínio da Grade de Eventos. Os problemas de conectividade que você enfrenta podem ser permanentes ou transitórios. Se o problema ocorrer o tempo todo (permanente), talvez você queira verificar as configurações de firewall da sua organização, as configurações de firewall de IP, as marcas de serviço, os pontos de extremidade privados e muito mais. Para problemas transitórios, executar comandos para verificar pacotes ignorados e obter rastreamentos de rede pode ajudar a solucionar os problemas.

Este artigo fornece dicas para solucionar problemas de conectividade com a Grade de Eventos do Azure.

Solucionar problemas de conectividade permanentes

Se o aplicativo não for capaz de se conectar à grade de eventos, siga as etapas desta seção para solucionar o problema.

Verificar se há uma interrupção do serviço

Verifique a interrupção do serviço da Grade de Eventos do Azure no site de status do serviço do Azure.

Verificar se as portas necessárias para se comunicar com a Grade de Eventos não estão bloqueadas pelo firewall da organização

Verifique se as portas necessárias para se comunicar com a Grade de Eventos não estão bloqueadas pelo firewall da organização. Confira a tabela a seguir para as portas de saída que você precisa abrir para se comunicar com a Grade de Eventos do Azure.

Protocolo Portas
HTTPS 443

Aqui está um exemplo de comando 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

Verificar se os endereços IP são permitidos em seu firewall corporativo

Quando você está trabalhando com o Azure, às vezes é preciso permitir intervalos de endereços IP específicos ou URLs em seu firewall corporativo ou proxy para acessar todos os serviços do Azure que você está usando ou tentando usar. Verifique se o tráfego é permitido em endereços IP usados pela Grade de Eventos. Para endereços IP usados pela Grade de Eventos do Azure: confira Intervalos de IP e marcas de serviço do Azure ꟷ nuvem pública e Marca de serviço ꟷ AzureEventGrid.

O documento Intervalos de IP e marcas de serviço do Azure ꟷ nuvem pública também lista os endereços IP por região. Você pode permitir intervalos de endereços para a região do tópico e a região emparelhada em seu firewall corporativo ou proxy. Para uma região emparelhada para uma determinada região, confira Replicação entre regiões no Azure: continuidade dos negócios e recuperação de desastres.

Observação

Novos endereços IP podem ser adicionados à marca de serviço AzureEventGrid, embora não seja comum. Portanto, é bom fazer uma verificação semanal nas marcas de serviço.

Verificar se a marca de serviço AzureEventGrid é permitida em seus grupos de segurança de rede

Se o seu aplicativo estiver sendo executado dentro de uma sub-rede e se houver um grupo de segurança de rede associado, confirme se a saída da Internet é permitida ou se a marca de serviço AzureEventGrid é permitida. Confira Marcas de Serviço

Verificar as configurações de firewall de IP para seu tópico/domínio

Verifique se o endereço IP público do computador no qual o aplicativo está em execução não está bloqueado pelo tópico Grade de Eventos/firewall de IP do domínio.

Por padrão, os tópicos/domínios da Grade de Eventos são acessíveis da Internet, desde que a solicitação acompanhe autenticação e autorização válidas. Com o firewall de IP, você pode restringir ainda mais a um conjunto de endereços IPv4 ou intervalos de endereços IPv4 na notação CIDR (roteamento entre domínios sem classificação).

As regras de firewall de IP são aplicadas no nível do tópico/domínio da Grade de Eventos. Portanto, as regras se aplicam a todas as conexões de clientes que usam qualquer protocolo com suporte. Qualquer tentativa de conexão de um endereço IP que não corresponda a uma regra de IP permitida no tópico/domínio da Grade de Eventos será rejeitada como proibida. A resposta não menciona a regra de IP.

Para saber mais, confira Configurar regras de firewall de IP para um tópico/domínio da Grade de Eventos do Azure.

Localizar os endereços IP bloqueados pelo firewall de IP

Habilitar logs de diagnóstico para o tópico/domínio da Grade de Eventos Habilitar logs de diagnóstico. Você verá o endereço IP para a conexão que foi 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 da Grade de Eventos pode ser acessado usando apenas um ponto de extremidade privado

Se o tópico/domínio da Grade de Eventos estiver configurado para ser acessível apenas por meio do ponto de extremidade privado, confirme se o aplicativo cliente está acessando o tópico/domínio pelo ponto de extremidade privado. Para confirmá-lo, verifique se o aplicativo cliente está sendo executado dentro de uma sub-rede e se há um ponto de extremidade privado para o tópico/domínio da Grade de Eventos nessa sub-rede.

O serviço do Link Privado do Azure permite que você acesse a Grade de Eventos do Azure por meio de um ponto de extremidade privado em sua rede virtual. O ponto de extremidade privado é uma interface de rede que conecta você de forma privada e segura a um serviço com tecnologia do Link Privado do Azure. O ponto de extremidade privado usa um endereço IP privado de sua VNet, colocando efetivamente em sua VNet. Todo o tráfego para o serviço pode ser roteado por meio do ponto de extremidade privado; assim, nenhum gateway, nenhum dispositivo NAT, nenhuma conexão ExpressRoute ou VPN e nenhum endereço IP público é necessário. 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. Você pode se conectar a uma instância de um recurso do Azure, fornecendo o nível mais alto de granularidade no controle de acesso.

Para saber mais, confira Configurar pontos de extremidade privados.

Solucionar problemas de conectividade transitórios

Se você estiver enfrentando problemas de conectividade intermitente, confira as seções a seguir para obter dicas de solução de problemas.

Executar o comando para verificar os pacotes descartados

Quando houver problemas de conectividade intermitente, execute o seguinte comando para verificar se há algum pacote descartado. Esse comando tentará estabelecer 25 conexões TCP diferentes a cada 1 segundo com o serviço. Em seguida, você pode verificar quantos deles tiveram êxito/falharam e também ver a latência da conexão TCP. Você pode baixar a ferramenta pspingdaqui.

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

Você pode usar comandos equivalentes se estiver usando outras ferramentas, como tcppingtcpping.exe.

Obtenha um rastreamento de rede se as etapas anteriores não ajudarem e analise-o usando ferramentas como o Wireshark. Entre em contato com o Suporte da Microsoft, se necessário.

Atualizações/reinicializações de serviço

Podem ocorrer problemas de conectividade transitória devido a atualizações e reinicializações do serviço de back-end. Quando ocorrerem, você poderá observar os seguintes sintomas:

  • Pode haver uma queda nas mensagens/solicitações de entrada.
  • O arquivo de log pode conter mensagens de erro.
  • Os aplicativos podem ser desconectados do serviço por alguns segundos.
  • As solicitações podem ficar momentaneamente limitadas.

Identificar esses erros transitórios, recuar e tentar a chamada novamente garantirá que seu código seja resiliente a esses problemas transitórios.

Próximas etapas

Se precisar de mais ajuda, poste seu problema no fórum do Stack Overflow ou abra um tíquete de suporte.