Compartilhar via


Personalizar a configuração de entrada do Azure Spring Apps

Observação

Os planos Básico, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de desativação de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para mais informações, confira o anúncio de desativação dos Aplicativos Spring do Azure.

O plano consumo e dedicado Standard será preterido a partir de 30 de setembro de 2024, com um desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para mais informações, confira Migrar o plano dedicado e consumo Standard dos Aplicativos Spring do Azure para os Aplicativos de Contêiner do Azure.

Este artigo se aplica a:✅ Básico/Padrão ✅ Enterprise

Este artigo mostra como definir e atualizar as configurações de entrada do aplicativo nos Aplicativos Spring do Azure usando o portal do Azure e a CLI do Azure.

O serviço do Azure Spring Apps usa um controlador de entrada subjacente para controlar o gerenciamento de tráfego do aplicativo. Há suporte para personalização nas configurações de entrada a seguir.

Nome Configurações de entrada Valor padrão Intervalo válido Descrição
ingress-read-timeout proxy-read-timeout 300 [1,1800] Tempo limite em segundos para ler uma resposta de um servidor com proxy.
ingress-send-timeout proxy-send-timeout 60 [1,1800] O tempo limite em segundos para transmitir uma solicitação para o servidor com proxy.
session-affinity affinity Nenhum Session, None O tipo de afinidade que faz com que a solicitação venha para a mesma réplica de pod que estava respondendo à solicitação anterior. Defina session-affinity como Cookie para habilitar a afinidade de sessão. Somente no portal, você deve escolher a caixa Habilitar afinidade de sessão.
session-max-age session-cookie-max-age 0 [0, 604800] O tempo em segundos até que o cookie expire, correspondente à diretiva de cookie Max-Age. Se você definir session-max-age como 0, o período de expiração será igual ao período de sessão do navegador.
backend-protocol backend-protocol Padrão Padrão, GRPC Define o protocolo de back-end para indicar como o NGINX deve se comunicar com o serviço de back-end. O padrão significa HTTP/HTTPS/WebSocket. A configuração backend-protocol só se aplica ao tráfego cliente a aplicativo. Para o tráfego aplicativo a aplicativo na mesma instância de serviço, escolha qualquer protocolo para tráfego aplicativo a aplicativo, sem modificar a configuração backend-protocol. O protocolo não restringe a escolha de protocolo ao tráfego aplicativo a aplicativo na mesma instância de serviço.
client-auth client-auth 0 selecionado - Selecione os certificados com a chave pública que você carregou nas configurações de TLS/SSL. A entrada concatena esses certificados em um e usa-os para autenticação de cliente.

Pré-requisitos

  • Uma assinatura do Azure. Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

  • CLI do Azure com a extensão dos Aplicativos Spring do Azure. Use o comando a seguir para remover versões anteriores e instalar a extensão mais recente. Se você instalou a extensão do Spring Cloud anteriormente, desinstale-a para evitar incompatibilidades de configuração e de versão.

    az extension remove --name spring
    az extension add --name spring
    az extension remove --name spring-cloud
    

Definir a configuração de entrada

Use o seguinte comando da CLI do Azure para definir a configuração de entrada durante a criação.

az spring app create \
    --resource-group <resource-group-name> \
    --service <service-name> \
    --name <app-name> \
    --ingress-read-timeout 300 \
    --ingress-send-timeout 60 \
    --session-affinity Cookie \
    --session-max-age 1800 \
    --backend-protocol Default \
    --client-auth-certs <cert-id>

Observação

O valor cert-id está no formato /subscriptions/<your-sub-id>/resourceGroups/<resource-group-name>/providers/Microsoft.AppPlatform/Spring/<service-name>/certificates/<cert-name>. Para obter o valor cert-id, use o seguinte comando: az spring certificate show --service <service-instance-name> --resource-group <resource-group-name> --name <certificate-name> --query id

Esse comando cria um aplicativo com as seguintes configurações:

  • Tempo limite de leitura de entrada: 300 segundos
  • Tempo limite de envio de entrada: 60 segundos
  • Afinidade de sessão: cookie
  • Tempo máximo decorrido do cookie da sessão: 1800 segundos
  • Protocolo de back-end: padrão
  • Autenticação do cliente: cert-name

Atualizar as configurações de entrada de um aplicativo existente

Use as etapas a seguir para atualizar as configurações de entrada de um aplicativo hospedado por uma instância de serviço existente.

  1. Entre no portal usando uma conta associada à assinatura do Azure que contém a instância do Azure Spring Apps.

  2. Navegue até o painel Aplicativos e selecione o aplicativo que você deseja configurar.

  3. Navegue até o painel Configuração e selecione a guia Configurações de entrada.

  4. Atualize as configurações de entrada e selecione Salvar.

    Captura de tela da página Configuração no portal do Azure mostrando a guia Configurações de entrada.

Perguntas frequentes

  • Como habilitar o gRPC?

    Defina o protocolo de back-end como gRPC.

  • Como habilitar o WebSocket?

    O WebSocket será habilitado por padrão, se você definir o protocolo de back-end como Padrão. O limite de conexão do WebSocket é 20 mil. Quando você atingir esse limite, há falha na conexão.

    Você também pode usar o RSocket com base no WebSocket.

  • Qual é a diferença entre as configurações de entrada e entrada?

    A configuração de entrada ainda pode ser usada no SDK e na CLI do Azure e essa configuração se aplica a todos os aplicativos na instância de serviço. Depois que as configurações de entrada definirem um aplicativo, a configuração de entrada não poderá afetá-lo. Não recomendamos que novos scripts usem a configuração de entrada, pois planejamos interromper o suporte a esse recurso no futuro.

  • Quando as configurações de entrada são usadas junto com o Gateway de Aplicativo/APIM, o que acontece quando você define o tempo limite na entrada dos Aplicativos Spring do Azure e no Gateway de Aplicativo/APIM?

    O tempo limite mais curto é usado.

  • Você precisa de configuração adicional no Gateway de Aplicativo/APIM, se o suporte de ponta a ponta for necessário para gRPC ou WebSocket?

    Você não precisa de configuração adicional, contanto que o Gateway de Aplicativo ofereça suporte a gRPC.

  • Há suporte para porta configurável?

    No momento, não há suporte para porta configurável (80/443).

Próximas etapas