クイックスタート: gcloud ツールを使用してワークフローを作成する

このクイックスタートでは、gcloud コマンドライン ツールを使用して最初のワークフローを作成、デプロイ、実行する方法について説明します。ワークフローでは、リクエストをサンプル API に送信してから、レスポンスを使用することでリクエストを作成して公開 API に送信します。続いて、ワークフローは公開 API のレスポンスを返します。

すべての Workflows gcloud ツールコマンドのリストについては、ワークフロー gcloud ツールのリファレンス ページをご覧ください。

始める前に

組織が Google Cloud 環境に制約を適用すると、このドキュメントの一部の手順が正しく機能しない場合があります。その場合、パブリック IP アドレスやサービス アカウント キーを作成するようなタスクを完了できない場合があります。制約に関するエラーを返すリクエストを行う場合は、制約がある Google Cloud 環境でアプリケーションを開発する方法をご覧ください。

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

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

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

  4. Cloud SDK をインストールして初期化します。
  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

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

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

  7. Cloud SDK をインストールして初期化します。
  8. ワークフロー API を有効にします。

    gcloud services enable workflows.googleapis.com
  9. サービス アカウントを作成して名前を付けます。例: sa-name
    gcloud iam service-accounts create sa-name
  10. サービス アカウントに roles/logging.logWriter ロールを付与します。

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:sa-name@PROJECT_ID.iam.gserviceaccount.com" \
        --role "roles/logging.logWriter"
    

    PROJECT_ID はプロジェクトの ID に置き換えます。

ワークフローを作成、デプロイ、実行する

  1. ターミナルまたは Cloud Shell を開きます。
  2. ホーム ディレクトリで、myFirstWorkflow.yaml または myFirstWorkflow.json という名前の新しいファイルを作成します。
  3. 次のいずれかをコピーして新しいファイルに貼り付け、保存します。

    YAML

    - getCurrentTime:
        call: http.get
        args:
          url: https://us-central1-workflowsample.cloudfunctions.net/datetime
        result: currentTime
    - readWikipedia:
        call: http.get
        args:
          url: https://en.wikipedia.org/w/api.php
          query:
            action: opensearch
            search: ${currentTime.body.dayOfTheWeek}
        result: wikiResult
    - returnResult:
        return: ${wikiResult.body[1]}

    JSON

    [
      {
        "getCurrentTime": {
          "call": "http.get",
          "args": {
            "url": "https://us-central1-workflowsample.cloudfunctions.net/datetime"
          },
          "result": "currentTime"
        }
      },
      {
        "readWikipedia": {
          "call": "http.get",
          "args": {
            "url": "https://en.wikipedia.org/w/api.php",
            "query": {
              "action": "opensearch",
              "search": "${currentTime.body.dayOfTheWeek}"
            }
          },
          "result": "wikiResult"
        }
      },
      {
        "returnResult": {
          "return": "${wikiResult.body[1]}"
        }
      }
    ]
    このワークフローでは、サンプル API を呼び出します。返された曜日は、Wikipedia API に渡されます。今日の曜日に関する Wikipedia の関連記事が返されます。
  4. ワークフローをデプロイし、指定されたサービス アカウントに関連付けます。
    gcloud workflows deploy myFirstWorkflow --source=myFirstWorkflow.yaml \
    --service-account=sa-name@PROJECT_ID.iam.gserviceaccount.com

    以下を置き換えます。

    • .yaml: JSON バージョンのサンプル ワークフローをコピーした場合は、.json に置き換えます。

    • PROJECT_ID: 実際のプロジェクト ID。

  5. ワークフローを実行する
    gcloud workflows run myFirstWorkflow

    実行の試行結果が返されます。出力は次のようになります。

    argument: 'null'
    endTime: '2020-06-23T16:21:35.266171131Z'
    name: projects/123456789012/locations/us-central1/workflows/myFirstWorkflow/executions/f72bc6d4-5ea0-4dfb-bb14-2dae82303120
    result: '["Tuesday","Tuesday Weld","Tuesday Night Music Club","Tuesday (ILoveMakonnen
      song)","Tuesdays with Morrie","Tuesday Group","Tuesday Knight","Tuesday (Burak Yeter
      song)","Tuesday Morning Quarterback","Tuesday Maybe"]'
    startTime: '2020-06-23T16:21:34.826993288Z'
    state: SUCCEEDED
    workflowVersionId: '1'
    
  6. これで最初のワークフローのデプロイと実行が完了しました。

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

  1. 作成したワークフローを削除します。
    gcloud workflows delete myFirstWorkflow
  2. 続行を確認するメッセージが表示されたら、「y」と入力します。

ワークフローが削除されます。

次のステップ