Importar uma API WebSocket
APLICA-SE A: Desenvolvedor | Básico | Básico v2 | Standard | Standard v2 | Premium
Com a solução de API do WebSocket do Gerenciamento de API, os editores de API podem adicionar rapidamente uma API do WebSocket ao Gerenciamento de API por meio do portal do Azure, da CLI do Azure, do Azure PowerShell e de outras ferramentas do Azure.
Observação
Atualmente, esse recurso não está disponível em workspaces.
Você pode proteger as APIs do WebSocket aplicando políticas de controle de acesso existentes, como validação JWT. Você também pode testar as APIs WebSocket usando os consoles de teste de API no portal do Azure e no portal do desenvolvedor. Com base em recursos de observabilidade existentes, o Gerenciamento de API fornece métricas e logs para monitorar e solucionar problemas de APIs do WebSocket.
Neste artigo, você irá:
- Entenda o fluxo de passagem do Websocket.
- Adicione uma API do WebSocket à sua instância do aplicativo de Gerenciamento de API.
- Testar a API do WebSocket.
- Exibir as métricas e logs para a API do WebSocket.
- Conheça as limitações da API do WebSocket.
Pré-requisitos
- Uma instância de Gerenciamento de API existente. Crie uma, se ainda não tiver.
- A API do WebSocket.
- CLI do Azure
Passagem do WebSocket
Gerenciamento de API dá suporte à passagem do WebSocket.
Durante a passagem do WebSocket, o aplicativo cliente estabelece uma conexão WebSocket com o Gateway de Gerenciamento de API, que estabelece uma conexão com os serviços de back-end correspondentes. Em seguida, o Gerenciamento de API cria proxies para mensagens cliente-servidor do WebSocket.
- O aplicativo cliente envia uma solicitação de handshake do WebSocket para o gateway de APIM, invocando a operação onHandshake.
- O gateway APIM envia a solicitação de handshake WebSocket para o serviço de back-end correspondente.
- O serviço de back-end atualiza uma conexão com o WebSocket.
- O gateway APIM atualiza a conexão correspondente ao WebSocket.
- Depois que o par de conexão for estabelecido, o APIM transmitirá as mensagens de volta e para trás entre o aplicativo cliente e o serviço de back-end.
- O aplicativo cliente envia a mensagem para o gateway APIM.
- O gateway APIM encaminha a mensagem para o serviço de back-end.
- O serviço de back-end envia uma mensagem para o gateway APIM.
- O gateway APIM encaminha a mensagem para o aplicativo cliente.
- Quando um dos lados se desconecta, o APIM encerra a conexão correspondente.
Observação
As conexões do lado do cliente e do back-end consistem em um mapeamento de um para um.
Operação de onHandshake
De acordo com o protocolo WebSocket, quando um aplicativo cliente tenta estabelecer uma conexão WebSocket com um serviço de back-end, ele primeiro enviará uma solicitação de handshake de abertura. Cada API do WebSocket no Gerenciamento de API tem uma operação onHandshake. onHandshake é uma operação de sistema imutável, não removível, criada automaticamente. A operação onHandshake permite que os editores de API interceptem essas solicitações de handshake e apliquem políticas de Gerenciamento de API a elas.
Adicionar uma API do WebSocket
-
- No portal do Azure, navegue até a instância do Gerenciamento de API.
No menu à esquerda, selecione APIs>+ Adicionar API.
Em Definir uma nova API, selecione WebSocket.
Na caixa de diálogo, selecione Completo e preencha os campos de formulário necessários.
Campo Description Nome de exibição O nome pelo qual a API do WebSocket será exibida. Nome Nome bruto da API do WebSocket. Preenche automaticamente conforme você digita o nome de exibição. WebSocket URL A URL base com o nome do websocket. Por exemplo: ws://example.com/your-socket-name Esquema de URL Aceite o padrão Sufixo da URL da API Adicione um sufixo de URL para identificar essa API específica nesta instância de Gerenciamento de API. Ele deve ser exclusivo nesta instância de APIM. Produtos Associe sua API do WebSocket a um produto para publicá-lo. Gateways Associe sua API do WebSocket a gateways existentes. Clique em Criar.
Testar a API do WebSocket
Navegue até a API do WebSocket.
Na API WebSocket, selecione a operação onHandshake.
Selecione a guia Teste para acessar o console de Teste.
Opcionalmente, forneça parâmetros de cadeia de caracteres de consulta necessários para o handshake do WebSocket.
Clique em Conectar.
Exibir status da conexão em Saída.
Insira o valor em Conteúdo.
Clique em Enviar.
Exibir mensagens recebidas em Saída.
Repita as etapas anteriores para testar cargas diferentes.
Quando o teste estiver concluído, selecione Desconectar.
Exibir métricas e logs
Use o Gerenciamento de API padrão e os recursos de Azure Monitor para monitorar as APIs do WebSocket:
- Ver métricas do API no Azure Monitor
- Opcionalmente, habilite as configurações de diagnóstico para coletar e exibir os logs do gateway de Gerenciamento de API, que incluem operações da API WebSocket
Por exemplo, a captura de tela a seguir mostra respostas recentes da API WebSocket com código 101
da tabela ApiManagementGatewayLogs. Esses resultados indicam a mudança bem-sucedida das solicitações de TCP para o protocolo WebSocket.
Limitações
Abaixo estão as restrições atuais do suporte ao WebSocket no Gerenciamento de API:
- Ainda não há suporte para as APIs do WebSocket na camada de consumo.
- As APIs do WebSocket dão suporte aos seguintes tipos de buffer válidos para mensagens: Close, BinaryFragment, BinaryMessage, UTF8Fragment e UTF8Message.
- Atualmente, a política de cabeçalho definida não dá suporte à alteração de determinados cabeçalhos conhecidos, incluindo cabeçalhos
Host
em solicitações onHandshake. - Durante o handshake do TLS com um back-end do WebSocket, o Gerenciamento de API valida que o certificado do servidor é confiável e que seu nome de entidade corresponde ao nome do host. Com as APIs HTTP, o Gerenciamento de API valida que o certificado é confiável, mas não valida que o nome do host e a entidade correspondem.
Para limites de conexão do WebSocket, confira limites de Gerenciamento de API.
Políticas sem suporte
As políticas a seguir não têm suporte no e não podem ser aplicadas à operação onHandshake:
- Resposta fictícia
- Obter do cache
- Armazenar em cache
- Permitir chamadas entre domínios
- CORS
- JSONP
- Definir método de solicitação
- Definir corpo
- Converter XML em JSON
- Converter JSON para XML
- Transformar XML usando XSLT
- Validar o conteúdo
- Validar parâmetros
- Validar cabeçalhos
- Validar o código de status
Observação
Se você tiver aplicado as políticas em escopos mais altos (ou seja, global ou produto) e elas tiverem sido herdadas por uma API do WebSocket por meio da política, elas serão ignoradas no runtime.
Tópicos relacionados
- Limitações de importação da API
- Importar uma especificação de OpenAPI
- Importar uma API SOAP
- Importar uma API SOAP e converter em REST
- Importar uma API do Serviço de Aplicativo
- Importar uma API do Aplicativo de Contêiner
- Importar uma API WebSocket
- Importar uma API do GraphQL
- Importar um esquema do GraphQL e configurar resolvedores de campo
- Importar um Aplicativo de Funções do Azure
- Importar um Aplicativo Lógico do Azure
- Importar um serviço do Service Fabric
- Importar uma API do OpenAI do Azure
- Importar uma API de OData
- Importar metadados do SAP OData
- Importar uma API do gRPC
- Editar uma API