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.
Entre no portal usando uma conta associada à assinatura do Azure que contém a instância do Azure Spring Apps.
Navegue até o painel Aplicativos e selecione o aplicativo que você deseja configurar.
Navegue até o painel Configuração e selecione a guia Configurações de entrada.
Atualize as configurações de entrada e selecione Salvar.
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).