Dela via


Konfigurera VMware Spring Cloud Gateway

Kommentar

Azure Spring Apps är det nya namnet på Azure Spring Cloud-tjänsten. Även om tjänsten har ett nytt namn ser du det gamla namnet på vissa platser ett tag medan vi arbetar med att uppdatera tillgångar som skärmbilder, videor och diagram.

Den här artikeln gäller för:❌ Basic/Standard ✔️ Enterprise

Den här artikeln visar hur du konfigurerar VMware Spring Cloud Gateway för VMware Tanzu med Azure Spring Apps Enterprise-planen.

VMware Spring Cloud Gateway är en kommersiell VMware Tanzu-komponent baserad på Spring Cloud Gateway-projektet med öppen källkod. VMware Spring Cloud Gateway för Tanzu hanterar övergripande problem för API-utvecklingsteam, till exempel enkel inloggning (SSO), åtkomstkontroll, hastighetsbegränsning, återhämtning och säkerhet. Du kan påskynda API-leveransen med hjälp av moderna molnbaserade mönster i ditt val av programmeringsspråk för API-utveckling.

En VMware Spring Cloud Gateway-instans dirigerar trafik enligt regler. Den har stöd för att skala in/ut och upp och ned för att möta en dynamisk trafikbelastning.

VMware Spring Cloud Gateway innehåller följande funktioner:

  • Dynamisk routningskonfiguration, oberoende av enskilda program, som du kan använda och ändra utan att kompilera om
  • Kommersiella API-routningsfilter för att transportera auktoriserade JSON Web Token-anspråk (JWT) till programtjänster
  • Auktorisering av klientcertifikat
  • Frekvensbegränsningsmetoder
  • Konfiguration av kretsbrytare
  • Stöd för åtkomst till programtjänster via HTTP Basic Authentication-autentiseringsuppgifter

För att integrera med API-portalen för VMware Tanzu genererar VMware Spring Cloud Gateway automatiskt OpenAPI version 3-dokumentation efter eventuella tillägg eller ändringar i routningskonfigurationen. Mer information finns i Använda API-portalen för VMware Tanzu.

Förutsättningar

Aktivera eller inaktivera VMware Spring Cloud Gateway

Du kan aktivera eller inaktivera VMware Spring Cloud Gateway när du har skapat tjänstinstansen med hjälp av Azure-portalen eller Azure CLI. Innan du inaktiverar VMware Spring Cloud Gateway måste du avtilldela dess slutpunkt och ta bort alla routningskonfigurationer.

Använd följande steg för att aktivera eller inaktivera VMware Spring Cloud Gateway med hjälp av Azure-portalen:

  1. Gå till din tjänstresurs och välj sedan Spring Cloud Gateway.
  2. Välj Hantera.
  3. Markera eller avmarkera kryssrutan Aktivera Spring Cloud Gateway och välj sedan Spara.

Nu kan du visa tillståndet för Spring Cloud Gateway på sidan Spring Cloud Gateway .

Skärmbild av Azure-portalen som visar sidan Spring Cloud Gateway.

Starta om VMware Spring Cloud Gateway

När du har slutfört omstartsåtgärden startas VMware Spring Cloud Gateway-instanser om löpande.

Använd följande steg för att starta om VMware Spring Cloud Gateway med hjälp av Azure-portalen:

  1. Gå till din tjänstresurs och välj sedan Spring Cloud Gateway.
  2. Välj Starta om.
  3. Bekräfta omstarten genom att välja OK .

Skärmbild av Azure-portalen som visar Spring Cloud Gateway-sidan med bekräftelsemeddelandet om att starta om gatewayen.

Tilldela en offentlig slutpunkt till VMware Spring Cloud Gateway

I det här avsnittet beskrivs hur du tilldelar en offentlig slutpunkt till VMware Spring Cloud Gateway och konfigurerar dess egenskaper.

Använd följande steg för att tilldela en slutpunkt i Azure-portalen:

  1. Öppna din Azure Spring Apps-instans.
  2. Välj Spring Cloud Gateway i navigeringsfönstret och välj sedan Översikt.
  3. Ange Tilldela slutpunkt till Ja.

Efter några minuter visar URL:en den konfigurerade slutpunkts-URL:en. Spara URL:en som ska användas senare.

Skärmbild av Azure-portalen som visar översiktssidan för Spring Cloud Gateway med växlingsknappen för att tilldela en slutpunkt.

Konfigurera VMware Spring Cloud Gateway-metadata

VMware Spring Cloud Gateway-metadata genererar automatiskt Dokumentation om OpenAPI version 3. Du kan konfigurera VMware Spring Cloud Gateway-metadata för att visa routningsgrupper i API-portalen för VMware Tanzu. Mer information finns i Använda API-portalen för VMware Tanzu.

I följande tabell beskrivs tillgängliga metadataalternativ:

Property beskrivning
title En rubrik som beskriver kontexten för de API:er som är tillgängliga på VMware Spring Cloud Gateway-instansen. Standardvärdet är Spring Cloud Gateway for K8S.
description En detaljerad beskrivning av de API:er som är tillgängliga på VMware Spring Cloud Gateway-instansen. Standardvärdet är Generated OpenAPI 3 document that describes the API routes configured for '[Gateway instance name]' Spring Cloud Gateway instance deployed under '[namespace]' namespace.*.
documentation Platsen för API-dokumentationen som är tillgänglig på VMware Spring Cloud Gateway-instansen.
version Den version av API:er som är tillgängliga på den här VMware Spring Cloud Gateway-instansen. Standardvärdet är unspecified.
serverUrl Bas-URL:en för åtkomst till API:er på VMware Spring Cloud Gateway-instansen. Den här egenskapen är obligatorisk om du vill integrera med API-portalen.

Du kan använda Azure-portalen eller Azure CLI för att redigera metadataegenskaper.

Om du vill redigera metadata i Azure-portalen använder du följande steg:

  1. Öppna din Azure Spring Apps-instans.
  2. Välj Spring Cloud Gateway i navigeringsfönstret och välj sedan Konfiguration.
  3. Ange värden för de egenskaper som anges för API.
  4. Välj Spara.

Skärmbild av Azure-portalen som visar fliken Spring Cloud Gateway-konfiguration med API-avsnittet markerat.

Konfigurera enkel inloggning

VMware Spring Cloud Gateway stöder autentisering och auktorisering via enkel inloggning (SSO) med en OpenID-identitetsprovider. Providern stöder OpenID Connect Discovery-protokollet. I följande tabell beskrivs egenskaperna för enkel inloggning:

Property Obligatoriskt? beskrivning
issuerUri Ja Den URI som hävdas som utfärdaridentifierare. Om är https://example.comgörs till exempel issuerUri en konfigurationsbegäran för OpenID-providern till https://example.com/.well-known/openid-configuration. Resultatet förväntas bli ett konfigurationssvar för OpenID-providern.
clientId Ja OpenID Connect-klient-ID:t från din identitetsprovider.
clientSecret Ja OpenID Connect-klienthemligheten från din identitetsprovider.
scope Ja En lista över omfång som ska inkluderas i JWT-identitetstoken. Den här listan bör baseras på de omfång som din identitetsprovider tillåter.

Information om hur du konfigurerar enkel inloggning med Microsoft Entra-ID finns i Konfigurera enkel inloggning med microsoft entra-ID för Spring Cloud Gateway och API-portalen.

Du kan använda Azure-portalen eller Azure CLI för att redigera egenskaper för enkel inloggning.

Om du vill redigera egenskaper för enkel inloggning i Azure-portalen använder du följande steg:

  1. Öppna din Azure Spring Apps-instans.
  2. Välj Spring Cloud Gateway i navigeringsfönstret och välj sedan Konfiguration.
  3. Ange värden för de egenskaper som anges för enkel inloggning.
  4. Välj Spara.

Skärmbild av Azure-portalen som visar fliken Spring Cloud Gateway-konfiguration med avsnittet för enkel inloggning markerat.

VMware Spring Cloud Gateway stöder endast de auktoriseringsservrar som stöder OpenID Connect Discovery-protokollet. Se också till att konfigurera den externa auktoriseringsservern för att tillåta omdirigeringar tillbaka till gatewayen. Läs auktoriseringsserverns dokumentation och lägg till https://<gateway-external-url>/login/oauth2/code/sso i listan över tillåtna omdirigerings-URI:er.

Om du konfigurerar fel SSO-egenskap, till exempel fel lösenord, bör du ta bort hela SSO-egenskapen och sedan lägga till rätt konfiguration.

När du har konfigurerat enkel inloggning ska du komma ihåg att ange ssoEnabled: true för VMware Spring Cloud Gateway-vägarna.

Konfigurera SSO-utloggning

VMware Spring Cloud Gateway-tjänstinstanser tillhandahåller en standard-API-slutpunkt för att logga ut från den aktuella SSO-sessionen. Sökvägen till den här slutpunkten är /scg-logout. Utloggningen resulterar i något av följande resultat, beroende på hur du anropar utloggningsslutpunkten:

  • Logga ut från sessionen och omdirigera till identitetsproviderns (IdP) utloggning.
  • Logga ut från tjänstinstanssessionen.

Logga ut från IdP- och SSO-sessionen

Om du skickar en GET begäran till /scg-logout slutpunkten skickar slutpunkten ett 302 omdirigeringssvar till IdP-utloggnings-URL:en. För att få slutpunkten att returnera användaren till en sökväg på gatewaytjänstinstansen lägger du till en omdirigeringsparameter i GET begäran med /scg-logout slutpunkten. Du kan till exempel använda ${server-url}/scg-logout?redirect=/home.

Värdet för omdirigeringsparametern måste vara en giltig sökväg på VMware Spring Cloud Gateway-tjänstinstansen. Du kan inte omdirigera till en extern URL.

Följande steg beskriver ett exempel på hur du implementerar funktionen i dina mikrotjänster:

  1. Hämta en routningskonfiguration för att dirigera utloggningsbegäran till ditt program. Ett exempel finns i routningskonfigurationen på lagringsplatsen för djurräddning på GitHub.

  2. Lägg till den utloggningslogik som du behöver i programmet. I slutet behöver du en GET begäran till gatewayens /scg-logout slutpunkt, vilket visas i return värdet för getActionButton metoden i lagringsplatsen för djurräddning .

Logga ut från bara SSO-sessionen

Om du skickar GET begäran till /scg-logout slutpunkten med hjälp XMLHttpRequest302 av kan omdirigeringen sväljas och inte hanteras i svarshanteraren. I det här fallet loggas användaren bara ut från SSO-sessionen på VMware Spring Cloud Gateway-tjänstinstansen. Användaren skulle fortfarande ha en giltig IdP-session. Om användaren försöker logga in igen skickas de vanligtvis tillbaka till gatewayen som autentiserad från IdP.

Du måste ha en routningskonfiguration för att dirigera utloggningsbegäran till ditt program, som du ser i följande exempel. Den här koden gör en gateway-only logout SSO-session.

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

Konfigurera resursdelning mellan ursprung

Resursdelning mellan ursprung (CORS) tillåter att begränsade resurser på en webbsida begärs från en annan domän utanför domänen som den första resursen hanterades från. I följande tabell beskrivs tillgängliga CORS-konfigurationsalternativ.

Property beskrivning
allowedOrigins Tillåtna ursprung för att göra begäranden mellan webbplatser
allowedOriginPatterns Tillåtna ursprungsmönster för att göra begäranden mellan webbplatser
allowedMethods Tillåtna HTTP-metoder för begäranden mellan webbplatser
allowedHeaders Tillåtna rubriker i begäranden mellan webbplatser
maxAge Hur länge i sekunder cachelagrade klienter svaret från en preflight-begäran
allowCredentials Om användarautentiseringsuppgifter stöds för begäranden mellan webbplatser
exposedHeaders HTTP-svarshuvuden som ska exponeras för begäranden mellan webbplatser

Se till att du har rätt CORS-konfiguration om du vill integrera med API-portalen. Mer information finns i avsnittet Tilldela en offentlig slutpunkt till VMware Spring Cloud Gateway .

Använda tjänstskalning

Du kan anpassa resursallokering för VMware Spring Cloud Gateway-instanser, inklusive vCPU, minne och instansantal.

För hög tillgänglighet rekommenderar vi inte att du använder en enskild replik.

I följande tabell beskrivs standardresursanvändningen.

Komponentnamn Antal instanser vCPU per instans Minne per instans
VMware Spring Cloud Gateway 2 1 kärna 2 GiB
VMware Spring Cloud Gateway-operatör 2 1 kärna 2 GiB

Konfigurera TLS mellan gatewayen och programmen

För att förbättra säkerheten och skydda känslig information från avlyssning av obehöriga parter kan du aktivera TLS (Transport Layer Security) mellan VMware Spring Cloud Gateway och dina program.

Innan du konfigurerar TLS måste du ha ett TLS-aktiverat program och ett TLS-certifikat. Om du vill förbereda ett TLS-certifikat genererar du ett certifikat från en betrodd certifikatutfärdare (CA). Certifikatet verifierar serverns identitet och upprättar en säker anslutning.

När du har ett TLS-aktiverat program som körs i Azure Spring Apps laddar du upp certifikatet till Azure Spring Apps. Mer information finns i avsnittet Importera ett certifikat i Använda TLS/SSL-certifikat i ditt program i Azure Spring Apps.

När certifikatet har uppdaterats till Azure Spring Apps kan du konfigurera TLS-certifikatet för gatewayen och aktivera certifikatverifiering. Du kan konfigurera certifikatet i Azure-portalen eller med hjälp av Azure CLI.

Använd följande steg för att konfigurera certifikatet i Azure-portalen:

  1. I din Azure Spring Apps-instans väljer du Spring Cloud Gateway i navigeringsfönstret.
  2. På sidan Spring Cloud Gateway väljer du Certifikathantering.
  3. Välj Aktivera certifikatverifiering.
  4. Välj TLS-certifikatet i Certifikat.
  5. Välj Spara.

Det kan ta några minuter att uppdatera konfigurationen. Du bör få ett meddelande när konfigurationen är klar.

Förbereda routningskonfigurationen

Du måste ange protokollet som HTTPS i routningskonfigurationen. Följande JSON-objekt instruerar VMware Spring Cloud Gateway att använda HTTPS-protokollet för all trafik mellan gatewayen och appen.

  1. Skapa en fil med namnet test-tls-route.json med följande innehåll:

    {
        "routes": [
          {
            "title": "Test TLS app",
            "predicates": [
              "Path=/path/to/your/app",
              "Method=GET"
            ]
          }
         ],
        "uri": "https://<app-custom-domain-name>"
    }
    
  2. Använd följande kommando för att tillämpa regeln på programmet:

    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
    

Nu kan du testa om programmet är TLS-aktiverat med gatewayens slutpunkt. Mer information finns i avsnittet Konfigurera vägar i Använd Spring Cloud Gateway.

Rotera certifikat

När certifikaten upphör att gälla måste du rotera certifikat i VMware Spring Cloud Gateway med hjälp av följande steg:

  1. Generera nya certifikat från en betrodd certifikatutfärdare.
  2. Importera certifikaten till Azure Spring Apps. Mer information finns i avsnittet Importera ett certifikat i Använda TLS/SSL-certifikat i ditt program i Azure Spring Apps.
  3. Synkronisera certifikaten med hjälp av Azure-portalen eller Azure CLI.

VMware Spring Cloud Gateway startas om för att säkerställa att gatewayen använder det nya certifikatet för alla anslutningar.

Använd följande steg för att synkronisera certifikat:

  1. I din Azure Spring Apps-instans väljer du Spring Cloud Gateway i navigeringsfönstret.
  2. På sidan Spring Cloud Gateway väljer du Starta om och bekräftar sedan åtgärden.

Konfigurera autoskalningsinställningar

Du kan ange autoskalningslägen för VMware Spring Cloud Gateway.

I följande lista visas tillgängliga alternativ för hantering av autoskalning av efterfrågan:

  • Alternativet Manuell skalning upprätthåller ett fast instansantal. Du kan skala ut till högst 10 instanser. Det här värdet ändrar antalet separata instanser som körs av Spring Cloud Gateway.
  • Alternativet Anpassad autoskalning skalar enligt valfritt schema, baserat på mått.

I Azure-portalen väljer du hur du vill skala. Följande skärmbild visar alternativet Anpassad autoskalning och lägesinställningar:

Skärmbild av Azure-portalen som visar inställningssidan För autoskalning med alternativet Anpassad autoskalning markerat.

Mer information om tillgängliga mått finns i avsnittet Alternativ för användarmått i Mått för Azure Spring Apps.

Konfigurera svarscache

Konfiguration av svarscache är ett sätt att definiera en HTTP-svarscache som du kan använda globalt eller på routningsnivå.

Aktivera svarscache globalt

När du har aktiverat svarscachen globalt aktiveras svarscache automatiskt för alla tillämpliga vägar.

Använd följande steg för att aktivera svarscache globalt:

  1. I din Azure Spring Apps-instans väljer du Spring Cloud Gateway i navigeringsfönstret.
  2. På sidan Spring Cloud Gateway väljer du Konfiguration.
  3. I avsnittet Svarscache väljer du Aktivera svarscache och anger sedan Omfång till Instans.
  4. Ange Storlek och tid till live för svarscacheminnet.
  5. Välj Spara.

Använd följande steg för att inaktivera svarscacheminnet:

  1. I din Azure Spring Apps-instans väljer du Spring Cloud Gateway i navigeringsfönstret.
  2. På sidan Spring Cloud Gateway väljer du Konfiguration.
  3. I avsnittet Svarscache avmarkerar du Aktivera svarscache.
  4. Välj Spara.

Aktivera svarscache på vägnivå

Om du vill aktivera svarscache för valfri väg använder du LocalResponseCache filtret. I följande exempel visas hur du använder LocalResponseCache filtret i konfigurationen av routningsregeln:

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

Mer information finns i avsnittet LocalResponseCache i Så här använder du VMware Spring Cloud Gateway-routningsfilter med Azure Spring Apps Enterprise-planen och LocalResponseCache i VMware-dokumentationen.

I stället för att size konfigurera och timeToLive för varje LocalResponseCache filter individuellt kan du ange dessa parametrar på Spring Cloud Gateway-nivå. Med det här alternativet kan du använda LocalResponseCache filtret utan att ange dessa värden från början, samtidigt som du behåller flexibiliteten att åsidosätta dem senare.

Använd följande steg för att aktivera svarscache på vägnivå och ange size och timeToLive:

  1. I din Azure Spring Apps-instans väljer du Spring Cloud Gateway i navigeringsfönstret.
  2. På sidan Spring Cloud Gateway väljer du Konfiguration.
  3. I avsnittet Svarscache väljer du Aktivera svarscache och anger sedan Omfång till Väg.
  4. Ange Storlek och tid till live för svarscacheminnet.
  5. Välj Spara.

Använd följande steg för att inaktivera svarscacheminnet på routningsnivå, vilket rensar size och timeToLive:

  1. I din Azure Spring Apps-instans väljer du Spring Cloud Gateway i navigeringsfönstret.
  2. På sidan Spring Cloud Gateway väljer du Konfiguration.
  3. I avsnittet Svarscache avmarkerar du Aktivera svarscache.
  4. Välj Spara.

I följande exempel visas hur du använder LocalResponseCache filtret när size och timeToLive anges på Spring Cloud Gateway-nivå:

{
   "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"
         ],
      }
   ]
}

Konfigurera miljövariabler

Azure Spring Apps-tjänsten hanterar och finjusterar VMware Spring Cloud Gateway. Förutom de användningsfall som konfigurerar övervakning av programprestanda (APM) och loggnivån behöver du normalt inte konfigurera VMware Spring Cloud Gateway med miljövariabler.

Om du har krav som du inte kan uppfylla med andra konfigurationer som beskrivs i den här artikeln kan du försöka konfigurera miljövariablerna som visas i listan Vanliga programegenskaper . Kontrollera konfigurationen i testmiljön innan du tillämpar den i produktionsmiljön.

Använd följande steg för att konfigurera miljövariabler i Azure-portalen:

  1. I din Azure Spring Apps-instans väljer du Spring Cloud Gateway i navigeringsfönstret och väljer sedan Konfiguration.
  2. Fyll i nyckel/värde-paren för miljövariablerna i avsnitten Egenskaper och Hemligheter . Du kan inkludera variabler med känslig information i avsnittet Hemligheter .
  3. Välj Spara för att spara dina ändringar.

När du har uppdaterat miljövariabler startas VMware Spring Cloud Gateway om.

Konfigurera övervakning av programprestanda

Om du vill övervaka VMware Spring Cloud Gateway kan du konfigurera APM. I följande tabell visas de fem typer av APM Java-agenter som VMware Spring Cloud Gateway tillhandahåller, tillsammans med de miljövariabler som krävs.

Java-agenten Obligatoriska miljövariabler
Programinsikter 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
Elastisk APM ELASTIC_APM_SERVICE_NAME
ELASTIC_APM_APPLICATION_PACKAGES
ELASTIC_APM_SERVER_URL

Andra miljövariabler som stöds finns i följande källor:

Om du vill aktivera APM-övervakning i VMware Spring Cloud Gateway kan du skapa APM-konfiguration på tjänstinstansnivå och binda den till Spring Cloud Gateway. På så sätt kan du enkelt konfigurera APM bara en gång och binda samma APM till Spring Cloud Gateway och till dina appar.

Använd följande steg för att konfigurera APM med hjälp av Azure-portalen:

  1. Konfigurera APM på tjänstinstansnivå med APM-namn, typ och egenskaper. Mer information finns i avsnittet Hantera API:er på tjänstinstansnivå (rekommenderas) i Konfigurera APM-integrering och CA-certifikat.

    Skärmbild av Azure-portalen som visar APM-redigerarsidan för Azure Spring Apps.

  2. Välj Spring Cloud Gateway i navigeringsfönstret och välj sedan APM.

  3. Välj APM-namnet i listan med APM-referensnamn . Listan innehåller alla APM-namn som konfigurerats i steg 1.

  4. Välj Spara för att binda APM-referensnamn till Spring Cloud Gateway. Gatewayen startas om för att aktivera APM-övervakning.

Hantera APM i VMware Spring Cloud Gateway (inaktuell)

Du kan använda Azure-portalen eller Azure CLI för att konfigurera APM i VMware Spring Cloud Gateway. Du kan också ange vilka typer av APM Java-agenter som ska användas och motsvarande APM-miljövariabler som de stöder.

Använd följande steg för att konfigurera APM med hjälp av Azure-portalen:

  1. I din Azure Spring Apps-instans väljer du Spring Cloud Gateway i navigeringsfönstret och väljer sedan Konfiguration.
  2. Välj APM-typen i APM-listan för att övervaka en gateway.
  3. Fyll i nyckel/värde-paren för APM-miljövariablerna i avsnitten Egenskaper och hemligheter . Du kan placera variabler med känslig information i Hemligheter.
  4. Välj Spara för att spara dina ändringar.

Det kan ta några minuter att uppdatera konfigurationen. Du bör få ett meddelande när konfigurationen är klar.

Kommentar

Azure Spring Apps uppgraderar APM-agenten och distribuerade appar med samma takt för att hålla agenternas kompatibilitet mellan VMware Spring Cloud Gateway och Azure Spring Apps.

Som standard skriver Azure Spring Apps ut loggarna för APM Java-agenten till STDOUT. Dessa loggar ingår i VMware Spring Cloud Gateway-loggarna. Du kan kontrollera vilken version av APM-agenten som används i loggarna. Du kan köra frågor mot loggarna i Log Analytics för att felsöka.

För att APM-agenterna ska fungera korrekt ökar du processorn och minnet för VMware Spring Cloud Gateway.

Konfigurera loggnivåer

Du kan konfigurera loggnivåerna för VMware Spring Cloud Gateway på följande sätt för att få mer information eller minska loggarna:

  • Du kan ange loggnivåer till TRACE, DEBUG, INFO, WARN, ERROReller OFF. Standardloggnivån för VMware Spring Cloud Gateway är INFO.
  • Du kan inaktivera loggar genom att ange loggnivåer till OFF.
  • När loggnivån är inställd på WARN, ERROReller OFF, kan du behöva justera den till INFO när du begär support från Azure Spring Apps-teamet. Den här ändringen orsakar en omstart av VMware Spring Cloud Gateway.
  • När loggnivån är inställd på TRACE eller DEBUGkan det påverka prestanda för VMware Spring Cloud Gateway. Försök att undvika de här inställningarna i produktionsmiljön.
  • Du kan ange loggnivåer för root loggningsverktyget eller för specifika loggare som io.pivotal.spring.cloud.gateway.

Följande loggare kan innehålla värdefull felsökningsinformation på TRACE nivåerna och DEBUG :

Logger beskrivning
io.pivotal.spring.cloud.gateway Filter och predikat, inklusive anpassade tillägg
org.springframework.cloud.gateway API-gateway
org.springframework.http.server.reactive HTTP-serverinteraktioner
org.springframework.web.reactive Reaktiva flöden för API Gateway
org.springframework.boot.autoconfigure.web Automatisk konfiguration av API Gateway
org.springframework.security.web Autentiserings- och auktoriseringsinformation
reactor.netty Reaktornät

Om du vill hämta miljövariabelnycklar lägger du till prefixet logging.level. och anger sedan loggnivån genom att konfigurera miljön logging.level.{loggerName}={logLevel}. I följande exempel visas stegen för Azure-portalen och Azure CLI.

Använd följande steg för att konfigurera loggnivåer i Azure-portalen:

  1. I din Azure Spring Apps-instans väljer du Spring Cloud Gateway i navigeringsfönstret och väljer sedan Konfiguration.
  2. Fyll i nyckel/värde-paren för loggnivåernas miljövariabler i avsnitten Egenskaper och hemligheter . Om loggnivån är känslig information i ditt fall kan du inkludera den med hjälp av avsnittet Hemligheter .
  3. Välj Spara för att spara dina ändringar.

Skärmbild av Azure-portalen som visar Spring Cloud Gateway-miljövariablerna för att konfigurera loggnivåer.

Uppdatera tilläggskonfiguration

Med tilläggskonfigurationsfunktionen kan du anpassa vissa egenskaper för VMware Spring Cloud Gateway med hjälp av en JSON-formatsträng. Funktionen är användbar när du behöver konfigurera egenskaper som inte exponeras via REST-API:et.

Tilläggskonfigurationen är ett JSON-objekt med nyckel/värde-par som representerar önskad konfiguration. I följande exempel visas strukturen för JSON-formatet:

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

I följande lista visas de tilläggskonfigurationer som stöds för tilläggsnyckelnamnen och värdetyperna. Den här listan kan komma att ändras när vi uppgraderar VMware Spring Cloud Gateway-versionen.

  • Konfiguration av enkel inloggning:

    • Nyckelnamn: sso

    • Värdetyp: Objekt

    • Egenskaper:

      • RolesAttributeName (Sträng): Anger namnet på attributet som innehåller de roller som är associerade med SSO-sessionen.
      • InactiveSessionExpirationInMinutes (Heltal): Anger förfallotiden i minuter för inaktiva SSO-sessioner. Värdet 0 innebär att sessionen aldrig upphör att gälla.
    • Exempel:

      {
          "sso": {
              "rolesAttributeName": "roles",
              "inactiveSessionExpirationInMinutes": 1
          }
      }
      
  • Metadatakonfiguration:

    • Nyckelnamn: api

    • Värdetyp: Objekt

    • Egenskaper

      • groupId (Sträng): En unik identifierare för gruppen med API:er som är tillgängliga på VMware Spring Cloud Gateway-instansen. Värdet får bara innehålla gemener och siffror.
    • Exempel:

      {
          "api": {
              "groupId": "id1"
          }
      }
      
  • Poddkonfiguration

    • Nyckelnamn: PodOverrides, som används för att ange åsidosättningar för standardkonfigurationen av poddar.

    • Värdetyp: Objekt

    • Egenskaper

      • Containers: Den här matrisen innehåller konfigurationen för enskilda containrar i podden. Endast containern med namnet gateway stöds för närvarande.
        • Name: Anger namnet på containern. Containern ska ha namnet gateway.
        • Lifecycle: PreStop är en livscykelkrok som körs när en container är på väg att avslutas. Med den här kroken kan du utföra nödvändig rensning innan containern stoppas.
      • TerminationGracePeriodSeconds: Anger hur lång tid Kubernetes väntar på att en podd ska avslutas korrekt innan den avlivas med två skäl.
    • Exempel:

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

      När en podd som innehåller den här containern avslutas kör hooken PreStop kommandot /bin/sh -c 'sleep 20', vilket gör att containern viloläge i 20 sekunder. Den här pausen ger containern lite tid att slutföra pågående uppgifter eller rensning innan den stoppas.

      Inställningen TerminationGracePeriodSeconds ger totalt 120 sekunder för podden att avslutas korrekt, inklusive den tid det tar för alla livscykelkrokar, till exempel PreStop.

Använd följande steg för att uppdatera tilläggskonfigurationen.

  1. I din Azure Spring Apps-instans väljer du Spring Cloud Gateway i navigeringsfönstret och väljer sedan Konfiguration.
  2. Ange JSON-värdet för Addon Configs.
  3. Välj Spara.

Nästa steg