Novità del supporto Amazon MWAA per gli script di avvio | Servizi Web Amazon

Novità del supporto Amazon MWAA per gli script di avvio | Servizi Web Amazon

Nodo di origine: 2099143

Flusso di lavoro gestito da Amazon per Apache Airflow (Amazon MWAA) è un servizio gestito per Flusso d'aria Apache che ti consente di utilizzare lo stesso familiare ambiente Apache Airflow per orchestrare i tuoi flussi di lavoro e godere di scalabilità, disponibilità e sicurezza migliorate senza l'onere operativo di dover gestire l'infrastruttura sottostante.

Ad aprile 2023, Amazon MWAA ha aggiunto il supporto per gli script di avvio della shell per le versioni dell'ambiente Apache Airflow 2.x e successive. Con questa funzione, puoi personalizzare l'ambiente Apache Airflow avviando uno script di avvio della shell personalizzato all'avvio per lavorare meglio con l'infrastruttura di integrazione esistente e aiutare con le tue esigenze di conformità. È possibile utilizzare questo script di avvio della shell per installare runtime Linux personalizzati, impostare variabili di ambiente e aggiornare i file di configurazione. Amazon MWAA esegue questo script durante l'avvio su ogni singolo componente Apache Airflow (worker, scheduler e server Web) prima di installare i requisiti e inizializzare il processo Apache Airflow.

In questo post, forniamo una panoramica delle funzionalità, esploriamo i casi d'uso applicabili, descriviamo in dettaglio i passaggi per utilizzarlo e forniamo informazioni aggiuntive sulle funzionalità di questo script di avvio della shell.

Panoramica della soluzione

Per eseguire Apache Airflow, Amazon MWAA crea Registro dei contenitori Amazon Elastic (Amazon ECR) che raggruppano le versioni di Apache Airflow con altri binari comuni e librerie Python. Queste immagini vengono quindi utilizzate dal AWS Fargate contenitori in Ambiente Amazon MWAA. Puoi portare librerie aggiuntive tramite il file requirements.txt ed plugins.zip file e passare il file Servizio di archiviazione semplice Amazon (Amazon S3) percorsi come parametro durante la creazione o l'aggiornamento dell'ambiente.

Tuttavia, questo metodo per installare i pacchetti non copre tutti i tuoi casi d'uso per personalizzare i tuoi ambienti Apache Airflow. I clienti ci hanno chiesto un modo per personalizzare le immagini del contenitore Apache Airflow specificando librerie personalizzate, runtime e file supportati.

Casi d'uso applicabili

La nuova funzionalità aggiunge la possibilità di personalizzare l'immagine Apache Airflow avviando uno script di avvio della shell personalizzato all'avvio. È possibile utilizzare lo script di avvio della shell per eseguire azioni come le seguenti:

  • Installa runtime – Installa o aggiorna i runtime Linux richiesti dai tuoi flussi di lavoro e connessioni. Ad esempio, puoi install libaio come libreria personalizzata per Oracle.
  • Configura le variabili di ambiente – Impostare le variabili di ambiente per lo scheduler Apache Airflow, il server Web e i componenti di lavoro. È possibile sovrascrivere variabili comuni come PATH, PYTHONPATHe LD_LIBRARY_PATH. Ad esempio, puoi impostare LD_LIBRARY_PATH per istruire Python a cercare i binari nei percorsi specificati.
  • Gestisci chiavi e token – Passa i token di accesso per i tuoi repository personalizzati conformi PyPI/PEP-503 a requirements.txt e configurare le chiavi di sicurezza.

Come funziona

Lo script della shell viene eseguito Bash comandi all'avvio, quindi puoi installare usando yum e altri strumenti simili a how Cloud di calcolo di Amazon Elastic Cloud (Amazon EC2). supporto per dati utente e script di shell. Puoi definire uno script shell personalizzato con l'estensione .sh e inserirlo nello stesso bucket S3 di requirements.txt ed plugins.zip. Puoi definire una versione file S3 dello script della shell durante la creazione o l'aggiornamento dell'ambiente tramite la console Amazon MWAA, l'API o Interfaccia della riga di comando di AWS (interfaccia a riga di comando dell'AWS). Per dettagli su come configurare lo script di avvio, fare riferimento a Utilizzo di uno script di avvio con Amazon MWAA.

Durante il processo di creazione o aggiornamento dell'ambiente, Amazon MWAA copia il file plugins.zip, requirements.txt, script di shell e il tuo Grafici acrilici diretti dal flusso d'aria Apache (DAG) alle immagini del contenitore sul sottostante Servizio di container elastici Amazon (Amazon ECS) Cluster Fargate. L'istanza Amazon MWAA estrae questi contenuti ed esegue il file di script di avvio specificato. Lo script di avvio viene eseguito dal file /usr/local/airflow/startup Directory Apache Airflow come file airflow utente. Al termine, il processo di installazione installerà il file requirements.txt ed plugins.zip file, seguito dal processo Apache Airflow associato al contenitore.

Lo screenshot seguente mostra il nuovo optional File script di avvio campo sulla console Amazon MWAA.

Per il monitoraggio e l'osservabilità, puoi visualizzare l'output dello script nel tuo ambiente Amazon MWAA Amazon Cloud Watch gruppi di log. Per visualizzare i log, è necessario abilitare la registrazione per il gruppo di log. Se abilitato, Amazon MWAA crea un nuovo flusso di log che inizia con il prefisso startup_script_exection_ip. È possibile recuperare gli eventi di registro per verificare che lo script funzioni come previsto.

Puoi anche utilizzare Amazon MWAA corridore locale per testare questa funzionalità negli ambienti di sviluppo locali. Ora puoi specificare il tuo script di avvio personalizzato nel file startup_script nella directory local-runner. Si consiglia di testare localmente lo script prima di applicare le modifiche alla configurazione di Amazon MWAA.

È possibile fare riferimento ai file all'interno dei quali si impacchetta plugins.zip o la tua cartella DAG dallo script di avvio. Ciò può essere utile se è necessario installare runtime Linux su un server Web privato da un pacchetto locale. È anche utile poter saltare l'installazione delle librerie Python su un server web che non ha accesso, a causa della modalità server web privato o per le librerie ospitate su un repository privato accessibile solo dal tuo VPC, come nell'esempio seguente :

#!/bin/sh
export ENVIRONMENT_STAGE=”development”
echo “$ENVIRONMENT_STAGE” if [“${MWAA_AIRFLOW_COMPONENT} != “webserver”
then
pip3 install -r /usr/local/airflow/dags/requirements.txt
fi

Il MWAA_AIRFLOW_COMPONENT La variabile utilizzata nello script identifica ogni programmatore Apache Airflow, server Web e componente di lavoro su cui viene eseguito lo script.

Ulteriori considerazioni

Tenere presente le seguenti informazioni aggiuntive di questa funzione:

  • La specifica di un file di script della shell di avvio è facoltativa. Puoi scegliere una versione specifica del file S3 del tuo script.
  • L'aggiornamento dello script di avvio a un ambiente Amazon MWAA esistente comporterà il riavvio dell'ambiente. Amazon MWAA esegue lo script di avvio al riavvio di ogni componente nell'ambiente. Gli aggiornamenti dell'ambiente possono richiedere da 10 a 30 minuti. Ti consigliamo di utilizzare Amazon MWAA local-runner per testare e ridurre il ciclo di feedback.
  • È possibile apportare diverse modifiche all'ambiente Apache Airflow, ad esempio l'impostazione non riservata AIRFLOW__ variabili di ambiente e installazione di librerie Python personalizzate. Per un elenco dettagliato delle variabili di ambiente riservate e non riservate che è possibile impostare o aggiornare, fare riferimento a Imposta le variabili di ambiente utilizzando uno script di avvio.
  • L'aggiornamento delle librerie principali e delle dipendenze di Apache Airflow o delle versioni di Python non è supportato. Questo perché ci sono vincoli utilizzati per la configurazione base di Apache Airflow in Amazon MWAA che porteranno a incompatibilità di versione con diverse installazioni del runtime Python e versioni di librerie dipendenti. Amazon MWAA esegue le convalide prima dell'esecuzione dello script di avvio personalizzato per impedire che le installazioni di Python o Apache Airflow includano flussi di lavoro di attivazione.
  • Un errore durante l'esecuzione dello script di avvio determina una stabilizzazione dell'attività non riuscita dei container Amazon ECS Fargate sottostanti. Ciò può influire sulla capacità dell'ambiente Amazon MWAA di creare o aggiornare correttamente.
  • Il runtime dello script di avvio è limitato a 5 minuti, dopodiché scadrà automaticamente.
  • Per ripristinare uno script di avvio che non funziona o non è più necessario, modifica l'ambiente Amazon MWAA in modo che faccia riferimento a un file .sh vuoto.

Conclusione

In questo post abbiamo parlato della nuova funzionalità di Amazon MWAA che consente di configurare uno script di avvio della shell di avvio. Questa funzionalità è supportata su ambienti Amazon MWAA nuovi ed esistenti che eseguono Apache Airflow 2.x e versioni successive. Usa questa funzione per installare i runtime Linux, configurare le variabili di ambiente e gestire chiavi e token. Ora hai un'opzione aggiuntiva per personalizzare la tua immagine Apache Airflow di base per soddisfare le tue esigenze specifiche.

Per ulteriori dettagli ed esempi di codice su Amazon MWAA, visita il Guida per l'utente di Amazon MWAA e la Amazon MWAA esempi repository GitHub.


Informazioni sugli autori

Parnaba Basak è un architetto di soluzioni e uno specialista serverless presso AWS. È specializzato nella creazione di nuove soluzioni cloud native utilizzando moderne pratiche di sviluppo software come serverless, DevOps e analisi. Parnab lavora a stretto contatto nello spazio dei servizi di analisi e integrazione aiutando i clienti ad adottare i servizi AWS per le loro esigenze di orchestrazione del flusso di lavoro.

Vishal Vijayvargiya è un ingegnere del software che lavora su Amazon MWAA presso Amazon Web Services. È appassionato di costruire sistemi software distribuiti e scalabili. A Vishal piace anche giocare a badminton e cricket.

Timestamp:

Di più da Big Data di AWS