ワークフローの作成と管理は、Google Cloud コンソールで行うか、ターミナルまたは Cloud Shell で Google Cloud CLI を使用して行えます。Workflows API を使用してワークフローを管理することもできます。
始める前に
組織で定義されているセキュリティの制約により、次の手順を完了できない場合があります。トラブルシューティング情報については、制約のある Google Cloud 環境でアプリケーションを開発するをご覧ください。
Console
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Workflows API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Workflows API.
gcloud
- 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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Workflows API:
gcloud services enable workflows.googleapis.com
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Workflows API:
gcloud services enable workflows.googleapis.com
REST
Workflows API を使用してワークフローを管理するには、Google 提供のクライアント ライブラリを使用して workflows.googleapis.com
サービスを呼び出すことをおすすめします。詳細については、Workflows API をご覧ください。
サービス アカウントを作成する
サービス アカウントはワークフローの ID を表し、ワークフローが持つ権限と、アクセスできる Google Cloud リソースを定めます。まだ作成していない場合はサービス アカウントを作成し、ワークフローの管理とログの作成に必要なロールを付与します。
ワークフローの作成時にサービス アカウントを指定しない場合、ワークフローは、デフォルトの Compute Engine サービス アカウントをその ID に対して使用します。詳細については、Google Cloud リソースにアクセスする権限をワークフローに付与するをご覧ください。
必要なリソースにアクセスするために必要な最小権限を持つサービス アカウントを使用することを強くおすすめします。
リソースを作成してサービス アカウントを関連付けるには、対象のリソースを作成し、リソースに関連付けるサービス アカウントになりすますための権限が必要です。詳細については、サービス アカウント権限をご覧ください。
Console
Google Cloud コンソールで、[サービス アカウント] ページに移動します。
プロジェクトを選択し、[サービス アカウントを作成] をクリックします。
[サービス アカウント名] フィールドに名前を入力します。
この名前は 6~30 文字で指定する必要があり、小文字の英数字とダッシュを含めることができます。サービス アカウントを作成した後にその名前を変更することはできません。
[作成して続行] をクリックします。
[ロールを選択] をクリックします。
次のロールを選択し、必要に応じて [別のロールを追加] をクリックします。
- ワークフローを作成、更新、実行するには、[ワークフロー] >[ワークフロー編集者] を選択します。
- Cloud Logging にログを送信するには、[Logging]>[ログ書き込み] を選択します。
[完了] をクリックして、サービス アカウントの作成を完了します。
gcloud
サービス アカウントを作成します。
gcloud iam service-accounts create SERVICE_ACCOUNT
ロールを割り当てることでサービス アカウントに権限を付与します。
ワークフローを作成、更新、実行するには、
roles/workflows.editor
ロールを割り当てます。gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role "roles/workflows.editor"
Cloud Logging にログを送信するには、
roles/logging.logWriter
ロールを割り当てます。gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role "roles/logging.logWriter"
以下を置き換えます。
SERVICE_ACCOUNT
: サービス アカウントの名前。6~30 文字で、小文字の英数字とダッシュを使用できます。サービス アカウントを作成した後にその名前を変更することはできません。PROJECT_ID
: プロジェクトの ID。
REST
serviceAccounts.create
メソッドを使用してサービス アカウントを作成します。詳細については、サービス アカウントの作成をご覧ください。
setIamPolicy
メソッドを使用してリソースの許可ポリシーを変更および設定することにより、プログラムで複数のロールを付与できます。詳細については、プログラムでの複数のロールの付与または取り消すをご覧ください。
ワークフローを作成する
ワークフローは、Workflows 構文で記述された一連のステップで構成され、YAML 形式または JSON 形式のいずれでも記述できます。ワークフローを定義したら、デプロイして実行できるようにします。デプロイの手順では、ソースファイルを実行できることも検証されます。ソースファイルに有効なワークフロー定義が含まれていない場合、デプロイは失敗します。
YAML ファイルの編集では、エラーがよく発生します。ワークフローを作成する場合は、任意の IDE またはソースコード エディタを使用し、予測入力と構文検証を設定してエラーを減らします。
Console
Google Cloud コンソールの [ワークフロー] ページに移動します。
[
作成] をクリックします。ワークフローの名前を入力します(例:
myFirstWorkflow
)。名前には、英数字、アンダースコア、ハイフンを使用できます。先頭は英字、末尾は数字または英字にする必要があります必要に応じて、ワークフローの説明を追加します。
[リージョン] リストで、ワークフローをデプロイする適切なロケーション(us-central1 など)を選択します。
[サービス アカウント] リストで、ワークフローが他の Google Cloud サービスにアクセスするために使用するサービス アカウントを選択します。詳細については、このドキュメントのサービス アカウントを作成するをご覧ください。
必要に応じて、次の操作が可能です。
ワークフロー定義に適用する呼び出しロギングのレベルを指定します。[呼び出しログレベル] リストで、次のいずれかを選択します。
- 指定なし: ロギングレベルは指定されません。この設定がデフォルトです。 実行ログレベルが指定されていない場合を除き、実行ログレベルがワークフローのログレベルよりも優先されます(デフォルト)。実行ログレベルが指定されていない場合、ワークフローのログレベルが適用されます。
- エラーのみ: キャッチされた例外をすべてログに記録します。または、例外により呼び出しが停止した場合についてもログに記録します。
- すべてのコール: サブワークフローまたはライブラリ関数のすべての呼び出しとその結果を記録します。
- ログがない: コールロギングはありません。
ワークフローでデータの暗号化に使用する Cloud Key Management Service 鍵を指定し、[Customer-managed encryption key (CMEK)] を選択します。詳細については、顧客管理の暗号鍵をご覧ください。
実行時にワークフローがアクセスできる環境変数を指定します。詳細については、環境変数を使用するをご覧ください。
ラベルを追加する: ラベルは Key-Value ペアで、Google Cloud のインスタンスを整理するのに役立ちます。詳細については、ラベルとはをご覧ください。ワークフロー ラベルは、ワークフローの実行によって継承されます。実行ラベルを表示するには、
workflows.executions.list
メソッドを使用して、ワークフローの実行を一覧表示してフィルタします。ワークフローのスケジュールを設定する: [新しいトリガーを追加] > [Cloud Scheduler] の順に選択します。詳細については、Cloud Scheduler を使用したワークフローのスケジュール設定をご覧ください。
イベントまたは Pub/Sub メッセージを使用してワークフローをトリガーする: [新しいトリガーを追加] > [Eventarc] の順に選択します。詳細については、イベントまたは Pub/Sub メッセージでワークフローをトリガーするをご覧ください。
[次へ] をクリックします。
ワークフロー エディタで、ワークフローの定義を入力します。ワークフローの例をご覧ください。
[デプロイ] をクリックします。
gcloud
ワークフローのソースコードが YAML ファイルまたは JSON ファイル(
MY_WORKFLOW.YAML
やMY_WORKFLOW.JSON
など)に保存されていることを確認します。ワークフローの例をご覧ください。ターミナルを開きます。
gcloud workflows deploy
コマンドを使用してワークフローを作成しデプロイできます。gcloud workflows deploy WORKFLOW_NAME \ --location=LOCATION \ --call-log-level=CALL_LOGGING_LEVEL \ --description="DESCRIPTION" \ --labels="LABEL_KEY=LABEL_VALUE" \ --set-env-vars="ENV_KEY=ENV_VALUE" \ --kms-key=ENCRYPT_KEY \ --service-account=SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com \ --source=YAML_OR_JSON_SOURCE_FILE
以下を置き換えます。
WORKFLOW_NAME
: ワークフローの名前(例:myFirstWorkflow
)。名前には、英数字、アンダースコア、ハイフンを使用できます。先頭は英字、末尾は数字または英字にする必要がありますLOCATION
: ワークフローをデプロイするリージョン(例:us-central1
)。CALL_LOGGING_LEVEL
: 省略可。実行中に適用するコールロギングのレベル。以下のいずれかになります。none
: ロギングレベルは指定されません。この設定がデフォルトです。実行ログレベルが指定されていない場合を除き、実行ログレベルがワークフローのログレベルよりも優先されます(デフォルト)。実行ログレベルが指定されていない場合、ワークフローのログレベルが適用されます。log-errors-only
: キャッチされた例外をすべてログに記録します。または、例外により呼び出しが停止した場合についてもログに記録します。log-all-calls
: サブワークフローまたはライブラリ関数のすべての呼び出しとその結果をログに記録します。log-none
: コールロギングなし。
DESCRIPTION
: 省略可。ワークフローの説明。LABEL_KEY=LABEL_VALUE
: 省略可。 Google Cloud インスタンスの整理に役立つラベルの Key-Value ペアのリスト(例:name=wrench
)。詳細については、ラベルとはをご覧ください。ワークフロー ラベルは、ワークフローの実行によって継承されます。実行ラベルを表示するには、workflows.executions.list
メソッドを使用して、ワークフローの実行を一覧表示してフィルタします。ENV_KEY=ENV_VALUE
: 省略可。環境変数の Key-Value ペアのリスト(例:MONTH=January
)。詳細については、環境変数を使用するをご覧ください。ENCRYPT_KEY
: 省略可。ワークフローがprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
形式のデータ暗号化に使用する Cloud KMS 鍵。詳細については、顧客管理の暗号鍵をご覧ください。SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com
: 省略可。ワークフローが他の Google Cloud サービスにアクセスするために使用するサービス アカウント。詳細については、このドキュメントのサービス アカウントを作成するをご覧ください。YAML_OR_JSON_SOURCE_FILE
: ワークフロー定義のソースファイル。例:myFirstWorkflow.yaml
。
REST
指定した名前で新しいワークフローを作成するには、projects.locations.workflows.create
メソッドを使用し、workflowId
クエリ パラメータを使用してワークフローの ID を指定します。
リクエストのデータを使用する前に、次のように置き換えます。
WORKFLOW_NAME
: ワークフローの名前(例:myFirstWorkflow
)。名前には、英数字、アンダースコア、ハイフンを使用できます。先頭は英字、末尾は数字または英字にする必要がありますDESCRIPTION
: 省略可。ワークフローの説明。Unicode 文字で 1,000 文字以下にする必要があります。LABEL_KEY
、LABEL_VALUE
: 省略可。Google Cloud インスタンスの整理に役立つラベルの Key-Value ペアのマップです。例:{"name": "wrench", "mass": "1kg", "count": "3"}
。詳細については、ラベルとはをご覧ください。ワークフロー ラベルは、ワークフローの実行によって継承されます。実行ラベルを表示するには、workflows.executions.list
メソッドを使用して、ワークフローの実行を一覧表示してフィルタします。SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com
: 省略可。ワークフローが他の Google Cloud サービスにアクセスするために使用するサービス アカウント。プロジェクト ID はユーザーの Google Cloud のプロジェクト ID です。詳細については、このドキュメントのサービス アカウントを作成するをご覧ください。ENCRYPT_KEY
: 省略可。ワークフローがprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
形式のデータ暗号化に使用する Cloud KMS 鍵。詳細については、顧客管理の暗号鍵をご覧ください。CALL_LOGGING_LEVEL
: 省略可。 実行中に適用する呼び出しロギングのレベル。デフォルトではロギングレベルが指定されず、代わりにワークフロー ログレベルが適用されます。詳細については、Logging にログを送信するをご覧ください。次のいずれかになります。CALL_LOG_LEVEL_UNSPECIFIED
: ロギングレベルは指定されず、代わりにワークフロー ログレベルが適用されます。この設定がデフォルトです。それ以外の場合は、実行ログレベルが適用され、ワークフロー ログレベルよりも優先されます。LOG_ERRORS_ONLY
: キャッチされた例外をすべてログに記録します。または、例外により呼び出しが停止した場合についてもログに記録します。LOG_ALL_CALLS
: サブワークフローまたはライブラリ関数のすべての呼び出しとその結果をログに記録します。LOG_NONE
: コールロギングなし。
ENV_KEY
、ENV_VALUE
: 省略可。環境変数のキーと値のペアのマップ(例:{ "month": "January", "day": "Monday"}
)。詳細については、環境変数を使用するをご覧ください。SOURCE_CODE
: ワークフローの定義。YAML では改行をエスケープする必要があります。例:main:\n params:\n - input\n steps:\n - returnOutput:\n return: Hello
JSON では引用符をエスケープする必要があります。例:
{\"main\":{\"params\":[\"input\"],\"steps\":[{\"returnOutput\":{\"return\":\"Hello\"}}]}}
LOCATION
: ワークフローをデプロイするリージョン(例:us-central1
)。
リクエストの本文(JSON):
{ "name": "WORKFLOW_NAME", "description": "DESCRIPTION", "labels": {"LABEL_KEY":"LABEL_VALUE"}, "serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com", "cryptoKeyName": "ENCRYPT_KEY", "callLogLevel": "CALL_LOGGING_LEVEL", "userEnvVars": {"ENV_KEY":"ENV_VALUE"}, "sourceContents": "SOURCE_CODE" }
リクエストを送信するには、次のいずれかのオプションを展開します。
成功した場合、レスポンスの本文には、新しく作成された Operation
のインスタンスが含まれます。
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata", "createTime": "2023-12-05T14:06:06.338390918Z", "target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME", "verb": "create", "apiVersion": "v1" }, "done": false }
"done"
の値が false
の場合は、オペレーションが引き続き進行中です。
ワークフローの一覧表示
ワークフローは、一覧表示することや、フィルタを使用して特定のワークフローを取得することが可能です。
コンソール
Google Cloud コンソールの [ワークフロー] ページに移動します。
このページには、すべてのロケーションのワークフローが一覧表示されます。それには、名前、リージョン、最新のリビジョンなどが含まれます。
ワークフローをフィルタするには:
- [ フィルタ] フィールドまたは [ワークフローをフィルタリング] フィールドをクリックします。
- [プロパティ] リストで、ワークフローをフィルタするオプションを選択します。
1 つのプロパティを選択することも、論理演算子
OR
を使用して複数のプロパティを追加することもできます。ワークフローを並べ替えるには、サポートされている列見出しの横にある [
並べ替え] をクリックします。
gcloud
gcloud workflows list
コマンドを使用してワークフローを一覧表示します。
gcloud workflows list --location=LOCATION
LOCATION
は、ワークフローのロケーションの ID か完全修飾された ID に置き換えます。
このコマンドは、指定されたロケーションにあるワークフローを一覧表示します。ワークフローの NAME
、STATE
、REVISION_ID
、UPDATE_TIME
などの詳細も表示されます。
REST
特定のプロジェクトとロケーションのワークフローを一覧表示するには、projects.locations.workflows.list
メソッドを使用します。
また、単一のワークフローの詳細を取得するには、projects.locations.workflows.get
メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID
: Google Cloud プロジェクト ID。LOCATION
: ワークフローがデプロイされているリージョン(例:us-central1
)。
リクエストを送信するには、次のいずれかのオプションを展開します。
成功した場合、レスポンスの本文には Workflow
のインスタンスが含まれ、レスポンスは次のようになります。
{ "workflows": [ { "name": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME", "state": "ACTIVE", "revisionId": "000001-0ce", "createTime": "2023-12-08T13:56:59.306770745Z", "updateTime": "2023-12-08T13:56:59.547021939Z", "revisionCreateTime": "2023-12-08T13:56:59.340161044Z", "serviceAccount": "projects/PROJECT_ID/serviceAccounts/PROJECT_NUMBER-compute@developer.gserviceaccount.com", "sourceContents": "main:\n params: [input]\n [...] return: '${wikiResult.body[1]}'\n" }, { object (Workflow) } ], "nextPageToken": string, "unreachable": [ string ] }
ワークフローの更新
既存のワークフローを更新できます。更新するワークフローの名前とそのソースを指定する必要があります。なお、ワークフローの名前やロケーションは変更できません。
ワークフローを更新しても、進行中の実行には影響しません。更新された構成は、それ以降のワークフローを実行する場合にのみ使用されます。
ワークフローを更新するたびに、その versionID
が更新されます。versionID
は、ハイフンで区切られた 2 つの部分で構成されます。
1 から始まる数値。ワークフローを更新するたびに増加します。
ランダムな 3 文字の英数字文字列。
たとえば、000001-27f
はワークフローの最初のバージョンを示し、000002-d52
は一度更新されたワークフローを示します。
Console
Google Cloud コンソールの [ワークフロー] ページに移動します。
更新するワークフローの名前をクリックします。ワークフローの名前は変更できません。
[Workflow の詳細] ページが表示されます。
ワークフローは次の方法で編集できます。
ソースを編集するには:
- [ソース] タブをクリックします。
- [編集] をクリックします。
- 変更を保存するには、[Save] をクリックします。更新されたワークフローがデプロイされます。
説明、ワークフローが認証に使用するサービス アカウント、呼び出しログレベル、環境変数、ラベル、暗号鍵を更新するには:
- [詳細] タブをクリックします。
- 該当する アイコンをクリックします。
- 呼び出しログレベルを更新する場合は、次のいずれかを選択します。
- 指定なし: ロギングレベルは指定されません。この設定がデフォルトです。 実行ログレベルが指定されていない場合を除き、実行ログレベルがワークフローのログレベルよりも優先されます(デフォルト)。実行ログレベルが指定されていない場合、ワークフローのログレベルが適用されます。
- エラーのみ: キャッチされた例外をすべてログに記録します。または、例外により呼び出しが停止した場合についてもログに記録します。
- すべてのコール: サブワークフローまたはライブラリ関数のすべての呼び出しとその結果を記録します。
- ログなし: コールロギングはありません。
- 既存のラベルを更新したり、新しいラベルを追加したりした場合、新しいラベルが有効になるまでに最大 10 分かかることがあります。ワークフロー ラベルは、ワークフローの実行によって継承されます。実行ラベルを表示するには、
workflows.executions.list
メソッドを使用して、ワークフローの実行を一覧表示してフィルタします。 - 変更を保存するには、[保存] をクリックします。更新されたワークフローがデプロイされます。
前のフィールドを同時に編集する、またはトリガーを追加あるいは更新するには:
- [ 編集] をクリックします。
- ソースを編集するには、[次へ] をクリックします。
- 変更を保存して更新済みのワークフローをデプロイするには、[デプロイ] をクリックします。
サービス アカウントのロールを更新する場合は、[権限] タブをクリックします。
プリンシパルは、ユーザー、グループ、ドメイン、またはサービス アカウントです。 既存のプリンシパルを更新するには:
- プリンシパルを含む行を探します。
- その行の [ プリンシパルを編集します] をクリックします。
- [ 別のロールを追加] または [ ロールを削除] をクリックします。
ロールを追加する場合は、[ロールを選択] リストで、適切なロールを選択します。
別のロールを追加するには、[別のロールを追加] をクリックします。
[保存] をクリックします。
gcloud
ターミナルを開きます。
更新するワークフローの名前を見つけます。ワークフローの名前がわからない場合は、次のコマンドを入力して、すべてのワークフローを一覧表示できます。
gcloud workflows list
ワークフロー ソースが保存されている YAML または JSON ファイル(
WORKFLOW_NAME.YAML
やWORKFLOW_NAME.JSON
など)を見つけます。gcloud workflows deploy
コマンドを使用して、既存のワークフローを更新して、そのソース、説明、ラベル、環境変数、呼び出しログレベル、暗号化鍵、または関連するサービス アカウントを変更できます。更新するワークフローの名前とソースを指定する必要がありますが、残りのフラグは省略可能です。 顧客管理の暗号鍵を削除するには、
--clear-kms-key
フラグを使用します。gcloud workflows deploy WORKFLOW_NAME \ --call-log-level=CALL_LOGGING_LEVEL \ --description="DESCRIPTION" \ --labels="LABEL_KEY=LABEL_VALUE" \ --set-env-vars="ENV_KEY=ENV_VALUE" \ --kms-key=ENCRYPT_KEY \ --service-account=SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com \ --source=YAML_OR_JSON_SOURCE_FILE
以下を置き換えます。
WORKFLOW_NAME
: 必須。: ワークフローの名前。CALL_LOGGING_LEVEL
: 省略可。ワークフローに適用するコールロギングのレベル。以下のいずれかになります。none
: ロギングレベルは指定されません。この設定がデフォルトです。実行ログレベルが指定されていない場合を除き、実行ログレベルがワークフローのログレベルよりも優先されます(デフォルト)。実行ログレベルが指定されていない場合、ワークフローのログレベルが適用されます。log-errors-only
: キャッチされた例外をすべてログに記録します。または、例外により呼び出しが停止した場合についてもログに記録します。log-all-calls
: サブワークフローまたはライブラリ関数のすべての呼び出しとその結果をログに記録します。log-none
: コールロギングなし。
DESCRIPTION
: 省略可。ワークフローの説明。LABEL_KEY=LABEL_VALUE
: 省略可。 Google Cloud インスタンスの整理に役立つラベルの Key-Value ペアのリスト(例:name=wrench
)。詳細については、ラベルとはをご覧ください。ワークフロー ラベルは、ワークフローの実行によって継承されます。実行ラベルを表示するには、workflows.executions.list
メソッドを使用して、ワークフローの実行を一覧表示してフィルタします。ENV_KEY=ENV_VALUE
: 省略可。環境変数の Key-Value ペアのリスト(例:MONTH=January
)。詳細については、環境変数を使用するをご覧ください。ENCRYPT_KEY
: 省略可。ワークフローがprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
形式のデータ暗号化に使用する Cloud KMS 鍵。詳細については、顧客管理の暗号鍵をご覧ください。SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com
: 省略可。ワークフローが他の Google Cloud サービスにアクセスするために使用するサービス アカウント。サービス アカウントのロールを更新する場合は、Google Cloud リソースにアクセスするための権限をワークフローに付与するおよびプロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。YAML_OR_JSON_SOURCE_FILE
: 必須。ワークフローのソースファイル(YAML 形式または JSON 形式)。例:myFirstWorkflow.yaml
。
REST
既存のワークフローを更新するには、projects.locations.workflows.patch メソッドを使用します。必要に応じて、updateMask
クエリ パラメータを使用して、更新するフィールドのリストを指定します。
リクエストのデータを使用する前に、次のように置き換えます。
WORKFLOW_NAME
: ワークフローの名前(例:myFirstWorkflow
)。DESCRIPTION
: 省略可。ワークフローの説明。Unicode 文字で 1,000 文字以下にする必要があります。LABEL_KEY
、LABEL_VALUE
: 省略可。Google Cloud インスタンスの整理に役立つラベルの Key-Value ペアのマップです。例:{"name": "wrench", "mass": "1kg", "count": "3"}
。詳細については、ラベルとはをご覧ください。ワークフロー ラベルは、ワークフローの実行によって継承されます。実行ラベルを表示するには、workflows.executions.list
メソッドを使用して、ワークフローの実行を一覧表示してフィルタします。SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com
: 省略可。ワークフローが他の Google Cloud サービスにアクセスするために使用するサービス アカウント。プロジェクト ID はユーザーの Google Cloud のプロジェクト ID です。詳細については、このドキュメントのサービス アカウントを作成するをご覧ください。ENCRYPT_KEY
: 省略可。ワークフローがprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
形式のデータ暗号化に使用する Cloud KMS 鍵。詳細については、顧客管理の暗号鍵をご覧ください。CALL_LOGGING_LEVEL
: 省略可。 実行中に適用する呼び出しロギングのレベル。デフォルトではロギングレベルが指定されず、代わりにワークフロー ログレベルが適用されます。詳細については、Logging にログを送信するをご覧ください。次のいずれかになります。CALL_LOG_LEVEL_UNSPECIFIED
: ロギングレベルは指定されず、代わりにワークフロー ログレベルが適用されます。この設定がデフォルトです。それ以外の場合は、実行ログレベルが適用され、ワークフロー ログレベルよりも優先されます。LOG_ERRORS_ONLY
: キャッチされた例外をすべてログに記録します。または、例外により呼び出しが停止した場合についてもログに記録します。LOG_ALL_CALLS
: サブワークフローまたはライブラリ関数のすべての呼び出しとその結果をログに記録します。LOG_NONE
: コールロギングなし。
ENV_KEY
、ENV_VALUE
: 省略可。環境変数のキーと値のペアのマップ(例:{ "month": "January", "day": "Monday"}
)。詳細については、環境変数を使用するをご覧ください。SOURCE_CODE
: 短縮されたワークフローの定義。例:{\"main\":{\"params\":[\"input\"],\"steps\":[{\"returnOutput\":{\"return\":\"Hello\"}}]}}
LOCATION
: ワークフローがデプロイされているリージョン(例:us-central1
)。UPDATE_FIELDS
: 省略可。更新するフィールドのカンマ区切りのリスト。指定しない場合は、ワークフロー全体が更新されます。例:description,callLogLevel
。
リクエストの本文(JSON):
{ "name": "WORKFLOW_NAME", "description": "DESCRIPTION", "labels": {"LABEL_KEY":"LABEL_VALUE"}, "serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com", "cryptoKeyName": "ENCRYPT_KEY", "callLogLevel": "CALL_LOGGING_LEVEL", "userEnvVars": {"ENV_KEY":"ENV_VALUE"}, "sourceContents": "SOURCE_CODE" }
リクエストを送信するには、次のいずれかのオプションを展開します。
成功した場合、レスポンスの本文には、新しく作成された Operation
のインスタンスが含まれます。
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata", "createTime": "2023-12-05T14:06:06.338390918Z", "target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME", "verb": "update", "apiVersion": "v1" }, "done": false }
"done"
の値が false
の場合は、オペレーションが引き続き進行中です。
ワークフローの削除
既存のワークフローは削除できます。ワークフローを削除すると、そのワークフローの実行内容も削除され、実行中のワークフローもキャンセルされます。
Console
Google Cloud コンソールの [ワークフロー] ページに移動します。
削除するワークフローの名前をクリックし、
[削除] をクリックします。削除を確認するプロンプトで、ワークフロー名を入力します。
[確認] をクリックします。
gcloud
ターミナルを開きます。
実行するワークフローの名前を見つけます。ワークフローの名前がわからない場合は、次のコマンドを入力して、すべてのワークフローを一覧表示できます。
gcloud workflows list
gcloud workflows delete
コマンドを使用してワークフローを削除します。gcloud workflows delete WORKFLOW_NAME
WORKFLOW_NAME
は、使用するワークフローの名前に置き換えます。
REST
指定した名前のワークフローを削除するには、projects.locations.workflows.delete
メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
WORKFLOW_NAME
: 削除するワークフローの名前。PROJECT_ID
: Google Cloud プロジェクト ID。LOCATION
: ワークフローがデプロイされているリージョン(例:us-central1
)。
リクエストを送信するには、次のいずれかのオプションを展開します。
成功した場合、レスポンスの本文には Operation
のインスタンスが含まれます。
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata", "createTime": "2023-12-05T14:06:06.338390918Z", "target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME", "verb": "delete", "apiVersion": "v1" }, "done": false }
"done"
の値が false
の場合は、オペレーションが引き続き進行中です。