コネクタを使用して Google Cloud サービスを呼び出す

Workflows には、ワークフロー内の他の Google Cloud API に簡単にアクセスし、ワークフローをこれらの Google Cloud プロダクトと統合できるようにするためのコネクタが用意されています。たとえば、コネクタを使用して Pub/Sub メッセージをパブリッシュすることや、Firestore データベースに対してデータを読み書きする、Secret Manager から認証キーを取得することが可能です。使用可能なコネクタの詳細については、コネクタのリファレンスをご覧ください。

コネクタは、リクエストのフォーマットを処理するため、呼び出し側のサービスが簡素化されます。コネクタは、Google Cloud API の詳細を認識する必要がないメソッドと引数を提供します。 認証および再試行中と長時間実行オペレーション中の動作の詳細については、コネクタについてをご覧ください。

コネクタ コールを呼び出す

HTTP エンドポイントの呼び出しと同様に、コネクタ呼び出しには call フィールドと args フィールドが必要です。タイムアウト値とポーリング ポリシーを指定するには、connector_params ブロックを使用します。

- STEP_NAME:
    call: CONNECTOR
    args:
        ARG: ARG_VALUE
        [...]
        body:
            KEY:KEY_VALUE
            [...]
        connector_params:
            timeout: TIMEOUT_IN_SECONDS
            polling_policy:
                initial_delay: INITIAL_DELAY_IN_SECONDS
                multiplier: MULTIPLIER_VALUE
                max_delay: MAX_DELAY_IN_SECONDS
            skip_polling: SKIP_POLLING_SWITCH 
            scopes:  OAUTH2_SCOPE 
    result: RESPONSE_VALUE

以下を置き換えます。

  • STEP_NAME: ステップの名前。
  • CONNECTOR(必須): googleapis.gcp_service.version.resource.operation 形式のコネクタ メソッド。例: googleapis.bigquery.v2.tables.get
  • ARGARG_VALUE(必須): コネクタ呼び出しごとに異なる引数が必要です。
  • KEYKEY_VALUE(省略可): API への入力を与えるフィールド。
  • コネクタ固有のパラメータ(省略可):
    • TIMEOUT_IN_SECONDS:時間(秒)タイムアウト例外をスローするまでに、コネクタ呼び出しを実行できるエンドツーエンドの期間。デフォルト値は 1800 で、これは長時間実行オペレーションではないコネクタ メソッドの最大値である必要があります。それ以外の場合、長時間実行オペレーションの場合、コネクタ呼び出しの最大タイムアウトは 31536000 秒(1 年)です。
    • INITIAL_DELAY_IN_SECONDS: デフォルト値が 1.0 のポーリング ポリシー パラメータ。長時間実行オペレーション呼び出しにのみ適用されます。
    • MULTIPLIER_VALUE: デフォルト値が 1.25 のポーリング ポリシー パラメータ。長時間実行オペレーション呼び出しにのみ適用されます。
    • MAX_DELAY_IN_SECONDS: デフォルト値が 60.0 のポーリング ポリシー パラメータ。長時間実行オペレーション呼び出しにのみ適用されます。
    • SKIP_POLLING_SWITCH: True に設定すると、リソースの管理または更新の最初のリクエストが成功すると、コネクタ呼び出しはノンブロッキングになります(通常は HTTP POSTHTTP UPDATE、または HTTP DELETE)。最初のリクエストが成功しなかった場合、再試行が発生する可能性があります。ステータスのポーリング(最初のリクエストに続く HTTP GET リクエスト)は、最初のリクエストが完了した後、長時間実行オペレーションでスキップされます。デフォルト値は False です。
    • OAUTH2_SCOPE: Google API に渡す OAuth2 スコープ。文字列、文字列のリスト、スペース区切り文字列、またはカンマ区切り文字列が可能です。
  • RESPONSE_VALUE(省略可): コネクタ呼び出しの呼び出しステップの結果が保管される変数名。

次のワークフローでは、Cloud Storage API コネクタCloud Translation API コネクタの両方を使用して、2 つのファイルをフランス語とスペイン語に翻訳し、結果を Cloud Storage バケットに保存します。

main:
  steps:
  - init:
      assign:
      - projectId: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
      - location: ${sys.get_env("GOOGLE_CLOUD_LOCATION")}
      - inputBucketName: ${projectId + "-input-files"}
      - outputBucketName: ${projectId + "-output-files-" + string(int(sys.now()))}
  - createOutputBucket:
        call: googleapis.storage.v1.buckets.insert
        args:
          project: ${projectId}
          body:
            name: ${outputBucketName}
  - batchTranslateText:
      call: googleapis.translate.v3beta1.projects.locations.batchTranslateText
      args:
          parent: ${"projects/" + projectId + "/locations/" + location}
          body:
              inputConfigs:
                gcsSource:
                  inputUri: ${"gs://" + inputBucketName + "/*"}
              outputConfig:
                  gcsDestination:
                    outputUriPrefix: ${"gs://" + outputBucketName + "/"}
              sourceLanguageCode: "en"
              targetLanguageCodes: ["es", "fr"]
      result: batchTranslateTextResult

次のステップ