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

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

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

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

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

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

    Workflows API を有効にする

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

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

Console

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

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

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

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

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

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

  5. [ロール] リストから、[ロギング] > [ログ書き込み] を選択します。

    [役割] フィールドの設定により、サービス アカウントによるリソースへのアクセスが許可されます。

    本番環境アプリケーションを開発している場合は、常に、最小限のロールを付与します。詳細については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。ワークフローのロールの一覧については、アクセス制御のリファレンスをご覧ください。

  6. [続行] をクリックします。

  7. [完了] をクリックします。

gcloud

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

    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: サービス アカウントの名前。6~30 文字で、小文字の英数字とダッシュを使用できます。作成したサービス アカウントの名前は変更できません。

    --role フラグを使用して、サービス アカウントがリソースにアクセスするのを承認します。

    本番環境アプリケーションを開発している場合は、常に、最小限のロールを付与します。詳細については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。ワークフローのロールの一覧については、アクセス制御のリファレンスをご覧ください。

ワークフローの作成

ワークフローは、Workflows 構文で記述された一連のステップで構成され、YAML 形式または JSON 形式のいずれでも記述できます。ワークフローを作成したら、デプロイして実行できるようにします。デプロイの手順では、ソースファイルを実行できることも検証されます。ソースファイルに有効なワークフロー定義が含まれていない場合、デプロイは失敗します。

Console

  1. Cloud Console で [ワークフロー] ページに移動します。

    [ワークフロー] に移動

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

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

  4. 適切なリージョンを選択します(例: us-central1)。

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

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

  7. ワークフロー エディタで、ワークフローの定義を入力します。ワークフローの例については、クイックスタート: Cloud Console を使用したワークフローの作成ページをご覧ください。

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

gcloud

  1. ワークフローのソースコードが YAML ファイルまたは JSON ファイル(MY_WORKFLOW.YAMLMY_WORKFLOW.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. Cloud Console で [ワークフロー] ページに移動します。

    [ワークフロー] に移動

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

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

    ラベルは、Google Cloud リソースの整理で役立つ Key-Value ペアです。詳しくは、ラベルの作成と管理をご覧ください。

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

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

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

gcloud

  1. 更新したワークフロー ソースが保存されている YAML または JSON ファイル(WORKFLOW_FILE.YAMLWORKFLOW_FILE.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 個のラベルペア(カンマ区切りのリスト)。複数のラベルを追加する場合は、カンマ区切りのリストで指定します。ラベルは Google Cloud インスタンスを整理するのに役立ちます。詳細については、サブネットの作成と管理をご覧ください。

    • WORKFLOW_DESCRIPTION: 省略可。ワークフローの説明。

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

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

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

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

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

次のステップ