Ü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
- Apigee Hybrid-Version 1.14.3 oder höher. Eine Anleitung zum Upgrade finden Sie unter Upgrade von Apigee Hybrid ausführen.
- Die Monetarisierung ist für Ihr Apigee Hybrid-Projekt aktiviert. Weitere Informationen finden Sie unter Apigee-Monetarisierung aktivieren.
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.
- 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
- 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 demcreate-service-account
-Tool. Informationen zum Erstellen von Dienstkonten im Rahmen einer neuen Hybrid-Installation finden Sie unter Schritt 4: Dienstkonten erstellen.-
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 Dateicreate-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. mitchmod
in Linux, MacOS oder UNIX oder im Windows Explorer oder mit dem Befehlicacls
in Windows. Beispiel:chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account
-
Erstellen Sie das Dienstkonto
apigee-mint-task-scheduler
und speichern Sie die heruntergeladene Zertifikatsdatei mit dem folgenden Befehl im Diagrammverzeichnisapigee-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
-
Suchen Sie im Verzeichnis $APIGEE_HELM_CHARTS_HOME nach dem Tool
- Aktivieren Sie den Zugriff auf die Steuerungsebene für die Dienstkonten
apigee-mart
undapigee-mint-task-scheduler
.Wenn Sie den Zugriff auf die Steuerungsebene für die Dienstkonten
apigee-mart
undapigee-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.- 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.
- 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
-
Prüfen Sie den Zugriff auf die Steuerungsebene für die Dienstkonten
apigee-mart
undapigee-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
undapigee-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" ] }
- 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:
- 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 unterSecretProviderClass
-Objekte erstellen. -
Wenden Sie die Änderungen auf die Diagramme
apigee-operator
,apigee-org
undapigee-env
an.Wenn Sie die Umgebungsvariablen $ORG_NAME und APIGEE_NAMESPACE festgelegt haben, können Sie sie in den folgenden Befehlen verwenden:
- 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
- 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
- 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 diesENV_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
unddev-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
- Installieren Sie den Operator.
- 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 dasapigee-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.- Rufen Sie die Befehle zum Einrichten von Workload Identity für
apigee-org
ab und führen Sie den Befehl unterNOTES:
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
. - Führen Sie die Befehle zum Einrichten von Workload Identity für
apigee-mint-task-scheduler
aus.
- Rufen Sie die Befehle zum Einrichten von Workload Identity für
Weitere Informationen
- Weitere Informationen zur Monetarisierung in Apigee finden Sie unter Apigee-Monetarisierung aktivieren.
mintTaskScheduler.serviceAccountPath
: Legt den Pfad zur Dienstkontoschlüsseldatei für das Dienstkontoapigee-mint-task-scheduler
fest.mintTaskScheduler.serviceAccountRef
: Legt das Kubernetes-Secret fest, das den Dienstkontoschlüssel für dasapigee-mint-task-scheduler
-Dienstkonto enthält.mintTaskScheduler.gsa
: Legt das Google-Dienstkonto für dasapigee-mint-task-scheduler
-Dienstkonto fest. Dies muss die E-Mail-Adresse des Dienstkontos sein.