Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
이 페이지에서는 DAG에서 Compute Engine VM에 연결하는 방법을 설명합니다.
Compute Engine VM 인스턴스에 연결하는 DAG 만들기
SSHOperator
의 ssh_hook
매개변수에서 ComputeEngineSSHHook
를 Compute Engine VM을 가리키는 매개변수와 함께 사용합니다.
다음 예시에서는 SSHOperator
를 사용하여 Compute Engine VM 인스턴스에서 명령어를 실행하는 방법을 보여줍니다.
다음과 같이 값을 바꿉니다.
GCE_INSTANCE
를 VM 인스턴스의 이름으로 바꿉니다.GCE_ZONE
을 VM이 있는 Compute Engine 영역으로 바꿉니다.GCP_PROJECT_ID
를 VM과 DAG를 실행하는 환경이 있는 프로젝트의 프로젝트 ID로 바꿉니다.
import datetime
import airflow
from airflow.providers.ssh.operators.ssh import SSHOperator
from airflow.providers.google.cloud.hooks.compute_ssh import ComputeEngineSSHHook
GCE_INSTANCE = 'example-compute-instance'
GCE_ZONE = 'us-central1-a'
GCP_PROJECT_ID = 'example-project'
with airflow.DAG(
'composer_compute_ssh_dag',
start_date=datetime.datetime(2022, 1, 1)
) as dag:
ssh_task = SSHOperator(
task_id='composer_compute_ssh_task',
ssh_hook=ComputeEngineSSHHook(
instance_name=GCE_INSTANCE,
zone=GCE_ZONE,
project_id=GCP_PROJECT_ID,
use_oslogin=True,
use_iap_tunnel=False,
use_internal_ip=True),
command='echo This command is executed from a DAG',
dag=dag)