Configurare VMware Spring Cloud Gateway
Nota
I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.
Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.
Questo articolo si applica a: ❎ Basic/Standard ✅ Enterprise
Questo articolo illustra come configurare VMware Spring Cloud Gateway per VMware Tanzu con il piano Enterprise di Azure Spring Apps.
VMware Spring Cloud Gateway è un componente VMware Tanzu commerciale basato sul progetto Spring Cloud Gateway open source. VMware Spring Cloud Gateway per Tanzu gestisce le problematiche trasversali per i team di sviluppo di API, ad esempio Single Sign-On (SSO), il controllo di accesso, la limitazione della frequenza, la resilienza e la sicurezza. È possibile accelerare il recapito delle API usando modelli nativi del cloud moderni nella scelta del linguaggio di programmazione per lo sviluppo di API.
Un'istanza di VMware Spring Cloud Gateway instrada il traffico in base alle regole. Supporta il ridimensionamento in/out e l'aumento/riduzione per soddisfare un carico di traffico dinamico.
VMware Spring Cloud Gateway include le funzionalità seguenti:
- Configurazione del routing dinamico, indipendentemente da singole applicazioni, che è possibile applicare e modificare senza ricompilare
- Filtri di route dell'API commerciale per il trasporto di attestazioni JWT (Json Web Token) autorizzate ai servizi dell'applicazione
- Autorizzazione del certificato client
- Approcci di limitazione della frequenza
- Configurazione dell'interruttore
- Supporto per l'accesso ai servizi dell'applicazione tramite credenziali di autenticazione di base HTTP
Per l'integrazione con il portale API per VMware Tanzu, VMware Spring Cloud Gateway genera automaticamente la documentazione OpenAPI versione 3 dopo eventuali aggiunte o modifiche alla configurazione di route. Per altre informazioni, vedere Usare il portale API per VMware Tanzu.
Prerequisiti
- Un'istanza del servizio del piano Enterprise di Azure Spring Apps già con VMware Spring Cloud Gateway abilitata. Per altre informazioni, vedere Avvio rapido: Creare e distribuire app in Azure Spring Apps usando il piano Enterprise.
- Interfaccia della riga di comando di Azure versione 2.0.67 o successiva. Usare il comando seguente per installare l'estensione Azure Spring Apps:
az extension add --name spring
.
Abilitare o disabilitare VMware Spring Cloud Gateway
È possibile abilitare o disabilitare VMware Spring Cloud Gateway dopo la creazione dell'istanza del servizio usando il portale di Azure o l'interfaccia della riga di comando di Azure. Prima di disabilitare VMware Spring Cloud Gateway, è necessario annullarne l'assegnazione e rimuovere tutte le configurazioni di route.
Usare la procedura seguente per abilitare o disabilitare VMware Spring Cloud Gateway usando il portale di Azure:
- Passare alla risorsa del servizio e quindi selezionare Spring Cloud Gateway.
- Seleziona Gestisci.
- Selezionare o deselezionare la casella di controllo Abilita Spring Cloud Gateway e quindi selezionare Salva.
È ora possibile visualizzare lo stato di Spring Cloud Gateway nella pagina Spring Cloud Gateway.
Riavviare VMware Spring Cloud Gateway
Dopo aver completato l'azione di riavvio, le istanze di VMware Spring Cloud Gateway vengono riavviate in sequenza.
Usare la procedura seguente per riavviare VMware Spring Cloud Gateway usando il portale di Azure:
- Passare alla risorsa del servizio e quindi selezionare Spring Cloud Gateway.
- Seleziona Riavvia.
- Selezionare OK per confermare il riavvio.
Assegnare un endpoint pubblico a VMware Spring Cloud Gateway
Questa sezione descrive come assegnare un endpoint pubblico a VMware Spring Cloud Gateway e configurarne le proprietà.
Per assegnare un endpoint nel portale di Azure, seguire questa procedura:
- Aprire l'istanza di Azure Spring Apps.
- Selezionare Spring Cloud Gateway nel riquadro di spostamento e quindi panoramica.
- Impostare Assegna endpoint su Sì.
Dopo alcuni minuti, l'URL mostra l'URL dell'endpoint configurato. Salvare l'URL da usare in un secondo momento.
Configurare i metadati di VMware Spring Cloud Gateway
I metadati di VMware Spring Cloud Gateway generano automaticamente la documentazione OpenAPI versione 3. È possibile configurare i metadati di VMware Spring Cloud Gateway per visualizzare i gruppi di route nel portale API per VMware Tanzu. Per altre informazioni, vedere Usare il portale API per VMware Tanzu.
Nella tabella seguente vengono descritte le opzioni disponibili per i metadati:
Proprietà | Descrizione |
---|---|
title |
Titolo che descrive il contesto delle API disponibili nell'istanza di VMware Spring Cloud Gateway. Il valore predefinito è Spring Cloud Gateway for K8S . |
description |
Descrizione dettagliata delle API disponibili nell'istanza di VMware Spring Cloud Gateway. Il valore predefinito è Generated OpenAPI 3 document that describes the API routes configured for '[Gateway instance name]' Spring Cloud Gateway instance deployed under '[namespace]' namespace.*. . |
documentation |
Percorso della documentazione dell'API disponibile nell'istanza di VMware Spring Cloud Gateway. |
version |
Versione delle API disponibili in questa istanza di VMware Spring Cloud Gateway. Il valore predefinito è unspecified . |
serverUrl |
URL di base per accedere alle API nell'istanza di VMware Spring Cloud Gateway. Questa proprietà è obbligatoria se si vuole eseguire l'integrazione con il portale API. |
È possibile usare il portale di Azure o l'interfaccia della riga di comando di Azure per modificare le proprietà dei metadati.
Per modificare i metadati nel portale di Azure, seguire questa procedura:
- Aprire l'istanza di Azure Spring Apps.
- Selezionare Spring Cloud Gateway nel riquadro di spostamento e quindi selezionare Configurazione.
- Specificare i valori per le proprietà elencate per l'API.
- Seleziona Salva.
Configurare Single Sign-On
VMware Spring Cloud Gateway supporta l'autenticazione e l'autorizzazione tramite Single Sign-On (SSO) con un provider di identità OpenID. Il provider supporta il protocollo OpenID Connect Discovery. La tabella seguente descrive le proprietà SSO:
Proprietà | Obbligatorio? | Descrizione |
---|---|---|
issuerUri |
Sì | URI asserito come identificatore dell'autorità di certificazione. Ad esempio, se issuerUri è https://example.com , viene effettuata una richiesta di configurazione del provider OpenID a https://example.com/.well-known/openid-configuration . Il risultato dovrebbe essere una risposta di configurazione del provider OpenID. |
clientId |
Sì | ID client OpenID Connect del provider di identità. |
clientSecret |
Sì | Segreto client OpenID Connect del provider di identità. |
scope |
Sì | Elenco di ambiti da includere nei token di identità JWT. Questo elenco deve essere basato sugli ambiti consentiti dal provider di identità. |
Per configurare l'accesso SSO con Microsoft Entra ID, vedere Configurare l'accesso Single Sign-On con Microsoft Entra ID per Spring Cloud Gateway e portale API.
È possibile usare il portale di Azure o l'interfaccia della riga di comando di Azure per modificare le proprietà SSO.
Per modificare le proprietà SSO nel portale di Azure, seguire questa procedura:
- Aprire l'istanza di Azure Spring Apps.
- Selezionare Spring Cloud Gateway nel riquadro di spostamento e quindi selezionare Configurazione.
- Specificare i valori per le proprietà elencate per l'accesso SSO.
- Seleziona Salva.
VMware Spring Cloud Gateway supporta solo i server di autorizzazione che supportano il protocollo OpenID Connect Discovery. Assicurarsi inoltre di configurare il server di autorizzazione esterno per consentire i reindirizzamenti al gateway. Fare riferimento alla documentazione del server di autorizzazione e aggiungere https://<gateway-external-url>/login/oauth2/code/sso
all'elenco degli URI di reindirizzamento consentiti.
Se si configura la proprietà SSO errata, ad esempio la password errata, è necessario rimuovere l'intera proprietà SSO e quindi aggiungere la configurazione corretta.
Dopo aver configurato l'accesso Single Sign-On, ricordarsi di impostare ssoEnabled: true
per le route di VMware Spring Cloud Gateway.
Configurare la disconnessione SSO
Le istanze del servizio VMware Spring Cloud Gateway forniscono un endpoint API predefinito per disconnettersi dalla sessione SSO corrente. Il percorso di questo endpoint è /scg-logout
. La disconnessione comporta uno dei risultati seguenti, a seconda della modalità di chiamata dell'endpoint di disconnessione:
- Disconnettersi dalla sessione e reindirizzare al provider di identità (IdP) disconnessione.
- Disconnettersi dalla sessione dell'istanza del servizio.
Disconnettersi dalla sessione IdP e SSO
Se si invia una richiesta di GET
all'endpoint /scg-logout
, l'endpoint invia una risposta di reindirizzamento 302
all'URL di disconnessione IdP. Per ottenere l'endpoint per restituire l'utente a un percorso nell'istanza del servizio gateway, aggiungere un parametro di reindirizzamento alla richiesta GET
con l'endpoint /scg-logout
. Ad esempio, è possibile usare ${server-url}/scg-logout?redirect=/home
.
Il valore del parametro di reindirizzamento deve essere un percorso valido nell'istanza del servizio VMware Spring Cloud Gateway. Non è possibile reindirizzare a un URL esterno.
I passaggi seguenti descrivono un esempio di come implementare la funzione nei microservizi:
Ottenere una configurazione di route per instradare la richiesta di disconnessione all'applicazione. Per un esempio, vedere la configurazione della route nel repository animal-rescue su GitHub.
Aggiungere qualsiasi logica di disconnessione necessaria per l'applicazione. Alla fine è necessaria una richiesta
GET
all'endpoint/scg-logout
del gateway, come illustrato nel valore direturn
per il metodogetActionButton
nel repository animal-rescue.
Disconnettersi solo dalla sessione SSO
Se si invia la richiesta di GET
all'endpoint /scg-logout
usando XMLHttpRequest
, il reindirizzamento di 302
potrebbe essere inghiottito e non gestito nel gestore della risposta. In questo caso, l'utente verrà disconnesso solo dalla sessione SSO nell'istanza del servizio VMware Spring Cloud Gateway. L'utente avrà comunque una sessione IdP valida. In genere, se l'utente tenta di accedere di nuovo, viene inviato automaticamente al gateway come autenticato da IdP.
È necessario avere una configurazione di route per instradare la richiesta di disconnessione all'applicazione, come illustrato nell'esempio seguente. Questo codice rende una sessione SSO di disconnessione solo gateway.
const req = new XMLHttpRequest();
req.open("GET", "/scg-logout);
req.send();
Configurare la condivisione di risorse tra le origini
La condivisione di risorse tra le origini (CORS) consente di richiedere risorse limitate in una pagina Web da richiedere da un altro dominio all'esterno del dominio da cui è stata servita la prima risorsa. Nella tabella seguente vengono descritte le opzioni di configurazione CORS disponibili.
Proprietà | Descrizione |
---|---|
allowedOrigins |
Origini consentite per effettuare richieste intersito |
allowedOriginPatterns |
Modelli di origine consentiti per effettuare richieste tra siti |
allowedMethods |
Metodi HTTP consentiti nelle richieste intersito |
allowedHeaders |
Intestazioni consentite nella richiesta intersito |
maxAge |
Per quanto tempo, in secondi, i client memorizzano nella cache la risposta da una richiesta preliminare |
allowCredentials |
Indicare se le credenziali utente sono supportate nelle richieste intersito |
exposedHeaders |
Intestazioni di risposta HTTP da esporre per le richieste intersito |
Assicurarsi di avere la configurazione CORS corretta se si vuole eseguire l'integrazione con il portale API. Per altre informazioni, vedere la sezione Assegnare un endpoint pubblico a VMware Spring Cloud Gateway.
Usare il ridimensionamento del servizio
È possibile personalizzare l'allocazione delle risorse per le istanze di VMware Spring Cloud Gateway, tra cui vCPU, memoria e numero di istanze.
Per la disponibilità elevata, non è consigliabile usare una singola replica.
La tabella seguente descrive l'utilizzo predefinito delle risorse.
Nome componente | Numero di istanze | vCPU per istanza | Memoria per istanza |
---|---|---|---|
VMware Spring Cloud Gateway | 2 | 1 core | 2 GiB |
Operatore VMware Spring Cloud Gateway | 2 | 1 core | 2 GiB |
Configurare TLS tra il gateway e le applicazioni
Per migliorare la sicurezza e proteggere le informazioni riservate dall'intercettazione da parte di parti non autorizzate, è possibile abilitare Transport Layer Security (TLS) tra VMware Spring Cloud Gateway e le applicazioni.
Prima di configurare TLS, è necessario avere un'applicazione abilitata per TLS e un certificato TLS. Per preparare un certificato TLS, generare un certificato da un'autorità di certificazione (CA) attendibile. Il certificato verifica l'identità del server e stabilisce una connessione sicura.
Dopo aver eseguito un'applicazione abilitata per TLS in Azure Spring Apps, caricare il certificato in Azure Spring Apps. Per altre informazioni, vedere la sezione Importare un certificato in Usare certificati TLS/SSL nell'applicazione in Azure Spring Apps.
Con il certificato aggiornato ad Azure Spring Apps, è possibile configurare il certificato TLS per il gateway e abilitare la verifica del certificato. È possibile configurare il certificato nel portale di Azure o usando l'interfaccia della riga di comando di Azure.
Usare la procedura seguente per configurare il certificato nel portale di Azure:
- Nell'istanza di Azure Spring Apps selezionare Spring Cloud Gateway nel riquadro di spostamento.
- Nella pagina Spring Cloud Gateway selezionare Gestione certificati.
- Selezionare Abilita verifica certificato.
- Selezionare il certificato TLS in Certificati.
- Seleziona Salva.
L'aggiornamento della configurazione può richiedere alcuni minuti. Al termine della configurazione si dovrebbe ricevere una notifica.
Preparare la configurazione della route
È necessario specificare il protocollo come HTTPS nella configurazione della route. L'oggetto JSON seguente indica a VMware Spring Cloud Gateway di usare il protocollo HTTPS per tutto il traffico tra il gateway e l'app.
Creare un file denominato test-tls-route.json con il contenuto seguente:
{ "routes": [ { "title": "Test TLS app", "predicates": [ "Path=/path/to/your/app", "Method=GET" ] } ], "uri": "https://<app-custom-domain-name>" }
Usare il comando seguente per applicare la regola all'applicazione:
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
È ora possibile verificare se l'applicazione è abilitata per TLS con l'endpoint del gateway. Per altre informazioni, vedere la sezione Configurare le route di Usare Spring Cloud Gateway.
Ruotare i certificati
Quando i certificati scadono, è necessario ruotare i certificati in VMware Spring Cloud Gateway attenendosi alla procedura seguente:
- Generare nuovi certificati da una CA attendibile.
- Importare i certificati in Azure Spring Apps. Per altre informazioni, vedere la sezione Importare un certificato in Usare certificati TLS/SSL nell'applicazione in Azure Spring Apps.
- Sincronizzare i certificati usando il portale di Azure o l'interfaccia della riga di comando di Azure.
VMware Spring Cloud Gateway viene riavviato per assicurarsi che il gateway usi il nuovo certificato per tutte le connessioni.
Per sincronizzare i certificati, seguire questa procedura:
- Nell'istanza di Azure Spring Apps selezionare Spring Cloud Gateway nel riquadro di spostamento.
- Nella pagina Spring Cloud Gateway selezionare Riavvia e quindi confermare l'operazione.
Configurare le impostazioni di scalabilità automatica
È possibile impostare le modalità di scalabilità automatica per VMware Spring Cloud Gateway.
L'elenco seguente mostra le opzioni disponibili per la gestione della domanda di scalabilità automatica:
- L'opzione Scala manuale gestisce un numero di istanze fisso. È possibile aumentare il numero di istanze fino a un massimo di 10 istanze. Questo valore modifica il numero di istanze di esecuzione separate di Spring Cloud Gateway.
- L'opzione Scalabilità automatica personalizzata viene ridimensionata in base a qualsiasi pianificazione, in base a qualsiasi metrica.
Nel portale di Azure scegliere come applicare la scalabilità. Lo screenshot seguente illustra l'opzione Scalabilità automatica personalizzata e le impostazioni della modalità.
Per altre informazioni sulle metriche disponibili, vedere la sezione Opzioni metriche utente di Metriche per App Spring di Azure.
Configurare la cache delle risposte
La configurazione della cache delle risposte consente di definire una cache delle risposte HTTP che è possibile applicare a livello globale o a livello di route.
Abilitare la cache delle risposte a livello globale
Dopo aver abilitato la cache delle risposte a livello globale, la cache delle risposte viene abilitata automaticamente per tutte le route applicabili.
Per abilitare la cache delle risposte a livello globale, seguire questa procedura:
- Nell'istanza di Azure Spring Apps selezionare Spring Cloud Gateway nel riquadro di spostamento.
- Nella pagina Spring Cloud Gateway selezionare Configurazione.
- Nella sezione Cache delle risposte selezionare Abilita cache delle risposte e quindi impostare Ambito su Istanza.
- Impostare Dimensioni e Durata per la cache delle risposte.
- Seleziona Salva.
Per disabilitare la cache delle risposte, seguire questa procedura:
- Nell'istanza di Azure Spring Apps selezionare Spring Cloud Gateway nel riquadro di spostamento.
- Nella pagina Spring Cloud Gateway selezionare Configurazione.
- Nella sezione Cache delle risposte deselezionare Abilita cache delle risposte.
- Seleziona Salva.
Abilitare la cache delle risposte a livello di route
Per abilitare la cache delle risposte per qualsiasi route, usare il filtro LocalResponseCache
. L'esempio seguente illustra come usare il filtro LocalResponseCache
nella configurazione della regola di routing:
{
"filters": [
"<other-app-level-filter-of-route>",
],
"routes": [
{
"predicates": [
"Path=/api/**",
"Method=GET"
],
"filters": [
"<other-filter-of-route>",
"LocalResponseCache=3m, 1MB"
],
}
]
}
Per altre informazioni, vedere la sezione LocalResponseCache di Come usare i filtri di route di VMware Spring Cloud Gateway con il piano Enterprise di Azure Spring Apps e LocalResponseCache nella documentazione di VMware.
Anziché configurare size
e timeToLive
per ogni filtro LocalResponseCache
singolarmente, è possibile impostare questi parametri a livello di Spring Cloud Gateway. Questa opzione consente di usare il filtro LocalResponseCache
senza specificare inizialmente questi valori, mantenendo al tempo stesso la flessibilità di eseguirne l'override in un secondo momento.
Usare la procedura seguente per abilitare la cache delle risposte a livello di route e impostare size
e timeToLive
:
- Nell'istanza di Azure Spring Apps selezionare Spring Cloud Gateway nel riquadro di spostamento.
- Nella pagina Spring Cloud Gateway selezionare Configurazione.
- Nella sezione Cache delle risposte selezionare Abilita cache delle risposte e quindi impostare Ambito su Route.
- Impostare Dimensioni e Durata per la cache delle risposte.
- Seleziona Salva.
Usare la procedura seguente per disabilitare la cache delle risposte a livello di route, che cancella size
e timeToLive
:
- Nell'istanza di Azure Spring Apps selezionare Spring Cloud Gateway nel riquadro di spostamento.
- Nella pagina Spring Cloud Gateway selezionare Configurazione.
- Nella sezione Cache delle risposte deselezionare Abilita cache delle risposte.
- Seleziona Salva.
L'esempio seguente illustra come usare il filtro LocalResponseCache
quando size
e timeToLive
vengono impostati a livello di 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"
],
}
]
}
Configurare le variabili di ambiente
Il servizio Azure Spring Apps gestisce e ottimizza VMware Spring Cloud Gateway. Ad eccezione dei casi d'uso che configurano il monitoraggio delle prestazioni dell'applicazione (APM) e il livello di log, in genere non è necessario configurare VMware Spring Cloud Gateway con variabili di ambiente.
Se si hanno requisiti che non è possibile soddisfare da altre configurazioni descritte in questo articolo, è possibile provare a configurare le variabili di ambiente visualizzate nell'elenco Proprietà comuni dell'applicazione. Assicurarsi di verificare la configurazione nell'ambiente di test prima di applicarla all'ambiente di produzione.
Per configurare le variabili di ambiente nel portale di Azure, seguire questa procedura:
- Nell'istanza di Azure Spring Apps selezionare Spring Cloud Gateway nel riquadro di spostamento e quindi selezionare Configurazione.
- Compilare le coppie chiave/valore per le variabili di ambiente nelle sezioni Proprietà e Segreti. È possibile includere variabili con informazioni riservate nella sezione Segreti.
- Seleziona Salva per salvare le modifiche.
Dopo aver aggiornato le variabili di ambiente, VMware Spring Cloud Gateway viene riavviato.
Configurare il monitoraggio delle prestazioni dell'applicazione
Per monitorare VMware Spring Cloud Gateway, è possibile configurare APM. La tabella seguente elenca i cinque tipi di agenti Java APM forniti da VMware Spring Cloud Gateway, insieme alle variabili di ambiente necessarie.
Agente Java | Variabili di ambiente obbligatorie |
---|---|
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 elastico | ELASTIC_APM_SERVICE_NAME ELASTIC_APM_APPLICATION_PACKAGES ELASTIC_APM_SERVER_URL |
Per altre variabili di ambiente supportate, vedere le origini seguenti:
- Panoramica di Application Insights
- Variabili di ambiente Dynatrace
- Variabili di ambiente New Relic
- Variabili di ambiente AppDynamics
- Variabili di ambiente elastiche
Configurare l'integrazione di APM a livello di istanza del servizio (scelta consigliata)
Per abilitare il monitoraggio APM in VMware Spring Cloud Gateway, è possibile creare una configurazione APM a livello di istanza del servizio e associarla a Spring Cloud Gateway. In questo modo, è possibile configurare facilmente APM una sola volta e associare lo stesso APM a Spring Cloud Gateway e alle app.
Usare la procedura seguente per configurare APM usando il portale di Azure:
Configurare APM a livello di istanza del servizio con il nome, il tipo e le proprietà APM. Per altre informazioni, vedere la sezione Gestire le API nel livello di istanza del servizio (scelta consigliata) di Come configurare l'integrazione di APM e i certificati della CA.
Selezionare Spring Cloud Gateway nel riquadro di spostamento e quindi selezionare APM.
Scegliere il nome APM nell'elenco dei nomi di riferimento APM. L'elenco include tutti i nomi di APM configurati nel passaggio 1.
Selezionare Salva per associare i nomi dei riferimenti APM a Spring Cloud Gateway. Il gateway viene riavviato per abilitare il monitoraggio di APM.
Gestire APM in VMware Spring Cloud Gateway (deprecato)
È possibile usare il portale di Azure o l'interfaccia della riga di comando di Azure per configurare APM in VMware Spring Cloud Gateway. È anche possibile specificare i tipi di agenti Java APM da usare e le variabili di ambiente APM corrispondenti supportate.
Usare la procedura seguente per configurare APM usando il portale di Azure:
- Nell'istanza di Azure Spring Apps selezionare Spring Cloud Gateway nel riquadro di spostamento e quindi selezionare Configurazione.
- Scegliere il tipo APM nell'elenco APM per monitorare un gateway.
- Compilare le coppie chiave/valore per le variabili di ambiente APM nelle sezioni Proprietà e Segreti. È possibile inserire variabili con informazioni riservate in Segreti.
- Seleziona Salva per salvare le modifiche.
L'aggiornamento della configurazione può richiedere alcuni minuti. Al termine della configurazione si dovrebbe ricevere una notifica.
Nota
Azure Spring Apps aggiorna l'agente APM e distribuisce le app con la stessa frequenza per mantenere la compatibilità degli agenti tra VMware Spring Cloud Gateway e Azure Spring Apps.
Per impostazione predefinita, Azure Spring Apps stampa i log dell'agente Java APM in STDOUT
. Questi log sono inclusi nei log di VMware Spring Cloud Gateway. È possibile controllare la versione dell'agente APM usato nei log. È possibile eseguire query su questi log in Log Analytics per risolvere i problemi.
Per fare in modo che gli agenti APM funzionino correttamente, aumentare la CPU e la memoria di VMware Spring Cloud Gateway.
Configurare i livelli di log
È possibile configurare i livelli di log di VMware Spring Cloud Gateway nei modi seguenti per ottenere altri dettagli o ridurre i log:
- È possibile impostare i livelli di log su
TRACE
,DEBUG
,INFO
,WARN
,ERROR
oOFF
. Il livello di log predefinito per VMware Spring Cloud Gateway èINFO
. - È possibile disattivare i log impostando i livelli di log su
OFF
. - Quando il livello di log è impostato su
WARN
,ERROR
oOFF
, potrebbe essere necessario modificarlo inINFO
quando si richiede il supporto del team di Azure Spring Apps. Questa modifica causa un riavvio di VMware Spring Cloud Gateway. - Quando il livello di log è impostato su
TRACE
oDEBUG
, potrebbe influire sulle prestazioni di VMware Spring Cloud Gateway. Provare a evitare queste impostazioni nell'ambiente di produzione. - È possibile impostare i livelli di log per il logger
root
o per logger specifici, ad esempioio.pivotal.spring.cloud.gateway
.
I logger seguenti possono contenere informazioni importanti sulla risoluzione dei problemi a livello di TRACE
e DEBUG
:
Logger | Descrizione |
---|---|
io.pivotal.spring.cloud.gateway |
Filtri e predicati, incluse le estensioni personalizzate |
org.springframework.cloud.gateway |
Gateway API |
org.springframework.http.server.reactive |
Interazioni tra server HTTP |
org.springframework.web.reactive |
Flussi reattivi del gateway API |
org.springframework.boot.autoconfigure.web |
Configurazione automatica del gateway API |
org.springframework.security.web |
Informazioni sull'autenticazione e sull'autorizzazione |
reactor.netty |
Reattore Netty |
Per ottenere le chiavi delle variabili di ambiente, aggiungere il prefisso logging.level.
e quindi impostare il livello di log configurando l'ambiente logging.level.{loggerName}={logLevel}
. Gli esempi seguenti illustrano i passaggi per il portale di Azure e l'interfaccia della riga di comando di Azure.
Per configurare i livelli di log nel portale di Azure, seguire questa procedura:
- Nell'istanza di Azure Spring Apps selezionare Spring Cloud Gateway nel riquadro di spostamento e quindi selezionare Configurazione.
- Compilare le coppie chiave/valore per le variabili di ambiente dei livelli di log nelle sezioni Proprietà e segreti. Se il livello di log è costituito da informazioni riservate nel caso in uso, è possibile includerlo usando la sezione Segreti.
- Seleziona Salva per salvare le modifiche.
Aggiornare la configurazione del componente aggiuntivo
La funzionalità di configurazione del componente aggiuntivo consente di personalizzare determinate proprietà di VMware Spring Cloud Gateway usando una stringa di formato JSON. La funzionalità è utile quando è necessario configurare le proprietà che non sono esposte tramite l'API REST.
La configurazione del componente aggiuntivo è un oggetto JSON con coppie chiave/valore che rappresentano la configurazione desiderata. L'esempio seguente illustra la struttura del formato JSON:
{
"<addon-key-name>": {
"<addon-key-name>": "<addon-value>"
...
},
"<addon-key-name>": "<addon-value>",
...
}
L'elenco seguente mostra le configurazioni dei componenti aggiuntivi supportate per i nomi delle chiavi e i tipi di valore del componente aggiuntivo. Questo elenco è soggetto a modifiche durante l'aggiornamento della versione di VMware Spring Cloud Gateway.
Configurazione SSO:
Nome chiave:
sso
Tipo valore: Oggetto
Proprietà:
RolesAttributeName
(String): specifica il nome dell'attributo che contiene i ruoli associati alla sessione SSO.InactiveSessionExpirationInMinutes
(Integer): specifica l'ora di scadenza, espressa in minuti, per le sessioni SSO inattive. Un valore di0
indica che la sessione non scade mai.
Esempio:
{ "sso": { "rolesAttributeName": "roles", "inactiveSessionExpirationInMinutes": 1 } }
Configurazione dei metadati:
Nome chiave:
api
Tipo valore: Oggetto
Proprietà
groupId
(String): identificatore univoco per il gruppo di API disponibili nell'istanza di VMware Spring Cloud Gateway. Il valore può contenere solo lettere minuscole e numeri.
Esempio:
{ "api": { "groupId": "id1" } }
Configurazione dei pod
Nome chiave:
PodOverrides
, usato per specificare le sostituzioni per la configurazione predefinita del pod.Tipo valore: Oggetto
Proprietà
Containers
: questa matrice contiene la configurazione per i singoli contenitori all'interno del pod. Attualmente è supportato solo il contenitore denominatogateway
.Name
: specifica il nome del contenitore. Il contenitore deve essere denominatogateway
.Lifecycle
:PreStop
è un hook del ciclo di vita che viene eseguito quando un contenitore sta per essere terminato. Questo hook consente di eseguire qualsiasi pulizia necessaria prima dell'arresto del contenitore.
TerminationGracePeriodSeconds
: specifica la quantità di tempo in cui Kubernetes attende che un pod termini normalmente prima di ucciderlo forzatamente.
Esempio:
{ "PodOverrides": { "Containers": [ { "Name": "gateway", "Lifecycle": { "PreStop": { "Exec": { "Command": [ "/bin/sh", "-c", "sleep 20" ] } } } } ], "TerminationGracePeriodSeconds": 120 } }
Quando un pod contenente questo contenitore viene terminato, l'hook
PreStop
esegue il comando/bin/sh -c 'sleep 20'
, causando la sospensione del contenitore per 20 secondi. Questa pausa dà al contenitore del tempo necessario per completare le attività o la pulizia in corso prima che venga effettivamente arrestata.L'impostazione
TerminationGracePeriodSeconds
fornisce un totale di 120 secondi per il termine normale del pod, incluso il tempo impiegato da qualsiasi hook del ciclo di vita, ad esempioPreStop
.
Per aggiornare la configurazione del componente aggiuntivo, seguire questa procedura.
- Nell'istanza di Azure Spring Apps selezionare Spring Cloud Gateway nel riquadro di spostamento e quindi selezionare Configurazione.
- Specificare il valore JSON per Addon Configs.
- Seleziona Salva.