Partilhar via


Personalizar a configuração de ingress no Azure Spring Apps

Nota

Os planos Basic, Standarde Enterprise entraram em um período de aposentadoria em 17 de março de 2025. Para obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.

O plano de consumo padrão e o plano dedicado entraram em um período de desativação a 30 de setembro de 2024, com um encerramento completo até o final de março de 2025. Para obter mais informações, consulte Migrar o consumo padrão e o plano dedicado do Azure Spring Apps para Aplicações de Contêiner do Azure.

Este artigo aplica-se a:✅ Basic/Standard ✅ Enterprise

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

O serviço Azure Spring Apps usa um controlador de entrada subjacente para lidar com o gerenciamento de tráfego de aplicativos. As seguintes configurações de entrada são suportadas para personalização.

Nome Configuração de entrada Valor padrão Intervalo válido Descrição
ingress-read-timeout proxy-read-timeout 300 [1,1800] O tempo limite em segundos para ler uma resposta de um servidor intermediário.
ingress-send-timeout proxy-send-timeout 60 [1,1800] O tempo limite em segundos para transmitir uma solicitação ao servidor por proxy.
session-affinity affinity Nenhuma Session, None O tipo de afinidade que faz com que a solicitação chegue à mesma réplica de pod que estava respondendo à solicitação anterior. Defina session-affinity como Cookie para ativar 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é ao cookie expirar, correspondendo à 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 Predefinido Padrão, GRPC Define o protocolo de back-end para indicar como o NGINX deve se comunicar com o serviço de back-end. Padrão significa HTTP/HTTPS/WebSocket. A backend-protocol configuração só se aplica ao tráfego de cliente para aplicativo. Para tráfego de aplicativo para aplicativo dentro da mesma instância de serviço, escolha qualquer protocolo para tráfego de aplicativo para aplicativo sem modificar a backend-protocol configuração. O protocolo não restringe sua escolha de protocolo para tráfego de aplicativo para aplicativo dentro da mesma instância de serviço.
client-auth client-auth 0 selecionados - Selecione os certificados com a chave pública que você carregou nas configurações TLS/SSL. Ingress concatena esses certificados em um e, em seguida, usa-o para autenticação de cliente.

Pré-requisitos

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

  • CLI do Azure com a extensão Azure Spring Apps. Use o comando a seguir para remover versões anteriores e instalar a extensão mais recente. Se você instalou anteriormente a extensão spring-cloud, desinstale-a para evitar incompatibilidades de configuração e 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 ao criar.

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>

Nota

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

Este 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
  • Idade máxima do cookie de sessão: 1800 segundos
  • Protocolo de back-end: Padrão
  • Autenticação do cliente: cert-name

Atualizar as configurações de entrada para 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 deseja configurar.

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

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

    Captura de ecrã da página Configuração do portal do Azure a mostrar o separador Definições de entrada.

FAQ

  • Como ativar o gRPC?

    Defina o protocolo de back-end como GRPC.

  • Como ativar o WebSocket?

    WebSocket é habilitado por padrão se você definir o protocolo de back-end como Padrão. O limite de conexão WebSocket é 20000. Quando você atinge esse limite, a conexão falha.

    Você também pode usar RSocket baseado em WebSocket.

  • Qual é a diferença entre configuração de ingress e configurações de ingress?

    A configuração de ingresso ainda pode ser usada na CLI e no SDK do Azure, e essa configuração se aplica a todos os aplicativos dentro da instância de serviço. Depois que as configurações de ingresso ajustam um aplicativo, a configuração de ingresso não pode afetá-lo. Não é recomendado que novos scripts usem a configuração de ingresso, pois iremos parar de oferecer suporte a ela no futuro.

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

    O tempo limite mais curto é usado.

  • Você precisa de configuração extra no App Gateway/APIM se precisar ter suporte de ponta a ponta para gRPC ou WebSocket?

    Você não precisa de configuração extra, desde que o App Gateway suporte gRPC.

  • A porta configurável é suportada?

    A porta configurável não é suportada atualmente (80/443).

Próximos passos