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à.
Utilizzo di uno script di avvio con Amazon MWAA
Uno script di avvio è uno script shell (.sh
) ospitato nel bucket Amazon S3 del tuo ambiente in modo simile ai tuoi DAG, requisiti e plugin. Amazon MWAA esegue questo script durante l'avvio su ogni singolo componente di Apache Airflow (worker, scheduler e server Web) prima di installare i requisiti e inizializzare il processo Apache Airflow. Utilizza uno script di avvio per effettuare le seguenti operazioni:
-
Runtime di installazione: installa i runtime Linux richiesti dai flussi di lavoro e dalle connessioni.
-
Configurazione delle variabili di ambiente: imposta le variabili di ambiente per ogni componente di Apache Airflow. Sovrascrivi variabili comuni come
PATH
,PYTHONPATH
e.LD_LIBRARY_PATH
-
Gestisci chiavi e token: trasferisci i token di accesso per gli archivi personalizzati
requirements.txt
e configura le chiavi di sicurezza.
I seguenti argomenti descrivono come configurare uno script di avvio per installare i runtime Linux, impostare le variabili di ambiente e risolvere i problemi correlati utilizzando Logs. CloudWatch
Argomenti
Configurare uno script di avvio
Per utilizzare uno script di avvio con il tuo ambiente Amazon MWAA esistente, carica un .sh
file nel bucket Amazon S3 del tuo ambiente. Quindi, per associare lo script all'ambiente, specifica quanto segue nei dettagli dell'ambiente:
-
Il percorso URL di Amazon S3 allo script: il percorso relativo allo script ospitato nel tuo bucket, ad esempio,
s3://mwaa-environment/
startup.sh
-
L'ID della versione Amazon S3 dello script: la versione dello script di shell di avvio nel tuo bucket Amazon S3. Devi specificare l'ID della versione che Amazon S3 assegna al file ogni volta che aggiorni lo script. Gli ID di versione sono stringhe opache Unicode, con codifica UTF-8, pronte per l'URL e lunghe non più di 1.024 byte, ad esempio.
3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo
Per completare i passaggi descritti in questa sezione, utilizzate lo script di esempio seguente. Lo script restituisce il valore assegnato aMWAA_AIRFLOW_COMPONENT
. Questa variabile di ambiente identifica ogni componente di Apache Airflow su cui viene eseguito lo script.
Copia il codice e salvalo localmente come. startup.sh
#!/bin/sh echo "Printing Apache Airflow component" echo $MWAA_AIRFLOW_COMPONENT
Quindi, carica lo script nel tuo bucket Amazon S3.
Ora associate lo script al vostro ambiente.
Infine, recupera gli eventi di registro per verificare che lo script funzioni come previsto. Quando attivi la registrazione per ogni componente di Apache Airflow, Amazon MWAA crea un nuovo gruppo di log e un nuovo flusso di log. Per ulteriori informazioni, consulta Tipi di log di Apache Airflow.
Installa i runtime Linux utilizzando uno script di avvio
Utilizza uno script di avvio per aggiornare il sistema operativo di un componente Apache Airflow e installa librerie di runtime aggiuntive da utilizzare con i flussi di lavoro. Ad esempio, lo script seguente viene eseguito yum update
per aggiornare il sistema operativo.
Quando si esegue yum update
uno script di avvio, è necessario escludere l'utilizzo di Python --exclude=python*
come mostrato nell'esempio. Affinché il tuo ambiente funzioni, Amazon MWAA installa una versione specifica di Python compatibile con il tuo ambiente. Pertanto, non è possibile aggiornare la versione Python dell'ambiente utilizzando uno script di avvio.
#!/bin/sh echo "Updating operating system" sudo yum update -y --exclude=python*
Per installare i runtime su un componente specifico di Apache Airflow, usa le istruzioni condizionali MWAA_AIRFLOW_COMPONENT
e eif
. fi
Questo esempio esegue un singolo comando per installare la libaio
libreria sullo scheduler e sul worker, ma non sul server web.
Importante
-
Se è stato configurato un server Web privato, è necessario utilizzare la seguente condizione o fornire tutti i file di installazione localmente per evitare i timeout di installazione.
-
sudo
Da utilizzare per eseguire operazioni che richiedono privilegi amministrativi.
#!/bin/sh if [[ "${MWAA_AIRFLOW_COMPONENT}" != "webserver" ]] then sudo yum -y install libaio fi
Puoi usare uno script di avvio per controllare la versione di Python.
#!/bin/sh export PYTHON_VERSION_CHECK=`python -c 'import sys; version=sys.version_info[:3]; print("{0}.{1}.{2}".format(*version))'` echo "Python version is $PYTHON_VERSION_CHECK"
Amazon MWAA non supporta l'override della versione Python predefinita, poiché ciò potrebbe causare incompatibilità con le librerie Apache Airflow installate.
Imposta le variabili di ambiente utilizzando uno script di avvio
Usa gli script di avvio per impostare le variabili di ambiente e modificare le configurazioni di Apache Airflow. Quanto segue definisce una nuova variabile,. ENVIRONMENT_STAGE
È possibile fare riferimento a questa variabile in un DAG o nei moduli personalizzati.
#!/bin/sh export ENVIRONMENT_STAGE="development" echo "$ENVIRONMENT_STAGE"
Utilizzate gli script di avvio per sovrascrivere le variabili di sistema o di Apache Airflow più comuni. Ad esempio, si imposta LD_LIBRARY_PATH
di indicare a Python di cercare i binari nel percorso specificato. Ciò consente di fornire file binari personalizzati per i flussi di lavoro utilizzando i plug-in:
#!/bin/sh export LD_LIBRARY_PATH=/usr/local/airflow/plugins/
your-custom-binary
Variabili d'ambiente riservate
Amazon MWAA riserva un set di variabili ambientali critiche. Se sovrascrivi una variabile riservata, Amazon MWAA la ripristina ai valori predefiniti. Di seguito sono elencate le variabili riservate:
-
MWAA__AIRFLOW__COMPONENT
— Utilizzato per identificare il componente Apache Airflow con uno dei seguenti valori:scheduler
,worker
, o.webserver
-
AIRFLOW__WEBSERVER__SECRET_KEY
— La chiave segreta utilizzata per firmare in modo sicuro i cookie di sessione nel server web Apache Airflow. -
AIRFLOW__CORE__FERNET_KEY
— La chiave utilizzata per la crittografia e la decrittografia dei dati sensibili memorizzati nel database dei metadati, ad esempio le password di connessione. -
AIRFLOW_HOME
— Il percorso della home directory di Apache Airflow in cui i file di configurazione e i file DAG sono archiviati localmente. -
AIRFLOW__CELERY__BROKER_URL
— L'URL del broker di messaggi utilizzato per la comunicazione tra lo scheduler Apache Airflow e i nodi di lavoro Celery. -
AIRFLOW__CELERY__RESULT_BACKEND
— L'URL del database utilizzato per memorizzare i risultati delle attività di Celery. -
AIRFLOW__CORE__EXECUTOR
— La classe executor che Apache Airflow dovrebbe usare. In Amazon MWAA si tratta diCeleryExecutor
-
AIRFLOW__CORE__LOAD_EXAMPLES
— Utilizzato per attivare o disattivare il caricamento di DAG di esempio. -
AIRFLOW__METRICS__METRICS_BLOCK_LIST
— Utilizzato per gestire i parametri di Apache Airflow emessi e acquisiti da Amazon MWAA in. CloudWatch -
SQL_ALCHEMY_CONN
— La stringa di connessione per il database RDS per PostgreSQL utilizzata per archiviare i metadati Apache Airflow in Amazon MWAA. -
AIRFLOW__CORE__SQL_ALCHEMY_CONN
— Utilizzata per lo stesso scopo, ma seguendo la nuova convenzione di denominazione di ApacheSQL_ALCHEMY_CONN
Airflow. -
AIRFLOW__CELERY__DEFAULT_QUEUE
— La coda predefinita per le attività di Celery in Apache Airflow. -
AIRFLOW__OPERATORS__DEFAULT_QUEUE
— La coda predefinita per le attività che utilizzano operatori Apache Airflow specifici. -
AIRFLOW_VERSION
— La versione Apache Airflow installata nell'ambiente Amazon MWAA. -
AIRFLOW_CONN_AWS_DEFAULT
— Le AWS credenziali predefinite utilizzate per l'integrazione con altri servizi in. AWS -
AWS_DEFAULT_REGION
— Imposta la AWS regione predefinita utilizzata con le credenziali predefinite per l'integrazione con altri AWS servizi. -
AWS_REGION
— Se definita, questa variabile di ambiente sostituisce i valori nella variabile di ambienteAWS_DEFAULT_REGION
e nell'area di impostazione del profilo. -
PYTHONUNBUFFERED
— Utilizzato per inviarestdout
e trasmettere istderr
log ai container. -
AIRFLOW__METRICS__STATSD_ALLOW_LIST
— Utilizzato per configurare un elenco consentito di prefissi separati da virgole per inviare le metriche che iniziano con gli elementi dell'elenco. -
AIRFLOW__METRICS__STATSD_ON
— Attiva l'invio di metriche a.StatsD
-
AIRFLOW__METRICS__STATSD_HOST
— Utilizzato per connettersi al demone.StatSD
-
AIRFLOW__METRICS__STATSD_PORT
— Utilizzato per connettersi al demone.StatSD
-
AIRFLOW__METRICS__STATSD_PREFIX
— Utilizzato per connettersi al demone.StatSD
-
AIRFLOW__CELERY__WORKER_AUTOSCALE
— Imposta la concorrenza massima e minima. -
AIRFLOW__CORE__DAG_CONCURRENCY
— Imposta il numero di istanze di attività che possono essere eseguite contemporaneamente dallo scheduler in un DAG. -
AIRFLOW__CORE__MAX_ACTIVE_TASKS_PER_DAG
— Imposta il numero massimo di attività attive per DAG. -
AIRFLOW__CORE__PARALLELISM
— Definisce il numero massimo di istanze di attività che possono essere eseguite contemporaneamente. -
AIRFLOW__SCHEDULER__PARSING_PROCESSES
— Imposta il numero massimo di processi analizzati dallo scheduler per pianificare i DAG. -
AIRFLOW__CELERY_BROKER_TRANSPORT_OPTIONS__VISIBILITY_TIMEOUT
— Definisce il numero di secondi che un lavoratore attende per confermare l'attività prima che il messaggio venga recapitato a un altro lavoratore. -
AIRFLOW__CELERY_BROKER_TRANSPORT_OPTIONS__REGION
— Imposta la AWS regione per il trasporto di Celery sottostante. -
AIRFLOW__CELERY_BROKER_TRANSPORT_OPTIONS__PREDEFINED_QUEUES
— Imposta la coda per il trasporto di Celery sottostante. -
AIRFLOW_SCHEDULER_ALLOWED_RUN_ID_PATTERN
— Utilizzato per verificare la validità dell'input per ilrun_id
parametro quando si attiva un DAG. -
AIRFLOW__WEBSERVER__BASE_URL
— L'URL del server Web utilizzato per ospitare l'interfaccia utente di Apache Airflow.
Variabili d'ambiente non riservate
È possibile utilizzare uno script di avvio per sovrascrivere le variabili di ambiente non riservate. Di seguito sono elencate alcune di queste variabili comuni:
-
PATH
— specifica un elenco di directory in cui il sistema operativo cerca file e script eseguibili. Quando un comando viene eseguito nella riga di comando, il sistema controlla le directory per trovare ed eseguire il comando.PATH
Quando si creano operatori o attività personalizzati in Apache Airflow, potrebbe essere necessario affidarsi a script o eseguibili esterni. Se le directory contenenti questi file non si trovano nellaPATH
variabile specificata, le attività non vengono eseguite quando il sistema non è in grado di individuarle. Aggiungendo le directory appropriatePATH
, le attività di Apache Airflow possono trovare ed eseguire gli eseguibili richiesti. -
PYTHONPATH
— Utilizzato dall'interprete Python per determinare in quali directory cercare i moduli e i pacchetti importati. È un elenco di directory che è possibile aggiungere al percorso di ricerca predefinito. Ciò consente all'interprete di trovare e caricare librerie Python non incluse nella libreria standard o installate nelle directory di sistema. Usa questa variabile per aggiungere i tuoi moduli e pacchetti Python personalizzati e usarli con i tuoi DAG. -
LD_LIBRARY_PATH
— Una variabile di ambiente utilizzata dal linker e dal loader dinamico in Linux per trovare e caricare librerie condivise. Specifica un elenco di directory contenenti librerie condivise, nelle quali viene effettuata la ricerca prima delle directory di libreria di sistema predefinite. Utilizzate questa variabile per specificare i file binari personalizzati. -
CLASSPATH
— Utilizzata da Java Runtime Environment (JRE) e Java Development Kit (JDK) per individuare e caricare classi, librerie e risorse Java in fase di esecuzione. È un elenco di directory, file JAR e archivi ZIP che contengono codice Java compilato.