Monetarisierung für Apigee Hybrid aktivieren

Übersicht

In diesem Dokument wird beschrieben, wie Sie wiederkehrende Gebühren, Aufladegebühren und Einrichtungsgebühren für die Monetarisierungsfunktion von Apigee in Hybridorganisationen aktivieren.

Vorbereitung

Prozedur

Wenn Sie wiederkehrende Gebühren, Aufladegebühren und Einrichtungsgebühren für die Apigee Hybrid-Monetarisierung aktivieren möchten, müssen Sie das apigee-mint-task-scheduler-Google-Dienstkonto erstellen und einrichten und ihm Zugriff auf die Pub/Sub-Datenpipeline gewähren.

  1. Wenn Sie Version 1.14.3 der Helm-Diagramme noch nicht heruntergeladen haben, rufen Sie die Helm-Diagramme mit den folgenden Befehlen ab:

    Verwenden Sie im Verzeichnis $APIGEE_HELM_CHARTS_HOME den Befehl pull, um alle Apigee Hybrid-Helm-Diagramme in Ihren lokalen Speicher zu kopieren:

    export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
    export CHART_VERSION=1.14.3
    helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
    
  2. Erstellen Sie das Dienstkonto apigee-mint-task-scheduler.

    Wenn Sie das apigee-mint-task-scheduler-Dienstkonto noch nicht erstellt haben, tun Sie dies jetzt mit dem create-service-account-Tool. Informationen zum Erstellen von Dienstkonten im Rahmen einer neuen Hybrid-Installation finden Sie unter Schritt 4: Dienstkonten erstellen.

    1. Suchen Sie im Verzeichnis $APIGEE_HELM_CHARTS_HOME nach dem Tool create-service-account:
      $APIGEE_HELM_CHARTS_HOME/
          └── apigee-operator/
              └── etc/
                  └── tools/
                      └── create-service-account

      Prüfen Sie, ob Sie create-service-account ausführen können. Wenn Sie gerade die Diagramme heruntergeladen haben, befindet sich die Datei create-service-account möglicherweise nicht in einem ausführbaren Modus. Führen Sie im Verzeichnis APIGEE_HELM_CHARTS_HOME den folgenden Befehl aus:

      $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --help

      Wenn in der Ausgabe permission denied angegeben ist, müssen Sie die Datei ausführbar machen, z. B. mit chmod in Linux, MacOS oder UNIX oder im Windows Explorer oder mit dem Befehl icacls in Windows. Beispiel:

      chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account
    2. Erstellen Sie das Dienstkonto apigee-mint-task-scheduler und speichern Sie die heruntergeladene Zertifikatsdatei mit dem folgenden Befehl im Diagrammverzeichnis apigee-org:
      $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
        --profile apigee-mint-task-scheduler \
        --env prod \
        --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
  3. Aktivieren Sie den Zugriff auf die Steuerungsebene für die Dienstkonten apigee-mart und apigee-mint-task-scheduler.

    Wenn Sie den Zugriff auf die Steuerungsebene für die Dienstkonten apigee-mart und apigee-mint-task-scheduler noch nicht aktiviert haben, holen Sie dies jetzt mit den folgenden Schritten nach. Informationen zum Aktivieren des Zugriffs auf die Steuerungsebene im Rahmen einer neuen Hybrid-Installation finden Sie unter Schritt 7: Zugriff auf die Steuerungsebene aktivieren.

    1. Wenn Sie nicht der Inhaber des Google Cloud-Projekts sind, das mit Ihrer Apigee Hybrid-Organisation verknüpft ist, prüfen Sie, ob Ihr Google Cloud-Nutzerkonto die Rolle roles/apigee.admin (Administrator der Apigee-Organisation) hat. Sie können die Ihnen zugewiesenen Rollen mit diesem Befehl prüfen:
      gcloud projects get-iam-policy ${PROJECT_ID}  \
        --flatten="bindings[].members" \
        --format='table(bindings.role)' \
        --filter="bindings.members:your_account_email"
      

      Wenn Ihre Ausgabe roles/apigee.admin nicht enthält, finden Sie unter Schritt 7: Zugriff auf die Steuerungsebene aktivieren eine Anleitung zum Hinzufügen der Rolle oder dazu, wie Sie einen Nutzer mit der Rolle diesen Schritt ausführen lassen können.

    2. Rufen Sie die updateControlPlaneAccess API mit dem folgenden Befehl auf, um die erforderlichen Berechtigungen zu aktivieren:

      Kein Datenstandort

      curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type:application/json" \
        "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
        -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
      

      Dabei sind die folgenden E-Mail-Adressen der Dienstkonten:

      • apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
      • apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
      • apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com

      Datenstandort

      curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type:application/json" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
        -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
      

      Wobei:

      • CONTROL_PLANE_LOCATION ist der Speicherort für die Daten der Steuerungsebene, wenn in Ihrer Hybridinstallation der Datenstandort verwendet wird. Dies ist der Speicherort, an dem wichtige Kundeninhalte wie Proxy-Bundles gespeichert werden. Eine Liste finden Sie unter Verfügbare Regionen der Apigee API-Steuerungsebene.
      • Die E-Mail-Adressen der Dienstkonten lauten:

        • apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
        • apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
        • apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
    3. Prüfen Sie den Zugriff auf die Steuerungsebene für die Dienstkonten apigee-mart und apigee-mint-task-scheduler.

      Kein Datenstandort

      curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type:application/json" \
        "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess"

      Datenstandort

      curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type:application/json" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess"

      Ihre Ausgabe sollte die Dienstkonten apigee-mart, apigee-mint-task-scheduler und apigee-runtime enthalten, ähnlich wie im folgenden Beispiel:

      {
        "synchronizerIdentities": [
          "serviceAccount:apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com"
        ],
        "analyticsPublisherIdentities": [
          "serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com",
          "serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com",
          "serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com"
        ]
      }
  4. Fügen Sie die monetarisierungsspezifischen Abschnitte in die Datei overrides.yaml ein.

    Fügen Sie der Datei overrides.yaml die folgenden Stanzas hinzu:

    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.14.3" #must be 1.14.3 or higher.
    
    mintTaskScheduler:
      # if using stored SA cert files:
      serviceAccountPath: MINT_TASK_SCHEDULER_SA_CERT_FILE.json
      # if using stored Kubernetes secrets:
      serviceAccountRef: MINT_TASK_SCHEDULER_SA_K8S_SECRET
      # if using Workload Identity on GKE:
      gsa: "apigee-mint-task-scheduler@PROJECT_ID.iam.gserviceaccount.com"
    
    # or if using Vault:
    serviceAccountSecretProviderClass: apigee-orgsakeys-spc
    

    Wenn Sie Kubernetes-Secrets verwenden, lesen Sie den Abschnitt Daten in einem Kubernetes-Secret speichern.

    Wenn Sie Vault verwenden, lesen Sie den Abschnitt Dienstkontoschlüssel in Hashicorp Vault speichern.

    Wenn Sie Vault verwenden, müssen Sie mint der organisationsspezifischen Secret-Anbieterklasse hinzufügen. Weitere Informationen finden Sie unter SecretProviderClass-Objekte erstellen.

  5. Wenden Sie die Änderungen auf die Diagramme apigee-operator, apigee-org und apigee-env an.

    Wenn Sie die Umgebungsvariablen $ORG_NAME und APIGEE_NAMESPACE festgelegt haben, können Sie sie in den folgenden Befehlen verwenden:

    1. Installieren Sie den Operator.

      Probelauf:

      helm upgrade operator apigee-operator/ \
        --install \
        --namespace $APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      

      Installation des Diagramms:

      helm upgrade operator apigee-operator/ \
        --install \
        --namespace $APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    2. Installieren Sie die Apigee-Organisation:

      Probelauf:

      helm upgrade $ORG_NAME apigee-org/ \
        --install \
        --namespace $APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      

      Installation des Diagramms:

      helm upgrade $ORG_NAME apigee-org/ \
        --install \
        --namespace $APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Installieren Sie die Umgebung: Wiederholen Sie diesen Schritt für jede Umgebung.

      Sie dürfen jeweils nur eine Umgebung installieren. Geben Sie die Umgebung mit --set env=ENV_NAME an. Wenn Sie die Umgebungsvariable $ENV_NAME in Ihrer Shell festgelegt haben, können Sie sie in den folgenden Befehlen verwenden:

      Probelauf:

      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace $APIGEE_NAMESPACE \
        --atomic \
        --set env=$ENV_NAME \
        -f overrides.yaml \
        --dry-run=server
      

        ENV_RELEASE_NAME ist ein Name, der verwendet wird, um die Installation und Upgrades des apigee-env-Diagramms zu verfolgen. Dieser Name muss sich von den anderen Helm-Release-Namen in Ihrer Installation unterscheiden. Normalerweise entspricht dies ENV_NAME. Wenn Ihre Umgebung jedoch denselben Namen wie Ihre Umgebungsgruppe hat, müssen Sie unterschiedliche Release-Namen für die Umgebung und die Umgebungsgruppe verwenden, z. B. dev-env-release und dev-envgroup-release. Weitere Informationen zu Releases in Helm finden Sie in der Helm-Dokumentation unter Three big concepts.

      Installation des Diagramms:

      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace $APIGEE_NAMESPACE \
        --atomic \
        --set env=$ENV_NAME \
        -f overrides.yaml
      
  6. Nur Workload Identity in GKE:Konfigurieren Sie Workload Identity für das apigee-mint-task-scheduler-Dienstkonto.

    Wenn Sie eine Neuinstallation durchführen, führen Sie diesen Schritt zusätzlich zu den Schritten in Schritt 11 (Optional): Workload Identity konfigurieren aus.

    Wenn Sie den Helm-Upgrade-Befehl mit dem Flag --dry-run für das apigee-org-Diagramm ausführen, enthält die Ausgabe die Befehle, die Sie zum Konfigurieren von Workload Identity mit den richtigen Google-Dienstkonto- und Kubernetes-Dienstkontonamen benötigen.

    1. Rufen Sie die Befehle zum Einrichten von Workload Identity für apigee-org ab und führen Sie den Befehl unter NOTES: in der Ausgabe aus.

      helm upgrade $ORG_NAME apigee-org/ \
        --namespace $NAMESPACE \
        -f overrides.yaml \
        --dry-run=server

      Die Ausgabe sollte unter NOTES: Anleitungen wie die folgenden enthalten:

      NOTES:
      ...
      For organization GKE Workload Identity, please make sure to add the below membership to the IAM policy binding using the respective Kubernetes SA (KSA).
      gcloud iam service-accounts add-iam-policy-binding apigee-mint-task-scheduler@PROJECT_ID.iam.gserviceaccount.com \
            --role roles/iam.workloadIdentityUser \
            --member "serviceAccount:PROJECT_ID.svc.id.goog[APIGEE_NAMESPACE/apigee-mint-task-scheduler-PROJECT_ID-UNIQUE_ID-sa]" \
            --project PROJECT_ID
      

      Der Name des Kubernetes-Dienstkontos hat das Format apigee-mint-task-scheduler-PROJECT_ID-UNIQUE_ID.

    2. Führen Sie die Befehle zum Einrichten von Workload Identity für apigee-mint-task-scheduler aus.

Weitere Informationen