Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Creazione di una connessione SSH utilizzando il SSHOperator

Modalità Focus
Creazione di una connessione SSH utilizzando il SSHOperator - Amazon Managed Workflows for Apache Airflow

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

L'esempio seguente descrive come utilizzare il SSHOperator in un grafo aciclico diretto (DAG) per connetterti a un' EC2 istanza Amazon remota dal tuo ambiente Amazon Managed Workflows for Apache Airflow. Puoi utilizzare un approccio simile per connetterti a qualsiasi istanza remota con accesso SSH.

Nell'esempio seguente, carichi una chiave segreta SSH (.pem) dags nella directory del tuo ambiente su Amazon S3. Quindi, installi le dipendenze necessarie utilizzando requirements.txt e creando una nuova connessione Apache Airflow nell'interfaccia utente. Infine, scrivi un DAG che crea una connessione SSH all'istanza remota.

Versione

Prerequisiti

Per utilizzare il codice di esempio in questa pagina, avrai bisogno di quanto segue:

  • Un ambiente Amazon MWAA.

  • Una chiave segreta SSH. L'esempio di codice presuppone che tu abbia un' EC2 istanza Amazon e una .pem nella stessa regione del tuo ambiente Amazon MWAA. Se non disponi di una chiave, consulta Creare o importare una coppia di chiavi nella Amazon EC2 User Guide.

Autorizzazioni

  • Non sono necessarie autorizzazioni aggiuntive per utilizzare l'esempio di codice in questa pagina.

Requisiti

Aggiungere il seguente parametro requirements.txt per installare il apache-airflow-providers-ssh pacchetto sul server Web. Una volta aggiornato l'ambiente e dopo che Amazon MWAA avrà installato correttamente la dipendenza, nell'interfaccia utente verrà visualizzato un nuovo tipo di connessione SSH.

-c https://raw.githubusercontent.com/apache/airflow/constraints-Airflow-version/constraints-Python-version.txt apache-airflow-providers-ssh
Nota

-cdefinisce l'URL dei vincoli in. requirements.txt Ciò garantisce che Amazon MWAA installi la versione del pacchetto corretta per il tuo ambiente.

Copia la tua chiave segreta su Amazon S3

Usa il seguente AWS Command Line Interface comando per copiare la .pem chiave dags nella directory del tuo ambiente in Amazon S3.

$ aws s3 cp your-secret-key.pem s3://your-bucket/dags/

Amazon MWAA copia il contenutodags, inclusa la .pem chiave, nella /usr/local/airflow/dags/ directory locale. In questo modo, Apache Airflow può accedere alla chiave.

Crea una nuova connessione Apache Airflow

Per creare una nuova connessione SSH utilizzando l'interfaccia utente di Apache Airflow
  1. Apri la pagina Ambienti sulla console Amazon MWAA.

  2. Dall'elenco degli ambienti, scegli Open Airflow UI per il tuo ambiente.

  3. Nella pagina dell'interfaccia utente di Apache Airflow, scegli Amministratore dalla barra di navigazione in alto per espandere l'elenco a discesa, quindi scegli Connessioni.

  4. Nella pagina Elenco connessioni, scegli + o il pulsante Aggiungi un nuovo record per aggiungere una nuova connessione.

  5. Nella pagina Aggiungi connessione, aggiungi le seguenti informazioni:

    1. Per ID di connessione, immetteressh_new.

    2. Per Tipo di connessione, scegli SSH dall'elenco a discesa.

      Nota

      Se il tipo di connessione SSH non è disponibile nell'elenco, Amazon MWAA non ha installato il pacchetto richiesto. apache-airflow-providers-ssh Aggiorna il requirements.txt file per includere questo pacchetto, quindi riprova.

    3. Per Host, inserisci l'indirizzo IP dell' EC2 istanza Amazon a cui desideri connetterti. Ad esempio 12.345.67.89.

    4. Per Nome utente, inserisci ec2-user se ti stai connettendo a un' EC2 istanza Amazon. Il tuo nome utente potrebbe essere diverso, a seconda del tipo di istanza remota a cui desideri connettere Apache Airflow.

    5. Per Extra, inserisci la seguente coppia chiave-valore in formato JSON:

      { "key_file": "/usr/local/airflow/dags/your-secret-key.pem" }

      Questa coppia chiave-valore indica ad Apache Airflow di cercare la chiave segreta nella directory locale. /dags

Esempio di codice

Il seguente DAG utilizza il SSHOperator per connettersi all' EC2istanza Amazon di destinazione, quindi esegue il comando hostname Linux per stampare il nome dell'istanza. Puoi modificare il DAG per eseguire qualsiasi comando o script sull'istanza remota.

  1. Apri un terminale e vai alla directory in cui è memorizzato il codice DAG. Per esempio:

    cd dags
  2. Copiate il contenuto del seguente esempio di codice e salvatelo localmente con nome. ssh.py

    from airflow.decorators import dag from datetime import datetime from airflow.providers.ssh.operators.ssh import SSHOperator @dag( dag_id="ssh_operator_example", schedule_interval=None, start_date=datetime(2022, 1, 1), catchup=False, ) def ssh_dag(): task_1=SSHOperator( task_id="ssh_task", ssh_conn_id='ssh_new', command='hostname', ) my_ssh_dag = ssh_dag()
  3. Esegui il AWS CLI comando seguente per copiare il DAG nel bucket del tuo ambiente, quindi attiva il DAG utilizzando l'interfaccia utente di Apache Airflow.

    $ aws s3 cp your-dag.py s3://your-environment-bucket/dags/
  4. In caso di successo, nei log delle attività del DAG verrà visualizzato un risultato simile al seguente: ssh_task ssh_operator_example

    [2022-01-01, 12:00:00 UTC] {{base.py:79}} INFO - Using connection to: id: ssh_new. Host: 12.345.67.89, Port: None,
    Schema: , Login: ec2-user, Password: None, extra: {'key_file': '/usr/local/airflow/dags/your-secret-key.pem'}
    [2022-01-01, 12:00:00 UTC] {{ssh.py:264}} WARNING - Remote Identification Change is not verified. This won't protect against Man-In-The-Middle attacks
    [2022-01-01, 12:00:00 UTC] {{ssh.py:270}} WARNING - No Host Key Verification. This won't protect against Man-In-The-Middle attacks
    [2022-01-01, 12:00:00 UTC] {{transport.py:1819}} INFO - Connected (version 2.0, client OpenSSH_7.4)
    [2022-01-01, 12:00:00 UTC] {{transport.py:1819}} INFO - Authentication (publickey) successful!
    [2022-01-01, 12:00:00 UTC] {{ssh.py:139}} INFO - Running command: hostname
    [2022-01-01, 12:00:00 UTC]{{ssh.py:171}} INFO - ip-123-45-67-89.us-west-2.compute.internal
    [2022-01-01, 12:00:00 UTC] {{taskinstance.py:1280}} INFO - Marking task as SUCCESS. dag_id=ssh_operator_example, task_id=ssh_task, execution_date=20220712T200914, start_date=20220712T200915, end_date=20220712T200916
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.