API-Gateway erstellen
Erfahren Sie, wie Sie mit dem API-Gateway-Service ein API-Gateway erstellen, um Traffic von Front-End-Clients zu verarbeiten und an Backend-Services weiterzuleiten.
Sie können API-Gateways erstellen, um Traffic von API-Clients zu verarbeiten und an Backend-Services weiterzuleiten. Nachdem Sie ein API-Gateway erstellt haben, stellen Sie eine API im API-Gateway bereit, indem Sie ein API-Deployment erstellen.
Sie können ein einzelnes API-Gateway wie das Frontend für mehrere Backend-Services wie folgt verwenden:
- Erstellen Sie ein einzelnes API-Deployment im API-Gateway mit einer API-Deployment-Spezifikation, die mehrere Backend-Services definiert.
- Erstellen Sie mehrere API-Deployments im selben API-Gateway, wobei jedes API-Deployment eine API-Deployment-Spezifikation enthält, die einen (oder mehrere) Backend-Service(s) definiert.
Wenn Sie ein einzelnes API-Gateway als Front-End verwenden, können Sie den API-Consumers und API-Clients eine einzelne kohäsive API präsentieren, selbst wenn die API tatsächlich aus kleineren Microservices besteht, die von verschiedenen Software-Teams mit verschiedenen Programmiersprachen oder Technologien geschrieben wurden.
- Wählen Sie auf der Listenseite Gateways die Option Gateway erstellen aus. Wenn Sie Hilfe beim Suchen der Listenseite benötigen, finden Sie weitere Informationen unter API-Gateways auflisten.
-
Geben Sie die folgenden Werte für das neue API-Gateway an:
- Name: Der Name des API-Gateways. Vermeiden Sie die Eingabe von vertraulichen Informationen.
- Typ: Den Typ des zu erstellenden API-Gateways.
- Wählen Sie Privat aus, wenn Sie nur möchten, dass das API-Gateway (und die darin bereitgestellten APIs) über Ressourcen im selben privaten Netzwerk (VCN) oder über Ressourcen in anderen privaten oder On-Premise-Netzwerken mit diesem privaten Netzwerk zugänglich ist.
- Wählen Sie Öffentlich aus, wenn das API-Gateway (und die darin bereitgestellten APIs) öffentlich zugänglich sein soll. Öffentliche API-Gateways können über das Internet erreicht werden, sofern ein Internetgateway im VCN des API-Gateways vorhanden ist.
- Compartment: Das Compartment, in dem das API-Gateway erstellt werden soll.
- Virtuelles Cloud-Netzwerk in <compartment-name>: Das VCN, in dem das API-Gateway erstellt werden soll. Das VCN kann sich im selben Compartment wie das API-Gateway befinden, muss sich jedoch nicht befinden.
- Subnetz in <compartment-name>: Das öffentliche oder private regionale Subnetz, in dem Sie das API-Gateway erstellen können. Wenn Sie ein öffentliches API-Gateway erstellen möchten, müssen Sie ein öffentliches regionales Subnetz angeben.
Beachten Sie, dass API Gateway auf Port 443 kommuniziert, der standardmäßig nicht geöffnet ist. Sie müssen eine neue zustandsbehaftete Ingress-Sicherheitsregel für das regionale Subnetz (entweder in einer Sicherheitsliste oder in einer Netzwerksicherheitsgruppe) hinzufügen, um Traffic auf Port 443 zu ermöglichen. Die Eigenschaften der Ingress-Sicherheitsregel finden Sie unter Mit API-Gateway zu verwendendes VCN erstellen, wenn noch keine vorhanden ist.
- Netzwerksicherheitsgruppen aktivieren: Wählen Sie diese Option aus, um den Zugriff auf und vom API-Gateway zu kontrollieren, indem Sie Sicherheitsregeln verwenden, die für mindestens eine Netzwerksicherheitsgruppe (NSGs) definiert sind, die Sie angeben (maximal fünf Netzwerksicherheitsgruppen). Sie können für NSGs definierte Sicherheitsregeln anstelle von oder zusätzlich zu den für Sicherheitslisten definierten Sicherheitsregeln verwenden. NSGs können zu demselben Compartment wie das neue API-Gateway gehören, müssen jedoch nicht. Siehe Netzwerksicherheitsgruppen.
- Zertifikat: Das TLS-Zertifikat, das das API-Gateway verwendet. Das von Ihnen ausgewählte TLS-Zertifikat bestimmt den Domainnamen des API-Gateways.
- Standard (*.oci.customer-oci.com) (falls angezeigt): Wählen Sie diese Option aus, wenn der Domainname automatisch für Sie generiert werden soll und das API-Gateway ein Standard-TLS-Zertifikat verwenden soll, das vom API Gateway-Service abgerufen wird. Der generierte Standarddomainname enthält eine zufällige Zeichenfolge gefolgt von
.apigateway.<region-identifier>.oci.customer-oci.com
. Beispiel:laksjd.apigateway.us-phoenix-1.oci.customer-oci.com
. Diese Option ist nur verfügbar, wenn Ihr Mandant in der Realm OC1 vorhanden ist. - Kategorie Certificates-Service (falls angezeigt): Wählen Sie eine vorhandene Zertifikatsressource des Certificates-Service aus, die die Details des benutzerdefinierten TLS-Zertifikats enthält, das Sie vom API-Gateway verwenden möchten. Das API-Gateway verwendet einen benutzerdefinierten Domainnamen, der mit dem ausgewählten Zertifikat verknüpft ist. Diese Kategorie wird nur angezeigt, wenn Zertifikatsressourcen des Certificates-Service im ausgewählten Compartment verfügbar sind.
- Kategorie API Gateway-Zertifikate (sofern angezeigt): Wählen Sie eine vorhandene API-Gateway-Zertifikatsressource mit den Details des benutzerdefinierten TLS-Zertifikats aus, das Sie vom API-Gateway verwenden möchten. Das API-Gateway verwendet einen benutzerdefinierten Domainnamen, der mit dem ausgewählten Zertifikat verknüpft ist. Diese Kategorie wird nur angezeigt, wenn API-Gateway-Zertifikatsressourcen im ausgewählten Compartment verfügbar sind.
Siehe Benutzerdefinierte Domains und TLS-Zertifikate einrichten.
Hinweis
Wir empfehlen die Verwendung eines benutzerdefinierten TLS-Zertifikats für öffentliche oder Produktionssysteme. Wir empfehlen, ein vom API Gateway-Service abgerufenes TLS-Standardzertifikat nur für private oder Nicht-Produktionssysteme zu verwenden (z.B. für Entwicklung und Test).
- Standard (*.oci.customer-oci.com) (falls angezeigt): Wählen Sie diese Option aus, wenn der Domainname automatisch für Sie generiert werden soll und das API-Gateway ein Standard-TLS-Zertifikat verwenden soll, das vom API Gateway-Service abgerufen wird. Der generierte Standarddomainname enthält eine zufällige Zeichenfolge gefolgt von
- Wählen Sie optional Erweiterte Optionen anzeigen, und geben Sie die folgenden Werte an:
- Antwortcaching: Optionen zum Aktivieren und Konfigurieren von Antwortcaching für das API-Gateway, um die Performance zu verbessern und die Last für Backend-Services zu reduzieren. Siehe Antworten zur Verbesserung der Performance cachen.
- Certificate Authoritys: Mindestens eine Certificate-Authority-(CA-)Ressource oder CA-Bundle-Ressource, die dem Truststore des API-Gateways als benutzerdefinierte CAs und benutzerdefinierte CA-Bundles hinzugefügt werden sollen (zusätzlich zum Standard-CA-Bundle). Benutzerdefinierte CAs und benutzerdefinierte CA-Bundles werden verwendet, um TLS-Zertifikate zu verifizieren, die von API-Clients und Backend-Services präsentiert werden. Siehe Customizing Trust Stores for TLS Certificate Verification.
- Tags: Wenn Sie über Berechtigungen zum Erstellen von Ressourcen verfügen, können Sie auch Freiformtags auf diese Ressource anwenden. Um ein definiertes Tag anzuwenden, benötigen Sie Die Berechtigungen zum Verwenden des Tag-Namespace. Weitere Informationen zu Tagging finden Sie unter Ressourcentags. Wenn Sie nicht sicher sind, ob Tags angewendet werden sollen, überspringen Sie diese Option, oder fragen Sie einen Administrator. Sie können Tags später anwenden.Hinweis
Wenn Sie ein definiertes Tag auf ein API-Gateway anwenden (entweder direkt oder als Tagstandard für ein Compartment) und anschließend die Tagdefinition ändern, kann das API-Gateway einen Status "Nicht erfolgreich" eingeben. Wenden Sie ein definiertes Tag nur dann auf ein API-Gateway an, wenn sich das definierte Tag nicht ändern wird. Wenn Sie nicht sicher sind, ob sich ein definiertes Tag ändert, sollten Sie es nicht auf ein API-Gateway anwenden.
-
Wählen Sie Gateway erstellen aus, um das API-Gateway sofort zu erstellen.
Das Erstellen des neuen API-Gateways kann einige Minuten dauern. Während der Erstellung wird das API-Gateway mit dem Status "Wird erstellt" angezeigt. Sobald es erfolgreich erstellt wurde, wird das API-Gateway mit dem Status "Aktiv" angezeigt.
Anstatt das neue API-Gateway sofort zu erstellen, können Sie es später mit Resource Manager und Terraform erstellen. Wählen Sie dazu Als Stack speichern aus, um die Ressourcendefinition als Terraform-Konfiguration zu speichern. Weitere Informationen zum Speichern von Stacks aus Ressourcendefinitionen finden Sie unter Stacks auf der Seite "Ressourcen erstellen" erstellen.
-
Wenn Sie mehr als ein paar Minuten darauf warten, dass das API-Gateway mit dem Status "Aktiv" angezeigt wird (oder wenn die Erstellung des API-Gateways nicht erfolgreich war), führen Sie die folgenden Aktionen aus:
- Wählen Sie den Namen des API-Gateways und Arbeitsanforderungen aus, um einen Überblick über den Vorgang zum Erstellen des API-Gateways anzuzeigen.
- Wählen Sie den Vorgang Gateway erstellen aus, um weitere Informationen zum Vorgang anzuzeigen (einschließlich Fehlermeldungen, Logmeldungen und Status der zugehörigen Ressourcen).
- Wenn der Vorgang zum Erstellen des API-Gateways nicht erfolgreich war und Sie die Ursache des Problems nicht aus den Arbeitsanforderungsinformationen diagnostizieren können, gehen Sie zu API-Gateway-Fehler beheben.
Nachdem Sie ein API-Gateway erfolgreich erstellt haben, können Sie eine API darin bereitstellen. Siehe API durch Erstellen eines API-Deployments in einem API-Gateway bereitstellen.
So erstellen Sie ein neues API-Gateway mit der CLI:
- Konfigurieren Sie die Clientumgebung zur Verwendung der CLI (Clientumgebung zur Verwendung der CLI für API-Gateway-Entwicklung konfigurieren).
-
Öffnen Sie eine Eingabeaufforderung, und führen Sie
oci api-gateway gateway create
aus, um das API-Gateway zu erstellen:oci api-gateway gateway create --display-name "<gateway-name>" --compartment-id <compartment-ocid> --endpoint-type "<gateway-type>" --subnet-id <subnet-ocid> --certificate-id <certificate-ocid> --ca-bundles file:///<filename> --response-cache-details file:///<filename>
Dabei gilt:
<gateway-name>
ist der Name des neuen API-Gateways. Vermeiden Sie die Eingabe von vertraulichen Informationen.<compartment-ocid>
ist die OCID des Compartments, zu dem das neue API-Gateway gehören wird.<gateway-type>
ist der Typ des zu erstellenden API-Gateways. Geben SiePRIVATE
an, wenn nur Ressourcen in demselben privaten Netzwerk (VCN) oder Ressourcen in anderen privaten oder On-Premise-Netzwerken, die mit diesem privaten Netzwerk verbunden sind, auf das API-Gateway (und die darin bereitgestellten APIs) zugreifen können sollen. Geben SiePUBLIC
an, wenn das API-Gateway (und die darin bereitgestellten APIs) öffentlich zugänglich sein soll. Öffentliche API-Gateways können über das Internet erreicht werden, vorausgesetzt, ein Internetgateway ist im VCN des API-Gateways vorhanden.<subnet-ocid>
ist die OCID eines öffentlichen oder privaten regionalen Subnetzes, in dem das API-Gateway erstellt werden soll. Wenn Sie ein öffentliches API-Gateway erstellen möchten, müssen Sie ein öffentliches regionales Subnetz angeben.Beachten Sie, dass API Gateway auf Port 443 kommuniziert, der standardmäßig nicht geöffnet ist. Sie müssen eine neue zustandsbehaftete Ingress-Sicherheitsregel für das regionale Subnetz (entweder in einer Sicherheitsliste oder in einer Netzwerksicherheitsgruppe) hinzufügen, um Traffic auf Port 443 zu ermöglichen. Die Eigenschaften der Ingress-Sicherheitsregel finden Sie unter Mit API-Gateway zu verwendendes VCN erstellen, wenn noch keine vorhanden ist.
--network-security-group-ids <nsg-ocids>
(optional) ist die OCID einer oder mehrerer Netzwerksicherheitsgruppen. Der Wert von<nsg-ocids>
muss im gültigen JSON-Format vorliegen (entweder als Zeichenfolge oder als Datei mit derfile:///<filename>
-Syntax einschließlich Pfad übergeben).<certificate-ocid>
(optional) ist die OCID der Zertifikatsressource, die für das benutzerdefinierte TLS-Zertifikat des API-Gateways erstellt wurde (entweder eine API-Gateway-Zertifikatsressource oder eine Zertifikatsservicezertifikatsressource). Siehe Benutzerdefinierte Domains und TLS-Zertifikate einrichten.--ca-bundles file:///<filename>
(optional) ist eine Datei mit Details zu mindestens einer Certificate-Authority-(CA-)Ressource oder CA-Bundle-Ressource, die dem Truststore des API-Gateways als benutzerdefinierte CAs und benutzerdefinierte CA-Bundles hinzugefügt werden sollen (zusätzlich zum Standard-CA-Bundle). Benutzerdefinierte CAs und benutzerdefinierte CA-Bundles werden verwendet, um TLS-Zertifikate zu verifizieren, die von API-Clients und Backend-Services präsentiert werden. Siehe Customizing Trust Stores for TLS Certificate Verification.--response-cache-details file:///<filename>
(optional) ist die Cachekonfigurationsdatei, einschließlich Pfad, zum Aktivieren und Konfigurieren des Antwort-Cachings. Siehe Antworten zur Verbesserung der Performance cachen.
Beispiel:
oci api-gateway gateway create --display-name "Hello World Gateway" --compartment-id ocid1.compartment.oc1..aaaaaaaa7______ysq --endpoint-type "PRIVATE" --subnet-id ocid1.subnet.oc1.iad.aaaaaaaaz______rca
Die Antwort auf den Befehl umfasst Folgendes:
- Die OCID des API-Gateways.
-
Der Hostname als der Domainname, der beim Aufrufen einer im API-Gateway bereitgestellten API verwendet werden soll. Wenn Sie beim Erstellen des API-Gateway keine Zertifikatsressource angegeben haben, wird automatisch ein Domainname im Format
<gateway-identifier>.apigateway.<region-identifier>.oci.customer-oci.com
generiert. Dabei:<gateway-identifier>
ist eine Zeichenfolge, die das API-Gateway identifiziert. Beispiel:lak...sjd
(abgekürzt für Lesbarkeit).<region-identifier>
ist die ID der Region, in der das API-Gateway erstellt wurde. Siehe Verfügbarkeit nach Region.
Beispiel:
lak...sjd.apigateway.us-phoenix-1.oci.customer-oci.com
. - Den Lebenszyklusstatus (Beispiel: ACTIVE, FAILED).
- Die ID der Arbeitsanforderung zum Erstellen des API-Gateways (Details der Arbeitsanforderungen sind für sieben Tage nach Abschluss, Abbruch oder Fehler verfügbar).
Wenn der Befehl die Steuerung erst dann zurückgeben soll, wenn das API-Gateway aktiv ist (oder die Anforderung nicht erfolgreich war), nehmen Sie einen oder beide der folgenden Parameter auf:
--wait-for-state ACTIVE
--wait-for-state FAILED
Beispiel:
oci api-gateway gateway create --display-name "Hello World Gateway" --compartment-id ocid1.compartment.oc1..aaaaaaaa7______ysq --endpoint-type "PRIVATE" --subnet-id ocid1.subnet.oc1.iad.aaaaaaaaz______rca --wait-for-state ACTIVE
Beachten Sie, dass Sie das API-Gateway erst verwenden können, wenn es durch die Arbeitsanforderung erfolgreich erstellt wurde und das API-Gateway aktiv ist.
-
(Optional) Um den Status des API-Gateways anzuzeigen, geben Sie Folgendes ein:
oci api-gateway gateway get --gateway-id <gateway-ocid>
-
(Optional) Um den Status der Arbeitsanforderung anzuzeigen, die das API-Gateway erstellt, geben Sie Folgendes ein:
oci api-gateway work-request get --work-request-id <work-request-ocid>
-
(Optional) Um die Logs der Arbeitsanforderung anzuzeigen, die das API-Gateway erstellt, geben Sie Folgendes ein:
oci api-gateway work-request-log list --work-request-id <work-request-ocid>
-
(Optional) Wenn die Arbeitsanforderung, die das API-Gateway erstellt, nicht erfolgreich ist und Sie die Fehlerlogs prüfen möchten, geben Sie Folgendes ein:
oci api-gateway work-request-error --work-request-id <work-request-ocid>
Weitere Informationen zur Verwendung der CLI finden Sie unter Befehlszeilenschnittstelle (CLI). Eine vollständige Liste der Flags und Optionen, die für CLI-Befehle verfügbar sind, finden Sie in der CLI-Hilfe.
Führen Sie den CreateGateway-Vorgang aus, um ein API-Gateway zu erstellen.