Flex 템플릿 구성

이 페이지에서는 필수 Dockerfile 환경 변수와 Dataflow Flex 템플릿에 지원되는 파이프라인 매개변수에 대한 정보를 제공합니다.

필요한 Dockerfile 환경 변수 설정

Flex 템플릿 작업에 자체 Docker 파일을 만들려면 다음 환경 변수를 지정해야 합니다.

자바

Dockerfile에서 FLEX_TEMPLATE_JAVA_MAIN_CLASSFLEX_TEMPLATE_JAVA_CLASSPATH를 지정해야 합니다.

Python

Dockerfile에 FLEX_TEMPLATE_PYTHON_REQUIREMENTS_FILE, FLEX_TEMPLATE_PYTHON_PY_FILE, FLEX_TEMPLATE_PYTHON_PY_OPTIONS, FLEX_TEMPLATE_PYTHON_SETUP_FILE을 지정해야 합니다.

예를 들어 Python Flex 템플릿 가이드에서 스트리밍에서 다음 환경 변수를 설정합니다.

ENV FLEX_TEMPLATE_PYTHON_REQUIREMENTS_FILE="${WORKDIR}/requirements.txt"
ENV FLEX_TEMPLATE_PYTHON_PY_FILE="${WORKDIR}/streaming_beam.py"

기본 이미지 변경

Docker를 사용하여 컨테이너를 패키징하려면 Google에서 제공하는 기본 이미지를 사용해야 합니다. Flex 템플릿 기본 이미지 참조에서 최신 버전 이름을 선택합니다. latest를 선택하지 마세요.

기본 이미지를 다음 형식으로 지정합니다.

gcr.io/dataflow-templates-base/IMAGE_NAME:VERSION_NAME

다음을 바꿉니다.

파이프라인 매개변수 지정

파이프라인 옵션은 Dataflow 작업을 실행하는 방법과 위치를 구성하는 실행 매개변수입니다. gcloud 명령줄 도구를 사용하여 Flex 템플릿 작업에 대해 다음 Dataflow 파이프라인 옵션을 설정할 수 있습니다.

자바

필드 유형 설명 기본값
gcpTempLocation String 임시 파일의 Cloud Storage 경로입니다. gs://로 시작되는 유효한 Cloud Storage URL이어야 합니다.
numWorkers int 파이프라인 실행 시 사용할 초기 Google Compute Engine 인스턴스의 수입니다. 이 옵션은 작업 시작 시 Dataflow 서비스가 시작하는 작업자 수를 결정합니다. 지정하지 않으면 Dataflow 서비스가 적절한 작업자 수를 결정합니다.
maxNumWorkers int 실행 중에 파이프라인을 사용할 수 있는 Compute Engine 인스턴스의 최대 수입니다. 이 수는 초기 작업자 수보다 높을 수 있습니다(작업이 자동으로 또는 다른 식으로 확장되도록 numWorkers에서 지정됨). 지정하지 않으면 Dataflow 서비스가 적절한 작업자 수를 결정합니다.
numberOfWorkerHarnessThreads int 작업자 하네스당 스레드 수입니다. 지정하지 않으면 Dataflow 서비스가 적절한 작업자당 스레드 수를 결정합니다.
workerRegion String

파이프라인을 실행할 작업자 인스턴스를 실행하기 위한 Compute Engine 리전을 지정합니다. 이 옵션은 작업을 배포, 관리, 모니터링하는 데 사용되는 region과 다른 위치에서 작업자를 실행하는 데 사용됩니다. workerRegion의 영역은 자동으로 할당됩니다.

참고: 이 옵션은 workerZone 또는 zone과 함께 사용할 수 없습니다.

설정하지 않을 경우 기본값은 region에 설정된 값입니다.
workerZone String

파이프라인을 실행할 작업자 인스턴스를 실행하기 위한 Compute Engine 영역을 지정합니다. 이 옵션은 작업을 배포, 관리, 모니터링하는 데 사용되는 region과 다른 위치에서 작업자를 실행하는 데 사용됩니다.

참고: 이 옵션은 workerRegion 또는 zone과 함께 사용할 수 없습니다.

region 또는 workerRegion을 지정하는 경우 workerZone은 해당 리전의 영역으로 기본 설정됩니다. 다른 영역을 지정하여 이 동작을 재정의할 수 있습니다.
zone String (지원 중단됨) Apache Beam SDK 2.17.0 이하에서는 파이프라인을 실행할 작업자 인스턴스를 시작하기 위한 Compute Engine 영역을 지정합니다. region을 지정하는 경우 zone은 해당 리전의 영역으로 기본 설정됩니다. 다른 영역을 지정하여 이 동작을 재정의할 수 있습니다.
dataflowKmsKey String 저장 데이터 암호화에 사용한 고객 관리형 암호화 키(CMEK)를 지정합니다. Cloud KMS를 통해 암호화 키를 제어할 수 있습니다. 이 기능을 사용하려면 gcpTempLocation도 지정해야 합니다. 지정하지 않으면 Dataflow가 CMEK 대신 기본 Google Cloud 암호화를 사용합니다.
network String 파이프라인을 실행할 Compute Engine 인스턴스를 실행하기 위한 Compute Engine 네트워크 네트워크 지정 방법을 참조하세요. 설정하지 않을 경우 Google Cloud는 default라는 네트워크를 사용한다고 가정합니다.
subnetwork String 파이프라인을 실행할 Compute Engine을 실행하기 위한 Compute Engine 하위 네트워크 서브네트워크 지정 방법을 참조하세요. Dataflow 서비스가 기본값을 결정합니다.
enableStreamingEngine boolean Dataflow Streaming Engine을 사용 설정 또는 중지할지 여부를 지정합니다. 사용 설정하면 true입니다. Streaming Engine을 사용 설정하면 Dataflow 서비스 백엔드에서 스트리밍 파이프라인의 단계를 실행할 수 있으므로 CPU, 메모리, Persistent Disk 스토리지 리소스가 보존됩니다. 기본값은 false입니다. 즉, 스트리밍 파이프라인의 단계가 작업자 VM에서 완전히 실행됩니다.
serviceAccount String my-service-account-name@<project-id>.iam.gserviceaccount.com 형식을 사용하여 사용자 관리형 컨트롤러 서비스 계정을 지정합니다. 자세한 내용은 Cloud Dataflow 보안 및 권한 페이지의 컨트롤러 서비스 계정 섹션을 참조하세요. 설정하지 않으면 작업자가 프로젝트의 Compute Engine 서비스 계정을 컨트롤러 서비스 계정으로 사용합니다.
workerMachineType String

Dataflow가 작업자 VM을 시작할 때 사용하는 Compute Engine 머신 유형입니다. 사용 가능한 Compute Engine 머신 유형 계열과 커스텀 머신 유형을 사용할 수 있습니다.

최상의 결과를 얻으려면 n1 머신 유형을 사용하세요. f1g1 시리즈 작업자와 같은 공유 코어 머신 유형은 Dataflow의 서비스수준계약에서 지원되지 않습니다.

Dataflow 요금은 vCPU 수와 작업자 메모리의 GB를 기준으로 청구됩니다. 요금 청구는 기계 유형과 무관합니다.

이 옵션을 설정하지 않을 경우 Dataflow 서비스는 작업을 기반으로 머신 유형을 선택합니다.

Python

필드 유형 설명 기본값
temp_location str 임시 파일의 Cloud Storage 경로입니다. gs://로 시작되는 유효한 Cloud Storage URL이어야 합니다. 설정하지 않을 경우 staging_location의 값이 기본값입니다. Google 클라우드에서 파이프라인을 실행할 temp_location 또는 staging_location을 1개 이상 지정해야 합니다.
num_workers int 파이프라인 실행 시 사용할 Compute Engine 인스턴스 수 지정하지 않으면 Dataflow 서비스가 적절한 작업자 수를 결정합니다.
max_num_workers int 실행 중에 파이프라인을 사용할 수 있는 Compute Engine 인스턴스의 최대 수입니다. 이 수는 초기 작업자 수보다 높을 수 있습니다(작업이 자동으로 또는 다른 식으로 확장되도록 num_workers에서 지정됨). 지정하지 않으면 Dataflow 서비스가 적절한 작업자 수를 결정합니다.
number_of_worker_harness_threads int 작업자 하네스당 스레드 수입니다. 지정하지 않으면 Dataflow 서비스가 적절한 작업자당 스레드 수를 결정합니다. 이 매개변수를 사용하려면 플래그 --experiments=use_runner_v2도 사용해야 합니다.
worker_region String

파이프라인을 실행할 작업자 인스턴스를 실행하기 위한 Compute Engine 리전을 지정합니다. 이 옵션은 작업을 배포, 관리, 모니터링하는 데 사용되는 region과 다른 위치에서 작업자를 실행하는 데 사용됩니다. worker_region의 영역은 자동으로 할당됩니다.

참고: 이 옵션은 worker_zone 또는 zone과 함께 사용할 수 없습니다.

설정하지 않을 경우 기본값은 region에 설정된 값입니다.
worker_zone String

파이프라인을 실행할 작업자 인스턴스를 실행하기 위한 Compute Engine 영역을 지정합니다. 이 옵션은 작업을 배포, 관리, 모니터링하는 데 사용되는 region과 다른 위치에서 작업자를 실행하는 데 사용됩니다.

참고: 이 옵션은 worker_region 또는 zone과 함께 사용할 수 없습니다.

region 또는 worker_region을 지정하는 경우 worker_zone은 해당 리전의 영역으로 기본 설정됩니다. 다른 영역을 지정하여 이 동작을 재정의할 수 있습니다.
zone str (지원 중단됨) Apache Beam SDK 2.17.0 이하에서는 파이프라인을 실행할 작업자 인스턴스를 시작하기 위한 Compute Engine 영역을 지정합니다. region을 지정하는 경우 zone은 해당 리전의 영역으로 기본 설정됩니다. 다른 영역을 지정하여 이 동작을 재정의할 수 있습니다.
dataflow_kms_key str 저장 데이터 암호화에 사용한 고객 관리형 암호화 키(CMEK)를 지정합니다. Cloud KMS를 통해 암호화 키를 제어할 수 있습니다. 이 기능을 사용하려면 temp_location도 지정해야 합니다. 지정하지 않으면 Dataflow가 CMEK 대신 기본 Google Cloud 암호화를 사용합니다.
network str 파이프라인을 실행할 Compute Engine 인스턴스를 실행하기 위한 Compute Engine 네트워크 네트워크 지정 방법을 참조하세요. 설정하지 않을 경우 Google Cloud는 default라는 네트워크를 사용한다고 가정합니다.
subnetwork str 파이프라인을 실행할 Compute Engine을 실행하기 위한 Compute Engine 하위 네트워크 서브네트워크 지정 방법을 참조하세요. Dataflow 서비스가 기본값을 결정합니다.
enable_streaming_engine bool Dataflow Streaming Engine을 사용 설정 또는 중지할지 여부를 지정합니다. 사용 설정하면 true입니다. Streaming Engine을 사용 설정하면 Dataflow 서비스 백엔드에서 스트리밍 파이프라인의 단계를 실행할 수 있으므로 CPU, 메모리, Persistent Disk 스토리지 리소스가 보존됩니다. 기본값은 false입니다. 즉, 스트리밍 파이프라인의 단계가 작업자 VM에서 완전히 실행됩니다.
service_account_email str my-service-account-name@<project-id>.iam.gserviceaccount.com 형식을 사용하여 사용자 관리형 컨트롤러 서비스 계정을 지정합니다. 자세한 내용은 Cloud Dataflow 보안 및 권한 페이지의 컨트롤러 서비스 계정 섹션을 참조하세요. 설정하지 않으면 작업자가 프로젝트의 Compute Engine 서비스 계정을 컨트롤러 서비스 계정으로 사용합니다.
machine_type str

Dataflow가 작업자 VM을 시작할 때 사용하는 Compute Engine 머신 유형입니다. 사용 가능한 Compute Engine 머신 유형 계열과 커스텀 머신 유형을 사용할 수 있습니다.

최상의 결과를 얻으려면 n1 머신 유형을 사용하세요. f1g1 시리즈 작업자와 같은 공유 코어 머신 유형은 Dataflow의 서비스수준계약에서 지원되지 않습니다.

Dataflow 요금은 vCPU 수와 작업자 메모리의 GB를 기준으로 청구됩니다. 요금 청구는 기계 유형과 무관합니다.

이 옵션을 설정하지 않을 경우 Dataflow 서비스는 작업을 기반으로 머신 유형을 선택합니다.

다음 단계