Connect to a Compute Engine VM with SSHOperator

Cloud Composer 3 |  Cloud Composer 2  |  Cloud Composer 1

This page describes how to connect to a Compute Engine VM from a DAG.

Create a DAG that connects to a Compute Engine VM instance

In the ssh_hook parameter of SSHOperator , use ComputeEngineSSHHook with parameters that point to the Compute Engine VM.

The following example demonstrates how to use SSHOperator to run a command on a Compute Engine VM instance.

Replace the values:

  • GCE_INSTANCE with the name of the VM instance.
  • GCE_ZONE with the Compute Engine zone where the VM is located.
  • GCP_PROJECT_ID with the Project ID of a project where the VM and the environment that runs the DAG is located.

  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 
 ( 
 2025 
 , 
 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 
 ) 
 

What's next

Create a Mobile Website
View Site in Mobile | Classic
Share by: