커넥터를 사용하여 Google Cloud 서비스 호출

Workflows에서 게시되는 커넥터를 사용하면 워크플로 내에서 다른 Google Cloud API에 더 쉽게 액세스하고 워크플로를 Google Cloud 제품과 통합할 수 있습니다. 예를 들어 커넥터를 사용하여 Pub/Sub 메시지를 게시하거나, Firestore 데이터베이스에 대해 데이터 읽기 또는 쓰기를 수행하거나, Secret Manager에서 인증 키를 검색할 수 있습니다. 사용 가능한 커넥터에 대한 자세한 내용은 커넥터 참조를 확인하세요.

커넥터는 Google Cloud API의 세부정보를 알 필요가 없도록 요청의 형식 지정을 처리하여 메서드와 인수를 제공하므로 호출 서비스를 단순화합니다. 인증과 재시도 및 장기 실행 작업 중 동작에 대한 자세한 내용은 커넥터 이해를 참조하세요.

커넥터 호출

HTTP 엔드포인트를 호출하는 것과 마찬가지로 커넥터 호출에는 callargs 필드가 필요합니다. 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 POST, HTTP UPDATE, 또는 HTTP DELETE). 초기 요청이 실패하면 재시도가 발생할 수 있습니다. 초기 요청이 완료되면 장기 실행 작업에 대해 상태 폴링(초기 요청 후 HTTP GET 요청)을 건너뜁니다. 기본값은 False입니다.
    • OAUTH2_SCOPE: Google API에 전달할 OAuth2 범위. 문자열, 문자열 목록, 공백으로 구분된 문자열, 쉼표로 구분된 문자열일 수 있습니다.
  • RESPONSE_VALUE(선택사항): 커넥터 호출 단계의 결과가 저장되는 변수 이름.

다음 워크플로는 Cloud Storage API 커넥터Cloud Translation API 커넥터를 모두 사용하여 두 파일을 프랑스어, 스페인어로 번역하고 결과를 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

다음 단계