Se connecter à une VM Compute Engine avec SSHOperator

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Cette page explique comment se connecter à une VM Compute Engine à partir d'un DAG.

Créer un DAG qui se connecte à une instance de VM Compute Engine

Dans le paramètre ssh_hook de SSHOperator, utilisez ComputeEngineSSHHook avec des paramètres pointant vers la VM Compute Engine.

L'exemple suivant montre comment utiliser SSHOperator pour exécuter une commande sur une instance de VM Compute Engine.

Remplacez les valeurs :

  • GCE_INSTANCE par le nom de l'instance de VM.
  • GCE_ZONE par la zone Compute Engine dans laquelle se trouve la VM.
  • GCP_PROJECT_ID par l'ID du projet ; d'un projet dans lequel se trouvent la VM et l'environnement qui exécute le DAG.
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)

Étape suivante