總覽
本文說明如何在 Hybrid 機構中,為 Apigee 的營利功能啟用週期性費用、加值費用和設定費。
必要條件
- Apigee Hybrid 1.15.1 以上版本。如需升級操作說明,請參閱「升級 Apigee Hybrid」。
- 為 Apigee Hybrid 專案啟用營利功能。請參閱「啟用 Apigee 營利服務」。
程序
	如要啟用 Apigee Hybrid 營利功能的週期性費用、加值費用和設定費用,請建立並設定 apigee-mint-task-scheduler Google 服務帳戶,並授予該帳戶 Pub/Sub 資料管道的存取權。
- 如果尚未下載 1.15.1 版的 Helm 資訊圖表,請使用下列指令提取 Helm 資訊圖表:
		
		在 $APIGEE_HELM_CHARTS_HOME 目錄中,使用 pull指令將所有 Apigee Hybrid Helm 圖表複製到本機儲存空間:export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts export CHART_VERSION=1.15.1helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
- 建立 apigee-mint-task-scheduler服務帳戶。如果您尚未建立 apigee-mint-task-scheduler服務帳戶,請使用create-service-account工具立即建立。如要瞭解如何建立服務帳戶,請參閱步驟 4:建立服務帳戶。- 
				在 $APIGEE_HELM_CHARTS_HOME 目錄中找出 create-service-account工具:$APIGEE_HELM_CHARTS_HOME/ └── apigee-operator/ └── etc/ └── tools/ └── create-service-account確認你可以執行 create-service-account。如果您剛下載圖表,create-service-account檔案可能不是可執行模式。在 APIGEE_HELM_CHARTS_HOME 目錄中執行下列指令:$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --help 如果輸出內容顯示 permission denied,您需要讓檔案可執行,例如在 Linux、MacOS 或 UNIX 中使用chmod,或在 Windows 檔案總管中,或在 Windows 中使用icacls指令。例如:chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account 
- 
				執行下列指令,建立 apigee-mint-task-scheduler服務帳戶,並將下載的憑證檔案儲存在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 
 
- 
				在 $APIGEE_HELM_CHARTS_HOME 目錄中找出 
- 為 apigee-mart和apigee-mint-task-scheduler服務帳戶啟用控制層存取權。如果您尚未為 apigee-mart和apigee-mint-task-scheduler服務帳戶啟用控制平面存取權,請按照下列步驟操作。如要瞭解如何啟用控制層存取權 (混合式全新安裝程序的一部分),請參閱步驟 7:啟用控制層存取權。- 如果您不是與 Apigee Hybrid 機構相關聯的 Google Cloud 專案擁有者,請確認您的 Google Cloud 使用者帳戶是否具備 roles/apigee.admin (Apigee 機構管理員) 角色。您可以使用下列指令,查看自己獲派的角色:
gcloud projects get-iam-policy ${PROJECT_ID} \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:your_account_email"如果輸出內容未包含 roles/apigee.admin,請參閱「步驟 7:啟用控制平面存取權」,瞭解如何新增角色,或請擁有該角色的使用者執行這個步驟。 
- 呼叫 updateControlPlaneAccess API,使用下列指令啟用必要權限:
				沒有資料落地設定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\"]}"其中,下列是服務帳戶的電子郵件地址: - apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
- apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
- apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
 資料落地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\"]}"其中: - 如果混合式安裝使用資料落地,CONTROL_PLANE_LOCATION是控制平面資料的位置。這是儲存客戶核心內容 (例如 Proxy 套件) 的位置。如需清單,請參閱「可用的 Apigee API 控制平面區域」。
- 服務帳戶的電子郵件地址如下:
			  		- apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
- apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
- apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
 
 
- 
				確認 apigee-mart和apigee-mint-task-scheduler服務帳戶的控制層存取權。沒有資料落地設定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" 資料落地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" 輸出內容應包含 apigee-mart、apigee-mint-task-scheduler和apigee-runtime服務帳戶,如下所示:{ "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" ] }
 
- 如果您不是與 Apigee Hybrid 機構相關聯的 Google Cloud 專案擁有者,請確認您的 Google Cloud 使用者帳戶是否具備 roles/apigee.admin (Apigee 機構管理員) 角色。您可以使用下列指令,查看自己獲派的角色:
- 在 overrides.yaml檔案中加入專屬的 Monetization 節。在 overrides.yaml檔案中新增下列節:runtime: image: url: "gcr.io/apigee-release/hybrid/apigee-runtime" tag: "1.15.1" #must be 1.15.1 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如果您使用 Kubernetes Secret,請參閱「將資料儲存在 Kubernetes Secret 中」。 如果您使用 Vault,請參閱「在 Hashicorp Vault 中儲存服務帳戶金鑰」。 如果您使用 Vault,請務必將 mint新增至機構專屬的密鑰提供者類別。請參閱「建立SecretProviderClass物件」。
- 
		將變更套用至 apigee-operator、apigee-org和apigee-env圖表。如果您已設定 $ORG_NAME 和 APIGEE_NAMESPACE 環境變數,可以在下列指令中使用這些變數: - 安裝運算子。
				模擬測試: helm upgrade operator apigee-operator/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server 安裝圖表: helm upgrade operator apigee-operator/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml 
- 安裝 Apigee 機構。
        模擬測試: helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server 安裝圖表: helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml 
- 安裝環境。針對每個環境重複這個步驟。
        一次只能安裝一個環境。使用 --set env=ENV_NAME 指定環境。如果您已在殼層中設定 $ENV_NAME 環境變數,可以在下列指令中使用該變數:模擬測試: 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 是用於追蹤 apigee-env圖表安裝和升級作業的名稱。這個名稱不得與安裝中的其他 Helm 版本名稱重複。通常與ENV_NAME相同。不過,如果環境與環境群組的名稱相同,您必須為環境和環境群組使用不同的發布名稱,例如dev-env-release和dev-envgroup-release。如要進一步瞭解 Helm 中的版本,請參閱 Helm 說明文件中的「三個重要概念」。安裝圖表: helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml 
 
- 安裝運算子。
				
- 僅限 GKE 的 Workload Identity:為 apigee-mint-task-scheduler服務帳戶設定 Workload Identity。如果您要全新安裝,除了步驟 11 (選用):設定 Workload Identity 中的步驟外,還需要執行這個步驟。 使用 apigee-org圖表執行 helm 升級時,輸出內容會包含設定 Workload Identity 的必要指令,並提供正確的 Google 服務帳戶和 Kubernetes 服務帳戶名稱。--dry-run- 取得為 apigee-org設定工作負載身分的指令,然後在輸出內容中,於NOTES:下方執行該指令。helm upgrade $ORG_NAME apigee-org/ \ --namespace $NAMESPACE \ -f overrides.yaml \ --dry-run=server 輸出內容應包含 NOTES:下方類似下列的指示: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]" \ --project PROJECT_IDKubernetes 服務帳戶名稱的格式為 apigee-mint-task-scheduler-PROJECT_ID-UNIQUE_ID。
- 執行指令,為 apigee-mint-task-scheduler設定 Workload Identity。
 
- 取得為 
另請參閱
- 如要進一步瞭解 Apigee 中的營利功能,請參閱「啟用 Apigee 營利服務」。
- mintTaskScheduler.serviceAccountPath:為- apigee-mint-task-scheduler服務帳戶設定服務帳戶金鑰檔案的路徑。
- mintTaskScheduler.serviceAccountRef:設定 Kubernetes 密鑰,其中包含- apigee-mint-task-scheduler服務帳戶的服務帳戶金鑰。
- mintTaskScheduler.gsa:為- apigee-mint-task-scheduler服務帳戶設定 Google 服務帳戶。這必須是服務帳戶的電子郵件地址。