Workflows 개요

Workflows는 워크플로라는 정의된 순서로 서비스를 실행하는 완전 관리형 조정 플랫폼입니다. 이러한 워크플로는 Cloud Run 또는 Cloud Run 함수에서 호스팅되는 커스텀 서비스, Cloud Vision AI 및 BigQuery와 같은 Google Cloud 서비스, 모든 HTTP 기반 API를 포함한 서비스를 결합할 수 있습니다.

Workflows를 솔루션에 통합하여 서비스 종속 항목을 엔드 투 엔드로 명시하고 관측할 수 있습니다. 애플리케이션, 운영 또는 비즈니스 프로세스를 지정하는 워크플로는 프로세스에 대한 정보 소스 또는 표준 설명을 제공합니다.

Workflows는 서버리스이며 필요에 따라 확장되며 유휴 상태에서 요금이 청구되지 않습니다. 워크플로에는 코드 또는 라이브러리 종속 항목이 없으므로 보안 패치가 필요하지 않습니다. 워크플로를 배포한 후에는 유지보수 없이 안정적으로 실행될 수 있습니다. 워크플로는 상태를 유지하거나, 재시도하거나, 폴링하거나, 최대 1년까지 기다릴 수 있습니다.

Workflows는 이러한 인증 및 표준을 준수합니다.

다음 다이어그램은 Workflows를 사용하여 서비스를 조정하는 예시를 보여줍니다.

Workflows를 사용한 서비스 조정

주요 사용 사례

Workflows는 다양한 사용 사례를 지원합니다. 다음은 몇 가지 예시입니다.

서비스 조정 서비스를 결합하여 솔루션 만들기—여러 시스템에서 일련의 작업을 수행하고 모든 작업이 완료되기를 기다립니다. 이벤트 기반일 수 있습니다. 예를 들면 다음과 같습니다.
  • 새로 업로드된 파일을 Cloud Vision AI로 전송한 후 Firestore에 태그 쓰기
  • Cloud Run 함수를 호출하고 결과를 Cloud Run 서비스로 보내기
일괄 작업 여러 항목에서 작업—항목 집합이나 일괄 데이터에서 작업을 수행합니다. 대체로 예약되어 있습니다. 예를 들면 다음과 같습니다.
  • 일일 고객 이메일 전송
  • BigQuery 또는 머신러닝 작업 준비 및 실행
  • 보고서 생성
비즈니스 프로세스 비즈니스 계열 워크플로 자동화—조건, 작업, 인간 참여(Human-In-The-Loop) 이벤트를 포함하여 비즈니스 프로세스의 단계를 인코딩합니다. 예를 들면 다음과 같습니다.
  • 요청부터 처리까지 주문 추적
  • 승인으로 리소스 요청 자동화
IT 프로세스 자동화 서비스 작업의 관리형 실행—Google Cloud 서비스 작업의 시퀀스를 손쉽게 스크립팅합니다. 예를 들면 다음과 같습니다.
  • 새 테넌트 프로젝트 또는 인프라 프로비저닝
  • 일정에 따라 또는 이벤트 트리거를 통해 리소스 종료

핵심 개념

워크플로는 YAML 또는 JSON으로 작성할 수 있는 Workflows 구문을 사용하여 기술되는 일련의 단계들로 구성됩니다. 이것이 워크플로의 정의입니다. Workflows 구문에 대한 자세한 설명은 구문 참조를 참조하세요.

워크플로가 생성된 후 배포되어 실행할 수 있도록 준비됩니다. Google Cloud 콘솔에서 또는 Google Cloud CLI를 사용하여 워크플로를 만들고 업데이트하는 방법을 알아보세요. 선호하는 IDE 또는 소스 코드 편집기를 사용하고 자동 완성 및 구문 유효성 검사를 설정하여 워크플로를 만들 수도 있습니다.

실행은 워크플로 정의에 포함된 논리의 단일 실행을 의미합니다. 실행되지 않은 워크플로는 비용이 발생하지 않습니다. 모든 워크플로 실행은 독립적이며 제품의 빠른 확장 덕분에 다수의 동시 실행이 가능합니다. 클라이언트 라이브러리를 사용하거나 Google Cloud 콘솔에서 Google Cloud CLI를 사용하거나 Workflows REST API를 사용하여 HTTP POST 요청을 워크플로의 호출 URL로 전송하여 워크플로를 실행할 수 있습니다. 자세한 내용은 워크플로 실행을 참조하세요.

주요 기능

다음은 Workflows의 몇 가지 주요 기능입니다.

실행 제어

단계
워크플로를 만들려면 Workflows 구문을 사용하여 필요한 단계와 실행 순서를 정의합니다. 모든 워크플로에는 단계가 하나 이상 있어야 합니다. 기본적으로 Workflows는 단계가 순서가 지정된 목록에 있는 것처럼 단계를 처리하고 모든 단계가 실행될 때까지 한 번에 하나씩 실행합니다. 자세한 내용은 단계를 참조하세요.
조건
표현식의 값을 허용하는 선택 메커니즘으로 switch 블록을 사용하여 워크플로의 실행 흐름을 제어할 수 있습니다. 자세한 내용은 조건을 참조하세요.
반복
for 루프를 사용하여 숫자 시퀀스 또는 목록이나 맵과 같은 데이터 모음을 통해 반복할 수 있습니다. 자세한 내용은 반복을 참조하세요.
병렬 단계
parallel 단계를 사용하여 동시에 실행할 수 있는 워크플로의 일부(분기 또는 루프)를 정의할 수 있습니다. 자세한 내용은 병렬 단계를 참조하세요.
하위 워크플로
하위 워크플로는 프로그래밍 언어의 루틴 또는 함수와 비슷하게 작동하며, 워크플로가 여러 번 반복하는 단계 또는 단계 집합을 캡슐화할 수 있습니다. 자세한 내용은 하위 워크플로를 참조하세요.

실행 트리거

수동
Google Cloud Console에서 또는 Google Cloud CLI를 사용하여 명령줄에서 워크플로를 관리할 수 있습니다. Workflows 구문을 수정하는 동안의 시각화 지원은 Google Cloud Console을 통해서도 제공됩니다.
프로그래매틱
Workflows API용 Cloud 클라이언트 라이브러리 또는 REST API를 사용하여 워크플로를 관리할 수 있습니다. 자세한 내용은 Workflows API 및 참조를 확인하세요.
예약됨
Cloud Scheduler를 사용하여 매주 월요일 오전 9시 또는 15분마다와 같은 특정 일정으로 워크플로를 실행할 수 있습니다. 자세한 내용은 Cloud Scheduler를 사용하여 워크플로 예약을 참조하세요.
런타임 인수
런타임에 전달된 데이터는 main 블록에 배치된 기본 워크플로에 params 필드를 추가하여 액세스할 수 있습니다. main 블록은 유효한 JSON 데이터 유형인 단일 인수를 허용합니다. params 필드는 워크플로에서 전달하는 데이터를 저장하는 데 사용하는 변수의 이름을 지정합니다. 자세한 내용은 런타임 인수를 참조하세요.

서비스 연결

HTTP API
HTTP 호출을 수행하는 워크플로 단계를 정의하고 호출의 응답을 변수에 할당할 수 있습니다. 예를 들어 HTTP 요청을 통해 Cloud Run 함수나 Cloud Run과 같은 Google Cloud 서비스를 호출할 수 있습니다. HTTP 요청과 HTTPS 요청이 모두 지원됩니다. 자세한 내용은 HTTP 요청 보내기Cloud Run 함수 또는 Cloud Run 호출을 참조하세요.
IAP(Identity-Aware Proxy)를 사용 설정하여 비공개 온프레미스, Compute Engine, Google Kubernetes Engine(GKE) 또는 기타 Google Cloud 엔드포인트를 호출할 수 있습니다. IAP를 사용하면 HTTPS로 액세스할 수 있는 애플리케이션에 대해 중앙 승인 레이어를 설정할 수 있으므로, 네트워크 수준의 방화벽을 사용하는 대신 애플리케이션 수준의 액세스 제어 모델을 사용할 수 있습니다. 자세한 내용은 비공개 온프렘, Compute Engine, GKE 또는 기타 엔드포인트 호출을 참조하세요.
또는 Workflows와 서비스 디렉터리의 서비스 레지스트리를 함께 사용하면 워크플로 실행에서 HTTP 호출의 비공개 엔드포인트를 타겟팅할 수 있습니다. 가상 프라이빗 클라우드(VPC) 네트워크 내에서 비공개 엔드포인트를 만들면 엔드포인트가 VPC 서비스 제어 규정을 준수할 수 있습니다. 자세한 내용은 VPC 서비스 제어 규정을 준수하는 비공개 엔드포인트 호출을 참조하세요.
커넥터
Workflows는 워크플로 내에서 다른 Google Cloud API에 연결하고 워크플로를 Google Cloud 제품과 통합하는 데 사용할 수 있는 커넥터를 게시합니다. 커넥터는 Google Cloud API의 세부정보를 알 필요가 없도록 요청의 형식 지정을 처리하여 메서드와 인수를 제공하므로 호출 서비스를 단순화합니다. 자세한 내용은 커넥터 이해를 참조하세요.
표준 라이브러리 및 환경 변수
Workflows 표준 라이브러리, 기본 제공 환경 변수, 사용자 정의 환경 변수를 사용하면 서비스와 프로세스 응답에 대한 인수를 효율적으로 구성할 수 있습니다.
표준 라이브러리에는 모듈 및 데이터 유형 및 형식 변환과 같이 자주 사용되는 함수가 포함됩니다. 워크플로에서 라이브러리를 가져오거나 로드할 필요 없이 라이브러리 함수가 즉시 작동합니다. 자세한 내용은 표준 라이브러리 개요를 참조하세요.
기본 제공 환경 변수를 사용하여 워크플로의 환경 정보(예: 위치 또는 프로젝트 식별자)에 액세스할 수 있습니다. 기본 제공 환경 변수는 선언이 필요하지 않으며 모든 워크플로 실행에서 사용할 수 있습니다. 자세한 내용은 기본 제공 환경 변수를 참조하세요.
워크플로를 배포할 때 임의의 키-값 문자열 쌍을 런타임에 워크플로에서 액세스할 수 있는 사용자 정의 환경 변수로 설정할 수 있습니다. 예를 들어 배포된 환경에 따라 동적으로 구성된 워크플로를 만들 수 있습니다. 자세한 내용은 환경 변수 사용을 참조하세요.

오류 처리

지수 백오프가 포함된 자동화된 HTTP 호출 재시도, 커스텀 오류 핸들러, 기타 고급 기능을 비롯한 Workflows의 예외 처리를 사용하여 오류 발생 시 워크플로의 복원력을 높이고 동작을 맞춤설정할 수 있습니다. 자세한 내용은 워크플로 오류를 참조하세요.

대기 중

콜백을 사용하면 다른 서비스가 콜백 엔드포인트에 워크플로 실행을 재개하는 요청을 보낼 때까지 워크플로 실행을 대기시킬 수 있습니다. 콜백을 통해 지정된 이벤트가 발생했음을 워크플로에 알리고 폴링 없이 이벤트를 기다릴 수 있습니다. 자세한 내용은 콜백을 사용하여 대기를 참조하세요.

워크플로 정의에 절전 단계를 추가하여 워크플로 실행을 일시중지할 수 있습니다. 그 다음 sys.sleep을 사용하여 지정된 간격으로 데이터를 폴링할 수 있습니다. 자세한 내용은 폴링 사용 대기를 참조하세요.

인증 및 액세스 제어

모든 워크플로 실행 시 인증된 호출이 필요하므로 Workflows를 사용하여 우발적이거나 악의적인 호출 위험을 완화할 수 있습니다. 또한 IAM 기반 서비스 계정을 사용하여 다른 Google Cloud API와의 상호작용을 단순화할 수 있으며, Secret Manager 커넥터를 사용하여 외부 API에 인증하는 데 사용되는 키와 비밀번호를 안전하게 보관할 수 있습니다. 자세한 내용은 인증액세스 제어를 참조하세요.

관측 가능성

Workflows는 Cloud Logging에 워크플로 실행에 대한 실행 로그를 자동으로 생성합니다. 호출 로깅 또는 커스텀 로그를 통해 워크플로 실행 중 Logging으로 로그가 전송되는 경우를 제어할 수도 있습니다. 자세한 내용은 Cloud Logging에 로그 전송을 참조하세요.

Cloud 감사 로그를 통해 감사 로깅 정보를 사용할 수 있습니다. 자세한 내용은 워크플로워크플로 실행의 감사 로깅 정보를 참조하세요.

지정된 워크플로 실행 기록을 단계 항목 목록으로 검색할 수 있습니다. 각 항목은 워크플로 실행의 단계 또는 안내 블록을 나타냅니다. 단계 항목은 오류 원인을 확인하거나 워크플로 성능을 최적화하는 데 도움이 될 수 있습니다.

코드 샘플

샘플 페이지에서 유용한 Workflows 코드 샘플을 찾을 수 있습니다.

다음 단계