Configurar o Spring Cloud Gateway do VMware

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 Standard de consumo e dedicado 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 Standard de consumo e dedicado dos Aplicativos Spring do Azure para os Aplicativos de Contêiner do Azure.

Este artigo se aplica a(o):❌ Básico/Standard ✔️ Enterprise

Esse artigo mostra como configurar o Spring Cloud Gateway da VMware para a VMware Tanzu com o plano Enterprise dos Aplicativos Spring do Azure.

O Spring Cloud Gateway do VMware é um componente comercial do VMware Tanzu baseado no projeto do Spring Cloud Gateway de código aberto. O Spring Cloud Gateway da VMware para Tanzu cuida de preocupações variadas das equipes de desenvolvimento de API, como logon único (SSO), controle de acesso, limitação de taxa, resiliência, segurança, entre outros. Você pode acelerar a entrega de API usando padrões nativos de nuvem modernos em sua escolha de linguagem de programação para desenvolvimento de API.

Uma instância do Spring Cloud Gateway da VMware encaminha o tráfego de acordo com as regras. Ela dá suporte à escala horizontal/vertical e à escala para cima/para baixo para atender a uma carga de tráfego dinâmico.

O Spring Cloud Gateway do VMware inclui os seguintes recursos:

  • Configuração de roteamento dinâmico, independente de aplicativos individuais, que você pode aplicar e alterar sem recompilar
  • Filtros de rota de API comercial para transporte de declarações Token Web JSON (JWT) autorizadas para os serviços de aplicativo
  • Autorização de certificado do cliente
  • Abordagens de limitação de taxa
  • Configuração do disjuntor
  • Suporte para acessar serviços de aplicativo usando as credenciais de Autenticação HTTP Básica.

Para a integração com o portal de API do VMware Tanzu, o Spring Cloud Gateway da VMware gera automaticamente a documentação do OpenAPI versão 3 após quaisquer adições ou alterações na configuração da rota. Para obter mais informações, consulte Usar o portal de API do VMware Tanzu.

Pré-requisitos

Habilitar ou desabilitar o Spring Cloud Gateway da VMware

Você pode habilitar ou desabilitar o Spring Cloud Gateway da VMware após a criação da instância de serviço usando o portal do Azure ou a CLI do Azure. Antes de desabilitar o Spring Cloud Gateway da VMware, você deve cancelar a atribuição de seu ponto de extremidade e remover todas as configurações de rota.

Use as seguintes etapas para habilitar ou desabilitar o Spring Cloud Gateway da VMware usando o portal do Azure:

  1. Acesse o recurso de serviço e selecione Spring Cloud Gateway.
  2. Selecione Gerenciar.
  3. Selecione ou desmarque a caixa de seleção Habilitar o Spring Cloud Gateway e, em seguida, selecione Salvar.

Agora você pode exibir o estado do Spring Cloud Gateway na página do Spring Cloud Gateway.

Captura de tela do portal do Azure que mostra a página do Spring Cloud Gateway.

Reinicie o Spring Cloud Gateway da VMware

Depois de concluir a ação de reinicialização, as instâncias do Spring Cloud Gateway da VMware são reiniciadas sem interrupção.

Use as seguintes etapas para reiniciar o Spring Cloud Gateway da VMware usando o portal do Azure:

  1. Acesse o recurso de serviço e selecione Spring Cloud Gateway.
  2. Selecione Reiniciar.
  3. Selecione OK para confirmar a alteração.

Captura de tela do portal do Azure que mostra a página do Spring Cloud Gateway com a mensagem de confirmação sobre como reiniciar o gateway.

Como atribuir um ponto de extremidade público ao Spring Cloud Gateway da VMware

Esta seção descreve como atribuir um ponto de extremidade ao Spring Cloud Gateway da VMware e configurar suas propriedades.

Para atribuir um ponto de extremidade no portal do Azure, use as seguintes etapas:

  1. Abra sua instância dos Aplicativos Spring do Azure.
  2. Selecione Spring Cloud Gateway no painel de navegação e selecione Visão geral.
  3. Defina Atribuir ponto de extremidade como Sim.

Após alguns minutos, a URL mostra a URL do ponto de extremidade configurada. Salve-a para uso posterior.

Captura de tela do portal do Azure que mostra a página de visão geral do Spring Cloud Gateway com a alternância para atribuir um ponto de extremidade.

Configurar os metadados do Spring Cloud Gateway do VMware

Os metadados do Spring Cloud Gateway da VMware geram automaticamente a documentação do OpenAPI versão 3. Você pode configurar metadados do Spring Cloud Gateway da VMware para exibir grupos de rotas no portal de API da VMware Tanzu. Para obter mais informações, consulte Usar o portal de API da VMware Tanzu.

A tabela a seguir descreve as opções de metadados disponíveis:

Propriedade Descrição
title Um título que descreve o contexto das APIs disponíveis na instância do Spring Cloud Gateway da VMware. O valor padrão é Spring Cloud Gateway for K8S.
description Uma descrição detalhada das APIs disponíveis na instância do Spring Cloud Gateway da VMware. O valor padrão é Generated OpenAPI 3 document that describes the API routes configured for '[Gateway instance name]' Spring Cloud Gateway instance deployed under '[namespace]' namespace.*.
documentation O local da documentação da API disponível na instância do Spring Cloud Gateway da VMware.
version A versão das APIs disponíveis nesta instância do Spring Cloud Gateway da VMware. O valor padrão é unspecified.
serverUrl A URL base para acessar APIs na instância do Spring Cloud Gateway da VMware. Essa propriedade é obrigatória se você quiser se integrar ao portal de API.

Você pode usar o portal do Azure ou a CLI do Azure para editar propriedades de metadados.

Para editar metadados no portal do Azure, use as seguintes etapas:

  1. Abra sua instância dos Aplicativos Spring do Azure.
  2. Selecione Spring Cloud Gateway no painel de navegação e selecione Configuração.
  3. Especifique valores para as propriedades listadas para API.
  4. Selecione Salvar.

Captura de tela do portal do Azure que mostra a guia de configuração do Spring Cloud Gateway com a seção da API destacada.

Configurar logon único

O Spring Cloud Gateway da VMware dá suporte à autenticação e autorização por meio de logon único (SSO) com um provedor de identidade OpenID. O provedor dá suporte ao protocolo de Descoberta do OpenID Connect. A tabela a seguir descreve as propriedades do SSO:

Propriedade Necessário? Descrição
issuerUri Sim O URI declarado como o Identificador do Emissor. Por exemplo, se issuerUri for https://example.com, uma Solicitação de Configuração do Provedor OpenID é feita para https://example.com/.well-known/openid-configuration. Espera-se que o resultado seja uma resposta de configuração do Provedor OpenID.
clientId Yes A ID do cliente do OpenID Connect do seu provedor de identidade.
clientSecret Yes O segredo do cliente do OpenID Connect do seu provedor de identidade.
scope Yes Uma lista de escopos a incluir em tokens de identidade JWT. Essa lista deve ser baseada nos escopos permitidos pelo provedor de identidade.

Para configurar o SSO com o Microsoft Entra ID, consulte Configurar o logon único usando o Microsoft Entra ID para o Spring Cloud Gateway e o Portal de API.

Você pode usar o portal do Azure ou a CLI do Azure para editar propriedades de SSO.

Para editar propriedades de SSO no portal do Azure, use as seguintes etapas:

  1. Abra sua instância dos Aplicativos Spring do Azure.
  2. Selecione Spring Cloud Gateway no painel de navegação e selecione Configuração.
  3. Especifique valores para as propriedades listadas para SSO.
  4. Selecione Salvar.

Captura de tela do portal do Azure que mostra a guia de configuração do Spring Cloud Gateway com a seção para logon único destacada.

O Spring Cloud Gateway da VMware dá suporte apenas aos servidores de autorização que dão suporte ao protocolo de Descoberta do OpenID Connect. Configure o servidor de autorização externo para permitir redirecionamentos para o gateway. Veja a documentação do servidor de autorização e adicione https://<gateway-external-url>/login/oauth2/code/sso à lista de URIs de redirecionamento permitidos.

Ao configurar a propriedade de SSO incorreta, como a senha incorreta, deve-se removê-la inteiramente e adicionar a configuração correta.

Depois de configurar o SSO, lembre-se de definir ssoEnabled: true para as rotas do Spring Cloud Gateway da VMware.

Configurar o logoff do SSO

As instâncias de serviço do Spring Cloud Gateway da VMware fornecem um ponto de extremidade de API padrão para sair da sessão de SSO atual. O caminho para esse ponto de extremidade é /scg-logout. O logoff resulta em um dos seguintes resultados, dependendo de como você chama o ponto de extremidade de logoff:

  • Faça logoff da sessão e redirecione para o logoff do provedor de identidade (IdP).
  • Faça logoff da sessão da instância de serviço.

Fazer logoff da sessão de IdP e SSO

Se você enviar uma solicitação GET para o ponto de extremidade /scg-logout, o ponto de extremidade enviará uma resposta de redirecionamento 302 para a URL de logoff do IdP. Para obter o ponto de extremidade para retornar o usuário a um caminho na instância de serviço do gateway, adicione um parâmetro de redirecionamento à solicitação GET com o ponto de extremidade/scg-logout. Por exemplo, você pode usar ${server-url}/scg-logout?redirect=/home.

O valor do parâmetro de redirecionamento deve ser um caminho válido na instância de serviço do Spring Cloud Gateway da VMware. Você não pode redirecionar para uma URL externa.

As etapas a seguir descrevem um exemplo de como implementar a função em seus microsserviços:

  1. Obtenha uma configuração de rota para rotear a solicitação de logoff para seu aplicativo. Para obter um exemplo, consulte a configuração de rota no repositório animal-rescue no GitHub.

  2. Adicione qualquer lógica de logoff necessária ao aplicativo. No final, você precisa de uma solicitação GET para o ponto de extremidade /scg-logout do gateway, conforme mostrado no valor return do método getActionButton no repositório animal-rescue.

Faça logoff apenas da sessão de SSO

Se você enviar a solicitação GET para o ponto de extremidade /scg-logout usando XMLHttpRequest, o redirecionamento 302 poderá ser engolido e não tratado no manipulador de resposta. Nesse caso, o usuário só seria desconectado da sessão de SSO na instância de serviço do Spring Cloud Gateway da VMware. O usuário ainda teria uma sessão IdP válida. Normalmente, se o usuário tentar fazer logon novamente, ele será enviado automaticamente para o gateway como autenticado do IdP.

Você precisa ter uma configuração de rota para rotear a solicitação de logoff para seu aplicativo, conforme mostrado no exemplo a seguir. Esse código faz uma sessão de SSO de logoff somente no gateway.

const req = new XMLHttpRequest();
req.open("GET", "/scg-logout);
req.send();

Configurar o compartilhamento de recursos entre origens

O compartilhamento de recursos entre origens (CORS) permite que recursos restritos em uma página da Web sejam solicitados por outro domínio externo ao domínio cujo primeiro recurso foi atendido. As opções de configuração de CORS disponíveis estão descritas na tabela a seguir.

Propriedade Descrição
allowedOrigins Origens com permissão para fazer solicitações entre sites
allowedOriginPatterns Padrões de origem permitidos para fazer solicitações entre sites
allowedMethods Métodos HTTP permitidos em solicitações entre sites
allowedHeaders Cabeçalhos permitidos em solicitações entre sites
maxAge Quanto tempo, em segundos, os clientes armazenam em cache a resposta de uma solicitação de pré-voo
allowCredentials Se as credenciais do usuário têm suporte em solicitações entre sites
exposedHeaders Cabeçalhos de resposta HTTP a serem exposto para solicitações entre sites

Certifique-se de ter a configuração CORS correta se desejar integrar com o portal API. Para obter mais informações, consulte a seção Atribuir um ponto de extremidade público ao Spring Cloud Gateway da VMware.

Usar escala de serviço

Você pode personalizar a alocação de recursos para instâncias do Spring Cloud Gateway da VMware, incluindo vCPU, memória e contagem de instâncias.

Para alta disponibilidade, não recomendamos usar uma única réplica.

A tabela a seguir descreve o uso do recurso padrão.

Nome de componente Contagem de instâncias vCPU por instância Memória por instância
Spring Cloud Gateway do VMware 2 Um núcleo 2 GiB
Operador do Spring Cloud Gateway do VMware 2 Um núcleo 2 GiB

Configurar o TLS entre o gateway e os aplicativos

Para aprimorar a segurança e ajudar a proteger informações confidenciais contra interceptação por partes não autorizadas, você pode habilitar o Transport Layer Security (TLS) entre o Spring Cloud Gateway da VMware e seus aplicativos.

Antes de configurar o TLS, você precisa ter um aplicativo habilitado para TLS e um certificado TLS. Para preparar um certificado TLS, gere um certificado de uma autoridade de certificação (AC) confiável. O certificado verifica a identidade do servidor e estabelece uma conexão segura.

Depois de ter um aplicativo habilitado para TLS em execução no Aplicativos Spring do Azure, carregue o certificado nos Aplicativos Spring do Azure. Para obter mais informações, consulte a seção Importar um certificado de Usar certificados TLS/SSL em seu aplicativo nos Aplicativos Spring do Azure.

Com o certificado atualizado para os Aplicativos Spring do Azure, você pode configurar o certificado TLS para o gateway e habilitar a verificação de certificado. Você pode configurar o certificado no portal do Azure ou usando a CLI do Azure.

Use as seguintes etapas para configurar o certificado no portal do Azure:

  1. Em sua instância dos Aplicativos Spring do Azure, selecione Spring Cloud Gateway no painel de navegação.
  2. Na página do Spring Cloud Gateway, selecione Gerenciamento de certificados.
  3. Selecione Habilitar verificação de certificado.
  4. Selecione o certificado TLS em Certificados.
  5. Selecione Salvar.

A atualização da configuração pode levar alguns minutos. Você deverá receber uma notificação quando a configuração for concluída.

Preparar a configuração de rota

Você deve especificar o protocolo como HTTPS na configuração de rota. O objeto JSON a seguir instrui o Spring Cloud Gateway da VMware a usar o protocolo HTTPS para todo o tráfego entre o gateway e o aplicativo.

  1. Crie um arquivo chamado test-tls-route.json com o seguinte conteúdo:

    {
        "routes": [
          {
            "title": "Test TLS app",
            "predicates": [
              "Path=/path/to/your/app",
              "Method=GET"
            ]
          }
         ],
        "uri": "https://<app-custom-domain-name>"
    }
    
  2. Use o seguinte comando para aplicar a regra ao aplicativo:

    az spring gateway route-config create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name test-tls-app \
        --routes-file test-tls-route.json
    

Agora você pode testar se o aplicativo está habilitado para TLS com o ponto de extremidade do gateway. Para obter mais informações, consulte a seção Configurar rotas de Usar o Spring Cloud Gateway.

Girar certificados

À medida que os certificados expiram, você precisa girar certificados no Spring Cloud Gateway da VMware usando as seguintes etapas:

  1. Gere novos certificados de uma AC confiável.
  2. Importe os certificados para Aplicativos Spring do Azure. Para obter mais informações, consulte a seção Importar um certificado de Usar certificados TLS/SSL em seu aplicativo nos Aplicativos Spring do Azure.
  3. Sincronize os certificados usando o portal do Azure ou a CLI do Azure.

O Spring Cloud Gateway da VMware é reiniciado para garantir que o gateway use o novo certificado para todas as conexões.

Use as seguintes etapas para sincronizar certificados:

  1. Em sua instância dos Aplicativos Spring do Azure, selecione Spring Cloud Gateway no painel de navegação.
  2. Na página do Spring Cloud Gateway, selecione Reiniciar e confirme a operação.

Definições da configuração do dimensionamento automático

Você pode definir modos de dimensionamento automático para o Spring Cloud Gateway da VMware.

A lista a seguir mostra as opções disponíveis para o gerenciamento de demanda de Dimensionamento Automático:

  • A opção de Dimensionamento manual mantém uma contagem de instâncias fixa. Você pode escalar horizontalmente para um máximo de 10 instâncias. Este valor altera o número de instâncias separadas em execução do Spring Cloud Gateway.
  • A opção de Dimensionamento automático personalizado é dimensionada em qualquer agendamento, com base em qualquer métrica.

Na portal do Azure, escolha como deseja escalar. A figura a seguir mostra as opções de Dimensionamento automático personalizado e as configurações de modo:

Captura de tela do portal do Azure mostrando a página Configuração de dimensionamento automático com a opção Dimensionamento automático personalizado realçada.

Para obter mais informações sobre as métricas disponíveis, consulte a seção Opções de métricas do usuário de Métricas para os Aplicativos Spring do Azure.

Configurar o cache de resposta

A configuração do cache de resposta fornece uma maneira de definir um cache de resposta HTTP que você pode aplicar globalmente ou no nível da rota.

Habilitar o cache de resposta globalmente

Depois de habilitar o cache de resposta globalmente, o cache de resposta será habilitado automaticamente para todas as rotas aplicáveis.

Use as seguintes etapas para habilitar o cache de resposta globalmente:

  1. Em sua instância dos Aplicativos Spring do Azure, selecione Spring Cloud Gateway no painel de navegação.
  2. Na página do Spring Cloud Gateway, selecione Configuração.
  3. Na seção Cache de Resposta, selecione Habilitar cache de resposta e, em seguida, defina Escopo como Instância.
  4. Defina Tamanho e Vida útil para o cache de resposta.
  5. Selecione Salvar.

Use as seguintes etapas para desabilitar o cache de resposta:

  1. Em sua instância dos Aplicativos Spring do Azure, selecione Spring Cloud Gateway no painel de navegação.
  2. Na página do Spring Cloud Gateway, selecione Configuração.
  3. Na seção Cache de Resposta, desmarque Habilitar cache de resposta.
  4. Selecione Salvar.

Habilitar o cache de resposta no nível da rota

Para habilitar o cache de resposta para qualquer rota, use o filtro LocalResponseCache. O exemplo a seguir mostra como usar o filtro LocalResponseCache na configuração da regra de roteamento:

{
   "filters": [
      "<other-app-level-filter-of-route>",
   ],
   "routes": [
      {
        "predicates": [
            "Path=/api/**",
            "Method=GET"
         ],
         "filters": [
            "<other-filter-of-route>",
            "LocalResponseCache=3m, 1MB"
         ],
      }
   ]
}

Para obter mais informações, consulte a seção LocalResponseCache sobre Como usar filtros de rota do Spring Cloud Gateway da VMware com o plano Enterprise dos Aplicativos Spring do Azure e LocalResponseCache na documentação da VMware.

Em vez de configurar size e timeToLive para cada filtro LocalResponseCache individualmente, você pode definir esses parâmetros no nível do Spring Cloud Gateway. Essa opção permite que você use o filtro LocalResponseCache sem especificar esses valores inicialmente, mantendo a flexibilidade para substituí-los posteriormente.

Use as etapas a seguir para habilitar o cache de resposta no nível da rota e definir size e timeToLive:

  1. Em sua instância dos Aplicativos Spring do Azure, selecione Spring Cloud Gateway no painel de navegação.
  2. Na página do Spring Cloud Gateway, selecione Configuração.
  3. Na seção Cache de Resposta, selecione Habilitar cache de resposta e, em seguida, defina Escopo como Rota.
  4. Defina Tamanho e Vida útil para o cache de resposta.
  5. Selecione Salvar.

Use as etapas a seguir para desabilitar o cache de resposta no nível da rota, o que limpa size e timeToLive:

  1. Em sua instância dos Aplicativos Spring do Azure, selecione Spring Cloud Gateway no painel de navegação.
  2. Na página do Spring Cloud Gateway, selecione Configuração.
  3. Na seção Cache de Resposta, desmarque Habilitar cache de resposta.
  4. Selecione Salvar.

O exemplo a seguir mostra como usar o filtro LocalResponseCache quando size e timeToLive são definidos no nível do Spring Cloud Gateway:

{
   "filters": [
      "<other-app-level-filter-of-route>",
   ],
   "routes": [
      {
        "predicates": [
            "Path=/api/path1/**",
            "Method=GET"
         ],
         "filters": [
            "<other-filter-of-route>",
            "LocalResponseCache"
         ],
      },
      {
        "predicates": [
            "Path=/api/path2/**",
            "Method=GET"
         ],
         "filters": [
            "<other-filter-of-route>",
            "LocalResponseCache=3m, 1MB"
         ],
      }
   ]
}

Configurar variáveis de ambiente

O serviço Aplicativos Spring do Azure gerencia e ajusta o Spring Cloud Gateway da VMware. Com exceção dos casos de uso que configuram o monitoramento de desempenho do aplicativo (APM) e o nível de log, normalmente você não precisa configurar o Spring Cloud Gateway da VMware com variáveis de ambiente.

Se você tiver requisitos que não pode atender por outras configurações descritas neste artigo, poderá tentar configurar as variáveis de ambiente mostradas na lista de propriedades do aplicativo Comum. Verifique sua configuração em seu ambiente de teste antes de aplicá-la ao seu ambiente de produção.

Para configurar variáveis de ambiente no portal do Azure, use as seguintes etapas:

  1. Na instância dos Aplicativos Spring do Azure, selecione Spring Cloud Gateway no painel de navegação e selecione Configuração.
  2. Preencha os pares chave/valor para as variáveis de ambiente nas seções Propriedades e Segredos. Você pode incluir variáveis com informações confidenciais na seção Segredos.
  3. Selecione Salvar para salvar as alterações.

Depois de atualizar variáveis de ambiente, o Spring Cloud Gateway da VMware será reiniciado.

Configurar o monitoramento de desempenho de aplicativos

Para monitorar o Spring Cloud Gateway da VMware, você pode configurar o APM. A tabela a seguir lista os cinco tipos de agentes Java do APM que o Spring Cloud Gateway da VMware fornece, juntamente com suas variáveis de ambiente necessárias.

Agente de Java Variáveis de ambiente necessárias
Application Insights APPLICATIONINSIGHTS_CONNECTION_STRING
Dynatrace DT_TENANT
DT_TENANTTOKEN
DT_CONNECTION_POINT
New Relic NEW_RELIC_LICENSE_KEY
NEW_RELIC_APP_NAME
AppDynamics APPDYNAMICS_AGENT_APPLICATION_NAME
APPDYNAMICS_AGENT_TIER_NAME
APPDYNAMICS_AGENT_NODE_NAME
APPDYNAMICS_AGENT_ACCOUNT_NAME
APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY
APPDYNAMICS_CONTROLLER_HOST_NAME
APPDYNAMICS_CONTROLLER_SSL_ENABLED
APPDYNAMICS_CONTROLLER_PORT
APM elástico ELASTIC_APM_SERVICE_NAME
ELASTIC_APM_APPLICATION_PACKAGES
ELASTIC_APM_SERVER_URL

Para outras variáveis de ambiente com suporte, consulte as seguintes fontes:

Para habilitar o monitoramento do APM no Spring Cloud Gateway da VMware, você pode criar a configuração do APM no nível da instância de serviço e associá-la ao Spring Cloud Gateway. Dessa forma, você pode configurar convenientemente o APM apenas uma vez e associar o mesmo APM ao Spring Cloud Gateway e aos seus aplicativos.

Use as seguintes etapas para configurar o APM usando o portal do Azure:

  1. Configure o APM no nível da instância de serviço com o nome, o tipo e as propriedades do APM. Para obter mais informações, consulte a seção Gerenciar APMs no nível da instância de serviço (recomendado) de Como configurar a integração do APM e certificados de CA.

    Captura de tela do portal do Azure que mostra a página do editor do APM dos Aplicativos Spring do Azure.

  2. Selecione Spring Cloud Gateway no painel de navegação e selecione APM.

  3. Escolha o nome do APM na lista de nomes de referência do APM. A lista inclui todos os nomes do APM configurados na etapa 1.

  4. Selecione Salvar para associar nomes de referência do APM ao Spring Cloud Gateway. O gateway é reiniciado para habilitar o monitoramento do APM.

Gerenciar o APM no Spring Cloud Gateway da VMware (preterido)

Você pode usar o portal do Azure ou a CLI do Azure para configurar o APM no Spring Cloud Gateway da VMware. Você também pode especificar os tipos de agentes Java do APM a serem usados e as variáveis de ambiente do APM correspondentes às quais eles dão suporte.

Use as seguintes etapas para configurar o APM usando o portal do Azure:

  1. Na instância dos Aplicativos Spring do Azure, selecione Spring Cloud Gateway no painel de navegação e selecione Configuração.
  2. Escolha o tipo do APM na lista do APM para monitorar um gateway.
  3. Preencha os pares chave/valor para as variáveis de ambiente do APM nas seções Propriedades e Segredos. Você pode colocar variáveis com informações confidenciais em Segredos.
  4. Selecione Salvar para salvar as alterações.

A atualização da configuração pode levar alguns minutos. Você deverá receber uma notificação quando a configuração for concluída.

Observação

Os Aplicativos Spring do Azure atualizam o agente do APM e os aplicativos implantados com a mesma cadência para manter a compatibilidade de agentes entre o Spring Cloud Gateway da VMware e o Aplicativos Spring do Azure.

Por padrão, os Aplicativos Spring do Azure imprime os logs do agente Java do APM para STDOUT. Esses logs são incluídos nos logs do Spring Cloud Gateway da VMware. Você pode verificar a versão do agente do APM usada nos logs. Você pode consultar esses logs no Log Analytics para solucionar problemas.

Para fazer com que os agentes do APM funcionem corretamente, aumente a CPU e a memória do Spring Cloud Gateway da VMware.

Configurar os níveis de log

Você pode configurar os níveis de log do Spring Cloud Gateway da VMware das seguintes maneiras para obter mais detalhes ou reduzir logs:

  • Você pode definir níveis de log como TRACE, DEBUG, INFO, WARN, ERROR ou OFF. O nível de log padrão do Spring Cloud Gateway da VMware é INFO.
  • Você pode desativar logs definindo os níveis de log como OFF.
  • Quando o nível de log é definido como WARN, ERROR ou OFF, você pode ser obrigado a ajustá-lo para INFO ao solicitar suporte da equipe dos Aplicativos Spring do Azure. Essa alteração causa uma reinicialização do Spring Cloud Gateway da VMware.
  • Quando o nível de log é definido como TRACE ou DEBUG, isso pode afetar o desempenho do Spring Cloud Gateway da VMware. Tente evitar essas configurações em seu ambiente de produção.
  • Você pode definir níveis de log para o agente root ou para agentes específicos como io.pivotal.spring.cloud.gateway.

Os seguintes agentes podem conter informações valiosas de solução de problemas nos níveis TRACE e DEBUG:

Agente Descrição
io.pivotal.spring.cloud.gateway Filtros e predicados, incluindo extensões personalizadas
org.springframework.cloud.gateway Gateway de API
org.springframework.http.server.reactive Interações de servidor HTTP
org.springframework.web.reactive Fluxos reativos do gateway de API
org.springframework.boot.autoconfigure.web Configuração automática do gateway de API
org.springframework.security.web Informações de autenticação e autorização
reactor.netty Reator Netty

Para obter chaves de variável de ambiente, adicione o prefixo logging.level. e defina o nível de log configurando o ambiente logging.level.{loggerName}={logLevel}. Os exemplos a seguir mostram as etapas para o portal do Azure e a CLI do Azure.

Para configurar os níveis de log no portal do Azure, use as seguintes etapas:

  1. Na instância dos Aplicativos Spring do Azure, selecione Spring Cloud Gateway no painel de navegação e selecione Configuração.
  2. Preencha os pares chave/valor para as variáveis de ambiente dos níveis de log nas seções Propriedades e Segredos. Se o nível de log for informações confidenciais no seu caso, você poderá incluí-lo usando a seção Segredos.
  3. Selecione Salvar para salvar as alterações.

Captura de tela do portal do Azure que mostra as variáveis de ambiente do Spring Cloud Gateway para configurar os níveis de log.

Atualizar a configuração do complemento

O recurso de configuração de complemento permite personalizar determinadas propriedades do Spring Cloud Gateway da VMware usando uma cadeia de caracteres de formato JSON. O recurso é útil quando você precisa configurar propriedades que não são expostas por meio da API REST.

A configuração do complemento é um objeto JSON com pares chave/valor que representam a configuração desejada. O exemplo a seguir mostra a estrutura do formato JSON:

{
    "<addon-key-name>": {
        "<addon-key-name>": "<addon-value>"
        ...
    },
    "<addon-key-name>": "<addon-value>",
    ...
}

A lista a seguir mostra as configurações de complemento com suporte para os nomes de chave de complemento e tipos de valor. Esta lista está sujeita a alterações à medida que atualizamos a versão do Spring Cloud Gateway da VMware.

  • Configuração de SSO:

    • Nome da chave: sso

    • Tipo de valor: Objeto

    • Propriedades:

      • RolesAttributeName (Cadeia de caracteres): especifica o nome do atributo que contém as funções associadas à sessão de SSO.
      • InactiveSessionExpirationInMinutes (Inteiro): especifica o tempo de expiração, em minutos, para sessões de SSO inativas. Um valor de 0 significa que a sessão nunca expira.
    • Exemplo:

      {
          "sso": {
              "rolesAttributeName": "roles",
              "inactiveSessionExpirationInMinutes": 1
          }
      }
      
  • Configuração de metadados:

    • Nome da chave: api

    • Tipo de valor: Objeto

    • Propriedades

      • groupId (Cadeia de caracteres): um identificador exclusivo para o grupo de APIs disponíveis na instância do Spring Cloud Gateway da VMware. O nome só pode conter letras minúsculas e números.
    • Exemplo:

      {
          "api": {
              "groupId": "id1"
          }
      }
      
  • Configuração do pod

    • Nome da chave: PodOverrides, que é usado para especificar substituições para a configuração de pod padrão.

    • Tipo de valor: Objeto

    • Propriedades

      • Containers: esta matriz contém a configuração para contêineres individuais dentro do pod. No momento, há suporte apenas para o contêiner nomeado gateway.
        • Name: especifica o nome do contêiner. O contêiner deve ser nomeado gateway.
        • Lifecycle: PreStop é um gancho de ciclo de vida executado quando um contêiner está prestes a ser encerrado. Este gancho permite que você execute qualquer limpeza necessária antes que o contêiner pare.
      • TerminationGracePeriodSeconds: especifica a quantidade de tempo pela qual o Kubernetes aguarda que um pod seja terminado normalmente antes de encerrá-lo à força.
    • Exemplo:

      {
          "PodOverrides": {
              "Containers": [
                  {
                      "Name": "gateway",
                      "Lifecycle": {
                          "PreStop": {
                              "Exec": {
                                  "Command": [
                                      "/bin/sh",
                                      "-c",
                                      "sleep 20"
                                  ]
                              }
                          }
                      }
                  }
              ],
              "TerminationGracePeriodSeconds": 120
          }
      }
      

      Quando um pod que contém este contêiner está sendo encerrado, o gancho PreStop executa o comando /bin/sh -c 'sleep 20', fazendo com que o contêiner seja colocado em suspensão por 20 segundos. Esta pausa dá ao contêiner algum tempo para concluir as tarefas ou a limpeza em andamento antes que ele realmente pare.

      A configuração TerminationGracePeriodSeconds fornece um total de 120 segundos para que o pod termine normalmente, incluindo o tempo gasto por quaisquer ganchos de ciclo de vida, como PreStop.

Use as seguintes etapas para atualizar a configuração do complemento.

  1. Na instância dos Aplicativos Spring do Azure, selecione Spring Cloud Gateway no painel de navegação e selecione Configuração.
  2. Especifique o valor JSON para Configurações de Complemento.
  3. Selecione Salvar.

Próximas etapas