始める前に
次のリストに、Workflows を使用して Cloud Run ワーカープール ワークフローをデプロイして実行する場合の要件を示します。
- アカウントにログインします。 Google Cloud を初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Cloud Run Admin API と Workflows API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。
必要なロール
Workflows を使用して Cloud Run ワーカープールをデプロイして実行するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
- Cloud Run ワーカープールに対する Cloud Run 管理者 (
roles/run.admin) - プロジェクトに対する Workflows 編集者 (
roles/workflows.editor) - サービス ID に対するサービス アカウント ユーザー (
roles/iam.serviceAccountUser) ロール
Workflows が Cloud Run ワーカープールを更新できるようにするには、ワークフローのデプロイに使用するサービス アカウントに次のロールが必要です。
- Cloud Run 管理者 (
roles/run.admin)
Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールと Cloud Run IAM 権限をご覧ください。Cloud Run ワーカープールがGoogle Cloud API(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、 デプロイ権限 とアクセスの管理をご覧ください。
Cloud Run ワーカープールを作成する
Cloud Run ワーカープールを作成します まだ作成していない場合は。ワークフローの実行時に Cloud Run ワーカープールの名前を参照します。
ワークフローを作成、デプロイ、実行する
次のワークフローは、Cloud Run ワーカープールのインスタンス数を更新します。
ホーム ディレクトリに、ワークフローの新しい YAML ファイル(
update-cr-worker-pool.yamlなど)を作成し、次の内容をコピーしてファイルに貼り付けます。main: params: [args] steps: - init: assign: - project: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")} - region: ${args.region} - workerPoolName: ${args.workerPool} - instanceCount: ${args.instanceCount} - workerPoolUrl: ${"https://run.googleapis.com/v2/projects/" + project + "/locations/" + region + "/workerPools/" + workerPoolName} - updateWorkerPool: call: http.patch args: url: ${workerPoolUrl} query: updateMask: "scaling.manualInstanceCount" auth: type: OAuth2 body: scaling: manualInstanceCount: ${int(instanceCount)} result: updateResult - returnOutput: return: ${updateResult.body}ワークフローをデプロイし、指定されたサービス アカウントに関連付けます。
gcloud workflows deploy WORKFLOW_NAME \ --source=WORKFLOW_NAME.yaml \ --location=REGION \ --service-account=SERVICE_ACCOUNT
次のように置き換えます。
- WORKFLOW_NAME: ワークフローの名前(
update-worker-poolなど)。ワークフロー名は、前に作成した YAML ファイルの名前と一致する必要があります。 - REGION:Cloud Run ワーカープールが
デプロイされているリージョン(
europe-west1など)。 - SERVICE_ACCOUNT: 必要なロールが付与されているサービス アカウントのメールアドレス(例:
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.comPROJECT_NUMBER-compute@developer.gserviceaccount.com
- WORKFLOW_NAME: ワークフローの名前(
ワーカープールの詳細とインスタンス数を使用してワークフローを実行します。
gcloud workflows execute WORKFLOW_NAME \ --location=REGION \ --data='{"region":"REGION", "workerPool":"WORKER_POOL_NAME", "instanceCount":INSTANCE_COUNT}'
次のように置き換えます。
- WORKFLOW_NAME: ワークフローの名前。
- REGION:Cloud Run ワーカープールが
デプロイされているリージョン(
europe-west1など)。 - WORKER_POOL_NAME: ワーカープールの名前。
- INSTANCE_COUNT:ワーカープール
の変更後のインスタンス数(
3など)。
更新を確認する
ワークフローを実行すると、 コンソールの次の 場所で更新を確認できます。 Google Cloud
実行ステータスと結果を表示するには、[ワークフローの詳細] ページに移動してワークフローを選択します。
ワークフローの最新の実行で
manualInstanceCountフィールドが変更されていることを確認します。Cloud Run で更新が成功したことを確認するには、ワーカープールのページに移動します。
ワーカープールの手動スケーリング数が変更されていることを確認します。