本部分介绍 Synchronizer。
Synchronizer 概览
在 Apigee Hybrid 中,Synchronizer 的主要作业是轮询和下载由管理层面提供的运行时合同。合同传达的信息包括 API 代理、API 产品、缓存和虚拟主机。
在运行时层面运行的 Synchronizer 实例应定期轮询管理层面、下载合同,并将其提供给本地运行时实例。
一个 Synchronizer 可以支持同一个 pod 中部署的多个信息处理机。
启用 Synchronizer 访问权限
您必须授予 Synchronizer 权限,才能从管理层面中拉取 Apigee 软件工件,例如代理软件包和资源。您必须调用 Apigee API 以授权 Synchronizer 将工件从管理层面向下提取到运行时层面。
- 确保您已按照 GCP 设置步骤中的说明启用了 Apigee API。有关详情,请参阅第 3 步:启用 API。
- 找到作为创建服务账号的一部分而下载的允许写入的 GCP 服务账号密钥(JSON 文件)。该服务账号名为“apigee-org-admin”,并且拥有 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 Synchronizer Manager 角色的服务账号的名称。该名称的格式类似于电子邮件地址。例如: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=" }