本節說明 Synchronizer。
同步器總覽
在 Apigee Hybrid 中,同步器的主要工作是輪詢及下載管理層提供的執行階段合約。合約傳達的資訊包括 API Proxy、API 產品、快取和虛擬主機。根據預設,Synchronizer 會將環境設定資料儲存在 Cassandra 資料庫中。
在執行階段平面中執行的同步器執行個體,應定期輪詢管理平面、下載合約,並提供給本機執行階段執行個體。
一個 Synchronizer 可以支援部署在同一個 Pod 中的多個 Message Processor。
啟用同步處理工具存取權
您必須授予 Synchronizer 權限,才能從管理平面提取 Apigee 構件,例如 Proxy 套件和資源。您必須呼叫 Apigee API,授權 Synchronizer 從管理平面將構件拉至執行階段平面。
- 確認您已按照 GCP 設定步驟啟用 Apigee API。 詳情請參閱「步驟 3:啟用 API」。
- 找出您在建立服務帳戶時下載的可寫入的 GCP 服務帳戶金鑰 (JSON 檔案)。服務帳戶具有「Apigee 機構管理員」角色,且名稱為「apigee-org-admin」。如果您先前未建立這個服務帳戶,請先建立再繼續操作。
-
將
GOOGLE_APPLICATION_CREDENTIALS環境變數設為服務帳戶金鑰所在的路徑:export GOOGLE_APPLICATION_CREDENTIALS=your_sa_credentials_file.json - 呼叫 setSyncAuthorization API,為 Synchronizer 啟用必要權限:
curl -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/your_org_name:setSyncAuthorization" \ -d '{"identities":["serviceAccount:synchronizer-manager-service-account-name"]}'其中:
your_org_name:混合式機構的名稱。synchronizer-manager-service-account-name:具備 Apigee 同步處理工具管理員角色的服務帳戶名稱。名稱的格式類似電子郵件地址。例如:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com
範例:
curl -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/my_org:setSyncAuthorization" \ -d '{"identities":["serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com"]}'如要進一步瞭解這項 API,請參閱 SyncAuthorization API。
- 如要確認服務帳戶已設定完成,請呼叫下列 API 來取得服務帳戶清單:
curl -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \ -d ''
輸出看起來類似以下內容:
{ "identities":[ "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com" ], "etag":"BwWJgyS8I4w=" }