Partilhar via


Solucionar problemas de conectividade - Grade de Eventos do Azure

Há vários motivos para os aplicativos cliente não conseguirem se conectar a um tópico/domínio da Grade de Eventos. Os problemas de conectividade com que se depara podem ser permanentes ou transitórios. Se o problema acontecer o tempo todo (permanente), convém verificar as configurações de firewall da sua organização, configurações de firewall IP, tags de serviço, pontos de extremidade privados e muito mais. Para problemas transitórios, a execução de comandos para verificar pacotes descartados e a obtenção de rastreamentos de rede podem ajudar na solução de problemas.

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

Solucionar problemas permanentes de conectividade

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

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

Verifique se há interrupção do serviço de Grade de Eventos do Azure no site de status do serviço do Azure.

Verifique 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 usadas na comunicação com a Grade de Eventos do Azure não estão bloqueadas no firewall da sua organização. Consulte a tabela a seguir para obter 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 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 no firewall corporativo

Quando você está trabalhando com o Azure, às vezes você precisa 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 nos endereços IP usados pela Grade de Eventos. Para endereços IP usados pela Grade de Eventos do Azure: consulte Intervalos de IP do Azure e Tags de Serviço - Nuvem Pública e Tag de Serviço - AzureEventGrid.

O documento Azure IP Ranges and Service Tags - Public Cloud também lista 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 região, consulte Replicação entre regiões no Azure: continuidade de negócios e recuperação de desastres.

Nota

Novos endereços IP podem ser adicionados à marca de serviço AzureEventGrid, embora isso não seja usual. Por isso, é bom fazer uma verificação semanal nas etiquetas de serviço.

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

Se 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. Ver etiquetas de serviço

Verifique as configurações do Firewall IP para o seu Tópico/Domínio

Verifique se o endereço IP público da máquina na qual o aplicativo está sendo executado não está bloqueado pelo firewall IP de tópico/domínio EventGrid.

Por padrão, os tópicos/domínios da Grade de Eventos são acessíveis pela Internet, desde que a solicitação seja fornecida com autenticação e autorização válidas. Com o firewall IP, você pode restringi-lo ainda mais a apenas um conjunto de endereços IPv4 ou intervalos de endereços IPv4 na notação CIDR (Roteamento entre Domínios sem Classe).

As regras de firewall IP são aplicadas no nível de tópico/domínio da Grade de Eventos. Portanto, as regras se aplicam a todas as conexões de clientes usando qualquer protocolo suportado. 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 é rejeitada como proibida. A resposta não menciona a regra de IP.

Para obter mais informações, consulte Configurar regras de firewall IP para um tópico/domínio da Grade de Eventos do Azure.

Encontre os endereços IP bloqueados pelo Firewall IP

Habilitar logs de diagnóstico para tópico/domínio da Grade de Eventos Habilite logs de diagnóstico. Você verá o endereço IP da conexão negada.

{
  "time": "2019-11-01T00:17:13.4389048Z",
  "resourceId": "/SUBSCRIPTIONS/SAMPLE-SUBSCRIPTION-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-SUBSCRIPTION-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."
}

Verifique se o tópico/domínio EventGrid 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 somente 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 Azure Private Link permite-lhe aceder à Grelha de Eventos do Azure através de um ponto de extremidade 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. Você pode se conectar a uma instância de um recurso do Azure, oferecendo o mais alto nível de granularidade no controle de acesso.

Para obter mais informações, consulte Configurar pontos de extremidade privados.

Resolver problemas de conectividade transitórios

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

Execute o comando para verificar os pacotes descartados

Quando houver problemas intermitentes de conectividade, execute o seguinte comando para verificar se há algum pacote descartado. 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. Você pode baixar a psping ferramenta aqui.

.\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 tcpping tcpping.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.

Upgrades/reinícios de serviços

Problemas transitórios de conectividade podem ocorrer devido a atualizações e reinicializações do serviço de back-end. Quando eles ocorrem, você pode ver os seguintes sintomas:

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

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

Próximos passos

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