API-Hub über die Befehlszeile bereitstellen

Diese Seite gilt für Apigee und Apigee Hybrid.

In diesem Dokument wird beschrieben, wie Sie den API-Hub über die Befehlszeile bereitstellen. Wenn Sie den API-Hub lieber über die Benutzeroberfläche im Assistentenstil bereitstellen möchten, lesen Sie den Hilfeartikel API-Hub in der Cloud Console bereitstellen.

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Make sure that you have the following role or roles on the project:

    • roles/serviceusage.serviceUsageAdmin
    • roles/cloudkms.admin
    • roles/apihub.provisioningAdmin
    • roles/resourcemanager.projectIamAdmin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      IAM aufrufen
    2. Wählen Sie das Projekt aus.
    3. Klicken Sie auf Zugriff erlauben.
    4. Geben Sie im Feld Neue Hauptkonten Ihre Nutzer-ID ein. Dies ist in der Regel die E-Mail-Adresse eines Google-Kontos.

    5. Wählen Sie in der Liste Rolle auswählen eine Rolle aus.
    6. Wenn Sie weitere Rollen hinzufügen möchten, klicken Sie auf Weitere Rolle hinzufügen und fügen Sie weitere Rollen hinzu.
    7. Klicken Sie auf Speichern.

    Zusammenfassung der Schritte

    Dazu sind folgende Schritte erforderlich:

    1. Schritt 1: APIs aktivieren. Sie müssen eine Reihe von Google Cloud APIs aktivieren, damit der Apigee API-Hub funktioniert.
    2. Schritt 2: Apigee API-Hub-Dienstidentität erstellen Über die Dienstidentität kann die API-Hub-Instanz die Google Cloud APIs aufrufen, die für die Ausführung ihrer Vorgänge erforderlich sind.
    3. Schritt 3: Verschlüsselung konfigurieren Sie können auswählen, ob Sie einen Google-owned and Google-managed encryption key von Google verwalteten Verschlüsselungsschlüssel(Google-Managed Encryption Key, GMEK) oder einen vom Kunden verwalteten Verschlüsselungsschlüssel (Customer-Managed Encryption Key, CMEK) verwenden möchten, um Ihre inaktiven API-Daten zu verschlüsseln und zu entschlüsseln. Weitere Informationen finden Sie unter Vergleich von CMEK- und von Google verwalteten Google-owned and Google-managed encryption keys.
    4. Schritt 4: API-Hub-Instanz erstellen Zum Abschluss müssen Sie das Hostprojekt registrieren und die API-Hub-Instanz erstellen.

    Bereitstellungsschritte

    Prüfen Sie, ob die unter Vorbereitung beschriebenen Voraussetzungen erfüllt sind.

    Schritt 1: APIs aktivieren

    Um den API-Hub bereitzustellen, müssen Sie die folgenden APIs in Ihrem Google Cloud Projekt aktivieren:

    1. Aktivieren Sie die erforderlichen Google Cloud APIs mit dem Befehl services enable:

      gcloud services enable apihub.googleapis.com \
          cloudkms.googleapis.com --project=YOUR_PROJECT_ID

      Dabei ist YOUR_PROJECT_ID die Cloud-Projekt-ID, die Sie unter Vorbereitung erstellt haben.

    Schritt 2: Apigee API Hub-Dienstidentität erstellen

    Über die Dienstidentität kann die API-Hub-Instanz die Google Cloud APIs aufrufen, die für die Ausführung ihrer Vorgänge erforderlich sind.

    1. Erstellen Sie die Dienstidentität:

      gcloud beta services identity create --service=apihub.googleapis.com \
        --project=YOUR_PROJECT_ID

      Dabei ist YOUR_PROJECT_ID die Cloud-Projekt-ID, die Sie unter Vorbereitung erstellt haben.

    2. Überprüfen Sie, ob der Agent erfolgreich erstellt wurde. Die Antwort enthält den Namen des Kundenservicemitarbeiters im folgenden Format: service-PROJECT_NUMBER@gcp-sa-apihub.iam.gserviceaccount.com. Beispiel:

      Service identity created: service-1234567890@gcp-sa-apihub.iam.gserviceaccount.com

      Diese Dienstidentität wird in einem späteren Schritt benötigt.

    Schritt 3: Verschlüsselung konfigurieren

    In diesem Schritt konfigurieren Sie, wie die Verschlüsselung von Daten in Ihrer API-Hub-Instanz verwaltet wird. Sie können einen Google-owned and Google-managed encryption key (GMEK) verwenden oder einen eigenen vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) erstellen. Weitere Informationen finden Sie unter Vergleich von CMEK- und von Google verwalteten Google-owned and Google-managed encryption keys.

    CMEK-Schritte

    So verwenden Sie CMEK für die Datenverschlüsselung:

    1. Erstellen Sie einen Schlüsselbund und Schlüssel für die Verschlüsselung der Laufzeitdatenbank: Sie können einen vorhandenen CMEK-Schlüssel und einen vorhandenen Schlüsselbund verwenden. Der Schlüssel muss am selben Ort erstellt werden, an dem Sie die API-Hub-Instanz erstellen möchten.

      1. Erstellen Sie einen neuen Schlüsselbund:

        Der Name des Schlüsselbunds muss für Ihre Organisation eindeutig sein. Wenn Sie eine zweite oder nachfolgende Region erstellen, darf der Name nicht mit dem Namen eines anderen Schlüsselbunds übereinstimmen.

        gcloud kms keyrings create KEY_RING_NAME \
          --location KEY_RING_LOCATION --project YOUR_PROJECT_ID

        Wobei:

        • KEY_RING_NAME: Der Name des zu erstellenden Schlüsselbunds.
        • KEY_RING_LOCATION: Der physische Speicherort des Schlüsselbunds. Dieser Speicherort muss mit dem Speicherort übereinstimmen, den Sie für die API-Hub-Instanz verwenden möchten, die Sie in einem späteren Schritt erstellen. Sie müssen einen der folgenden unterstützten Standorte verwenden:

          Beschreibung der Region Name der Region
          Iowa us-central1
          Northern Virginia us-east4
          Oregon us-west1
          Belgien europe-west1
          London europe-west2
          Singapur asia-southeast1
          Mumbai asia-south1
          São Paulo southamerica-east1
          Sydney australia-southeast1

        • YOUR_PROJECT_ID: Die Cloud-Projekt-ID, die Sie unter Vorbereitung erstellt haben.
      2. Erstellen Sie den Verschlüsselungsschlüssel und fügen Sie ihn dem Schlüsselbund hinzu:

        gcloud kms keys create KEY_NAME \
          --keyring KEY_RING_NAME \
          --location KEY_LOCATION \
          --purpose "encryption" \
          --project YOUR_PROJECT_ID

        Wobei:

        • KEY_NAME: Der Name des Datenbankschlüssels, den Sie erstellen.
        • KEY_RING_NAME: Der Name des Schlüsselbunds, den Sie gerade erstellt haben.
        • KEY_LOCATION: Der physische Speicherort des Schlüssels. Verwenden Sie denselben Speicherort wie beim Erstellen des Schlüsselbunds.

      3. Rufen Sie die Schlüssel-ID ab:
        gcloud kms keys list \
          --location=KEY_LOCATION \
          --keyring=KEY_RING_NAME \
          --project=YOUR_PROJECT_ID

        Die Schlüssel-ID hat die folgende Syntax (ähnlich einem Dateipfad). Notieren Sie sich diese Schlüssel-ID, da Sie sie in einem späteren Schritt benötigen:

        projects/YOUR_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
      4. Gewähren Sie dem Apigee-Dienst-Agent Zugriff auf den neuen Schlüssel:

        gcloud kms keys add-iam-policy-binding KEY_NAME \
          --location KEY_LOCATION \
          --keyring KEY_RING_NAME \
          --member serviceAccount:SERVICE_ACCOUNT \
          --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
          --project YOUR_PROJECT_ID

        Dabei ist SERVICE_ACCOUNT die ID des Dienstkontos, das Sie in Schritt 2 erstellt haben. Die ID sieht in etwa so aus: service-1234567890@gcp-sa-apihub.iam.gserviceaccount.com.

        Mit diesem Befehl wird der Schlüssel an den Apigee API Hub-Dienst-Agent gebunden.

        Nach dem erfolgreichen Abschluss dieser Anfrage gibt gcloud etwa folgende Antwort zurück:

        Updated IAM policy for key [runtime].
        bindings:
        - members:
          - serviceAccount:service-1234567890@gcp-sa-apihub.iam.gserviceaccount.com
          role: roles/cloudkms.cryptoKeyEncrypterDecrypter
        etag: BwWqgEuCuwk=
        version: 1

        Wenn Sie einen Fehler wie folgenden erhalten:

        INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.

        Achten Sie darauf, dass Sie die Projektnummer und nicht den Projektnamen in der E-Mail-Adresse des Dienstkontos verwendet haben.

    GMEK-Schritte

    Wenn Sie GMEK für die Datenverschlüsselung verwenden möchten, fahren Sie mit dem nächsten Schritt fort: Schritt 4: API-Hub-Instanz erstellen. Es ist keine weitere Schlüsselkonfiguration erforderlich.

    Schritt 4: API-Hub-Instanz erstellen

    Ein Hostprojekt ist das Google Cloud Projekt, in dem Sie den Apigee API-Hub bereitstellen. Pro Hostprojekt kann nur eine API-Hubinstanz bereitgestellt werden.

    1. Registrieren Sie das Hostprojekt:
      curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" -d '{
        "gcpProject": "projects/YOUR_PROJECT_ID"
        }' https://apihub.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/PROJECT_LOCATION/hostProjectRegistrations?host_project_registration_id=HOST_ID

      Wobei:

      • YOUR_PROJECT_ID: Die Cloud-Projekt-ID, die Sie unter Vorbereitung erstellt haben.
      • PROJECT_LOCATION: Der physische Standort (Region), an dem Sie die Apigee API-Hub-Instanz hosten möchten. Sie müssen denselben Speicherort verwenden, an dem Sie den CMEK-Schlüssel und den Schlüsselbund erstellt haben. Folgende Regionen werden unterstützt:

        Beschreibung der Region Name der Region
        Iowa us-central1
        Northern Virginia us-east4
        Oregon us-west1
        Belgien europe-west1
        London europe-west2
        Singapur asia-southeast1
        Mumbai asia-south1
        São Paulo southamerica-east1
        Sydney australia-southeast1

      • HOST_ID: Der Name des Hostprojekts.
    2. Erstellen Sie die API-Hub-Instanz:

      Mit CMEK

      Wenn Sie CMEK für die Datenverschlüsselung verwendet haben, führen Sie den folgenden Befehl aus:

      curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" -H "X-Google-GFE-Can-Retry: yes" -d '{
        "config":{
          "cmekKeyName":"KEY_NAME",
          "vertexLocation":"VERTEX_LOCATION",
          "encryptionType":"CMEK"
          }
        }' https://apihub.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/PROJECT_LOCATION/apiHubInstances?api_hub_instance_id=INSTANCE_ID

      Wobei:

      • KEY_NAME (erforderlich): Der voll qualifizierte Name des CMEK-Schlüssels. Dieser Name wurde beim Erstellen des Schlüssels zurückgegeben. Beispiel: projects/YOUR_PROJECT_ID/locations/HOST_LOCATION/hostProjectRegistrations/HOST_ID
      • VERTEX_LOCATION (Optional): Gibt den mehrregionalen Speicherort an, an dem Ihre Vertex AI-basierten Suchdaten gespeichert werden sollen. Das sind die Daten, die mit der semantischen Suche des API-Hubs verknüpft sind. Sie können für diesen Wert entweder us oder eu verwenden. Wenn Sie keine dieser Mehrfachregionen verwenden möchten, können Sie die semantische Suche deaktivieren, indem Sie diesen Parameter weglassen.
      • encryptionType (erforderlich): Sie müssen CMEK verwenden.
      • YOUR_PROJECT_ID ist die Cloud-Projekt-ID, die Sie unter Vorbereitung erstellt haben.
      • PROJECT_LOCATION: Sie müssen denselben Standort verwenden, den Sie bei der Registrierung des Hostprojekts verwendet haben.
      • INSTANCE_ID: Der Name der API-Hub-Instanz. Dieser Wert sollte 4–40 Zeichen umfassen und gültige Zeichen sind /[a-z][A-Z][0-9]-_/.

      Mit GMEK

      Wenn Sie GMEK für die Datenverschlüsselung verwenden, führen Sie den folgenden Befehl aus:

      curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" -H "X-Google-GFE-Can-Retry: yes" -d '{
        "config":{
          "vertexLocation":"VERTEX_LOCATION",
          "encryptionType":"GMEK"
          }
        }' https://apihub.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/PROJECT_LOCATION/apiHubInstances?api_hub_instance_id=INSTANCE_ID

      Wobei:

      • VERTEX_LOCATION (Optional): Gibt den mehrregionalen Speicherort an, an dem Ihre Vertex AI-basierten Suchdaten gespeichert werden sollen. Das sind die Daten, die mit der semantischen Suche des API-Hubs verknüpft sind. Sie können für diesen Wert entweder us oder eu verwenden. Wenn Sie keine dieser Mehrfachregionen verwenden möchten, können Sie die semantische Suche deaktivieren, indem Sie diesen Parameter weglassen.
      • encryptionType muss GMEK lauten. Wenn Sie keinen Verschlüsselungstyp angeben, wird standardmäßig GMEK verwendet.
      • YOUR_PROJECT_ID ist die Cloud-Projekt-ID, die Sie unter Vorbereitung erstellt haben.
      • PROJECT_LOCATION: Sie müssen denselben Standort verwenden, den Sie bei der Registrierung des Hostprojekts verwendet haben.
      • INSTANCE_ID: Der Name der API-Hub-Instanz. Dieser Wert sollte 4–40 Zeichen umfassen und gültige Zeichen sind /[a-z][A-Z][0-9]-_/.
    3. Schritt 5 (optional): Laufzeitprojektanhang erstellen

      Wenn Sie den API-Hub in einem Projekt mit Apigee-Proxys bereitgestellt haben, können Sie mit diesem optionalen Schritt die Proxys automatisch im API-Hub registrieren.

      curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" -H "X-Google-GFE-Can-Retry: yes" \
        https://apihub.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/PROJECT_LOCATION/runtimeProjectAttachments?runtimeProjectAttachmentId=YOUR_PROJECT_ID

      Wobei:

      • YOUR_PROJECT_ID ist die Cloud-Projekt-ID, die Sie unter Vorbereitung erstellt haben.
      • PROJECT_LOCATION: Sie müssen denselben Standort verwenden, den Sie bei der Registrierung des Hostprojekts verwendet haben.

      Nächste Schritte

      Jetzt können Sie den API-Hub verwenden: