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à.
Installazione di plugin personalizzati
Amazon Managed Workflows for Apache Airflow supporta il gestore di plugin integrato di Apache Airflow, che consente di utilizzare operatori, hook, sensori o interfacce Apache Airflow personalizzati. Questa pagina descrive i passaggi per installare i plug-in personalizzati Apache Airflow sul tuo ambienteplugins.zip
Indice
Prerequisiti
Avrai bisogno di quanto segue prima di completare i passaggi di questa pagina.
-
Autorizzazioni: al tuo AWS account deve essere stato concesso dall'amministratore l'accesso alla politica di controllo degli accessi di AmazonMWAA per il tuo FullConsoleAccess ambiente. Inoltre, il tuo ambiente Amazon MWAA deve essere autorizzato dal tuo ruolo di esecuzione ad accedere alle AWS risorse utilizzate dal tuo ambiente.
-
Accesso: se è necessario accedere agli archivi pubblici per installare le dipendenze direttamente sul server Web, l'ambiente deve essere configurato con l'accesso al server Web di rete pubblica. Per ulteriori informazioni, consulta Modalità di accesso Apache Airflow.
-
Configurazione Amazon S3 : il bucket Amazon S3 utilizzato per archiviare i DAG
plugins.zip
, i plug-in personalizzati e le dipendenzerequirements.txt
Python deve essere configurato con Public Access Blocked e Versioning Enabled.
Come funziona
Per eseguire plugin personalizzati nel tuo ambiente, devi fare tre cose:
-
Crea un
plugins.zip
file localmente. -
Carica il
plugins.zip
file locale nel tuo bucket Amazon S3. -
Specificare la versione di questo file nel campo File Plugins sulla console Amazon MWAA.
Nota
Se è la prima volta che carichi un plugins.zip
file nel tuo bucket Amazon S3, devi anche specificare il percorso del file sulla console Amazon MWAA. Devi completare questo passaggio solo una volta.
Cosa è cambiato nella v2
-
Novità: operatori, ganci ed esecutori. Le istruzioni di importazione nei tuoi DAG e i plug-in personalizzati specificati in un MWAA su
plugins.zip
Amazon sono cambiati tra Apache Airflow v1 e Apache Airflow v2. Ad esempio, in Apache Airflow v1 è cambiatofrom airflow.contrib.hooks.aws_hook import AwsHook
in Apache Airflow v2.from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook
Per saperne di più, consulta Python API Reference nella guida di riferimento diApache Airflow. -
Novità: importazioni nei plugin. L'importazione di operatori, sensori, hook aggiunti tramite plugin non
airflow.{operators,sensors,hooks}.<plugin_name>
è più supportata. Queste estensioni devono essere importate come normali moduli Python. Nella versione 2 e successive, l'approccio consigliato consiste nel metterle nella directory DAG e creare e utilizzare un file.airflowignore per escluderle dall'analisi come DAG. Per ulteriori informazioni, consulta Gestione dei modulie creazione di un operatore personalizzato nella guida di riferimento di Apache Airflow.
Panoramica dei plugin personalizzati
Il gestore di plugin integrato di Apache Airflow può integrare funzionalità esterne al suo interno semplicemente trascinando i file in una cartella. $AIRFLOW_HOME/plugins
Consente di utilizzare operatori, hook, sensori o interfacce Apache Airflow personalizzati. La sezione seguente fornisce un esempio di strutture di directory piatte e annidate in un ambiente di sviluppo locale e le istruzioni di importazione risultanti, che determinano la struttura delle directory all'interno di un plugins.zip.
Limiti di directory e dimensioni dei plugin personalizzati
Apache Airflow Scheduler e Workers cercano plugin personalizzati durante l'avvio sul contenitore Fargate gestito da AWS Fargate per il vostro ambiente in. /usr/local/airflow/plugins/
*
-
Struttura delle directory. La struttura delle cartelle (at
/
) si basa sul contenuto del*
plugins.zip
file. Ad esempio, se la directory èplugins.zip
operators
contenuta come directory di primo livello, la directory verrà estratta nell'ambiente/usr/local/airflow/plugins/
in cui si trova.operators
-
Limite di dimensione. Consigliamo un
plugins.zip
file inferiore a 1 GB. Maggiore è la dimensione di unplugins.zip
file, maggiore è il tempo di avvio in un ambiente. Sebbene Amazon MWAA non limiti esplicitamente la dimensione di unplugins.zip
file, se le dipendenze non possono essere installate entro dieci minuti, il servizio Fargate andrà in timeout e tenterà di ripristinare l'ambiente a uno stato stabile.
Nota
Per gli ambienti che utilizzano Apache Airflow v1.10.12 o Apache Airflow v2.0.2, Amazon MWAA limita il traffico in uscita sul server Web Apache Airflow e non consente di installare plugin o dipendenze Python direttamente sul server Web. A partire da Apache Airflow v2.2.2, Amazon MWAA può installare plugin e dipendenze direttamente sul server Web.
Esempi di plugin personalizzati
La sezione seguente utilizza il codice di esempio contenuto nella guida di riferimento di Apache Airflow per mostrare come strutturare l'ambiente di sviluppo locale.
Esempio di utilizzo di una struttura di directory piatta in plugins.zip
Esempio di utilizzo di una struttura di directory annidata in plugins.zip
Creazione di un file plugins.zip
I passaggi seguenti descrivono i passaggi consigliati per creare un file plugins.zip localmente.
Fase uno: testare i plugin personalizzati utilizzando l'utilità CLI di Amazon MWAA
-
L'utilità CLI (Command Line Interface) replica localmente un ambiente Amazon Managed Workflows for Apache Airflow.
-
La CLI crea localmente un'immagine del contenitore Docker simile a un'immagine di produzione Amazon MWAA. Ciò consente di eseguire un ambiente Apache Airflow locale per sviluppare e testare DAG, plug-in personalizzati e dipendenze prima della distribuzione su Amazon MWAA.
-
Per eseguire la CLI, vedi on. aws-mwaa-local-runner
GitHub
Fase due: creare il file plugins.zip
È possibile utilizzare un'utilità di archiviazione ZIP integrata o qualsiasi altra utilità ZIP (come 7zip
Nota
L'utilità zip integrata per il sistema operativo Windows può aggiungere sottocartelle quando si crea un file con estensione zip. Ti consigliamo di verificare il contenuto del file plugins.zip prima di caricarlo nel tuo bucket Amazon S3 per assicurarti che non siano state aggiunte altre directory.
-
Cambia le directory nella cartella locale dei plugin Airflow. Per esempio:
myproject$
cd plugins
-
Esegui il comando seguente per assicurarti che i contenuti abbiano autorizzazioni eseguibili (solo macOS e Linux).
plugins$
chmod -R 755 .
-
Comprimi il contenuto all'interno della cartella
plugins
.plugins$
zip -r plugins.zip .
Caricamento plugins.zip
su Amazon S3
Puoi utilizzare la console Amazon S3 o il AWS Command Line Interface (AWS CLI) per caricare un plugins.zip
file nel tuo bucket Amazon S3.
Utilizzo di AWS CLI
AWS Command Line Interface (AWS CLI) è uno strumento open source che consente di interagire con i servizi AWS utilizzando i comandi nella shell a riga di comando. Per completare i passaggi indicati in questa pagina, è necessario quanto segue:
Per caricare utilizzando il AWS CLI
-
Nel prompt dei comandi, accedi alla directory in cui è archiviato il
plugins.zip
file. Per esempio:cd plugins
-
Usa il seguente comando per elencare tutti i tuoi bucket Amazon S3.
aws s3 ls
-
Usa il seguente comando per elencare i file e le cartelle nel bucket Amazon S3 per il tuo ambiente.
aws s3 ls s3://
YOUR_S3_BUCKET_NAME
-
Usa il seguente comando per caricare il
plugins.zip
file nel bucket Amazon S3 per il tuo ambiente.aws s3 cp plugins.zip s3://
YOUR_S3_BUCKET_NAME
/plugins.zip
Utilizzo della console Amazon S3
La console Amazon S3 è un'interfaccia utente basata sul Web che consente di creare e gestire le risorse nel bucket Amazon S3.
Per caricare utilizzando la console Amazon S3
-
Apri la pagina Ambienti
sulla console Amazon MWAA. -
Scegli un ambiente.
-
Seleziona il link del bucket S3 nel codice DAG nel riquadro S3 per aprire il bucket di archiviazione sulla console Amazon S3.
-
Scegli Carica.
-
Scegli Aggiungi file.
-
Seleziona la copia locale del tuo
plugins.zip
, scegli Carica.
Installazione di plugin personalizzati nel tuo ambiente
Questa sezione descrive come installare i plugin personalizzati caricati nel bucket Amazon S3 specificando il percorso del file plugins.zip e specificando la versione del file plugins.zip ogni volta che il file zip viene aggiornato.
Specificazione del percorso plugins.zip
sulla console Amazon MWAA (la prima volta)
Se è la prima volta che carichi un plugins.zip
file nel tuo bucket Amazon S3, devi anche specificare il percorso del file sulla console Amazon MWAA. Devi completare questo passaggio solo una volta.
-
Apri la pagina Ambienti
sulla console Amazon MWAA. -
Scegli un ambiente.
-
Scegli Modifica.
-
Nel riquadro del codice DAG di Amazon S3, scegli Browse S3 accanto al file Plugins (campo opzionale).
-
Seleziona il
plugins.zip
file nel tuo bucket Amazon S3. -
Scegliere Choose (Scegli).
-
Scegli Avanti, Aggiorna ambiente.
Specificazione della plugins.zip
versione sulla console Amazon MWAA
È necessario specificare la versione del plugins.zip
file sulla console Amazon MWAA ogni volta che si carica una nuova versione del file plugins.zip
nel bucket Amazon S3.
-
Apri la pagina Ambienti
sulla console Amazon MWAA. -
Scegli un ambiente.
-
Scegli Modifica.
-
Nel riquadro del codice DAG di Amazon S3, scegli
plugins.zip
una versione nell'elenco a discesa. -
Seleziona Avanti.
Esempi di casi d'uso per plugins.zip
-
Scopri come creare un plugin personalizzato inPlugin personalizzato con Apache Hive e Hadoop.
-
Scopri come creare un plug-in personalizzato inPlugin personalizzato per la patchPythonVirtualenvOperator .
-
Scopri come creare un plug-in personalizzato inPlugin personalizzato con Oracle.
-
Scopri come creare un plug-in personalizzato inModifica del fuso orario di un DAG su Amazon MWAA.
Fasi successive
-
Testa i tuoi DAG, i plugin personalizzati e le dipendenze Python localmente usando on. aws-mwaa-local-runner
GitHub