Konfigurieren von VMware Spring Cloud Gateway
Hinweis
Die Pläne Basic, Standard und Enterprise gelten ab Mitte März 2025 als veraltet und werden über einen Zeitraum von drei Jahren eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring Apps.
Der Plan Standardverbrauch und dediziert gilt ab dem 30. September 2024 als veraltet und wird nach sechs Monaten vollständig eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie unter Migrieren des Plans „Standardverbrauch und dediziert“ von Azure Spring Apps zu Azure Container Apps.
Dieser Artikel gilt für: ❎ Basic/Standard ✅ Enterprise
In diesem Artikel erfahren Sie, wie Sie VMware Spring Cloud Gateway für VMware Tanzu mit dem Azure Spring Apps Enterprise-Plan konfigurieren.
VMware Spring Cloud Gateway ist eine kommerzielle VMware Tanzu-Komponente, die auf dem Spring Cloud Gateway-Open-Source-Projekt basiert. VMware Spring Cloud Gateway für Tanzu erleichtert die Berücksichtigung übergreifender Aspekte durch API-Entwicklungsteams, z. B. einmaliges Anmelden (SSO), Zugriffssteuerung, Ratenbegrenzung, Resilienz und Sicherheit. Sie können die API-Bereitstellung beschleunigen, indem Sie moderne cloudeigene Muster der Programmiersprache in Ihrer Wahl für die API-Entwicklung verwenden.
Eine VMware Spring Cloud Gateway-Instanz leitet Datenverkehr anhand von Regeln weiter. Sowohl das horizontale Hoch-/Herunterskalieren als auch das zentrale Hoch-/Herunterskalieren werden unterstützt, um einer dynamischen Datenverkehrslast gerecht zu werden.
VMware Spring Cloud Gateway umfasst die folgenden Funktionen:
- Dynamische Routingkonfiguration, unabhängig von einzelnen Anwendungen, die Sie ohne erneute Kompilierung anwenden und ändern können
- Kommerzielle API-Routenfilter für den Transport von autorisierten JWT-Ansprüchen (JSON Web Token) an Anwendungsdienste
- Clientzertifikatautorisierung
- Ratenbegrenzungsansätze
- Konfiguration des Trennschalters
- Unterstützung für den Zugriff auf Anwendungsdienste über HTTP-Standardauthentifizierungsanmeldeinformationen
Für die Integration in das API-Portal für VMware Tanzu generiert VMware Spring Cloud Gateway automatisch eine OpenAPI-Dokumentation der Version 3, nachdem einer Routenkonfiguration etwas hinzugefügt oder darin etwas geändert wurde. Weitere Informationen finden Sie unter Verwenden des API-Portals für VMware Tanzu.
Voraussetzungen
- Eine bereits bereitgestellte Azure Spring Apps Enterprise-Plandienstinstanz mit aktiviertem VMware Spring Cloud Gateway-Feature. Weitere Informationen finden Sie unter Schnellstart: Erstellen und Bereitstellen von Anwendungen in Azure Spring Apps mit dem Enterprise Plan.
- Azure CLI-Version 2.0.67 oder höher Verwenden Sie den folgenden Befehl, um die Azure Spring Apps-Erweiterung zu installieren:
az extension add --name spring
.
Aktivieren oder Deaktivieren von VMware Spring Cloud Gateway
Sie können VMware Spring Cloud Gateway nach der Erstellung der Dienstinstanz mithilfe des Azure-Portals oder der Azure CLI aktivieren und deaktivieren. Bevor Sie VMware Spring Cloud Gateway deaktivieren, müssen Sie die Zuweisung des zugehörigen Endpunkts aufheben und alle Routenkonfigurationen entfernen.
Führen Sie die folgenden Schritte aus, um VMware Spring Cloud Gateway mithilfe des Azure-Portals zu aktivieren oder zu deaktivieren:
- Wechseln Sie zu Ihrer Dienstressource, und wählen Sie Spring Cloud Gateway aus.
- Wählen Sie Verwalten aus.
- Aktivieren oder deaktivieren Sie das Kontrollkästchen Spring Cloud Gateway aktivieren, und wählen Sie anschließend Speichern aus.
Sie können nun den Status von Spring Cloud Gateway auf der Seite Spring Cloud Gateway einsehen.
Neustart von VMware Spring Cloud Gateway
Nachdem Sie die Neustartaktion abgeschlossen haben, werden VMware Spring Cloud Gateway-Instanzen auf rollierender Basis neu gestartet.
Führen Sie die folgenden Schritte durch, um VMware Spring Cloud Gateway mithilfe des Azure-Portals neu zu starten:
- Wechseln Sie zu Ihrer Dienstressource, und wählen Sie Spring Cloud Gateway aus.
- Wählen Sie Neu starten aus.
- Wählen Sie OK aus, um den Neustart zu bestätigen.
Zuweisen eines öffentlichen Endpunkts zu VMware Spring Cloud Gateway
In diesem Abschnitt wird beschrieben, wie Sie VMware Spring Cloud Gateway einen öffentlichen Endpunkt zuweisen und dessen Eigenschaften konfigurieren.
Führen Sie die folgenden Schritte aus, um im Azure-Portal einen Endpunkt zuzuweisen:
- Öffnen Sie Ihre Azure Spring Apps-Instanz.
- Wählen Sie im Navigationsbereich Spring Cloud Gateway aus, und wählen Sie dann Übersicht aus.
- Legen Sie Endpunkt zuweisen auf Ja fest.
Nach wenigen Minuten wird der konfigurierte Endpunkt in URL angezeigt. Speichern Sie die URL zur späteren Verwendung.
Konfigurieren von VMware Spring Cloud Gateway-Metadaten
VMware Spring Cloud Gateway-Metadaten generieren automatisch eine Dokumentation für OpenAPI-Version 3. Sie können VMware Spring Cloud Gateway-Metadaten konfigurieren, sodass Routengruppen im API-Portal für VMware Tanzu angezeigt werden. Weitere Informationen finden Sie unter Verwenden des API-Portals für VMware Tanzu.
In der folgenden Tabelle werden die verfügbaren Metadatenoptionen beschrieben:
Eigenschaft | Beschreibung |
---|---|
title |
Ein Titel, der den Kontext der APIs beschreibt, die in der VMware Spring Cloud Gateway-Instanz verfügbar sind Der Standardwert ist Spring Cloud Gateway for K8S . |
description |
Eine detaillierte Beschreibung der APIs, die in der VMware Spring Cloud Gateway-Instanz verfügbar sind Der Standardwert ist Generated OpenAPI 3 document that describes the API routes configured for '[Gateway instance name]' Spring Cloud Gateway instance deployed under '[namespace]' namespace.*. |
documentation |
Der Speicherort der API-Dokumentation, die in der VMware Spring Cloud Gateway-Instanz verfügbar ist |
version |
Die Version der APIs, die in dieser VMware Spring Cloud Gateway-Instanz verfügbar sind Der Standardwert ist unspecified . |
serverUrl |
Die Basis-URL für den Zugriff auf APIs in der VMware Spring Cloud Gateway-Instanz Diese Eigenschaft ist obligatorisch, wenn Sie eine Integration in das API-Portal erzielen möchten. |
Sie können das Azure-Portal oder die Azure CLI zum Bearbeiten der Metadateneigenschaften verwenden.
Führen Sie die folgenden Schritte aus, um die Metadaten im Azure-Portal zu bearbeiten:
- Öffnen Sie Ihre Azure Spring Apps-Instanz.
- Wählen Sie im Navigationsbereich Spring Cloud Gateway und dann Konfiguration aus.
- Geben Sie Werte für die Eigenschaften, die für die API aufgeführt werden, an.
- Wählen Sie Speichern.
Einmaliges Anmelden konfigurieren
VMware Spring Cloud Gateway unterstützt die Authentifizierung und Autorisierung über einmaliges Anmelden (SSO) mit einem OpenID-Identitätsanbieter. Der Anbieter unterstützt das OpenID Connect Discovery-Protokoll. In der folgenden Tabelle werden die SSO-Eigenschaften beschrieben:
Eigenschaft | Erforderlich? | BESCHREIBUNG |
---|---|---|
issuerUri |
Ja | Der URI, der als Bezeichner des Ausstellers angegeben wird. Wenn issuerUri beispielsweise https://example.com lautet, wird eine OpenID-Anbieterkonfigurationsanforderung an https://example.com/.well-known/openid-configuration gesendet. Als Ergebnis wird eine OpenID-Anbieterkonfigurationsantwort erwartet. |
clientId |
Ja | Die OpenID Connect-Client-ID von Ihrem Identitätsanbieter |
clientSecret |
Ja | Der geheime OpenID Connect-Clientschlüssel ihres Identitätsanbieters |
scope |
Ja | Eine Liste der Bereiche, die in JWT-Identitätstoken eingeschlossen werden sollen. Diese Liste sollte auf den Bereichen basieren, die Ihr Identitätsanbieter zulässt. |
Informationen zum Einrichten von SSO mit Microsoft Entra ID finden Sie unter Einrichten des einmaligen Anmeldens mit Microsoft Entra ID für Spring Cloud Gateway und API-Portal.
Zum Bearbeiten von SSO-Eigenschaften können Sie das Azure-Portal oder die Azure CLI verwenden.
Führen Sie die folgenden Schritte aus, um SSO-Eigenschaften im Azure-Portal zu bearbeiten:
- Öffnen Sie Ihre Azure Spring Apps-Instanz.
- Wählen Sie im Navigationsbereich Spring Cloud Gateway und dann Konfiguration aus.
- Geben Sie Werte für die für SSO aufgeführten Eigenschaften an.
- Wählen Sie Speichern.
VMware Spring Cloud Gateway unterstützt nur Autorisierungsserver, die das OpenID Connect Discovery-Protokoll unterstützen. Stellen Sie außerdem sicher, dass Sie den externen Autorisierungsserver so konfigurieren, dass Umleitungen zurück an das Gateway zugelassen werden. Ziehen Sie die Dokumentation Ihres Autorisierungsservers zu Rate, und fügen Sie https://<gateway-external-url>/login/oauth2/code/sso
der Liste der zulässigen Umleitungs-URIs hinzu.
Wenn Sie die falsche SSO-Eigenschaft konfigurieren, z. B. das falsche Kennwort, sollten Sie die gesamte SSO-Eigenschaft entfernen und dann die richtige Konfiguration hinzufügen.
Denken Sie nach der Konfiguration von SSO daran, ssoEnabled: true
für die VMware Spring Cloud Gateway-Routen festzulegen.
Konfigurieren der SSO-Abmeldung
VMware Spring Cloud Gateway-Dienstinstanzen stellen einen Standard-API-Endpunkt zum Abmelden bei der aktuellen SSO-Sitzung bereit. Der Pfad zu diesem Endpunkt lautet /scg-logout
. Die Abmeldung führt zu einem der folgenden Ergebnisse, je nachdem, wie der Abmeldeendpunkt aufgerufen wird:
- Abmeldung bei der Sitzung und Weiterleitung zur Abmeldung beim Identitätsanbieter (IdP)
- Abmeldung bei der Dienstinstanzsitzung
Abmeldung bei IdP- und SSO-Sitzung
Wenn Sie eine GET
-Anforderung an den /scg-logout
-Endpunkt senden, sendet der Endpunkt eine 302
-Umleitungsantwort an die IdP-Abmelde-URL. Um den Endpunkt dazu zu bringen, den Benutzer oder die Benutzerin zu einem Pfad in der Gatewaydienstinstanz zurückzuleiten, fügen Sie der GET
-Anforderung mit dem /scg-logout
-Endpunkt einen Umleitungsparameter hinzu. Sie können beispielsweise ${server-url}/scg-logout?redirect=/home
verwenden.
Bei dem Wert des Umleitungsparameters muss es sich um einen gültigen Pfad in der VMware Spring Cloud Gateway-Dienstinstanz handeln. Eine Umleitung zu einer externen URL ist nicht zulässig.
Die folgenden Schritte beschreiben ein Beispiel für die Implementierung der Funktion in Ihren Microservices:
Rufen Sie eine Routenkonfiguration ab, um die Abmeldeanforderung an Ihre Anwendung weiterzuleiten. Ein Beispiel finden Sie in der Routenkonfiguration im Repository animal-rescue auf GitHub.
Fügen Sie der Anwendung die gewünschte Abmeldelogik hinzu. Am Ende benötigen Sie eine
GET
-Anforderung an den/scg-logout
-Endpunkt des Gateways, wie imreturn
-Wert für diegetActionButton
-Methode im Repository animal-rescue gezeigt.
Abmelden nur von der SSO-Sitzung
Wenn Sie die GET
-Anforderung unter Verwendung von XMLHttpRequest
an den /scg-logout
-Endpunkt senden, könnte die 302
-Umleitung verschluckt und nicht im Antworthandler behandelt werden. In diesem Fall würde der Benutzer oder die Benutzerin nur von der SSO-Sitzung in der VMware Spring Cloud Gateway-Dienstinstanz abgemeldet. Der Benutzer oder die Benutzerin würde weiterhin über eine gültige IdP-Sitzung verfügen. Wenn der Benutzer oder die Benutzerin erneut versucht, sich anzumelden, wird er bzw. sie in der Regel automatisch vom IdP als authentifiziert an das Gateway zurückgesendet.
Sie müssen eine Routenkonfiguration haben, um die Abmeldeanforderung an Ihre Anwendung weiterleiten zu können, wie im folgenden Beispiel gezeigt. Mit diesem Code wird eine SSO-Sitzung nur für die Gatewayabmeldung erstellt.
const req = new XMLHttpRequest();
req.open("GET", "/scg-logout);
req.send();
Konfigurieren der Ressourcenfreigabe zwischen verschiedenen Ursprüngen
Die ressourcenübergreifende Ressourcenfreigabe (Cross-Origin Resource Sharing, CORS) ermöglicht es, dass eingeschränkte Ressourcen auf einer Webseite von einer anderen Domäne außerhalb der Domäne, von der aus die erste Ressource bereitgestellt wurde, angefordert werden können. In der folgenden Tabelle werden die verfügbaren CORS-Konfigurationsoptionen beschrieben.
Eigenschaft | Beschreibung |
---|---|
allowedOrigins |
Zulässige Ursprünge für websiteübergreifende Anforderungen |
allowedOriginPatterns |
Zulässige Ursprungsmuster für websiteübergreifende Anforderungen |
allowedMethods |
Zulässige HTTP-Methoden für websiteübergreifende Anforderungen |
allowedHeaders |
Zulässige Header in websiteübergreifenden Anforderungen |
maxAge |
Dauer (in Sekunden), über die Clients die Antwort einer Vorabanforderung zwischenspeichern können |
allowCredentials |
Ob Benutzeranmeldeinformationen für websiteübergreifende Anforderungen unterstützt werden |
exposedHeaders |
HTTP-Antwortheader, die für websiteübergreifende Anforderungen verfügbar gemacht werden sollen |
Vergewissern Sie sich, dass Sie über die richtige CORS-Konfiguration verfügen, wenn eine Integration in das API-Portal gewünscht ist. Weitere Informationen finden Sie im Abschnitt Zuweisen eines öffentlichen Endpunkts zu VMware Spring Cloud Gateway.
Verwenden der Dienstskalierung
Sie können die Ressourcenzuordnung für VMware Spring Cloud Gateway-Instanzen anpassen, einschließlich vCPU, Arbeitsspeicher und Instanzenanzahl.
Um Hochverfügbarkeit zu gewährleisten, wird die Verwendung eines einzelnen Replikats nicht empfohlen.
In der folgenden Tabelle wird die Standardressourcennutzung beschrieben.
Komponentenname | Anzahl von Instanzen | vCPU pro Instanz | Arbeitsspeicher pro Instanz |
---|---|---|---|
VMware Spring Cloud Gateway | 2 | 1 Kern | 2 GiB |
VMware Spring Cloud Gateway-Operator | 2 | 1 Kern | 2 GiB |
Konfigurieren von TLS zwischen Gateway und Anwendungen
Um die Sicherheit zu erhöhen und sensible Informationen vor dem Abfangen durch Unbefugte zu schützen, können Sie Transport Layer Security (TLS) zwischen VMware Spring Cloud Gateway und Ihren Anwendungen aktivieren.
Bevor Sie TLS konfigurieren können, müssen Sie über eine TLS-fähige Anwendung und ein TLS-Zertifikat verfügen. Um ein TLS-Zertifikat vorzubereiten, generieren Sie ein Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle (ZS). Das Zertifikat verifiziert die Identität des Servers und stellt eine sichere Verbindung her.
Nachdem Sie eine TLS-fähige Anwendung haben, die in Azure Spring Apps ausgeführt wird, laden Sie das Zertifikat in Azure Spring Apps hoch. Weitere Informationen finden Sie im Abschnitt Importieren eines Zertifikats von Verwendung von TLS/SSL-Zertifikaten in Ihrer Anwendung in Azure Spring Apps.
Nachdem das Zertifikat in Azure Spring Apps aktualisiert wurde, können Sie das TLS-Zertifikat für das Gateway konfigurieren und die Zertifikatüberprüfung aktivieren. Sie können das Zertifikat im Azure-Portal oder mithilfe der Azure CLI konfigurieren.
Führen Sie die folgenden Schritte aus, um das Zertifikat im Azure-Portal zu konfigurieren:
- Wählen Sie in Ihrer Azure Spring Apps-Instanz im Navigationsbereich Spring Cloud Gateway aus.
- Wählen Sie auf der Seite Spring Cloud Gateway die Option Zertifikatverwaltung aus.
- Wählen Sie Zertifikatüberprüfung aktivieren aus.
- Wählen Sie das TLS-Zertifikat in Zertifikate aus.
- Wählen Sie Speichern.
Die Aktualisierung der Konfiguration kann einige Minuten dauern. Sie sollten eine Benachrichtigung erhalten, wenn die Konfiguration abgeschlossen ist.
Vorbereiten der Routenkonfiguration
Sie müssen das Protokoll in der Routenkonfiguration als HTTPS angeben. Das folgende JSON-Objekt weist VMware Spring Cloud Gateway an, das HTTPS-Protokoll für den gesamten Datenverkehr zwischen dem Gateway und der App zu verwenden.
Erstellen Sie eine Datei namens test-tls-route.json mit dem folgenden Inhalt:
{ "routes": [ { "title": "Test TLS app", "predicates": [ "Path=/path/to/your/app", "Method=GET" ] } ], "uri": "https://<app-custom-domain-name>" }
Verwenden Sie den folgenden Befehl, um die Regel auf die Anwendung anzuwenden:
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
Sie können jetzt testen, ob die Anwendung mit dem Endpunkt des Gateways TLS-fähig ist. Weitere Informationen finden Sie im Abschnitt Konfigurieren von Routen von Verwenden von Spring Cloud Gateway.
Rotieren von Zertifikaten
Da Zertifikate ablaufen, müssen Sie Zertifikate in VMware Spring Cloud Gateway mithilfe der folgenden Schritte rotieren:
- Generieren Sie neue Zertifikate von einer vertrauenswürdigen Zertifizierungsstelle.
- Importieren Sie die Zertifikate in Azure Spring Apps. Weitere Informationen finden Sie im Abschnitt Importieren eines Zertifikats von Verwendung von TLS/SSL-Zertifikaten in Ihrer Anwendung in Azure Spring Apps.
- Synchronisieren Sie die Zertifikate mithilfe des Azure-Portals oder der Azure CLI.
VMware Spring Cloud Gateway wird neu gestartet, um sicherzustellen, dass das Gateway das neue Zertifikat für alle Verbindungen verwendet.
Führen Sie die folgenden Schritte aus, um Zertifikate zu synchronisieren:
- Wählen Sie in Ihrer Azure Spring Apps-Instanz im Navigationsbereich Spring Cloud Gateway aus.
- Wählen Sie auf der Seite Spring Cloud Gateway die Option Neu starten aus, und bestätigen Sie den Vorgang.
Einstellungen für die Autoskalierung festlegen
Sie können Autoskalierungsmodi für VMware Spring Cloud Gateway festlegen.
In der folgenden Liste sind die Optionen aufgeführt, die für die Verwaltung des Autoskalierungsbedarfs verfügbar sind:
- Mit der Option Manuelle Skalierung wird eine feste Anzahl von Instanzen beibehalten. Sie können auf maximal 10 Instanzen aufskalieren. Dieser Wert ändert die Anzahl separat ausgeführter Instanzen von Spring Cloud Gateway.
- Die Option Benutzerdefinierte Autoskalierung skaliert in jedem Zeitplan basierend auf allen Metriken.
Wählen Sie im Azure-Portal aus, wie Sie skalieren möchten. Im folgenden Screenshot sind die Option Benutzerdefinierte Autoskalierung und Moduseinstellungen dargestellt:
Weitere Informationen zu den verfügbaren Metriken finden Sie im Abschnitt Benutzermetrikoptionen unter Metriken für Azure Spring Apps.
Konfigurieren des Antwortcaches
Die Konfiguration des Antwortcaches bietet eine Möglichkeit, einen HTTP-Antwortcache zu definieren, der global oder auf Routenebene angewendet werden kann.
Globales Aktivieren des Antwortcaches
Nachdem Sie den Antwortcache global aktiviert haben, wird dieser automatisch für alle anwendbaren Routen aktiviert.
Führen Sie die folgenden Schritte aus, um den Antwortcache global zu aktivieren:
- Wählen Sie in Ihrer Azure Spring Apps-Instanz im Navigationsbereich Spring Cloud Gateway aus.
- Wählen Sie auf der Seite Spring Cloud Gateway die Option Konfiguration aus.
- Wählen Sie im Abschnitt Antwortcache die Option Antwortcache aktivieren aus, und legen Sie Bereich auf Instanz fest.
- Legen Sie Größe und Gültigkeitsdauer für den Antwortcache fest.
- Wählen Sie Speichern.
Führen Sie die folgenden Schritte aus, um den Antwortcache zu deaktivieren:
- Wählen Sie in Ihrer Azure Spring Apps-Instanz im Navigationsbereich Spring Cloud Gateway aus.
- Wählen Sie auf der Seite Spring Cloud Gateway die Option Konfiguration aus.
- Deaktivieren Sie im Abschnitt Antwortcache die Option Antwortcache aktivieren.
- Wählen Sie Speichern.
Aktivieren des Antwortcaches auf Routenebene
Um den Antwortcache für jede Route zu aktivieren, verwenden Sie den LocalResponseCache
-Filter. Das folgende Beispiel zeigt, wie Sie den LocalResponseCache
-Filter in der Routingregelkonfiguration verwenden:
{
"filters": [
"<other-app-level-filter-of-route>",
],
"routes": [
{
"predicates": [
"Path=/api/**",
"Method=GET"
],
"filters": [
"<other-filter-of-route>",
"LocalResponseCache=3m, 1MB"
],
}
]
}
Weitere Informationen finden Sie im Abschnitt LocalResponseCache unter Verwendung von VMware Spring Cloud Gateway-Routenfiltern mit dem Azure Spring Apps Enterprise-Plan und LocalResponseCache in der VMware-Dokumentation.
Anstatt size
und timeToLive
für jeden LocalResponseCache
-Filter einzeln zu konfigurieren, können Sie diese Parameter auf Spring Cloud Gateway-Ebene festlegen. Mit dieser Option können Sie den LocalResponseCache
-Filter verwenden, ohne diese Werte anfangs anzugeben, und gleichzeitig die Flexibilität behalten, sie später außer Kraft zu setzen.
Führen Sie die folgenden Schritte aus, um den Antwortcache auf Routenebene zu aktivieren und size
sowie timeToLive
festzulegen:
- Wählen Sie in Ihrer Azure Spring Apps-Instanz im Navigationsbereich Spring Cloud Gateway aus.
- Wählen Sie auf der Seite Spring Cloud Gateway die Option Konfiguration aus.
- Wählen Sie im Abschnitt Antwortcache die Option Antwortcache aktivieren aus, und legen Sie Bereich auf Route fest.
- Legen Sie Größe und Gültigkeitsdauer für den Antwortcache fest.
- Wählen Sie Speichern.
Führen Sie die folgenden Schritte aus, um den Antwortcache auf Routenebene zu deaktivieren und dadurch size
und timeToLive
zu löschen:
- Wählen Sie in Ihrer Azure Spring Apps-Instanz im Navigationsbereich Spring Cloud Gateway aus.
- Wählen Sie auf der Seite Spring Cloud Gateway die Option Konfiguration aus.
- Deaktivieren Sie im Abschnitt Antwortcache die Option Antwortcache aktivieren.
- Wählen Sie Speichern.
Das folgende Beispiel zeigt, wie Sie den LocalResponseCache
-Filter verwenden, wenn size
und timeToLive
auf der Spring Cloud Gateway-Ebene festgelegt werden:
{
"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"
],
}
]
}
Konfigurieren von Umgebungsvariablen
Der Azure Spring Apps-Dienst verwaltet und optimiert VMware Spring Cloud Gateway. Mit Ausnahme der Anwendungsfälle, in denen die Überwachung der Anwendungsleistung (Application Performance Monitoring, APM) und der Protokolliergrad konfiguriert werden, müssen Sie VMware Spring Cloud Gateway normalerweise nicht mit Umgebungsvariablen konfigurieren.
Wenn Sie über Anforderungen verfügen, die von anderen in diesem Artikel beschriebenen Konfigurationen nicht erfüllt werden können, können Sie versuchen, die in der Liste der allgemeinen Anwendungseigenschaften aufgeführten Umgebungsvariablen zu konfigurieren. Stellen Sie sicher, dass Sie Ihre Konfiguration in Ihrer Testumgebung überprüfen, bevor Sie sie in Ihrer Produktionsumgebung anwenden.
Führen Sie die folgenden Schritte aus, um Umgebungsvariablen im Azure-Portal zu konfigurieren:
- Wählen Sie in Ihrer Azure Spring Apps-Instanz im Navigationsbereich Spring Cloud Gateway und anschließend Konfiguration aus.
- Füllen Sie die Schlüssel-Wert-Paare für die Umgebungsvariablen in den Abschnitten Eigenschaften und Geheime Schlüssel aus. Sie können Variablen mit vertraulichen Informationen im Abschnitt Geheimnisse angeben.
- Wählen Sie Speichern aus, um die Änderungen zu speichern.
Nachdem Sie Umgebungsvariablen aktualisiert haben, wird VMware Spring Cloud Gateway neu gestartet.
Konfigurieren der Überwachung der Anwendungsleistung
Um VMware Spring Cloud Gateway zu überwachen, können Sie die APM konfigurieren. In der folgenden Tabelle sind die fünf von VMware Spring Cloud Gateway bereitgestellten Typen von APM-Java-Agents zusammen mit den jeweils erforderlichen Umgebungsvariablen aufgeführt.
Java-Agent | Erforderliche Umgebungsvariablen |
---|---|
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 |
Elastic APM | ELASTIC_APM_SERVICE_NAME ELASTIC_APM_APPLICATION_PACKAGES ELASTIC_APM_SERVER_URL |
Informationen zu weiteren unterstützten Umgebungsvariablen finden Sie in den folgenden Quellen:
- Application Insights-Übersicht
- Dynatrace-Umgebungsvariablen
- New Relic-Umgebungsvariablen
- AppDynamics-Umgebungsvariablen
- Elastic-Umgebungsvariablen
Konfigurieren der APM-Integration auf Dienstinstanzebene (empfohlen)
Um die APM-Überwachung in Ihrer VMware Spring Cloud Gateway-Instanz zu aktivieren, können Sie eine APM-Konfiguration auf Dienstinstanzebene erstellen und an Spring Cloud Gateway binden. Auf diese Weise können Sie die APM nur einmal konfigurieren und dieselbe APM an Spring Cloud Gateway sowie an Ihre Apps binden.
Führen Sie die folgenden Schritte aus, um die APM mithilfe des Azure-Portals einzurichten:
Konfigurieren Sie die APM auf Dienstinstanzebene mit dem Namen, dem Typ und den Eigenschaften der APM. Weitere Informationen finden Sie im Abschnitt Verwalten der APMS auf Dienstinstanzebene (empfohlen) unter Konfigurieren von APM-Integration und Zertifizierungsstellenzertifikaten.
Wählen Sie im Navigationsbereich Spring Cloud Gateway und dann APM aus.
Wählen Sie in der Liste APM-Referenznamen den APM-Namen aus. Die Liste enthält alle in Schritt 1 konfigurierten APM-Namen.
Wählen Sie Speichern aus, um APM-Referenznamen an Spring Cloud Gateway zu binden. Ihr Gateway wird neu gestartet, um die APM-Überwachung zu aktivieren.
Verwalten der APM in VMware Spring Cloud Gateway (veraltet)
Sie können das Azure-Portal oder die Azure CLI verwenden, um die APM in VMware Spring Cloud Gateway einzurichten. Sie können auch die Typen von APM-Java-Agents angeben, die verwendet werden sollen, und die entsprechenden unterstützten APM-Umgebungsvariablen.
Führen Sie die folgenden Schritte aus, um die APM mithilfe des Azure-Portals einzurichten:
- Wählen Sie in Ihrer Azure Spring Apps-Instanz im Navigationsbereich Spring Cloud Gateway und anschließend Konfiguration aus.
- Wählen Sie den APM-Typ in der Liste APM aus, um ein Gateway zu überwachen.
- Füllen Sie die Schlüssel-Wert-Paare für die APM-Umgebungsvariablen in den Abschnitten Eigenschaften und Geheime Schlüssel aus. Sie können Variablen mit vertraulichen Informationen in geheime Schlüssel einfügen.
- Wählen Sie Speichern aus, um die Änderungen zu speichern.
Die Aktualisierung der Konfiguration kann einige Minuten dauern. Sie sollten eine Benachrichtigung erhalten, wenn die Konfiguration abgeschlossen ist.
Hinweis
Azure Spring Apps aktualisiert den APM-Agent und bereitgestellte Apps in der gleichen Kadenz, um die Kompatibilität der Agenten zwischen VMware Spring Cloud Gateway und Azure Spring Apps zu gewährleisten.
Standardmäßig gibt Azure Spring Apps die Protokolle des APM-Java-Agent an STDOUT
aus. Diese Protokolle sind in den VMware Spring Cloud Gateway-Protokollen enthalten. Sie können die Version des in den Protokollen verwendeten APM-Agent überprüfen. Zur Problembehandlung können Sie diese Protokolle in Log Analytics abfragen.
Damit die APM-Agents ordnungsgemäß funktionieren, erhöhen Sie die CPU und den Arbeitsspeicher von VMware Spring Cloud Gateway.
Konfigurieren von Protokollstufen
Sie können die Protokolliergrade von VMware Spring Cloud Gateway wie folgt konfigurieren, um mehr Details zu erhalten oder die Protokollierung zu reduzieren:
- Sie können die Protokollgrade auf
TRACE
,DEBUG
,INFO
,WARN
,ERROR
oderOFF
festlegen. Der Standardprotokolliergrad für VMware Spring Cloud Gateway lautetINFO
. - Sie können die Protokollierung deaktivieren, indem Sie die Protokolliergrade auf
OFF
festlegen. - Wenn der Protokolliergrad auf
WARN
,ERROR
oderOFF
festgelegt ist, müssen Sie ihn möglicherweise inINFO
ändern, wenn Sie Support vom Azure Spring Apps-Team anfordern. Diese Änderung bewirkt einen Neustart von VMware Spring Cloud Gateway. - Wenn der Protokolliergrad auf
TRACE
oderDEBUG
festgelegt ist, kann sich dies auf die Leistung von VMware Spring Cloud Gateway auswirken. Versuchen Sie, diese Einstellungen in Ihrer Produktionsumgebung zu vermeiden. - Sie können Protokolliergrade für die
root
-Protokollierung oder bestimmte Protokollierungen wieio.pivotal.spring.cloud.gateway
festlegen.
Die folgenden Protokollierungen können wertvolle Informationen zur Problembehandlung auf den Ebenen TRACE
und DEBUG
enthalten:
Logger | Beschreibung |
---|---|
io.pivotal.spring.cloud.gateway |
Filter und Prädikate, einschließlich benutzerdefinierter Erweiterungen |
org.springframework.cloud.gateway |
API-Gateway |
org.springframework.http.server.reactive |
HTTP-Serverinteraktionen |
org.springframework.web.reactive |
Reaktive API-Gatewayflows |
org.springframework.boot.autoconfigure.web |
Automatische API-Gatewaykonfiguration |
org.springframework.security.web |
Authentifizierungs- und Autorisierungsinformationen |
reactor.netty |
Reactor Netty |
Zum Abrufen von Umgebungsvariablenschlüsseln fügen Sie das Präfix logging.level.
hinzu, und legen Sie dann den Protokolliergrad fest, indem Sie die Umgebung logging.level.{loggerName}={logLevel}
konfigurieren. In den folgenden Beispielen werden die Schritte für das Azure-Portal und die Azure CLI gezeigt.
Führen Sie die folgenden Schritte aus, um Protokolliergrade im Azure-Portal zu konfigurieren:
- Wählen Sie in Ihrer Azure Spring Apps-Instanz im Navigationsbereich Spring Cloud Gateway und anschließend Konfiguration aus.
- Füllen Sie die Schlüssel-Wert-Paare für die Umgebungsvariablen der Protokolliergrade in den Abschnitten Eigenschaften und Geheime Schlüssel aus. Wenn es sich in Ihrem Fall bei dem Protokolliergrad um eine vertrauliche Information handelt, können Sie diese in den Abschnitt Geheime Schlüssel aufnehmen.
- Wählen Sie Speichern aus, um die Änderungen zu speichern.
Update der Add-On-Konfiguration
Mit dem Add-On-Konfigurationsfeature können Sie bestimmte Eigenschaften von VMware Spring Cloud Gateway mithilfe einer JSON-Formatzeichenfolge anpassen. Das Feature ist nützlich, wenn Sie Eigenschaften, die nicht über die REST-API verfügbar gemacht werden, konfigurieren müssen.
Die Add-On-Konfiguration ist ein JSON-Objekt mit Schlüssel-Wert-Paaren, die die gewünschte Konfiguration darstellen. Das folgende Beispiel zeigt die Struktur des JSON-Formats:
{
"<addon-key-name>": {
"<addon-key-name>": "<addon-value>"
...
},
"<addon-key-name>": "<addon-value>",
...
}
Die folgende Liste enthält die unterstützten Add-On-Konfigurationen für die Add-On-Schlüsselnamen und Werttypen. Diese Liste kann sich ändern, wenn die VMware Spring Cloud Gateway-Version aktualisiert wird.
SSO-Konfiguration:
Schlüsselname:
sso
Werttyp: Objekt
Eigenschaften:
RolesAttributeName
(Zeichenfolge): Gibt den Namen des Attributs an, das die Rollen enthält, die der SSO-Sitzung zugeordnet sind.InactiveSessionExpirationInMinutes
(Integer): Gibt die Ablaufzeit für inaktive SSO-Sitzungen in Minuten an. Ein Wert0
bedeutet, dass die Sitzung nie abläuft.
Beispiel:
{ "sso": { "rolesAttributeName": "roles", "inactiveSessionExpirationInMinutes": 1 } }
Metadatenkonfiguration:
Schlüsselname:
api
Werttyp: Objekt
Eigenschaften
groupId
(Zeichenfolge): Ein eindeutiger Bezeichner für die Gruppe der APIs, die in der VMware Spring Cloud Gateway-Instanz verfügbar sind. Der Wert darf nur Kleinbuchstaben und Zahlen enthalten.
Beispiel:
{ "api": { "groupId": "id1" } }
Podkonfiguration
Schlüsselname:
PodOverrides
, der verwendet wird, um Außerkraftsetzungen für die Standardpodkonfiguration anzugeben.Werttyp: Objekt
Eigenschaften
Containers
: Dieses Array enthält die Konfiguration für einzelne Container innerhalb des Pods. Derzeit wird nur der Containergateway
unterstützt.Name
: Gibt den Namen des Containers an. Der Container solltegateway
benannt werden.Lifecycle
:PreStop
ist ein Lebenszyklushook, der ausgeführt wird, wenn das Beenden des Containers bevorsteht. Mit diesem Hook können Sie alle erforderlichen Bereinigungen durchführen, bevor der Container beendet wird.
TerminationGracePeriodSeconds
: Gibt die Zeit an, die Kubernetes wartet, bis ein Pod ordnungsgemäß beendet wird, bevor das Beenden erzwungen wird.
Beispiel:
{ "PodOverrides": { "Containers": [ { "Name": "gateway", "Lifecycle": { "PreStop": { "Exec": { "Command": [ "/bin/sh", "-c", "sleep 20" ] } } } } ], "TerminationGracePeriodSeconds": 120 } }
Wenn ein Pod, der diesen Container enthält, beendet wird, führt der
PreStop
-Hook den Befehl/bin/sh -c 'sleep 20'
aus, wodurch der Container für 20 Sekunden in den Ruhezustand versetzt wird. Durch diese Pause hat der Container Zeit, um laufende Tasks abzuschließen oder zu bereinigen, bevor er tatsächlich beendet wird.Die Einstellung
TerminationGracePeriodSeconds
gewährt insgesamt 120 Sekunden, damit der Pod ordnungsgemäß beendet wird, einschließlich der Zeit, die von Lebenszyklushooks wiePreStop
benötigt wird.
Führen Sie die folgenden Schritte aus, um die Add-On-Konfiguration zu aktualisieren.
- Wählen Sie in Ihrer Azure Spring Apps-Instanz im Navigationsbereich Spring Cloud Gateway und anschließend Konfiguration aus.
- Geben Sie den JSON-Wert für Add-On-Konfigurationen an.
- Wählen Sie Speichern.