Anforderungs-Policys und Antwort-Policys zu API-Deployment-Spezifikationen hinzufügen
Erfahren Sie, wie Sie das Verhalten von API-Deployments steuern können, indem Sie Anforderungs- und Antwort-Policys zu API-Spezifikationen hinzufügen, die Sie zuvor mit API Gateway erstellt haben.
Sie können das Verhalten eines API-Deployments, das Sie in einem API-Gateway erstellen, steuern, indem Sie der API-Deployment-Spezifikation Anforderungs- und Antwort-Policys hinzufügen:
- Eine Anforderungs-Policy beschreibt Aktionen, die für eine eingehende Anforderung von einem API-Client durchgeführt werden, bevor diese an ein Backend gesendet wird.
- Eine Antwort-Policy beschreibt Aktionen, die für eine von einem Backend zurückgegebene Antwort durchgeführt werden, bevor diese an einen API-Client gesendet wird
Mit Anforderungs-Policys und/oder Antwort-Policys können Sie:
- die Anzahl von Anforderungen begrenzen, die an Backend-Services gesendet werden
- CORS-(Cross-Origin Resource Sharing-)Support aktivieren
- Authentifizierung und Autorisierung bereitstellen
- mTLS-Unterstützung hinzufügen
- Anforderungen validieren, bevor sie an Backend-Services gesendet werden
- eingehende Anforderungen und ausgehende Antworten ändern
- Cacheantworten, um die Performance zu verbessern und die Belastung von Backend-Services zu reduzieren
- API-Deployments für die Aufnahme in Nutzungspläne zur Überwachung und Verwaltung des Abonnentenzugriffs qualifizieren
Sie können einer API-Deployment-Spezifikation Policys hinzufügen, die global für alle Routen in der API-Deployment-Spezifikation gelten, sowie Policys, die nur für bestimmte Routen gelten.
Hinweis: API Gateway-Anforderungs-Policys und -Antwort-Policys unterscheiden sich von IAM-Policys, die den Zugriff auf Oracle Cloud Infrastructure-Ressourcen steuern.
Sie können Anforderungs- und Antwort-Policys zu einer API-Deployment-Spezifikation hinzufügen, indem Sie:
- die Konsole verwenden
- eine JSON-Datei bearbeiten
Anforderungs-Policys und Antwort-Policys mit der Konsole hinzufügen
So fügen Sie mit der Konsole Anforderungs- und Antwort-Policys zu einer API-Deployment-Spezifikation hinzu:
-
Erstellen oder aktualisieren Sie ein API-Deployment mit der Konsole, wählen Sie die Option Völlig neu aus, und geben Sie auf der Seite Basisinformationen Details ein.
Weitere Informationen finden Sie unter API durch das Erstellen eines API-Deployment in einem API-Gateway bereitstellen und API-Gateway aktualisieren.
-
Geben Sie auf der Seite Basisinformationen im Abschnitt API-Anforderungs-Policys Anforderungs-Policys an, die global für alle Routen in der API-Deployment-Spezifikation gelten:
- Gegenseitig-TLS: Eine Policy zur Kontrolle des Zugriffs auf APIs, die Sie in API-Gateways bereitstellen, basierend auf dem TLS-Zertifikat, das der API-Client vorlegt, der eine Anforderung stellt. Sie können eine mTLS-Policy nur global auf alle Routen in der API-Deployment-Spezifikation (und nicht auf einzelne Routen) anwenden. Siehe mTLS-Support zu API-Deployments hinzufügen.
- CORS: Eine Policy zur Aktivierung von CORS-Support in den APIs, die Sie in API-Gateways bereitstellen. Sie können auch CORS-Policys angeben, die für einzelne Routen in der API-Deployment-Spezifikation gelten (die vorausgehende Eingabe einer globalen CORS-Policy ist nicht erforderlich). Siehe CORS-Support zu API-Deployments hinzufügen.
- Ratenbegrenzung: Eine Policy zur Begrenzung der Rate, mit der API-Clients Anforderungen an Backend-Services stellen können. Sie können eine ratenbegrenzende Policy nur global auf alle Routen in der API-Deployment-Spezifikation anwenden (und nicht auf einzelne Routen). Siehe Anzahl von Anforderungen an API-Gateway-Backends begrenzen.
-
Wählen Sie Weiter aus, um Optionen zum Definieren einer globalen Authentifizierungsanforderungs-Policy auf der Seite Authentifizierung anzugeben.
Die Authentifizierungsanforderungs-Policy steuert den Zugriff auf die APIs, die Sie in API-Gateways bereitstellen. Nachdem Sie eine globale Authentifizierungs-Policy angegeben haben, können Sie Autorisierungs-Policys angeben, die für einzelne Routen in der API-Deployment-Spezifikation gelten sollen. Siehe Authentifizierung und Autorisierung zu API-Deployments hinzufügen.
-
Wählen Sie Weiter aus, um Details zu einzelnen Routen im API-Deployment auf der Seite Routen einzugeben.
-
Um Anforderungs-Policys anzugeben, die für eine einzelne Route gelten sollen, wählen Sie Routenanforderungs-Policys anzeigen aus, und geben Sie Folgendes an:
- Autorisierung: Eine Policy zur Angabe der Vorgänge, die ein Endbenutzer ausführen darf, basierend auf den Zugriffsgeltungsbereichen des Endbenutzers. Beachten Sie, dass bereits eine globale Authentifizierungs-Policy vorhanden sein muss, bevor Sie eine Autorisierungs-Policy für eine einzelne Route angeben können. Siehe Authentifizierung und Autorisierung zu API-Deployments hinzufügen.
- CORS: Eine Policy zur Aktivierung von CORS-Support für einzelne Routen in der API-Deployment-Spezifikation (die vorausgehende Eingabe einer globalen CORS-Policy ist nicht erforderlich). Siehe CORS-Support zu API-Deployments hinzufügen.
- Headervalidierungen: Eine Policy zur Validierung von Headern in Anforderungen. Siehe Validierungsanforderungs-Policys mit der Konsole hinzufügen.
- Abfrageparametervalidierungen: Eine Policy zur Validierung von Abfrageparametern in Anforderungen. Siehe Validierungsanforderungs-Policys mit der Konsole hinzufügen.
- Textvalidierung: Eine Policy zur Validierung des Inhalts im Text der Anforderungen. Siehe Validierungsanforderungs-Policys mit der Konsole hinzufügen
- Headertransformationen: Eine Policy zum Hinzufügen, Entfernen und Ändern von Headern in Anforderungen. Siehe Headertransformationsanforderungs-Policys mit der Konsole hinzufügen.
- Abfragetransformationen: Eine Policy zum Hinzufügen, Entfernen und Ändern von Abfrageparametern in Anforderungen. Siehe Abfrageparameter-Transformationsanforderungs-Policys mit der Konsole hinzufügen.
-
Um Antwort-Policys anzugeben, die für eine einzelne Route gelten, wählen Sie Routenantwort-Policys einblenden aus, und geben Sie Folgendes an:
- Headertransformationen: Eine Policy zum Hinzufügen, Entfernen und Ändern von Headern in Antworten. Siehe Headertransformationsantwort-Policys mit der Konsole hinzufügen.
- Wählen Sie Weiter aus, um die Details zu prüfen, die Sie für das API-Deployment eingegeben haben.
- Wählen Sie Erstellen oder Änderungen speichern aus, um das API-Deployment zu erstellen oder zu aktualisieren.
- (Optional) Bestätigen Sie, dass die API erfolgreich bereitgestellt wurde, indem Sie sie aufrufen (siehe In einem API-Gateway bereitgestellte API aufrufen).
Anforderungs-Policys und Antwort-Policys durch Bearbeiten einer JSON-Datei hinzufügen
So fügen Sie Anforderungs- und Antwort-Policys zu einer API-Deployment-Spezifikation in einer JSON-Datei hinzu:
-
Bearbeiten Sie mit Ihrem bevorzugten JSON-Editor die vorhandene API-Deployment-Spezifikation, der Sie eine Anforderungs- oder Antwort-Policy hinzufügen möchten, oder erstellen Sie eine neue API-Deployment-Spezifikation (siehe API-Deployment-Spezifikation erstellen).
Die API-Deployment-Spezifikation beinhaltet zumindest einen
routes
-Abschnitt, der Folgendes enthält:- Einen Pfad. Beispiel:
/hello
- Mindestens eine Methode. Beispiel:
GET
- Eine Definition eines Backends. Beispiel: Eine URL oder die OCID einer Funktion in OCI Functions.
Beispiel: Die folgende Basisspezifikation für das API-Deployment definiert eine einfache serverlose Hello World-Funktion in OCI Functions als einzelnes Backend:
{ "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" } } ] }
- Einen Pfad. Beispiel:
-
So fügen Sie eine Anforderungs-Policy hinzu, die global für alle Routen in der API-Deployment-Spezifikation gelten soll:
-
Fügen Sie einen
requestPolicies
-Abschnitt vor demroutes
-Abschnitt ein. Beispiel:{ "requestPolicies": {}, "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" } } ] }
-
Nehmen Sie eine Anforderungs-Policy in den
requestPolicies
-Abschnitt auf.Beispiel: Um die Anzahl der Anforderungen zu begrenzen, die an alle Routen in einer API-Deployment-Spezifikation gesendet werden, nehmen Sie die
rateLimiting
-Policy folgendermaßen in denrequestPolicies
-Abschnitt auf:{ "requestPolicies": { "rateLimiting": { "rateKey": "CLIENT_IP", "rateInRequestsPerSecond": 10 } }, "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" } } ] }
Weitere Informationen zur
rateLimiting
-Anforderungs-Policy finden Sie unter Anzahl von Anforderungen an API-Gateway-Backends begrenzen.
-
-
So fügen Sie eine Anforderungs-Policy hinzu, die für eine einzelne Route in der API-Deployment-Spezifikation gelten soll:
-
Fügen Sie einen
requestPolicies
-Abschnitt nach dembackend
-Abschnitt der Route ein. Beispiel:{ "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" }, "requestPolicies": {} } ] }
-
Nehmen Sie eine Anforderungs-Policy in den
requestPolicies
-Abschnitt auf.Beispiel: Um CORS-Support in einem API-Deployment für eine bestimmte Route zu aktivieren, nehmen Sie die
cors
-Policy folgendermaßen in denrequestPolicies
-Abschnitt auf:{ "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" }, "requestPolicies": { "cors":{ "allowedOrigins": ["*", "https://oracle.com"], "allowedMethods": ["*", "GET"], "allowedHeaders": [], "exposedHeaders": [], "isAllowCredentialsEnabled": false, "maxAgeInSeconds": 3000 } } } ] }
Weitere Informationen zur
cors
-Anforderungs-Policy finden Sie unter CORS-Support zu API-Deployments hinzufügen.
-
-
So fügen Sie eine Antwort-Policy hinzu, die für eine einzelne Route in der API-Deployment-Spezifikation gelten soll:
-
Fügen Sie einen
responsePolicies
-Abschnitt nach dembackend
-Abschnitt der Route ein. Beispiel:{ "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" }, "responsePolicies": {} } ] }
-
Fügen Sie eine Antwort-Policy in den
responsePolicies
-Abschnitt ein.Beispiel: Um einen beliebigen
X-Username
-Header in der Antwort von einer bestimmten Route inX-User-ID
umzubenennen, fügen Sie dieheaderTransformations
-Policy wie folgt in denresponsePolicies
-Abschnitt ein:{ "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" }, "responsePolicies": { "headerTransformations": { "renameHeaders": { "items": [ { "from": "X-Username", "to": "X-User-ID" } ] } } } } ] }
Weitere Informationen zur
headerTransformations
-Antwort-Policy finden Sie unter Headertransformationsantwort-Policys durch Bearbeiten einer JSON-Datei hinzufügen.
-
- Speichern Sie die JSON-Datei, die die API-Deployment-Spezifikation enthält.
-
Verwenden Sie die API-Deployment-Spezifikation, wenn Sie ein API-Deployment wie folgt erstellen oder aktualisieren:
- Durch Angabe der JSON-Datei in der Konsole bei Auswahl der Option Vorhandene API hochladen
- Durch Angabe der JSON-Datei in einer Anforderung an die REST-API von API-Gateway
Weitere Informationen finden Sie unter API durch das Erstellen eines API-Deployments in einem API-Gateway bereitstellen.