실행 요청에서 런타임 인수 전달

이 페이지에서는 워크플로 실행 요청에서 런타임 인수를 전달하고 워크플로 변수를 사용하여 해당 인수에 액세스하는 방법을 설명합니다.

런타임 인수를 수신하는 워크플로 설정

실행 요청 중에 전달하는 런타임 인수를 사용하는 워크플로를 만들 수 있습니다. 런타임 인수를 수신하도록 워크플로를 설정하려면 다음 안내를 따르세요.

  1. 새 워크플로 생성 단계를 따르거나 업데이트할 기존 워크플로를 선택하고, 아직 배포하지는 않습니다.

  2. 워크플로 정의에 params 필드를 추가합니다.

    main:
      params: [DICTIONARY_NAME]
      steps:
        ...
    

    DICTIONARY_NAME을 워크플로에 전달하는 매개변수 이름 및 인수 값을 저장하는 사전의 이름으로 바꿉니다.

    예를 들어 다음 워크플로는 런타임 인수로 전달하는 이름 및 성에 해당하는 사람에 대해 'Hello' 인사를 반환합니다.

    main:
      params: [args]
      steps:
        - step1:
            assign:
              - OutputVar: ${"Hello, " + args.firstName + " " + args.lastName + "!"}
        - step2:
            return: ${OutputVar}
    
  3. 워크플로를 배포하여 생성 또는 업데이트를 완료합니다.

실행 요청에서 데이터 전달

런타임 인수를 수신하도록 워크플로를 설정한 후 실행 요청에서 {"firstName":"Workflows","lastName":"User"}와 같은 JSON 형식의 문자열을 워크플로에 전달할 수 있습니다.

gcloud

워크플로 실행에 사용되는 gcloud workflow run 명령어에 --data 플래그를 추가합니다. 이 플래그는 데이터의 JSON 문자열을 사용합니다. 예를 들어 이전 예시 워크플로에 firstNamelastName를 전달하려면 다음 안내를 따르세요.

gcloud workflows run WORKFLOW_NAME \
--data='{"firstName":"FIRST","lastName":"LAST"}'

다음을 바꿉니다.

  • WORKFLOW_NAME: 워크플로의 이름
  • FIRST: firstName의 워크플로에 전달할 문자열
  • LAST: lastName의 워크플로에 전달할 문자열

다음과 유사한 출력이 표시됩니다.

Waiting for execution [EXECUTION_ID] to complete...done
.
argument: '{"firstName":"Workflows","lastName":"User"}'
endTime: '2020-11-18T23:28:36.134741660Z'
name: projects/PROJECT_NUMBER/locations/us-central1/workflows/WORKFLOW_NAME/executions/EXECUTION_ID
result: '"Hello, Workflows User!"'
startTime: '2020-11-18T23:28:36.003269841Z'
state: SUCCEEDED
workflowRevisionId: 000001-ae2

Console

  1. Google Cloud Console의 Workflows 페이지에서 실행할 워크플로를 선택합니다.
    Workflows 페이지로 이동

  2. 워크플로의 세부정보 페이지에서 실행을 클릭합니다.

  3. '워크플로 실행' 페이지가 표시되면 매개변수 이름과 인수 값(예: {"firstName":"Workflows","lastName":"User"})이 포함된 JSON 문자열을 '입력' 영역에 입력합니다.

    예시 JSON 문자열로 채워진 입력 영역

  4. '실행'을 클릭합니다. Cloud Console에 실행 결과가 표시됩니다.

    'Hello, Workflows User!' 출력이 표시되는 실행 결과

REST API

  1. 워크플로 실행에 사용되는 명령어에 data 플래그를 추가합니다. data 값은 하나 이상의 해당 값이 이스케이프 처리된 매개변수-값 쌍인 인수를 포함하는 JSON 형식 문자열입니다. 예를 들어 이전 예시 워크플로에 firstNamelastName를 전달하려면 다음 안내를 따르세요.

    curl --request POST --header "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    --header 'Content-Type: application/json' --data '{"argument":"{\"firstName\":\"FIRST\",\"lastName\":\"LAST\"}"}' \
    "https://workflowexecutions.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/workflows/WORKFLOW_NAME/executions"
    

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트의 이름
    • WORKFLOW_NAME: 워크플로의 이름
    • FIRST: firstName의 워크플로에 전달할 문자열
    • LAST: lastName의 워크플로에 전달할 문자열

    다음과 유사한 출력이 표시됩니다.

    {
      "name": "projects/PROJECT_NUMBER/locations/us-central1/workflows/WORKFLOW_NAME/executions/EXECUTION_ID",
      "startTime": "2020-11-09T23:51:31.765761331Z",
      "state": "ACTIVE",
      "argument": "{\"firstName\":\"Workflows\",\"lastName\":\"User\"}",
      "workflowRevisionId": "000001-08c"
    }
     ```
    
  2. 실행 결과를 가져오려면 다음 명령어를 실행합니다.

    curl --request GET --header "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    --header 'Content-Type: application/json' \
    "https://workflowexecutions.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/workflows/WORKFLOW_NAME/executions/EXECUTION_ID"
    

    EXECUTION_ID를 첫 번째 명령어로 반환된 출력의 ID로 바꿉니다.

    이 출력에는 다음과 비슷한 줄이 포함됩니다.

    "argument": "{\"firstName\":\"Workflows\",\"lastName\":\"User\"}",
    "result": "\"Hello, Workflows User!\"",
    

REST API를 사용한 워크플로 실행에 대한 자세한 내용은 워크플로 실행을 참조하세요.

다음 단계