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.

    1. Wählen Sie auf der Listenseite Gateways die Option Gateway erstellen aus. Wenn Sie Hilfe beim Suchen der Listenseite benötigen, lesen Sie API-Gateways auflisten.
    2. 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.
      • Compartment: Das Compartment, in dem das API-Gateway erstellt werden soll.
      • 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 Zertifikats-Service-Zertifikatsressource aus, die die Details des benutzerdefinierten TLS-Zertifikats enthält, das das API-Gateway verwenden soll. Das API-Gateway verwendet einen benutzerdefinierten Domainnamen, der mit dem ausgewählten Zertifikat verknüpft ist. Diese Kategorie wird nur angezeigt, wenn Zertifikatressourcen des Certificates-Service im ausgewählten Zertifikat-Compartment verfügbar sind.
        • Kategorie API-Gatewayzertifikate (falls angezeigt): Wählen Sie eine vorhandene API-Gateway-Zertifikatsressource aus, die Details des benutzerdefinierten TLS-Zertifikats enthält, das das API-Gateway verwenden soll. 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 Zertifikat-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).

      • 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.
      • Virtuelles Cloud-Netzwerk: Das VCN, in dem das API-Gateway aus der Liste der VCNs im angegebenen Compartment erstellt werden soll. Das VCN kann sich im selben Compartment wie das API-Gateway befinden, muss es jedoch nicht sein.
      • Subnetz: Das öffentliche oder private regionale Subnetz, in dem das API-Gateway aus der Liste der Subnetze im angegebenen Compartment 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 hinzufügen (entweder in einer Sicherheitsliste oder in einer Netzwerksicherheitsgruppe), um Traffic auf Port 443 zuzulassen. For the properties of the ingress security rule, see Create a VCN to Use with API Gateway, If One Doesn't Already Exist.

      • Netzwerksicherheitsgruppen aktivieren: Wählen Sie diese Option aus, um den Zugriff auf und vom API-Gateway mit Sicherheitsregeln zu kontrollieren, die für eine oder mehrere von Ihnen angegebene Netzwerksicherheitsgruppen (NSGs) definiert sind (maximal fünf Netzwerksicherheitsgruppen). Sie können Sicherheitsregeln verwenden, die für NSGs definiert sind, anstatt oder zusätzlich zu den für Sicherheitslisten definierten. NSGs können zu demselben Compartment wie das neue API-Gateway gehören, müssen dies jedoch nicht. Siehe Netzwerksicherheitsgruppen.
    3. Wählen Sie optional Erweiterte Optionen, und geben Sie die folgenden Werte an:
      • Antwort-Caching: Optionen zum Aktivieren und Konfigurieren von Antwort-Caching für das API-Gateway, um die Performance zu verbessern und die Last für Backend-Services zu reduzieren. Siehe Antworten zur Performanceverbesserung cachen.
      • Zertifizierungsstellen: Eine oder mehrere CA-Ressourcen oder CA-Bundle-Ressourcen, die als benutzerdefinierte CAs und benutzerdefinierte CA-Bundles (zusätzlich zum Standard-CA-Bundle) zum Truststore des API-Gateways hinzugefügt werden sollen. Benutzerdefinierte CAs und benutzerdefinierte CA-Bundles werden verwendet, um TLS-Zertifikate zu prüfen, die von API-Clients und Backend-Services bereitgestellt werden. Siehe Truststores für TLS-Zertifikatsverifizierung anpassen.
      • 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.
    4. Wählen Sie 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.

    5. 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:

      1. Wählen Sie den Namen des API-Gateways auf der Listenseite Gateways aus, und wählen Sie die Registerkarte Arbeitsanforderungen aus, um einen Überblick über den API-Gatewayerstellungsvorgang anzuzeigen.
      2. Wählen Sie den Vorgang Gateway erstellen aus, um weitere Informationen zum Vorgang anzuzeigen (einschließlich Fehlermeldungen, Logmeldungen und Status der zugehörigen Ressourcen).
      3. Wenn der Vorgang zur Erstellung des API-Gateways fehlgeschlagen war und Sie die Ursache des Problems anhand der Arbeitsanforderungsinformationen nicht diagnostizieren konnten, gehen Sie zu API-Gateway-Fehler beheben.

    Nachdem ein API-Gateway erfolgreich erstellt wurde, können Sie eine API darin bereitstellen. Siehe API in einem API-Gateway durch Erstellen eines API-Deployments bereitstellen.

  • So erstellen Sie ein neues API-Gateway mit der CLI:

    1. Konfigurieren Sie die Clientumgebung zur Verwendung der CLI (Clientumgebung zur Verwendung der CLI für API-Gateway-Entwicklung konfigurieren).
    2. Ö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 Sie PRIVATE 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 Sie PUBLIC 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 hinzufügen (entweder in einer Sicherheitsliste oder in einer Netzwerksicherheitsgruppe), um Traffic auf Port 443 zuzulassen. For the properties of the ingress security rule, see Create a VCN to Use with API Gateway, If One Doesn't Already Exist.

      • --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 der file:///<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 Zertifikatsressource des Certificates-Service). Siehe Benutzerdefinierte Domains und TLS-Zertifikate einrichten.
      • --ca-bundles file:///<filename> (optional) ist eine Datei mit Details zu einer oder mehreren CA-Ressourcen oder CA-Bundle-Ressourcen, die als benutzerdefinierte CAs und benutzerdefinierte CA-Bundles (zusätzlich zum Standard-CA-Bundle) zum Truststore des API-Gateways hinzugefügt werden sollen. Benutzerdefinierte CAs und benutzerdefinierte CA-Bundles werden verwendet, um TLS-Zertifikate zu prüfen, die von API-Clients und Backend-Services bereitgestellt werden. Siehe Truststores für TLS-Zertifikatsverifizierung anpassen.
      • --response-cache-details file:///<filename> (optional) ist die Cachekonfigurationsdatei, einschließlich eines Pfads, um das Antwort-Caching zu aktivieren und zu konfigurieren. Siehe Antworten zur Performanceverbesserung 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.

    3. (Optional) Um den Status des API-Gateways anzuzeigen, geben Sie Folgendes ein:

      oci api-gateway gateway get --gateway-id <gateway-ocid>
    4. (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>
    5. (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>
    6. (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.