워크플로 생성 및 업데이트

이 페이지에서는 Google Cloud Console에서 또는 Google Cloud CLI를 사용하여 워크플로를 만들고 기존 워크플로를 업데이트하는 방법을 설명합니다.

시작하기 전에

조직에서 Google Cloud 환경에 제약조건을 적용하면 이 문서의 일부 단계가 올바르게 작동하지 않을 수 있습니다. 이 경우 공개 IP 주소 또는 서비스 계정 키 만들기와 같은 작업을 완료하지 못할 수 있습니다. 제약조건에 대한 오류를 반환하는 요청을 수행하는 경우 제한된 Google Cloud 환경에서 애플리케이션 개발 방법을 참조하세요.

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  3. Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

  4. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  5. Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

  6. Workflows API를 사용 설정합니다.

    Workflows API 사용 설정

서비스 계정 만들기

서비스 계정이 없으면 새로 만들고 워크플로 관리 및 로그 만들기에 필요한 역할을 부여합니다. 서비스 계정을 만들고 관리하는 방법 자세히 알아보기

리소스를 만들고 서비스 계정을 연결하려면 리소스를 만들 수 있는 권한과 리소스에 연결할 서비스 계정을 가장할 수 있는 권한이 필요합니다. 자세한 내용은 서비스 계정 권한을 참조하세요.

Console

  1. Google Cloud Console에서 서비스 계정 페이지로 이동합니다.

    서비스 계정으로 이동

  2. 프로젝트를 선택한 후 서비스 계정 만들기를 클릭합니다.

  3. 서비스 계정 이름 필드에 이름을 입력합니다.

    ID는 6~30자(영문 기준)여야 하며 소문자 영숫자 문자와 대시를 포함할 수 있습니다. 서비스 계정을 만든 후에는 이름을 변경할 수 없습니다.

  4. 만들고 계속하기를 클릭합니다.

  5. 역할 선택을 클릭합니다.

  6. 다음 역할을 선택하고 필요에 따라 다른 역할 추가를 클릭합니다.

    • 워크플로를 생성, 업데이트, 실행하려면 Workflows > Workflows 편집자를 선택합니다.
    • 로그를 Cloud Logging으로 전송하려면 Logging > 로그 작성자를 선택합니다.
  7. 완료를 클릭하여 서비스 계정 만들기를 마칩니다.

gcloud

  1. 서비스 계정을 만듭니다.

    gcloud iam service-accounts create NAME
  2. 역할을 할당하여 서비스 계정에 권한을 부여합니다.

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

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트의 ID입니다.
    • NAME을 서비스 계정의 이름으로 바꿉니다. 6~30자(영문 기준) 사이여야 하며 소문자 영숫자 문자와 대시를 포함할 수 있습니다. 서비스 계정을 만든 후에는 이름을 변경할 수 없습니다.

    --role 플래그는 서비스 계정이 리소스에 액세스할 수 있도록 승인하는 데 사용됩니다.

워크플로 만들기

워크플로 정의는 YAML 또는 JSON 형식으로 작성할 수 있는 Workflows 구문을 사용하여 기술되는 일련의 단계들로 구성됩니다. 워크플로를 만든 후 실행에 사용할 수 있도록 워크플로를 배포합니다. 또한 배포 단계 중 소스 파일을 실행할 수 있는지 확인합니다. 소스 파일에 유효한 워크플로 정의가 없으면 실패합니다.

Console

  1. Google Cloud Console에서 Workflows 페이지로 이동합니다.

    Workflows로 이동

  2. 만들기를 선택합니다.

  3. 새 워크플로의 이름을 입력합니다(예: myFirstWorkflow). 이름에는 문자, 숫자, 밑줄, 하이픈을 포함할 수 있습니다. 문자로 시작하고 숫자 또는 문자로 끝나야 합니다.

  4. 적절한 리전(예: us-central1)을 선택합니다.

  5. 워크플로가 다른 Google Cloud 서비스 인증에 사용할 서비스 계정을 선택합니다. 필요한 리소스에 액세스하는 데 필요한 최소 권한이 포함된 서비스 계정을 사용하는 것이 좋습니다.

  6. 다음을 선택합니다.

  7. 워크플로 편집기에서 워크플로 정의를 입력합니다. 워크플로 예시를 참조하세요.

  8. 배포를 선택합니다.

gcloud

  1. 워크플로의 소스 코드가 MY_WORKFLOW.YAML 또는 MY_WORKFLOW.JSON과 같이 YAML 또는 JSON 파일로 저장되었는지 확인합니다. 워크플로 예시를 참조하세요.

  2. 터미널을 엽니다.

  3. 다음 명령어를 입력하여 워크플로를 배포합니다.

    gcloud workflows deploy MY_WORKFLOW \
       --source=MY_WORKFLOW.YAML \
       --service-account=MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM
    

    다음을 바꿉니다.

    • MY_WORKFLOW: 워크플로의 이름입니다.

    • MY_WORKFLOW.YAML: 워크플로에 사용할 소스 파일입니다.

    • MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM: 선택사항입니다. 다른 Google Cloud 서비스에 액세스하기 위해 워크플로에 사용할 서비스 계정입니다. 필요한 리소스에 액세스하는 데 필요한 최소 권한이 포함된 서비스 계정을 사용하는 것이 좋습니다. 비워두면 기본 서비스 계정이 사용됩니다.

워크플로 업데이트

기존 워크플로를 업데이트하여 소스, 설명, 라벨, 연결된 서비스 계정을 변경할 수 있습니다. 워크플로 업데이트는 진행 중인 실행 작업에 영향을 주지 않습니다. 이후에 워크플로를 실행할 때만 업데이트된 구성이 사용됩니다.

Console

  1. Google Cloud Console에서 Workflows 페이지로 이동합니다.

    Workflows로 이동

  2. 업데이트할 워크플로의 이름을 선택합니다.

  3. 워크플로 수정 페이지에서 설명을 수정하거나, 인증을 위해 워크플로에 사용되는 서비스 계정을 업데이트하거나, 라벨을 추가할 수 있습니다. 워크플로 이름은 수정할 수 없습니다.

    라벨은 Google Cloud 인스턴스를 구성하는 데 도움이 되는 키-값 쌍입니다. 자세한 내용은 라벨 만들기 및 관리를 참조하세요.

  4. 초기 업데이트 작업이 완료되면 다음을 선택합니다.

  5. 워크플로 소스를 수정하려면 워크플로 편집기에서 소스 코드를 업데이트합니다.

  6. 배포를 선택합니다.

gcloud

  1. WORKFLOW_FILE.YAML 또는 WORKFLOW_FILE.JSON과 같이 업데이트된 워크플로 소스가 저장된 YAML 또는 JSON 파일을 찾습니다.

  2. 터미널을 엽니다.

  3. 업데이트할 워크플로의 이름을 찾습니다. 워크플로 이름을 모르면 다음 명령어를 입력하여 모든 워크플로를 나열할 수 있습니다.

    gcloud workflows list
    
  4. 워크플로의 소스, 연결된 서비스 계정, 설명, 라벨을 업데이트할 수 있습니다.

    gcloud workflows deploy WORKFLOW_NAME \
       --source=WORKFLOW_FILE.YAML \
       --service-account=MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM \
       --labels=KEY=VALUE... \
       --description='WORKFLOW_DESCRIPTION'
    

    다음을 바꿉니다.

    • WORKFLOW_NAME: 필수 항목입니다. 워크플로의 이름입니다.

    • WORKFLOW_FILE.YAML: 필수 항목입니다. 워크플로의 소스 파일입니다.

    • MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM: 선택사항입니다. 다른 Google Cloud 서비스에 액세스하기 위해 워크플로에 사용할 서비스 계정입니다. 서비스 계정에 대한 자세한 내용은 서비스 계정 생성 및 관리를 참조하세요.

    • KEY=VALUE: 선택사항입니다. 2개 이상 추가하는 경우 쉼표로 구분된 목록으로 표시된 라벨의 KEY=VALUE 쌍입니다. 라벨은 Google Cloud 인스턴스를 정리하는 데 도움이 됩니다. 자세한 내용은 라벨 만들기 및 관리를 참조하세요.

    • WORKFLOW_DESCRIPTION: 선택사항입니다. 워크플로에 제공하려는 설명입니다.

    업데이트하려는 워크플로의 이름과 소스를 지정해야 하며, 나머지 플래그는 선택사항입니다.

워크플로를 업데이트할 때마다 versionID가 업데이트됩니다. versionID는 하이픈으로 구분된 두 부분으로 구성됩니다.

  • 1부터 시작하고, 워크플로를 업데이트할 때마다 커지는 숫자입니다.

  • 임의의 3자리 영숫자 문자열입니다.

예를 들어 000002-d52는 한 번 업데이트된 워크플로를 나타냅니다. 000001-27f는 초기 버전 상태의 워크플로를 나타냅니다.

다음 단계