Workflows を使用すると、ワークフローの一部として Cloud Run ジョブを実行し、より複雑なデータ処理を行う、または既存のジョブのシステムをオーケストレートします。
このチュートリアルでは、Workflows を使用して、Cloud Storage のイベントに応答して環境変数としてジョブに渡されるデータを処理する Cloud Run ジョブを実行する方法について説明します。
イベントデータは、Cloud Storage バケットに保存することもできます。これにより、顧客管理の暗号鍵を使用してデータを暗号化できます。詳細については、Cloud Storage に保存されているイベントデータを処理する Cloud Run ジョブを実行するをご覧ください。
目標
このチュートリアルの内容は次のとおりです。
- Cloud Storage バケット内のデータファイルを処理する Cloud Run ジョブを作成します。
- 次の処理を行うワークフローをデプロイします。
- 引数として Cloud Storage イベントを受け入れます。
- イベントで指定された Cloud Storage バケットが Cloud Run ジョブで使用されるバケットと同じかどうかを確認します。
- その場合は、Cloud Run Admin API コネクタを使用して Cloud Run ジョブを実行します。
- Cloud Storage バケットに影響するイベントに応答してワークフローを実行する Eventarc トリガーを作成します。
- Cloud Storage バケットの入力データファイルを更新して、ワークフローをトリガーします。
費用
このドキュメントでは、Google Cloud の次の課金対象のコンポーネントを使用します。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
始める前に
組織で定義されているセキュリティの制約により、次の手順を完了できない場合があります。トラブルシューティング情報については、制約のある Google Cloud 環境でアプリケーションを開発するをご覧ください。
コンソール
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Artifact Registry、Cloud Build、Cloud Run、Cloud Storage、Eventarc、Workflows API を有効にします。
-
サービス アカウントを作成します。
-
Google Cloud コンソールで [サービス アカウントの作成] ページに移動します。
[サービス アカウントの作成] に移動 - プロジェクトを選択します。
-
[サービス アカウント名] フィールドに名前を入力します。Google Cloud コンソールでは、この名前に基づいて [サービス アカウント ID] フィールドに値が設定されます。
[サービス アカウントの説明] フィールドに説明を入力します。例:
Service account for quickstart
- [作成して続行] をクリックします。
-
サービス アカウントに次のロールを付与します: Cloud Run Admin, Eventarc Event Receiver, Logs Writer, Workflows Invoker.
ロールを付与するには、[ロールを選択] リストを見つけてロールを選択します。
追加のロールを付与するには、
[別のロールを追加] をクリックして各ロールを追加します。 - [続行] をクリックします。
-
[完了] をクリックして、サービス アカウントの作成を完了します。
-
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Artifact Registry、Cloud Build、Cloud Run、Cloud Storage、Eventarc、Workflows API を有効にします。
-
サービス アカウントを作成します。
-
Google Cloud コンソールで [サービス アカウントの作成] ページに移動します。
[サービス アカウントの作成] に移動 - プロジェクトを選択します。
-
[サービス アカウント名] フィールドに名前を入力します。Google Cloud コンソールでは、この名前に基づいて [サービス アカウント ID] フィールドに値が設定されます。
[サービス アカウントの説明] フィールドに説明を入力します。例:
Service account for quickstart
- [作成して続行] をクリックします。
-
サービス アカウントに次のロールを付与します: Cloud Run Admin, Eventarc Event Receiver, Logs Writer, Workflows Invoker.
ロールを付与するには、[ロールを選択] リストを見つけてロールを選択します。
追加のロールを付与するには、
[別のロールを追加] をクリックして各ロールを追加します。 - [続行] をクリックします。
-
[完了] をクリックして、サービス アカウントの作成を完了します。
-
- Cloud Storage からの直接イベントのトリガーを作成する前に、Google Cloud のサービス エージェン(Google 管理のサービス アカウント)に Cloud Pub/Sub パブリッシャーのロール(
roles/pubsub.publisher
)を付与します。- Google Cloud コンソールの [IAM] ページに移動します。
- [Google 提供のロール付与を含みます] チェックボックスをオンにします。
- [プリンシパル] 列で、
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com
形式の Cloud Storage サービス エージェントを探します。次に、対応する行の [プリンシパルを編集します] をクリックします。 - [ロールを追加] または [別のロールを追加] をクリックします。
- [ロールを選択] リストで [Pub/Sub パブリッシャー] をフィルタし、ロールを選択します。
- [保存] をクリックします。
- Google Cloud コンソールの [IAM] ページに移動します。
- 2021 年 4 月 8 日以前に、認証済みの Pub/Sub push リクエストをサポートするために Cloud Pub/Sub サービス エージェントを有効にした場合は、サービス アカウント トークン作成者のロール(
roles/iam.serviceAccountTokenCreator
)を Google マネージド サービス アカウントに付与します。それ以外の場合、このロールはデフォルトで付与されます。- Google Cloud コンソールの [IAM] ページに移動します。
- [Google 提供のロール付与を含みます] チェックボックスをオンにします。
- [名前] 列で、Cloud Pub/Sub サービス アカウントを見つけて、対応する行にある [プリンシパルを編集します] をクリックします。
- [ロールを追加] または [別のロールを追加] をクリックします。
- [ロールを選択] リストで [サービス アカウント トークン作成者] をフィルタし、ロールを選択します。
- [保存] をクリックします。
- Google Cloud コンソールの [IAM] ページに移動します。
-
Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。
Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。
Cloud Shell は、このチュートリアルで疑似乱数を生成する
/dev/urandom
コマンドをサポートします。gcloud
gcloud CLI がすでに設定されているオンライン ターミナルを使用するには、Cloud Shell をアクティブにします。
このページの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。セッションが初期化されるまで数秒かかることがあります。
Cloud Shell は、このチュートリアルで疑似乱数を生成する
/dev/urandom
コマンドをサポートしています。- Google Cloud プロジェクトを作成または選択します。
-
Google Cloud プロジェクトを作成する
gcloud projects create PROJECT_ID
-
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
-
- Google Cloud プロジェクトで課金が有効になっていることを確認します。
- Artifact Registry、Cloud Build、Cloud Run、Cloud Storage、Eventarc、Workflows API を有効にします。
gcloud services enable artifactregistry.googleapis.com \ cloudbuild.googleapis.com \ eventarc.googleapis.com \ run.googleapis.com \ storage.googleapis.com \ workflows.googleapis.com
- 他の Google Cloud サービスでの認証に使用するワークフローのサービス アカウントを作成し、適切なロールを付与します。
- サービス アカウントを作成します。
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
SERVICE_ACCOUNT_NAME
をサービス アカウントの名前に置き換えます。 - 前のステップで作成したユーザー管理のサービス アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。また、単一のコマンドで
--role
フラグを複数回使用することもできます。roles/eventarc.eventReceiver
: イベントを受信しますroles/logging.logWriter
: ログを書き込みますroles/run.admin
: Cloud Run ジョブを実行しますroles/workflows.invoker
: ワークフローを呼び出します
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role=ROLE
以下を置き換えます。
PROJECT_ID
: サービス アカウントを作成したプロジェクト IDROLE
: ユーザー管理のサービス アカウントに付与するロール
- サービス アカウントを作成します。
- Cloud Storage からの直接イベントのトリガーを作成する前に、Google Cloud のサービス エージェン(Google 管理のサービス アカウント)に Cloud Pub/Sub パブリッシャーのロール(
roles/pubsub.publisher
)を付与します。SERVICE_ACCOUNT="$(gsutil kms serviceaccount -p PROJECT_ID)" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role='roles/pubsub.publisher'
- 2021 年 4 月 8 日以前に、認証済みの Pub/Sub push リクエストをサポートするために Cloud Pub/Sub サービス エージェントを有効にした場合は、サービス アカウント トークン作成者のロール(
roles/iam.serviceAccountTokenCreator
)を Google マネージド サービス アカウントに付与します。それ以外の場合、このロールはデフォルトで付与されます。gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
PROJECT_NUMBER
は、実際の Google Cloud プロジェクトの番号に置き換えます。プロジェクト番号は、Google Cloud コンソールの [ようこそ] ページで確認できます。また、次のコマンドで確認することもできます。
gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Terraform
gcloud CLI がすでに設定されているオンライン ターミナルを使用するには、Cloud Shell をアクティブにします。
このページの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。セッションが初期化されるまで数秒かかることがあります。
Cloud Shell は、このチュートリアルで疑似乱数を生成する
/dev/urandom
コマンドをサポートしています。- Google Cloud プロジェクトを作成または選択します。
-
Google Cloud プロジェクトを作成する
gcloud projects create PROJECT_ID
-
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
-
- Google Cloud プロジェクトで課金が有効になっていることを確認します。
- Artifact Registry、Cloud Build、Cloud Run、Cloud Storage、Eventarc、Workflows API を有効にします。
gcloud services enable artifactregistry.googleapis.com \ cloudbuild.googleapis.com \ eventarc.googleapis.com \ run.googleapis.com \ storage.googleapis.com \ workflows.googleapis.com
他の Google Cloud サービスでの認証に使用するワークフローのサービス アカウントを作成し、適切なロールを付与します。また、Cloud Storage からの直接イベントをサポートするために、Cloud Storage サービス エージェント(Google 管理のサービス アカウント)に Pub/Sub パブリッシャーのロール(
roles/pubsub.publisher
)を付与します。次のサンプルに示すように
main.tf
ファイルを変更します。詳細については、Terraform の Google プロバイダのドキュメントをご覧ください。Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
一般的な Terraform ワークフローでは、プラン全体を一度に適用します。ですが、このチュートリアルでは、特定のリソースをターゲットにできます。次に例を示します。
terraform apply -target="google_service_account.workflows"
- 2021 年 4 月 8 日以前に、認証済みの Pub/Sub push リクエストをサポートするために Cloud Pub/Sub サービス エージェントを有効にした場合は、サービス アカウント トークン作成者のロール(
roles/iam.serviceAccountTokenCreator
)を Google マネージド サービス アカウントに付与します。それ以外の場合、このロールはデフォルトで付与されます。gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
PROJECT_NUMBER
は、実際の Google Cloud プロジェクトの番号に置き換えます。プロジェクト番号は、Google Cloud コンソールの [ようこそ] ページで確認できます。また、次のコマンドで確認することもできます。
gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Cloud Run ジョブを作成する
このチュートリアルでは、GitHub のサンプル Cloud Run ジョブを使用します。このジョブは、Cloud Storage の入力ファイルからデータを読み取り、ファイル内の各行に対して任意の処理を実行します。
ローカルマシンにサンプルアプリのリポジトリのクローンを作成して、サンプルコードを取得します。
git clone https://github.com/GoogleCloudPlatform/jobs-demos.git
または、サンプルを ZIP ファイルとしてダウンロードし、ファイルを抽出することもできます。
サンプルコードが入っているディレクトリに移動します。
cd jobs-demos/parallel-processing
書き込みが可能でイベントをトリガーできる入力ファイルを保存するための Cloud Storage バケットを作成します。
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
- add [作成] をクリックします。
- [バケットの作成] ページで、バケットの名前を入力します。
input-PROJECT_ID
PROJECT_ID
は、Google Cloud プロジェクトの ID に置き換えます。 - 他の値はデフォルトのままにします。
- [作成] をクリックします。
gcloud
gcloud storage buckets create
コマンドを実行します。gcloud storage buckets create gs://input-PROJECT_ID
リクエストが成功すると、コマンドから次のメッセージが返されます。
Creating gs://input-PROJECT_ID/...
Terraform
Cloud Storage バケットを作成するには、
google_storage_bucket
リソースを使用して、次のサンプルに示すようにmain.tf
ファイルを変更します。Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
一般的な Terraform ワークフローでは、プラン全体を一度に適用します。ですが、このチュートリアルでは、特定のリソースをターゲットにできます。次に例を示します。
terraform apply -target="random_id.bucket_name_suffix"
および
terraform apply -target="google_storage_bucket.default"
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
コンテナ イメージを保存できる Artifact Registry 標準リポジトリを作成します。
コンソール
Google Cloud コンソールで、Artifact Registry の [リポジトリ] ページに移動します。
[リポジトリを作成] をクリックします。
リポジトリの名前を入力します(例:
my-repo
)。プロジェクト内のリポジトリのロケーションごとに、リポジトリ名は一意でなければなりません。デフォルトの形式(Docker)のままにします。
デフォルト モード(Standard)のままにします。
リージョンに、[us-central1(アイオワ)] を選択します。
その他すべてのデフォルトはそのままにします。
[作成] をクリックします。
gcloud
次のコマンドを実行します。
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=us-central1
REPOSITORY
は、リポジトリの一意の名前(my-repo
など)に置き換えます。プロジェクト内のリポジトリのロケーションごとに、リポジトリ名は一意でなければなりません。Terraform
Artifact Registry リポジトリを作成するには、
google_artifact_registry_repository
リソースを使用して、次のサンプルに示すようにmain.tf
ファイルを変更します。一般的な Terraform ワークフローでは、プラン全体を一度に適用します。ですが、このチュートリアルでは、特定のリソースをターゲットにできます。次に例を示します。
terraform apply -target="google_artifact_registry_repository.default"
デフォルトの Google Cloud Buildpack を使用してコンテナ イメージをビルドします。
export SERVICE_NAME=parallel-job gcloud builds submit \ --pack image=us-central1-docker.pkg.dev/PROJECT_ID/REPOSITORY/${SERVICE_NAME}
REPOSITORY
を Artifact Registry リポジトリの名前に置き換えます。ビルドが完了するまで数分かかることがあります。
コンテナ イメージをデプロイする Cloud Run ジョブを作成します。
コンソール
Google Cloud コンソールで [Cloud Run] ページに移動します。
[ジョブを作成] をクリックして、[ジョブを作成] フォームを表示します。
- フォームで、Artifact Registry コンテナ イメージの URL として
us-central1-docker.pkg.dev/PROJECT_ID/REPOSITORY/parallel-job:latest
を選択します。 - (省略可)ジョブ名に「
parallel-job
」と入力します。 - (省略可)リージョンに、[us-central1(アイオワ)] を選択します。
- ジョブで実行するタスクの数として、「
10
」と入力します。ジョブが成功するには、すべてのタスクが成功する必要があります。デフォルトでは、タスクは並行して実行されます。
- フォームで、Artifact Registry コンテナ イメージの URL として
[コンテナ、変数とシークレット、接続、セキュリティ] セクションを開き、次の設定を除き、すべてのデフォルトのままにします。
[全般] タブをクリックします。
- コンテナ コマンドに「
python
」と入力します。 - コンテナ引数に「
process.py
」と入力します。
- コンテナ コマンドに「
[変数とシークレット] タブをクリックします。
- [変数を追加] をクリックし、名前に「
INPUT_BUCKET
」、値に「input-PROJECT_ID
」と入力します。 - [変数を追加] をクリックし、名前に「
INPUT_FILE
」、値に「input_file.txt
」と入力します。
- [変数を追加] をクリックし、名前に「
ジョブを作成するには、[作成] をクリックします。
gcloud
次のコマンドを実行します。
gcloud run jobs create parallel-job \ --image us-central1-docker.pkg.dev/PROJECT_ID/REPOSITORY/parallel-job \ --command python \ --args process.py \ --tasks 10 \ --set-env-vars=INPUT_BUCKET=input-PROJECT_ID,INPUT_FILE=input_file.txt
ジョブの作成時に使用可能なオプションの一覧については、gcloud run jobs create コマンドライン ドキュメントをご覧ください。
ジョブが作成されると、成功したことを示すメッセージが表示されます。
Terraform
Cloud Run ジョブを作成するには、
google_cloud_run_v2_job
リソースを使用して、次のサンプルに示すようにmain.tf
ファイルを変更します。一般的な Terraform ワークフローでは、プラン全体を一度に適用します。ですが、このチュートリアルでは、特定のリソースをターゲットにできます。次に例を示します。
terraform apply -target="google_cloud_run_v2_job.default"
Cloud Run ジョブを実行するワークフローをデプロイする
作成した Cloud Run ジョブを実行するワークフローを定義してデプロイします。ワークフロー定義は、ワークフロー構文を使用して説明した一連のステップで構成されています。
Console
Google Cloud コンソールの [ワークフロー] ページに移動します。
[
作成] をクリックします。新しいワークフローの名前を入力します(例:
cloud-run-job-workflow
)。リージョンに、[us-central1(アイオワ)] を選択します。
[サービス アカウント] フィールドで、先ほど作成したサービス アカウントを選択します。
サービス アカウントは、ワークフローの ID として機能します。ワークフローで Cloud Run ジョブを実行できるように、サービス アカウントに Cloud Run 管理者のロールがすでに付与されている必要があります。
[次へ] をクリックします。
ワークフロー エディタで、次のワークフローの定義を入力します。
[Deploy] をクリックします。
gcloud
ワークフローのソースコード ファイルを作成します。
touch cloud-run-job-workflow.yaml
次のワークフロー定義をソースコード ファイルにコピーします。
次のコマンドを入力してワークフローをデプロイします。
gcloud workflows deploy cloud-run-job-workflow \ --location=us-central1 \ --source=cloud-run-job-workflow.yaml \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
以下を置き換えます。
SERVICE_ACCOUNT_NAME
: 先ほど作成したサービス アカウントの名前PROJECT_ID
: Google Cloud プロジェクトの ID
サービス アカウントは、ワークフローの ID として機能します。ワークフローで Cloud Run ジョブを実行できるようにするには、サービス アカウントに
roles/run.admin
のロールがすでに付与されている必要があります。
Terraform
ワークフローを作成するには、google_workflows_workflow
リソースを使用して、次のサンプルに示すように main.tf
ファイルを変更します。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
一般的な Terraform ワークフローでは、プラン全体を一度に適用します。ですが、このチュートリアルでは、特定のリソースをターゲットにできます。次に例を示します。
terraform apply -target="google_workflows_workflow.default"
ワークフローは、次のことを行います。
init
ステップ - Cloud Storage イベントを引数として受け取り、必要な変数を設定します。check_input_file
ステップ - イベントで指定された Cloud Storage バケットが、Cloud Run ジョブで使用されるバケットかどうかを確認します。- 「はい」の場合、ワークフローは
run_job
ステップに進みます。 - 「いいえ」の場合、ワークフローは終了し、それ以上の処理を停止します。
- 「はい」の場合、ワークフローは
run_job
ステップ - Cloud Run Admin API コネクタのgoogleapis.run.v1.namespaces.jobs.run
メソッドを使用してジョブを実行します。Cloud Storage のバケット名とデータファイル名は、ワークフローからジョブにオーバーライド変数として渡されます。finish
ステップ - ワークフローの結果としてジョブの実行に関する情報を返します。
ワークフローの Eventarc トリガーを作成する
入力データファイルが更新されるたびに自動的にワークフローを実行し、次に Cloud Run ジョブを実行するには、入力データファイルを含むバケットの Cloud Storage イベントに応答する Eventarc トリガーを作成します。
コンソール
Google Cloud コンソールの [ワークフロー] ページに移動します。
ワークフローの名前(
cloud-run-job-workflow
など)をクリックします。[ワークフローの詳細] ページで [
編集] をクリックします。[ワークフローの編集] ページの [トリガー] セクションで、[新しいトリガーを追加] > [Eventarc] の順にクリックします。
[Eventarc トリガー] ペインが開きます。
[トリガー名] フィールドに、トリガーの名前を入力します(例:
cloud-run-job-workflow-trigger
)。[イベント プロバイダ] リストで、[Cloud Storage] を選択します。
[イベント] リストから [google.cloud.storage.object.v1.finalized] を選択します。
[バケット] フィールドで、入力データファイルを含むバケットを選択します。バケット名の形式は
input-PROJECT_ID
です。[サービス アカウント] フィールドで、先ほど作成したサービス アカウントを選択します。
サービス アカウントがトリガーの ID として機能します。サービス アカウントには次のロールがすでに付与されている必要があります。
- Eventarc イベント受信者: イベントを受信します
- Workflows 起動元: Workflows を実行します
[トリガーを保存] をクリックします。
Eventarc トリガーは、[ワークフローの編集] ページの [トリガー] セクションに表示されます。
[次へ] をクリックします。
[デプロイ] をクリックします。
gcloud
次のコマンドを実行して、Eventarc トリガーを作成します。
gcloud eventarc triggers create cloud-run-job-workflow-trigger \ --location=us \ --destination-workflow=cloud-run-job-workflow \ --destination-workflow-location=us-central1 \ --event-filters="type=google.cloud.storage.object.v1.finalized" \ --event-filters="bucket=input-PROJECT_ID" \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
以下を置き換えます。
PROJECT_ID
: Google Cloud プロジェクトの IDSERVICE_ACCOUNT_NAME
: 先ほど作成したサービス アカウントの名前
サービス アカウントがトリガーの ID として機能します。サービス アカウントには次のロールがすでに付与されている必要があります。
roles/eventarc.eventReceiver
: イベントを受信しますroles/workflows.invoker
: Workflows を実行します
Terraform
トリガーを作成するには、google_eventarc_trigger
リソースを使用して、次のサンプルに示すように main.tf
ファイルを変更します。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
一般的な Terraform ワークフローでは、プラン全体を一度に適用します。ですが、このチュートリアルでは、特定のリソースをターゲットにできます。次に例を示します。
terraform apply -target="google_eventarc_trigger.default"
入力データファイルを含む Cloud Storage バケットでファイルがアップロードまたは上書きされるたびに、ワークフローは対応する Cloud Storage イベントを引数として実行されます。
ワークフローをトリガーする
Cloud Storage の入力データファイルを更新して、エンドツーエンドのシステムをテストします。
入力ファイルの新しいデータを生成し、Cloud Run ジョブによって想定される Cloud Storage 内の場所にアップロードします。
base64 /dev/urandom | head -c 100000 >input_file.txt gsutil cp input_file.txt gs://BUCKET_NAME/input_file.txt
BUCKET_NAME
は Cloud Storage バケットの名前で置き換えてください。Terraform を使用して Cloud Storage バケットを作成した場合は、次のコマンドを実行してバケットの名前を取得できます。
gcloud storage buckets list gs://input*
Cloud Run ジョブの実行には数分かかる場合があります。
ジョブ実行を表示して、Cloud Run ジョブが想定どおりに実行されたことを確認します。
gcloud config set run/region us-central1 gcloud run jobs executions list --job=parallel-job
ジョブの実行が成功したことが出力に示され、
10/10
タスクが完了したことが示されます。
詳細については、イベントまたは Pub/Sub メッセージでワークフローをトリガーするをご覧ください。
クリーンアップ
このチュートリアル用に新規プロジェクトを作成した場合は、そのプロジェクトを削除します。既存のプロジェクトを使用し、このチュートリアルで変更を加えずに残す場合は、チュートリアル用に作成したリソースを削除します。
プロジェクトの削除
課金をなくす最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。
プロジェクトを削除するには:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
チュートリアル リソースの削除
このチュートリアルで作成したリソースを削除します。
Eventarc トリガーを削除します。
gcloud eventarc triggers delete cloud-run-job-workflow-trigger --location=us
ワークフローを削除します。
gcloud workflows delete cloud-run-job-workflow --location=us-central1
Cloud Run ジョブを削除します。
gcloud run jobs delete parallel-job
入力データ用に作成された Cloud Storage バケットを削除します。
gcloud storage rm --recursive gs://input-PROJECT_ID/
Artifact Registry リポジトリを削除します。
gcloud artifacts repositories delete REPOSITORY --location=us-central1