Compartilhar via


Configurar a API para eventos server-sent

APLICA-SE A: Desenvolvedor | Básico | Básico v2 | Standard | Standard v2 | Premium

Este artigo fornece diretrizes para configurar uma API no Gerenciamento de API que implementa SSE (eventos enviados pelo servidor). A SSE baseia-se no padrão HTML5 EventSource para transmitir dados (por streaming) automaticamente para um cliente via HTTP depois que um cliente tiver estabelecido uma conexão.

Dica

O Gerenciamento de API também oferece compatibilidade nativa para APIs WebSocket, que mantêm uma única conexão bidirecional persistente aberta entre um cliente e um servidor.

Pré-requisitos

Diretrizes para SSE

Siga estas diretrizes ao usar o Gerenciamento de API para alcançar uma API de back-end que implementa SSE.

  • Escolher a camada de serviço para conexões HTTP de execução longa – A SSE depende de uma conexão HTTP de execução longa com suporte em determinados tipos de preço do Gerenciamento de API. Há suporte para conexões de execução longa nas camadas clássicas e v2 do Gerenciamento de API, mas não na camada de Consumo.

  • Manter as conexões ociosas ativas – se uma conexão entre o cliente e o back-end puder ficar ociosa por 4 minutos ou mais, implemente um mecanismo para manter a conexão ativa. Por exemplo, habilitar um sinal keepalive de TCP no back-end da conexão ou enviar o tráfego do lado do cliente pelo menos uma vez por 4 minutos.

    Essa configuração é necessária para substituir o tempo de sessão ocioso de 4 minutos que é imposto pelo Azure Load Balancer, que é usado na infraestrutura do Gerenciamento de API.

  • Retransmissão de eventos imediatamente para clientes – desligue o buffer de resposta na forward-requestpolítica para que os eventos sejam retransmitidos imediatamente aos clientes. Por exemplo:

    <forward-request timeout="120" fail-on-error-status-code="true" buffer-response="false"/>
    
  • Evitar outras políticas que armazenam respostas em buffer – determinadas políticas, como validate-content, também podem armazenar conteúdo de resposta em buffer e não devem ser usadas com APIs que implementam SSE.

  • Evite registrar em log o corpo da solicitação/resposta do Azure Monitor, do Application Insights e dos Hubs de Eventos: configure o log de solicitações de API para o Azure Monitor ou o Application Insights usando as configurações de diagnóstico. As configurações de diagnóstico permitem registrar o corpo da solicitação/resposta em vários estágios da execução da solicitação. Para APIs que implementam a SSE, isso pode causar buffers inesperados que podem levar a problemas. As configurações de diagnóstico do Azure Monitor e do Application Insights configuradas no escopo global/todas as APIs se aplicam a todas as APIs do serviço. Você pode substituir as configurações para APIs individuais conforme necessário. Ao fazer logon nos Hubs de Eventos, você configura o escopo e a quantidade de informações de contexto para registro em log de solicitação/resposta usando os log-to-eventhubs. Para as APIs que implementam a SSE, verifique se você desabilitou o log do corpo da solicitação/resposta para o Azure Monitor, o Application Insights e os Hubs de eventos.

  • Desabilitar o cache de resposta – para garantir que o cliente seja notificado em tempo hábil, verifique se o cache de resposta não está habilitado. Para obter mais informações, confira Políticas de cache do Gerenciamento de API.

  • Testar API sob carga – siga as práticas gerais para testar sua API sob carga para detectar problemas de desempenho ou configuração antes de entrar em produção.

Próximas etapas