このセクションでは Synchronizer について説明します。
Synchronizer の概要
Apigee ハイブリッドでの Synchronizer の主な役割は、管理プレーンによって提供されるランタイム契約をポーリングしてダウンロードすることです。契約で通知される情報には、API プロキシ、API プロダクト、キャッシュ、仮想ホストなどがあります。Synchronizer は、デフォルトで環境構成データを Cassandra データベースに保存します。
ランタイム プレーンで実行中の Synchronizer インスタンスは、定期的に管理プレーンをポーリングし、契約をダウンロードしてローカル ランタイム インスタンスでも使用できるようにします。
1 つの Synchronizer により、同じ Pod にデプロイされた複数の Message Processor がサポートされます。
Synchronizer アクセスを有効にする
プロキシ バンドルやリソースなどの Apigee アーティファクトを管理プレーンから pull するには、Synchronizer の権限を付与する必要があります。管理プレーンからランタイム プレーンにアーティファクトを pull するには、Apigee API を呼び出して Synchronizer を承認する必要があります。
- Google Cloud の設定手順で説明したように、Apigee API が有効になっていることを確認します。詳しくは、API を有効にするをご覧ください。
- サービス アカウントと認証情報の作成の一環でダウンロードした書き込み可能な Google Cloud サービス アカウントキー(JSON ファイル)を探します。このサービス アカウントには Apigee 組織管理者のロールがあり、名前は apigee-org-admin です。このサービス アカウントをまだ作成していない場合は、続行する前にアカウントを作成する必要があります。
- この Apigee 組織管理者サービス アカウントキーを使用して、OAuth 2.0 アクセス トークンを生成します。このトークンは、Apigee API の認証で必要になります。
gcloud
gcloud を使用して、ダウンロードしたサービス アカウント認証情報の JSON ファイルを
GOOGLE_APPLICATION_CREDENTIALS
環境変数によって渡し、OAuth 2.0 アクセス トークンを取得します。export GOOGLE_APPLICATION_CREDENTIALS=your_sa_credentials_file.json
gcloud auth application-default print-access-token
OAuth2.0 トークンが返されます。
詳細については、gcloud beta auth application-default print-access-token をご覧ください。
- 返された OAuth 2.0 トークンをコピーし、
TOKEN
のような変数に格納します。次に例を示します。export TOKEN=ya29....Ts13inj3LrqMJlztwygtM
- setSyncAuthorizationを呼び出し、Synchronizer に必要な権限を有効にします。
curl -X POST -H "Authorization: Bearer $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 管理者ロールを持つサービス アカウントの名前。この名前はメールアドレスのような形式になっています。たとえば、my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com
のようになります。
例:
curl -X POST -H "Authorization: Bearer $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 の詳細については、setSyncAuthorization API をご覧ください。
- サービス アカウントが設定されていることを確認するには、次の API を呼び出してサービス アカウントのリストを取得します。
curl -X POST -H "Authorization: Bearer $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=" }