ワークフローの作成と管理

ワークフローの作成と管理は、Google Cloud コンソールで行うか、ターミナルまたは Cloud Shell で Google Cloud CLI を使用して行います。Workflows API を使用してワークフローを管理することもできます。

始める前に

組織で定義されているセキュリティの制約により、次の手順を完了できない場合があります。トラブルシューティング情報については、制約のある Google Cloud 環境でアプリケーションを開発するをご覧ください。

コンソール

  1. Google Cloud コンソールのプロジェクト セレクタ ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  2. Google Cloud プロジェクトで課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。

  3. ワークフロー API を有効にします。

    API を有効にする

gcloud

  1. Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。

    Cloud Shell をアクティブにする

    Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。

  2. Google Cloud プロジェクトで課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。

  3. ワークフロー API を有効にします。

    gcloud services enable workflows.googleapis.com
    

REST

Workflows API を使用してワークフローを管理するには、Google 提供のクライアント ライブラリを使用して workflows.googleapis.com サービスを呼び出すことをおすすめします。詳細については、Workflows API をご覧ください。

サービス アカウントを作成する

サービス アカウントはワークフローの ID を表し、ワークフローが持つ権限とアクセスできる Google Cloud リソースを決定します。まだ作成していない場合はサービス アカウントを作成し、ワークフローの管理ログの作成に必要なロールを付与します。

ワークフローの作成時にサービス アカウントを指定しない場合、その ID には、デフォルトの Compute Engine サービス アカウントが使用されます。詳細については、Google Cloud リソースにアクセスする権限をワークフローに付与するをご覧ください。

必要なリソースにアクセスするために必要な最小権限を持つサービス アカウントを使用することを強くおすすめします。

リソースを作成してサービス アカウントを関連付けるには、対象のリソースを作成し、リソースに関連付けるサービス アカウントになりすますための権限が必要です。詳細については、サービス アカウント権限をご覧ください。

コンソール

  1. Google Cloud コンソールで、[サービス アカウント] ページに移動します。

    [サービス アカウント] に移動

  2. プロジェクトを選択し、[サービス アカウントを作成] をクリックします。

  3. [サービス アカウント名] フィールドに名前を入力します。

    この名前は 6~30 文字で指定する必要があり、小文字の英数字とダッシュを含めることができます。作成したサービス アカウントの名前は変更できません。

  4. [作成して続行] をクリックします。

  5. [ロールを選択] をクリックします。

  6. 次のロールを選択し、必要に応じて [別のロールを追加] をクリックします。

    1. ワークフローを作成、更新、実行するには、[ワークフロー] >[ワークフロー編集者] を選択します。
    2. Cloud Logging にログを送信するには、[Logging]>[ログ書き込み] を選択します。
  7. [完了] をクリックして、サービス アカウントの作成を完了します。

gcloud

  1. サービス アカウントを作成します。

    gcloud iam service-accounts create SERVICE_ACCOUNT
  2. ロールを割り当てて、サービス アカウントに権限を付与します。

    1. ワークフローを作成、更新、実行するには、roles/workflows.editor ロールを割り当てます。

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member "serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \
          --role "roles/workflows.editor"
      
    2. 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 またはソースコード エディタを使用し、オートコンプリートと構文検証を設定してエラーを減らします。

コンソール

  1. Google Cloud コンソールの [ワークフロー] ページに移動します。

    [ワークフロー] に移動

  2. [ 作成] をクリックします。

  3. ワークフローの名前を入力します(例: myFirstWorkflow)。名前には、英数字、アンダースコア、ハイフンを使用できます。先頭は英字、末尾は数字または英字にする必要があります

  4. 必要に応じて、ワークフローの説明を追加します。

  5. [リージョン] リストで、ワークフローをデプロイする適切なロケーションを選択します。例: us-central1

  6. [サービス アカウント] リストで、ワークフローが他の Google Cloud サービスへのアクセスに使用するサービス アカウントを選択します。詳細については、このドキュメントのサービス アカウントを作成するをご覧ください。

  7. 必要に応じて、次の操作が可能です。

    1. ワークフロー定義に適用する呼び出しロギングのレベルを指定します。[呼び出しログレベル] リストで、次のいずれかを選択します。

      • 指定なし: ロギングレベルは指定されません。この設定がデフォルトです。実行ログレベルが指定されていない場合を除き、実行ログレベルがワークフローのログレベルよりも優先されます(デフォルト)。実行ログレベルが指定されていない場合、ワークフローのログレベルが適用されます。
      • エラーのみ: キャッチされた例外をすべてログに記録します。または、例外により呼び出しが停止した場合についてもログに記録します。
      • すべてのコール: サブワークフローまたはライブラリ関数のすべての呼び出しとその結果を記録します。
      • ログなし: コールロギングはありません。
    2. ワークフローでデータの暗号化に使用する Cloud Key Management Service 鍵を指定し、[Customer-managed encryption key (CMEK)] を選択します。詳細については、顧客管理の暗号鍵をご覧ください。

    3. 実行時にワークフローがアクセスできる環境変数を指定します。詳細については、環境変数を使用するをご覧ください。

    4. ラベルを追加する: ラベルは Key-Value ペアで、Google Cloud のインスタンスを整理するのに役立ちます。詳細については、ラベルとはをご覧ください。

    5. ワークフローのスケジュールを設定する: [新しいトリガーを追加] > [Cloud Scheduler] の順に選択します。詳細については、Cloud Scheduler を使用したワークフローのスケジュール設定をご覧ください。

    6. イベントまたは Pub/Sub メッセージを使用してワークフローをトリガーする: [新しいトリガーを追加] > [Eventarc] の順に選択します。詳細については、イベントまたは Pub/Sub メッセージでワークフローをトリガーするをご覧ください。

  8. [次へ] をクリックします。

  9. ワークフロー エディタで、ワークフローの定義を入力します。ワークフローの例をご覧ください。

  10. [デプロイ] をクリックします。

gcloud

  1. ワークフローのソースコードが YAML ファイルまたは JSON ファイル(MY_WORKFLOW.YAMLMY_WORKFLOW.JSON など)に保存されていることを確認します。ワークフローの例をご覧ください。

  2. ターミナルを開きます。

  3. ワークフローは、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)。詳細については、ラベルとはをご覧ください。

    • 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: 省略可。ワークフローの説明。1,000 文字以内の Unicode 文字にする必要があります。
  • LABEL_KEYLABEL_VALUE: 省略可。Google Cloud インスタンスの整理に役立つラベルのキーと値のペアのマップ。例: {"name": "wrench", "mass": "1kg", "count": "3"}。詳細については、ラベルとはをご覧ください。新しいラベルが有効になるまでに、最大で 10 分かかることがあります。
  • 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_KEYENV_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 の場合は、オペレーションが引き続き進行中です。

ワークフローの一覧表示

ワークフローを一覧表示するか、フィルタを使用して特定のワークフローを取得できます。

コンソール

  1. Google Cloud コンソールの [ワークフロー] ページに移動します。

    [ワークフロー] に移動

    このページには、すべてのロケーションのワークフローが表示され、名前、リージョン、最新のリビジョンなどの詳細が含まれます。

  2. ワークフローをフィルタするには:

    1. [ フィルタ] フィールドまたは [ワークフローをフィルタリング] フィールドをクリックします。
    2. [プロパティ] リストで、ワークフローをフィルタするオプションを選択します。

    1 つのプロパティを選択することも、論理演算子 OR を使用して複数のプロパティを追加することもできます。

  3. ワークフローを並べ替えるには、サポートされている列見出しの横にある [ 並べ替え] をクリックします。

gcloud

gcloud workflows list コマンドを使用して、ワークフローを一覧表示します。

gcloud workflows list --location=LOCATION

LOCATION は、ワークフローのロケーションの ID または完全修飾 ID に置き換えます。

このコマンドは、指定されたロケーションのワークフローを一覧表示し、ワークフローの NAMESTATEREVISION_IDUPDATE_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 は一度更新されたワークフローを示します。

コンソール

  1. Google Cloud コンソールの [ワークフロー] ページに移動します。

    [ワークフロー] に移動

  2. 更新するワークフローの名前をクリックします。ワークフローの名前は変更できません。

    [Workflow の詳細] ページが表示されます。

  3. ワークフローは次の方法で編集できます。

    • ソースを編集するには:

      1. [ソース] タブをクリックします。
      2. [編集] をクリックします。
      3. 変更を保存するには、[Save] をクリックします。更新されたワークフローがデプロイされます。
    • 説明、ワークフローが認証に使用するサービス アカウント、呼び出しログレベル、環境変数、ラベル、暗号鍵を更新するには:

      1. [詳細] タブをクリックします。
      2. 該当する アイコンをクリックします。
      3. 呼び出しログレベルを更新する場合は、次のいずれかを選択します。
        • 指定なし: ロギングレベルは指定されません。この設定がデフォルトです。実行ログレベルが指定されていない場合を除き、実行ログレベルがワークフローのログレベルよりも優先されます(デフォルト)。実行ログレベルが指定されていない場合、ワークフローのログレベルが適用されます。
        • エラーのみ: キャッチされた例外をすべてログに記録します。または、例外により呼び出しが停止した場合についてもログに記録します。
        • すべてのコール: サブワークフローまたはライブラリ関数のすべての呼び出しとその結果を記録します。
        • ログがない: コールロギングはありません。
      4. 変更を保存するには、[Save] をクリックします。更新されたワークフローがデプロイされます。
    • 前のフィールドを同時に編集する、またはトリガーを追加あるいは更新するには:

      1. [ 編集] をクリックします。
      2. ソースを編集するには、[次へ] をクリックします。
      3. 変更を保存して更新済みのワークフローをデプロイするには、[デプロイ] をクリックします。
  4. サービス アカウントのロールを更新する場合は、[権限] タブをクリックします。

    1. プリンシパルは、ユーザー、グループ、ドメイン、またはサービス アカウントです。 既存のプリンシパルを更新するには:

      1. プリンシパルを含む行を見つけます。
      2. その行の [ プリンシパルを編集します] をクリックします。
      3. [ 別のロールを追加] または [ ロールを削除] をクリックします。
    2. ロールを追加する場合は、[ロールを選択] リストで適切なロールを選択します。

    3. 別のロールを追加するには、[別のロールを追加] をクリックします。

    4. [保存] をクリックします。

gcloud

  1. ターミナルを開きます。

  2. 更新するワークフローの名前を見つけます。ワークフローの名前がわからない場合は、次のコマンドを入力して、すべてのワークフローを一覧表示できます。

    gcloud workflows list
    
  3. ワークフロー ソースが保存されている YAML または JSON ファイル(WORKFLOW_NAME.YAMLWORKFLOW_NAME.JSON など)を見つけます。

  4. 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)。詳細については、ラベルとはをご覧ください。

    • 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: 省略可。ワークフローの説明。1,000 文字以内の Unicode 文字にする必要があります。
  • LABEL_KEYLABEL_VALUE: 省略可。Google Cloud インスタンスの整理に役立つラベルのキーと値のペアのマップ。例: {"name": "wrench", "mass": "1kg", "count": "3"}。詳細については、ラベルとはをご覧ください。新しいラベルが有効になるまでに、最大で 10 分かかることがあります。
  • 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_KEYENV_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 の場合は、オペレーションが引き続き進行中です。

ワークフローの削除

既存のワークフローを削除できます。ワークフローを削除すると、その実行も削除され、ワークフローのアクティブな実行がすべてキャンセルされます。

コンソール

  1. Google Cloud コンソールの [ワークフロー] ページに移動します。

    [ワークフロー] に移動

  2. 削除するワークフローの名前をクリックし、 [削除] をクリックします。

  3. 削除を確認するプロンプトで、ワークフロー名を入力します。

  4. [確認] をクリックします。

gcloud

  1. ターミナルを開きます。

  2. 実行するワークフローの名前を見つけます。ワークフローの名前がわからない場合は、次のコマンドを入力して、すべてのワークフローを一覧表示できます。

    gcloud workflows list
    
  3. 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 の場合は、オペレーションが引き続き進行中です。

次のステップ