Workflows を使用すると、 Google Cloud サービスと外部 API にわたるマルチステップ プロセスをオーケストレートして自動化できます。ワークフロー定義のデプロイ、更新、管理は、 Google Cloud コンソール、ローカル ターミナルまたは Cloud Shell の Google Cloud CLI、または Workflows API を使用して行えます。
始める前に
組織で定義されているセキュリティの制約により、次の手順を完了できない場合があります。トラブルシューティング情報については、制約のある Google Cloud 環境でアプリケーションを開発するをご覧ください。
コンソール
-
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.
Enable the Workflows API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
gcloud
-
Google Cloud CLI をインストールします。
-
フェデレーション ID(連携 ID)を使用するように gcloud CLI を構成します。
詳細については、フェデレーション ID を使用して gcloud CLI にログインするをご覧ください。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
Google Cloud プロジェクトを作成または選択します。
プロジェクトの選択または作成に必要なロール
- プロジェクトを選択する: プロジェクトを選択する際に、特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
-
プロジェクトを作成する: プロジェクトを作成するには、
resourcemanager.projects.create権限を含むプロジェクト作成者のロール(roles/resourcemanager.projectCreator)が必要です。詳しくは、ロールを付与する方法をご覧ください。
-
Google Cloud プロジェクトを作成します。
gcloud projects create PROJECT_ID
PROJECT_IDは、作成する Google Cloud プロジェクトの名前に置き換えます。 -
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_IDは、 Google Cloud プロジェクト名に置き換えます。
Workflows API を有効にします(有効になっていない場合)。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法を確認する。gcloud services enable workflows.googleapis.com
REST
Workflows API を使用してワークフローを管理するには、Google が提供するクライアント ライブラリを使用して workflows.googleapis.com サービスを呼び出すことをおすすめします。詳細については、Workflows API をご覧ください。
サービス アカウントを作成する
サービス アカウントはワークフローの ID を表し、ワークフローが持つ権限と、アクセスできる Google Cloud リソースを定めます。まだ作成していない場合はサービス アカウントを作成し、ターゲットの Google Cloud リソースにアクセスしてログを作成するために必要なロールを付与します。
ワークフローの作成時にサービス アカウントを指定しない場合、ワークフローは、デフォルトの Compute Engine サービス アカウントをその ID に対して使用します。詳細については、Google Cloud リソースにアクセスする権限をワークフローに付与するをご覧ください。
ワークフローを作成してサービス アカウントを関連付けるには、ワークフローを作成する権限(ワークフロー編集者ロールなど)と、そのサービス アカウントとして機能する権限(サービス アカウント ユーザーロールなど)が必要です。また、ワークフローのソースコードまたはサービス アカウントを更新するときに、関連付けられたサービス アカウントとして機能する権限も必要です。詳細については、サービス アカウント権限をご覧ください。
コンソール
Google Cloud コンソールで、[サービス アカウント] ページに移動します。
プロジェクトを選択し、[サービス アカウントを作成] をクリックします。
[サービス アカウント名] フィールドに名前を入力します。
この名前は 6~30 文字で指定する必要があり、小文字の英数字とダッシュを含めることができます。サービス アカウントを作成した後にその名前を変更することはできません。
[作成して続行] をクリックします。
[ロールを選択] をクリックします。
次のロールを選択し、必要に応じて [別のロールを追加] をクリックします。
- ワークフローがターゲットのGoogle Cloud リソースにアクセスするために必要なロールを選択します。たとえば、ワークフローが別のワークフローを呼び出す場合は、[ワークフロー] > [ワークフロー起動元] を選択します。
- Cloud Logging にログを送信するには、[Logging]>[ログ書き込み] を選択します。
[完了] をクリックして、サービス アカウントの作成を完了します。
gcloud
サービス アカウントを作成します。
gcloud iam service-accounts create SERVICE_ACCOUNT
ワークフローがターゲットの Google Cloud リソースにアクセスするために必要なロールを割り当てて、サービス アカウントに権限を付与します。
たとえば、ワークフローが別のワークフローを呼び出す場合は、
roles/workflows.invokerロールを割り当てます。gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT@PROJECT_ID." \ --role "roles/workflows.invoker"
Cloud Logging にログを送信するには、
roles/logging.logWriterロールを割り当てます。gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT@PROJECT_ID." \ --role "roles/logging.logWriter"
次のように置き換えます。
SERVICE_ACCOUNT: サービス アカウントの名前。6 ~ 30 文字で、小文字の英数字とダッシュを使用できます。サービス アカウントを作成した後にその名前を変更することはできません。PROJECT_ID: 実際の Google Cloud プロジェクト ID。
REST
serviceAccounts.create メソッドを使用してサービス アカウントを作成します。詳細については、サービス アカウントの作成をご覧ください。
setIamPolicy メソッドを使用してリソースの許可ポリシーを変更および設定することにより、プログラムで複数のロールを付与できます。詳細については、プログラムでの複数のロールの付与または取り消すをご覧ください。
ワークフローを作成する
ワークフローは、Workflows 構文で記述された一連のステップで構成され、YAML 形式または JSON 形式のいずれでも記述できます。ワークフローを定義したら、デプロイして実行できるようにします。デプロイの手順では、ソースファイルを実行できることも検証されます。ソースファイルに有効なワークフロー定義が含まれていない場合、デプロイは失敗します。
YAML ファイルの編集では、エラーがよく発生します。ワークフローを作成する場合は、任意の IDE またはソースコード エディタを使用し、予測入力と構文検証を設定してエラーを減らします。
コンソール
Google Cloud コンソールで [ワークフロー] ページに移動します。
[ 作成] をクリックします。
ワークフローの名前を入力します(例:
myFirstWorkflow)。名前には、英数字、アンダースコア、ハイフンを使用できます。先頭は英字、末尾は数字または英字にする必要があります必要に応じて、ワークフローの説明を追加します。
[リージョン] リストで、ワークフローをデプロイする適切なロケーション(us-central1 など)を選択します。
[サービス アカウント] リストで、ワークフローが他の Google Cloud サービスにアクセスするために使用するサービス アカウントを選択します。詳細については、このドキュメントのサービス アカウントを作成するをご覧ください。
必要に応じて、次の操作が可能です。
ワークフロー定義に適用する呼び出しロギングのレベルを指定します。[呼び出しログレベル] リストで、次のいずれかを選択します。
- 指定なし: ロギングレベルは指定されません。この設定がデフォルトです。 実行ログレベルが指定されていない場合(デフォルト)を除き、実行ログレベルがワークフローのログレベルよりも優先されます。実行ログレベルが指定されていない場合、ワークフローのログレベルが適用されます。
- エラーのみ: キャッチされた例外をすべてログに記録します。または、例外により呼び出しが停止した場合についてもログに記録します。
- すべてのコール: サブワークフローまたはライブラリ関数のすべての呼び出しとその結果を記録します。
- ログなし: コールロギングはありません。
ワークフロー定義に適用する実行履歴のレベルを指定します。[実行履歴] リストで、次のいずれかを選択します。
- Basic: 基本的な実行履歴を有効にします。この設定がデフォルトです。
- 詳細: スコープ内の変数と想定される反復回数を含む詳細な実行履歴を有効にします。
ワークフローでデータの暗号化に使用する Cloud Key Management Service 鍵を指定し、[顧客管理の暗号鍵(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" \ --execution-history-level="EXECUTION_HISTORY_LEVEL" \ --labels="LABEL_KEY=LABEL_VALUE" \ --set-env-vars="ENV_KEY=ENV_VALUE" \ --kms-key=ENCRYPT_KEY \ --service-account=SERVICE_ACCOUNT@PROJECT_ID. \ --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: 省略可。ワークフローの説明。EXECUTION_HISTORY_LEVEL: 省略可。実行中に適用する実行履歴のレベル。以下のいずれかになります。none: 実行履歴レベルは指定されていません。これがデフォルトです。実行に実行履歴レベルが指定されていない場合、ワークフローに適用されるレベルによって決定されます。レベルが異なる場合、実行レベルで適用された設定は、この実行のワークフロー レベルで適用された設定をオーバーライドします。execution-history-basic: 基本的な実行履歴を有効にします。execution-history-detailed: スコープ内の変数値や想定される反復回数など、詳細な実行履歴を有効にします。
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.: 省略可。ワークフローが他のGoogle Cloud サービスにアクセスするために使用するサービス アカウント。詳細については、このドキュメントのサービス アカウントを作成するをご覧ください。YAML_OR_JSON_SOURCE_FILE: ワークフロー定義のソースファイル。例:myFirstWorkflow.yaml。
REST
指定した名前で新しいワークフローを作成するには、projects.locations.workflows.create メソッドを使用し、workflowId クエリ パラメータを使用してワークフローの ID を指定します。
リクエストのデータを使用する前に、次のように置き換えます。
WORKFLOW_NAME: ワークフローの名前(例:myFirstWorkflow)。名前には、英数字、アンダースコア、ハイフンを使用できます。先頭は英字、末尾は数字または英字にする必要がありますDESCRIPTION: 省略可。ワークフローの説明。1,000 Unicode 文字以下にする必要があります。LABEL_KEY、LABEL_VALUE: 省略可。 Google Cloud インスタンスの整理に役立つラベルの Key-Value ペアのマップです。例:{"name": "wrench", "mass": "1kg", "count": "3"}。詳細については、ラベルとはをご覧ください。ワークフロー ラベルは、ワークフローの実行によって継承されます。実行ラベルを表示するには、workflows.executions.listメソッドを使用して、ワークフローの実行を一覧表示してフィルタします。SERVICE_ACCOUNT@PROJECT_ID.: 省略可。ワークフローが他の 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: コールロギングなし。
EXECUTION_HISTORY_LEVEL: 省略可。実行中に適用する実行履歴のレベル。詳細については、実行ステップの閲覧履歴をご覧ください。次のいずれかになります。EXECUTION_HISTORY_LEVEL_UNSPECIFIED: 実行履歴レベルは指定されていません。この設定がデフォルトです。実行に実行履歴レベルが指定されていない場合は、ワークフローに適用されるレベルによって決定されます。レベルが異なる場合、実行レベルで適用された設定は、この実行のワークフロー レベルで適用された設定をオーバーライドします。EXECUTION_HISTORY_BASIC: 基本的な実行履歴を有効にします。EXECUTION_HISTORY_ADVANCED: スコープ内の変数値や想定される反復回数など、詳細な実行履歴を有効にします。
ENV_KEY、ENV_VALUE: 省略可。環境変数のキーと値のペアのマップ(例:{ "month": "January", "day": "Monday"})。詳細については、環境変数を使用するをご覧ください。SOURCE_CODE: ワークフローの定義。YAML では改行をエスケープする必要があります。例:main:\n params:\n - input\n steps:\n - returnOutput:\n return: HelloJSON では引用符をエスケープする必要があります。例:
{\"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.",
"cryptoKeyName": "ENCRYPT_KEY",
"callLogLevel": "CALL_LOGGING_LEVEL",
"executionHistoryLevel": "EXECUTION_HISTORY_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@",
"sourceContents": "main:\n params: [input]\n [...] return: '${wikiResult.body[1]}'\n"
},
{
object (Workflow)
}
],
"nextPageToken": string,
"unreachable": [
string
]
}
ワークフローの更新
既存のワークフローのソースコード、構成設定、またはその両方を更新できます。ただし、ワークフローの名前やロケーションは変更できません。
ワークフローを更新しても、進行中の実行には影響しません。更新された構成は、それ以降のワークフローを実行する場合にのみ使用されます。
ワークフローのソースコードまたはサービス アカウントを更新するには、iam.serviceAccounts.actAs 権限が必要です。この権限は、サービス アカウント ユーザー(roles/iam.serviceAccountUser)などのロールに含まれています。更新内容に応じて、次のサービス アカウントにこの権限が必要です。
- ワークフローのソースコードのみを更新する(サービス アカウントを更新しない): ワークフローに関連付けられている既存のサービス アカウントに対する
iam.serviceAccounts.actAs権限が必要です。 - サービス アカウント、またはソースコードとサービス アカウントの両方を更新する: ワークフローに関連付ける新しいサービス アカウントに対する
iam.serviceAccounts.actAs権限が必要です。
詳細については、サービス アカウント権限をご覧ください。
ワークフローのソースコード、サービス アカウント、暗号鍵、環境変数、呼び出しログレベル、実行履歴レベルを更新するたびに、新しいワークフロー リビジョンが作成され、revisionId が更新されます。ワークフローの説明またはラベルのみを更新しても、新しいリビジョンは作成されません。revisionId は、ハイフンで区切られた 2 つの部分で構成されています。
000001から始まる 6 桁のゼロ埋めされた数字。新しいリビジョンが作成されるたびに増分されます。ランダムな 3 文字の 16 進数文字列。
たとえば、000001-27f はワークフローの最初のリビジョンを示し、000002-d52 は 2 番目のリビジョンを示します。
コンソール
Google Cloud コンソールで [ワークフロー] ページに移動します。
更新するワークフローの名前をクリックします。なお、ワークフローの名前は変更できません。
[Workflow の詳細] ページが表示されます。
ワークフローは次の方法で編集できます。
ソースを編集するには:
- [ソース] タブをクリックします。
- [編集] をクリックします。
- 変更を保存するには、[Save] をクリックします。更新されたワークフローがデプロイされます。
説明、ワークフローが認証に使用するサービス アカウント、呼び出しログレベル、実行履歴レベル、環境変数、ラベル、暗号鍵を更新するには:
- [詳細] タブをクリックします。
- 該当する アイコンをクリックします。
- 呼び出しログレベルを更新する場合は、次のいずれかを選択します。
- 指定なし: ロギングレベルは指定されません。この設定がデフォルトです。 実行ログレベルが指定されていない場合(デフォルト)を除き、実行ログレベルがワークフローのログレベルよりも優先されます。実行ログレベルが指定されていない場合、ワークフローのログレベルが適用されます。
- エラーのみ: キャッチされた例外をすべてログに記録します。または、例外により呼び出しが停止した場合についてもログに記録します。
- すべてのコール: サブワークフローまたはライブラリ関数のすべての呼び出しとその結果を記録します。
- ログなし: コールロギングはありません。
- 実行履歴レベルを更新する場合は、次のいずれかを選択します。
- Basic: 基本的な実行履歴を有効にします。この設定がデフォルトです。
- 詳細: スコープ内の変数と想定される反復回数を含む詳細な実行履歴を有効にします。
変更を保存するには、[保存] をクリックします。更新されたワークフローがデプロイされます。
前のフィールドを同時に編集する、またはトリガーを追加あるいは更新するには:
- [ 編集] をクリックします。
- ソースを編集するには、[次へ] をクリックします。
- 変更を保存して更新済みのワークフローをデプロイするには、[デプロイ] をクリックします。
省略可: このワークフロー リソースにアクセスまたは呼び出す権限を持つプリンシパルを管理するには、[権限] タブをクリックします。
既存のプリンシパルを更新するには:
- プリンシパルを含む行を見つけます。
- その行の [ プリンシパルを編集します] をクリックします。
- [ 別のロールを追加] または [ ロールを削除] をクリックします。
ロールを追加する場合は、[ロールを選択] リストで、適切なロールを選択します。
別のロールを追加するには、[別のロールを追加] をクリックします。
[保存] をクリックします。
gcloud
ターミナルを開きます。
更新するワークフローの名前を見つけます。ワークフローの名前がわからない場合は、次のコマンドを入力して、ロケーション内のワークフローを一覧表示します。
gcloud workflows list --location=LOCATION
LOCATIONは、ワークフローのロケーションの ID か完全修飾された ID に置き換えます。ワークフローのソースコードを更新する場合は、ワークフロー ソースが保存されている YAML または JSON ファイル(
WORKFLOW_NAME.yamlやWORKFLOW_NAME.jsonなど)を見つけます。変更するプロパティのフラグを指定して
gcloud workflows deployコマンドを実行し、ワークフローを更新します。既存のワークフローを更新して、そのソース、説明、ラベル、環境変数、呼び出しログレベル、実行履歴レベル、暗号鍵、または関連するサービス アカウントを変更できます。更新するワークフローの名前を指定する必要があります。残りのフラグは省略可能です。顧客管理の暗号鍵を削除するには、
--clear-kms-keyフラグを使用します。gcloud workflows deploy WORKFLOW_NAME \ --location=LOCATION \ --call-log-level=CALL_LOGGING_LEVEL \ --description="DESCRIPTION" \ --execution-history-level="EXECUTION_HISTORY_LEVEL" \ --labels="LABEL_KEY=LABEL_VALUE" \ --set-env-vars="ENV_KEY=ENV_VALUE" \ --kms-key=ENCRYPT_KEY \ --service-account=SERVICE_ACCOUNT@PROJECT_ID. \ --source=YAML_OR_JSON_SOURCE_FILE
次のように置き換えます。
WORKFLOW_NAME: 必須。: ワークフローの名前。LOCATION:workflows/locationプロパティが設定されている場合は省略可能。それ以外の場合は必須。ワークフローのロケーション(例:us-central1)。CALL_LOGGING_LEVEL: 省略可。実行中に適用するコールロギングのレベル。以下のいずれかになります。none: ロギングレベルは指定されません。この設定がデフォルトです。実行ログレベルが指定されていない場合(デフォルト)を除き、実行ログレベルがワークフローのログレベルよりも優先されます。実行ログレベルが指定されていない場合、ワークフローのログレベルが適用されます。log-errors-only: キャッチされた例外をすべてログに記録します。または、例外により呼び出しが停止した場合についてもログに記録します。log-all-calls: サブワークフローまたはライブラリ関数のすべての呼び出しとその結果をログに記録します。log-none: コールロギングなし。
DESCRIPTION: 省略可。ワークフローの説明。EXECUTION_HISTORY_LEVEL: 省略可。実行中に適用する実行履歴のレベル。以下のいずれかになります。none: 実行履歴レベルは指定されていません。これがデフォルトです。実行に実行履歴レベルが指定されていない場合、ワークフローに適用されるレベルによって決定されます。レベルが異なる場合、実行レベルで適用された設定は、この実行のワークフロー レベルで適用された設定をオーバーライドします。execution-history-basic: 基本的な実行履歴を有効にします。execution-history-detailed: スコープ内の変数値や想定される反復回数など、詳細な実行履歴を有効にします。
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.: 省略可。ワークフローが他のGoogle Cloud サービスにアクセスするために使用するサービス アカウント。サービス アカウントのロールを更新する場合は、Google Cloud リソースにアクセスするための権限をワークフローに付与するおよびプロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。YAML_OR_JSON_SOURCE_FILE: 省略可。ワークフローのソースファイル(YAML 形式または JSON 形式)。例:myFirstWorkflow.yaml。
REST
既存のワークフローを更新するには、projects.locations.workflows.patch メソッドを使用します。必要に応じて、updateMask クエリ パラメータを使用して、更新するフィールドのリストを指定します。
リクエストのデータを使用する前に、次のように置き換えます。
WORKFLOW_NAME: ワークフローの名前(例:myFirstWorkflow)。DESCRIPTION: 省略可。ワークフローの説明。1,000 Unicode 文字以下にする必要があります。LABEL_KEY、LABEL_VALUE: 省略可。 Google Cloud インスタンスの整理に役立つラベルの Key-Value ペアのマップです。例:{"name": "wrench", "mass": "1kg", "count": "3"}。詳細については、ラベルとはをご覧ください。ワークフロー ラベルは、ワークフローの実行によって継承されます。実行ラベルを表示するには、workflows.executions.listメソッドを使用して、ワークフローの実行を一覧表示してフィルタします。SERVICE_ACCOUNT@PROJECT_ID.: 省略可。ワークフローが他の 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: コールロギングなし。
EXECUTION_HISTORY_LEVEL: 省略可。実行中に適用する実行履歴のレベル。詳細については、実行ステップの閲覧履歴をご覧ください。次のいずれかになります。EXECUTION_HISTORY_LEVEL_UNSPECIFIED: 実行履歴レベルは指定されていません。この設定がデフォルトです。実行に実行履歴レベルが指定されていない場合は、ワークフローに適用されるレベルによって決定されます。レベルが異なる場合、実行レベルで適用された設定は、この実行のワークフロー レベルで適用された設定をオーバーライドします。EXECUTION_HISTORY_BASIC: 基本的な実行履歴を有効にします。EXECUTION_HISTORY_ADVANCED: スコープ内の変数値や想定される反復回数など、詳細な実行履歴を有効にします。
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.",
"cryptoKeyName": "ENCRYPT_KEY",
"callLogLevel": "CALL_LOGGING_LEVEL",
"executionHistoryLevel": "EXECUTION_HISTORY_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 の場合は、オペレーションが引き続き進行中です。
ワークフローの削除
既存のワークフローは削除できます。ワークフローを削除すると、そのワークフローの実行内容も削除され、実行中のワークフローもキャンセルされます。
コンソール
Google Cloud コンソールで [ワークフロー] ページに移動します。
削除するワークフローの名前をクリックし、 [削除] をクリックします。
削除を確認するプロンプトで、ワークフロー名を入力します。
[確認] をクリックします。
gcloud
ターミナルを開きます。
削除するワークフローの名前を見つけます。ワークフローの名前がわからない場合は、次のコマンドを入力して、ロケーション内のワークフローを一覧表示します。
gcloud workflows list --location=LOCATION
gcloud workflows deleteコマンドを使用してワークフローを削除します。gcloud workflows delete WORKFLOW_NAME \ --location=LOCATION
次のように置き換えます。
WORKFLOW_NAME: ワークフローの名前。LOCATION: ワークフローのロケーションの ID または完全修飾識別子。
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 の場合は、オペレーションが引き続き進行中です。