Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Come posso installare librerie Python nel mio ambiente Amazon MWAA?
Desidero installare librerie Python nel mio Flusso di lavoro gestito da Amazon per Apache Airflow (Amazon MWAA).
Breve descrizione
Amazon MWAA offre modalità di accesso ai server web di rete pubblica e rete privata.
Per installare dipendenze Python in un ambiente Amazon MWAA con un server web privato, utilizza i file wheel di Python (.whl).
Per installare librerie Python in un ambiente Amazon MWAA, utilizza requirements.txt o plugins.zip. Quando utilizzi requirements.txt, pip installa i pacchetti elencati dal Python Package Index (PyPI) per impostazione predefinita. Se installi librerie o pacchetti personalizzati con artefatti compilati come i file .whl, utilizza il file plugins.zip. Devi utilizzare il file plugins.zip quando installi operazioni, hook, sensori o interfacce Amazon MWAA personalizzati. Il plugin esporta variabili di ambiente, autenticazione e file di configurazione come .crt e .yaml.
Risoluzione
Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori relativi ad AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Assicurati di aver soddisfatto i prerequisiti prima di iniziare.
Configura l'ambiente locale Amazon MWAA
Completa i seguenti passaggi:
-
Utilizza AWS CLI per creare l'immagine Docker, quindi configura un ambiente locale Amazon MWAA.
Nota: il repository Amazon MWAA fornisce l'utilità AWS CLI e replica un ambiente Amazon MWAA localmente. Per ulteriori informazioni, consulta aws-mwaa-local-runner sul sito web GitHub.
-
Aggiungi la libreria e le dipendenze Python al file requirements.txt.
Nota: dopo aver scaricato i plugin, assicurati che il file requirements.txt contenga i vincoli. -
Utilizza il seguente script per testare il file requirements.txt:
#aws-mwaa-local-runner % ./mwaa-local-env test-requirementsOutput atteso:
Installing requirements.txtCollecting aws-batch (from -r /usr/local/airflow/dags/requirements.txt (line 1)) Downloading https://files.pythonhosted.org/packages/5d/11/3aedc6e150d2df6f3d422d7107ac9eba5b50261cf57ab813bb00d8299a34/aws_batch-0.6.tar.gz Collecting awscli (from aws-batch->-r /usr/local/airflow/dags/requirements.txt (line 1)) Downloading https://files.pythonhosted.org/packages/07/4a/d054884c2ef4eb3c237e1f4007d3ece5c46e286e4258288f0116724af009/awscli-1.19.21-py2.py3-none-any.whl (3.6MB) 100% |████████████████████████████████| 3.6MB 365kB/s ... ... ... Installing collected packages: botocore, docutils, pyasn1, rsa, awscli, aws-batch Running setup.py install for aws-batch ... done Successfully installed aws-batch-0.6 awscli-1.19.21 botocore-1.20.21 docutils-0.15.2 pyasn1-0.4.8 rsa-4.7.2
Per ulteriori informazioni, consulta Installazione delle dipendenze Python utilizzando il formato di file dei requisiti PyPi.org.
Costruisci i file.whl dal file requirements.txt
Completa i seguenti passaggi:
-
Per i requisiti del pacchetto, esegui questo comando local-runner:
#aws-mwaa-local-runner % ./mwaa-local-env package-requirementsNota: il comando scarica tutti i file .whl nella cartella aws-mwaa-local-runner/plugin. Dopo aver eseguito il comando package-requirements**,** il file plugins.zip, il nuovo file packaged_requirements.txt e il file constraints.txt sono disponibili nella directory requirement/ dell'applicazione.
-
Scarica il file plugins.zip, il nuovo file packaged_requirements.txt e il file constraints.txt.
-
Modifica il nuovo file packaged_requirements.txt in modo che punti verso /usr/local/airflow/dags/constraints.txt anziché verso i vincoli pubblici.
Carica il file constraints.txt
Puoi caricare il file contraints.txt nella directory dag/ dei bucket Amazon Simple Storage Service (Amazon S3) o includere il file constraints.txt nel file plugins. Se carichi il file contraints.txt nella directory dag/ dei bucket Amazon S3, Amazon S3 modifica il file requirements.txt per la distribuzione. Tuttavia, se includi il file constraints.txt nel file plugins, assicurati che il file packaged_requirements.txt punti verso /usr/local/airflow/dags/constraints.txt e non verso i vincoli pubblici.
Se carichi il file constraints.txt nei plugin, utilizza questo comando:
#aws-mwaa-local-runner % zip -j requirements/plugins.zip constraints.txt
Crea un nuovo file requirements.txt che punti verso i file.whl contenuti nel file plugins.zip
Completa i seguenti passaggi:
-
Modifica il nuovo file packaged_requirements.txt. Se hai caricato il file nella directory dags di Amazon S3, sostituisci {OPTION} nell'esempio seguente con dags. Se invece hai aggiunto il file al file plugins.zip, sostituisci {OPTION} con plugins:
--find-links /usr/local/airflow/plugins --no-index --constraint "/usr/local/airflow/{OPTION}/constraints.txt" ....snip..... -
Carica i file plugins.zip e requirements.txt nel bucket Amazon Simple Storage Service (Amazon S3) del cluster MWAA.
-
Quindi aggiorna l'ambiente.
Risolvi i problemi relativi all'installazione dei pacchetti
Utilizza aws-mwaa-local-runner per testare DAG, plugin personalizzati e dipendenze Python. Visualizza il file di log dal gruppo di log del worker o del pianificatore Amazon MWAA.
Importante: prima di installare il file .zip dei pacchetti o dei plugin, utilizza l'utilità CLI Amazon MWAA per testare le dipendenze Python e il file plugins.zip.
Informazioni correlate
Opzione due: file wheel di Python (.whl) in Gestione delle dipendenze Python
- Argomenti
- Application Integration
- Lingua
- Italiano
