gcloud ツールを使用したクイックスタート

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

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

始める前に

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

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

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

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

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

  4. Cloud SDK をインストールして初期化します。
  5. Workflows API を有効にします。

    gcloud services enable workflows.googleapis.com
  6. サービス アカウントを作成します。[NAME] をサービス アカウントの名前に置き換えます。

    gcloud iam service-accounts create [NAME]
  7. サービス アカウントに roles/logging.logWriter ロールを付与します。

    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 ロールを割り当てます。本番環境アプリケーションを開発している場合は、常に、最小限のロールを付与します。詳しくはサービス アカウントへのロールの付与をご覧ください。ワークフローのロールの一覧については、アクセス制御のリファレンスをご覧ください。

ワークフローの作成、デプロイ、実行

  1. myFirstWorkflow.yaml または myFirstWorkflow.json という名前の新しいファイルを作成します。

  2. 次のいずれかをコピーして新しいファイルに貼り付け、保存します。

    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 の関連記事が検索されます。

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

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

    gcloud workflows deploy myFirstWorkflow --source=myFirstWorkflow.yaml \
    --service-account=[NAME]@[PROJECT_ID].iam.gserviceaccount.com

    以下を置き換えます。

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

    • [NAME]: 前に作成したサービス アカウントの名前。

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

    このコマンドはワークフローをデプロイし、指定されたサービス アカウントに関連付けます。

  5. 次のコマンドを入力してワークフローを実行します。

    gcloud workflows execute myFirstWorkflow
    

    これにより、ワークフロー実行の試行の一意の ID を含む workflows executions describe コマンドが返されます。出力は次のようになります。

    Created [cf1b1883-e271-4371-916a-10337bc1b87a].
    To view the workflow status, you can use following command:
    
    gcloud workflows executions describe cf1b1883-e271-4371-916a-10337bc1b87a --workflow myFirstWorkflow
    
  6. 実行のステータスを表示するには、前の手順で返されたコマンドを入力します。これにより、結果を含むワークフロー実行に関するデータが返されます。

    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'
    

これで初めてのワークフローをデプロイして実行できました。

クリーンアップ

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

  1. 次のコマンドを入力して、作成したワークフローを削除します。

    gcloud workflows delete myFirstWorkflow
    
  2. 続行を確認するメッセージが表示されたら、「y」と入力します。

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

次のステップ