Schritt 2: Organisation erstellen

In diesem Schritt erstellen Sie eine Apigee-Organisation.

So erstellen Sie eine neue Organisation und stellen sie bereit:

  1. Rufen Sie in der Befehlszeile die Anmeldedaten der gcloud-Authentifizierung mit dem folgenden Befehl ab:

    Linux / MacOS

    export TOKEN=$(gcloud auth print-access-token)

    Um zu prüfen, ob Ihr Token ausgefüllt wurde, verwenden Sie echo wie im folgenden Beispiel:

    echo $TOKEN

    Das Token sollte als codierter String angezeigt werden.

    Windows

    for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%a

    Um zu prüfen, ob Ihr Token ausgefüllt wurde, verwenden Sie echo wie im folgenden Beispiel:

    echo %TOKEN%

    Das Token sollte als codierter String angezeigt werden.

  2. In Schritt 1 haben Sie die Umgebungsvariable PROJECT_ID erstellt. Fügen Sie die folgenden Umgebungsvariablen hinzu. Wählen Sie den Tab aus, der dem Typ der gewünschten Organisation entspricht: Kein Datenstandort oder Datenstandort:

    Kein Datenstandort

    Linux / MacOS

    export ORG_NAME=$PROJECT_ID
    export ANALYTICS_REGION="ANALYTICS_REGION"
    export RUNTIMETYPE=HYBRID

    Windows

    set ORG_NAME=$PROJECT_ID
    set ANALYTICS_REGION="ANALYTICS_REGION"
    set RUNTIMETYPE=HYBRID

    Dabei gilt:

    • ORG_NAME (erforderlich): Dieser Wert muss mit PROJECT_ID übereinstimmen.
    • ANALYTICS_REGION (erforderlich): Die primäre Region für den Analysedatenspeicher. Eine Liste der verfügbaren Apigee API Analytics-Regionen finden Sie unter Apigee-Standorte.
    • RUNTIMETYPE (erforderlich): Muss auf HYBRID gesetzt sein.

    Datenstandort

    Linux / MacOS

    export ORG_NAME=$PROJECT_ID
    export ANALYTICS_REGION="ANALYTICS_REGION"
    export RUNTIMETYPE=HYBRID
    export CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"
    export CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"
    export BILLING_TYPE="SUBSCRIPTION"

    Windows

    set ORG_NAME=$PROJECT_ID
    set ANALYTICS_REGION="ANALYTICS_REGION"
    set RUNTIMETYPE=HYBRID
    set CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"
    set CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"
    set BILLING_TYPE="SUBSCRIPTION"

    Dabei gilt:

    • ORG_NAME: Dieser Wert muss entsprechen den PROJECT_ID.
    • ANALYTICS_REGION: Die primäre Region für den Analysedatenspeicher. Eine Liste der verfügbaren Apigee API Analytics-Regionen finden Sie unter Apigee-Standorte.
    • RUNTIMETYPE: Muss auf HYBRID festgelegt werden.
    • CONTROL_PLANE_LOCATION: Der Speicherort, an dem wichtige Kundeninhalte wie Proxy-Bundles gespeichert werden. Eine Liste finden Sie unter Verfügbare Regionen der Apigee API-Steuerungsebene.
    • CONSUMER_DATA_REGION: Eine Subregion der Region der Steuerungsebene. Sie müssen sowohl das Attribut CONTROL_PLANE_LOCATION und CONSUMER_DATA_REGION. Eine Liste der verfügbaren Regionen für Nutzerdaten finden Sie unter Apigee-Standorte.
    • BILLING_TYPE: Muss auf "SUBSCRIPTION" festgelegt werden. Dies ist der Abrechnungstyp für Ihre Apigee Hybrid-Organisation. Weitere Informationen findest du unter Aboberechtigungen.

    Beispiel:

    export ORG_NAME=$PROJECT_ID
    export ANALYTICS_REGION="us-west1"
    export RUNTIMETYPE=HYBRID
    export CONSUMER_DATA_REGION="us-west1"
    export CONTROL_PLANE_LOCATION="us"
    export BILLING_TYPE="SUBSCRIPTION"
    
  3. Rufen Sie zum Erstellen der Organisation die folgende Apigee API auf:

    Kein Datenstandort

    curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \
      -d '{
        "name":"'"$ORG_NAME"'",
        "runtimeType":"'"$RUNTIMETYPE"'",
        "analyticsRegion":"'"$ANALYTICS_REGION"'"
      }' \
      "https://apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"

    Datenstandort

    curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \
      -d '{
        "name":"'"$ORG_NAME"'",
        "billingType":"'"$BILLING_TYPE"'",
        "runtimeType":"'"$RUNTIMETYPE"'",
        "apiConsumerDataLocation":"'"$CONSUMER_DATA_REGION"'",
        "analyticsRegion":"'"$ANALYTICS_REGION"'"
      }' \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"

    Bei einer erfolgreichen Erstellungsanfrage antwortet die Organizations API mit einer Nachricht wie dieser:

    {
      "name": "organizations/org_name/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/org_name",
        "state": "IN_PROGRESS"
      }
    }

    Dabei gilt:

    • LONG_RUNNING_OPERATION_ID ist die UUID eines asynchronen Vorgangs mit langer Ausführungszeit. Mit dieser ID können Sie den Status Ihrer Anfrage zum Erstellen einer Organisation prüfen (siehe Schritt 5).
    • org_name ist die ID der neuen Organisation, die aktuell erstellt wird.

    Da das Attribut state in der Antwort angibt, hat Apigee mit dem Erstellen der neuen Organisation begonnen. Der Status lautet daher IN_PROGRESS. Dieser Vorgang kann einige Minuten dauern.

    Wenn Sie eine Fehlermeldung erhalten, lesen Sie die Informationen unter Fehlerbehebung beim Erstellen von Organisationen.

  4. Speichern Sie die ID des lang andauernde Vorgangs in einer Umgebungsvariablen. Das wird bei zukünftigen Verwaltungsaufgaben hilfreich sein.

    Syntax

    export LONG_RUNNING_OPERATION_ID=LONG_RUNNING_OPERATION_ID

    Beispiel

    export LONG_RUNNING_OPERATION_ID=6abc8a72-46de-f9da-bcfe-70d9ab347e4f
  5. Sie können den Status des lang andauernden Vorgangs prüfen, dessen ID von der Erstellungsanfrage zurückgegeben wurde. Verwenden Sie dazu die Operations API. Beispielsweise:

    Kein Datenstandort

    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$LONG_RUNNING_OPERATION_ID"

    Folgende Beispiele zeigen mögliche Antworten auf diese Anfrage:

    IN_PROGRESS

    Wenn Apigee noch die Organisation erstellt, antwortet Apigee mit dem Status IN_PROGRESS. Beispiel:

    {
      "name": "organizations/ORG_NAME/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/ORG_NAME",
        "state": "IN_PROGRESS"
      }
    }

    Warten Sie noch etwas länger, bevor Sie prüfen, ob der Erstellungsvorgang abgeschlossen ist.

    FINISHED

    Wenn die Organisation bereitgestellt wurde, lautet der Status des lang andauernden Vorgangs FINISHED. Beispiel:

    {
      "name": "organizations/ORG_NAME/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/ORG_NAME",
        "state": "FINISHED"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.Organization",
        "name": "ORG_NAME",
        "description": "",
        "createdAt": "1626237148461",
        "lastModifiedAt": "1626237149384",
        "properties": {
          "property": [
            {
              "name": "features.hybrid.enabled",
              "value": "true"
            },
            {
              "name": "features.mart.connect.enabled",
              "value": "true"
            }
          ]
        },
        "analyticsRegion": "ANALYTICS_REGION",
        "runtimeType": "HYBRID",
        "subscriptionType": "TRIAL",
        "state": "ACTIVE",
        "billingType": "EVALUATION",
        "expiresAt": "1631421073171",
        "addonsConfig": {
          "advancedApiOpsConfig": {},
          "integrationConfig": {},
          "monetizationConfig": {}
        }
      }
    }

    Datenstandort

    curl -H "Authorization: Bearer $TOKEN" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$LONG_RUNNING_OPERATION_ID"

    Folgende Beispiele zeigen mögliche Antworten auf diese Anfrage:

    IN_PROGRESS

    Wenn Apigee noch die Organisation erstellt, antwortet Apigee mit dem Status IN_PROGRESS. Beispiel:

    {
      "name": "organizations/ORG_NAME/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/ORG_NAME",
        "state": "IN_PROGRESS"
      }
    }

    Warten Sie noch etwas länger, bevor Sie prüfen, ob der Erstellungsvorgang abgeschlossen ist.

    FINISHED

    Wenn die Organisation bereitgestellt wurde, lautet der Status des lang andauernden Vorgangs FINISHED. Beispiel:

    {
      "name": "organizations/ORG_NAME/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/ORG_NAME",
        "state": "FINISHED"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.Organization",
        "name": "ORG_NAME",
        "description": "",
        "createdAt": "1626237148461",
        "lastModifiedAt": "1626237149384",
        "properties": {
          "property": [
            {
              "name": "features.hybrid.enabled",
              "value": "true"
            },
            {
              "name": "features.mart.connect.enabled",
              "value": "true"
            }
          ]
        },
        "analyticsRegion": "ANALYTICS_REGION",
        "runtimeType": "HYBRID",
        "subscriptionType": "TRIAL",
        "state": "ACTIVE",
        "billingType": "SUBSCRIPTION",
        "apiConsumerDataLocation": "CONSUMER_DATA_REGION",
        "expiresAt": "1631421073171",
        "addonsConfig": {
          "advancedApiOpsConfig": {},
          "integrationConfig": {},
          "monetizationConfig": {}
        }
      }
    }
  6. Mit der Apigee Organizations API können Sie Informationen zu einer Organisation abrufen, nachdem sie erstellt wurde.

    Beispiel:

    Kein Datenstandort

    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"

    Die Antwort auf Ihre Anfrage enthält Details zur angegebenen Organisation im JSON-Format.

    {
      "name": "apigee-example",
      "createdAt": "1626237148461",
      "lastModifiedAt": "1626237149384",
      "properties": {
        "property": [
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          },
          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          }
        ]
      },
      "analyticsRegion": "us-west1",
      "runtimeType": "HYBRID",
      "subscriptionType": "PAID",
      "projectId": "apigee-example",
      "state": "ACTIVE",
      "billingType": "SUBSCRIPTION",
      "expiresAt": "1631421073171",
      "addonsConfig": {
        "advancedApiOpsConfig": {},
        "integrationConfig": {},
        "monetizationConfig": {}
      }
    }

    Datenstandort

    curl -H "Authorization: Bearer $TOKEN" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME"

    Die Antwort auf Ihre Anfrage enthält Details zur angegebenen Organisation im JSON-Format.

    {
      "name": "apigee-example",
      "createdAt": "1626237148461",
      "lastModifiedAt": "1626237149384",
      "properties": {
        "property": [
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          },
          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          }
        ]
      },
      "analyticsRegion": "us-west1",
      "runtimeType": "HYBRID",
      "subscriptionType": "PAID",
      "projectId": "apigee-example",
      "state": "ACTIVE",
      "billingType": "SUBSCRIPTION",
      "expiresAt": "1631421073171",
      "addonsConfig": {
        "advancedApiOpsConfig": {},
        "integrationConfig": {},
        "monetizationConfig": {}
      }
    }

Fehlerbehebung beim Erstellen einer Organisation

Wenn Sie eine Organisation mit der Create Organisations API erstellen, erhalten Sie möglicherweise eine Fehlermeldung. Antworten sehen so aus:

{
  "error": {
    "code": HTTP_error_code,
    "message": "short_error_message",
    "status": "high_level_error_type",
    "details": [
      {
        "@type": "specific_error_type",
        "detail": "expanded_error_description"
      }
    ]
  }
}

In folgender Tabelle sind Fehler aufgeführt, die beim Erstellen einer neuen Organisation auftreten können, sowie mögliche Lösungswege:

HTTP-Fehlercode HTTP-Fehler Beschreibung
400 Invalid JSON payload received Entweder ist die Struktur der Daten in Ihrer Anfrage ein Syntaxfehler oder der Pfad zum Endpunkt ist falsch.
400 Invalid organization ID Die von Ihnen angeforderte Organisations-ID darf keine Großbuchstaben und keine Sonderzeichen (außer Bindestrichen) enthalten. Sie darf nur Kleinbuchstaben, Ziffern und/oder Bindestriche enthalten. Sie darf höchstens 32 Zeichen umfassen.
400 Unsupported analytics region Entweder haben Sie den Wert der analyticsRegion im Anfragetext nicht angegeben oder der von Ihnen angegebene Wert ist keine der gültigen Optionen.
400 Does not have an Apigee entitlement Ihr Google Cloud-Projekt, das Sie in Schritt 2: Google Cloud-Projekt erstellen erstellt haben, ist noch nicht hybrid. Dies könnte auf ein Problem mit der Abrechnung oder auf einen anderen Fehler im Zusammenhang mit Ihrem Google Cloud-Konto hindeuten. Weitere Informationen erhalten Sie von Apigee Sales.
401 Request had invalid authentication credentials Das Authentifizierungstoken gcloud ist entweder fehlerhaft oder veraltet oder Sie haben es nicht in die Anfrage aufgenommen. Generieren Sie ein neues Token und senden Sie die Adresse noch einmal.
403 Permission denied on resource project PROJECT_ID Möglicherweise haben Sie eine Anfrage mit einer falschen Projekt-ID oder einem falschen Pfad gesendet.
403 Unable to retrieve project information Die Organisation wurde noch nicht erstellt oder bereitgestellt. Sie können eine Anfrage an die Operations API senden, um den Status des lang andauernden Vorgangs zu prüfen, wie in Schritt 5 beschrieben.
403 Permission denied on resource project organizations/PROJECT_ID/deployedIngressConfig Sie haben versucht, eine Organisation zu erstellen, die aber nicht die richtigen Berechtigungen hat. Wenden Sie sich bei Fragen zu Berechtigungen für Organisationen an Ihren Google Cloud-Kundenbetreuer.
409 Organization already exists Sie haben versucht, mehr als eine Organisation für das Google Cloud-Projekt zu erstellen. Sie können nur eine Organisation pro Projekt erstellen.
409 Org proposed_org_name already exists Sie haben versucht, eine Organisation mit einer ID zu erstellen, die bereits vorhanden ist. Organisations-IDs müssen für alle Hybrid-Kunden einmalig sein. Senden Sie die Anfrage nochmals, diesmal mit einer neuen Organisations-ID. Hängen Sie beispielsweise einen numerischen Wert an das Ende der zuvor genutzten ID an.

Nächster Schritt

Gehen Sie zu Schritt 3: Umgebungsgruppe erstellen.