ワークフローの作成と更新

このページでは、Google Cloud Console で、または gcloud コマンドライン ツールを使用して、ワークフローの作成と、既存のワークフローの更新の方法について説明します。

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    [プロジェクトの選択] ページに移動

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. Workflows API を有効にします。

    Workflows API を有効にする
  5. まだ作成していない場合はサービス アカウントを作成し、ワークフローの管理とログの作成に必要なロールを付与します。

    Console

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

      [サービス アカウントの作成] ページに移動
    2. [サービス アカウントの作成] を選択します。
    3. [サービス アカウント名] フィールドに名前を入力します。
    4. [作成] をクリックします。
    5. [ロール] リストから、[ロギング] > [ログ書き込み] を選択します。

      : [ロール] フィールドによって、サービス アカウントによるリソースへのアクセスが認可されます。ワークフローを作成、更新、実行するには、roles/workflows.editor ロールを割り当てます。Cloud Logging にログを送信するには、roles/logging.logWriter ロールを割り当てます。本番環境アプリケーションを開発している場合は、常に、最小限のロールを付与します。詳しくはサービス アカウントへのロールの付与をご覧ください。ワークフローのロールの一覧については、アクセス制御のリファレンスをご覧ください。
    6. [続行] をクリックします。
    7. [完了] をクリックします。

    gcloud

    1. サービス アカウントを作成します。[NAME] をサービス アカウントの名前に置き換えます。

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

      gcloud projects add-iam-policy-binding [PROJECT_ID] --member "serviceAccount:[NAME]@[PROJECT_ID].iam.gserviceaccount.com" --role "roles/logging.logWriter"

      以下を置き換えます。
      • [PROJECT_ID]: プロジェクトの ID。
      • [NAME]: 作成したサービス アカウントの名前。
      : [ロール] フィールドによって、サービス アカウントによるリソースへのアクセスが承認されます。Cloud Logging にログを送信するには、roles/logging.logWriter ロールを割り当てます。本番環境アプリケーションを開発している場合は、常に、最小限のロールを付与します。詳しくは、サービス アカウントへのロールの付与をご覧ください。ワークフローのロールの一覧については、アクセス制御のリファレンスをご覧ください。

ワークフローの作成

ワークフローを作成するには、ワークフローを実行に使用できるようにデプロイします。デプロイの手順では、ソースファイルを実行できることも検証されます。ソースファイルに有効なワークフロー定義が含まれていない場合、デプロイは失敗します。

Console

  1. 新しいワークフローを作成するには、Google Cloud Console で [ワークフロー] ページを開きます。
    [ワークフロー] ページに移動

  2. [作成] を選択します。

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

  4. リージョンには us-central1 を選択します。

  5. ワークフローで、他の Google Cloud サービスでの認証に使用するサービス アカウントを選択します。必要なリソースにアクセスするのに必要な最小限の権限を持つサービス アカウントを使用することを強くおすすめします。サービス アカウントについての詳細は、サービス アカウントの作成と管理をご覧ください。

  6. [次へ] を選択します。

  7. ワークフロー エディタで、ワークフローの定義を入力します。Cloud Console を使用したクイックスタートのページのサンプル ワークフローをご覧ください。

  8. [デプロイ] を選択します。

gcloud

  1. ワークフローのソースコードが MY_WORKFLOW.YAMLMY_WORKFLOW.JSON などの YAML または JSON ファイルに保存されていることを確認します。gcloud ツールを使用したクイックスタート のページのサンプル ワークフローをご覧ください。

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

  3. 次のコマンドを入力してワークフローをデプロイします。

    gcloud workflows deploy MY_WORKFLOW \
    --source=MY_WORKFLOW.YAML \
    [--service-account=MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM]
    

    以下を置き換えます。

    • MY_WORKFLOW: ワークフローの名前。

    • MY_WORKFLOW.YAML: ワークフローに使用するソースファイル。

    • MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM: 省略可。ワークフローが他の Google Cloud サービスにアクセスするために使用するサービス アカウント。必要なリソースにアクセスするのに必要な最小限の権限を持つサービス アカウントを使用することを強くおすすめします。空白のままにすると、デフォルトのサービス アカウントが使用されます。サービス アカウントについての詳細は、サービス アカウントの作成と管理をご覧ください。

ワークフローの更新

既存のワークフローを更新して、ソース、説明、ラベル、または関連付けられたサービス アカウントを変更できます。ワークフローを更新しても、進行中の実行には影響しません。これ以降に実行されるワークフローのみが、更新された構成で使用されます。

Console

  1. 既存のワークフローを更新するには、Google Cloud Console で [ワークフロー] ページを開きます。
    [ワークフロー] ページに移動

  2. 更新するワークフローの名前を選択します。

  3. [ワークフローの編集] ページでは、説明の編集や、ワークフローが認証に使用するサービス アカウントの更新、ラベルの追加が行えます。ワークフローの名前は編集できません。

  4. 最初の更新が完了したら、[次へ] を選択します。

  5. ワークフローのソースを編集するには、ワークフロー エディタでソースコードを更新します。

  6. [デプロイ] を選択します。

gcloud

  1. WORKFLOW_FILE.YAMLWORKFLOW_FILE.JSON など、更新されたワークフロー ソースが保存される YAML または JSON ファイルを探します。

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

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

    gcloud workflows list
    
  4. ワークフローのソース、関連付けられているサービス アカウント、説明、ラベルを更新できます。

    gcloud workflows deploy WORKFLOW_NAME \
    --source=WORKFLOW_FILE.YAML \
    [--service-account=MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM] \
    [--labels=KEY=VALUE...] \
    [--description='WORKFLOW_DESCRIPTION']
    

    以下を置き換えます。

    • WORKFLOW_NAME: 必須。ワークフローの名前。

    • WORKFLOW_FILE.YAML: 必須。ワークフローのソースファイル。

    • MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM: 省略可。ワークフローが他の Google Cloud サービスにアクセスするために使用するサービス アカウント。サービス アカウントについての詳細は、サービス アカウントの作成と管理をご覧ください。

    • KEY=VALUE: 省略可。KEY=VALUE ペアに追加するラベル(複数の場合はカンマ区切りのリスト)。

    • WORKFLOW_DESCRIPTION: 省略可。ワークフローに付ける説明。

    更新するワークフローの名前とソースを指定する必要がありますが、残りのフラグは省略可能です。

ワークフローを更新する度に、その versionID が更新されます。versionID は、ハイフンで区切られた 2 つの部分で構成されます。

  • 1 で始まる数字で、ワークフローを更新する度に増加する数値。

  • ランダムな 3 文字の英数字文字列。

たとえば、000002-d52 は、一度更新されたワークフローを示します。000001-27f は、最初のバージョンのワークフローを示しています。

次のステップ