

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 delle dipendenze in Python
<a name="working-dags-dependencies"></a>

Una dipendenza Python è qualsiasi pacchetto o distribuzione non incluso nell'installazione base di Apache Airflow per la tua versione di Apache Airflow nel tuo ambiente Amazon Managed Workflows for Apache Airflow. Questo argomento descrive i passaggi per installare le dipendenze Python di Apache Airflow nell'ambiente Amazon MWAA utilizzando un `requirements.txt` file nel bucket Amazon S3.

**Contents**
+ [Prerequisiti](#working-dags-dependencies-prereqs)
+ [Come funziona](#working-dags-dependencies-how)
+ [Panoramica delle dipendenze in Python](#working-dags-dependencies-overview)
  + [Limiti di posizione e dimensione delle dipendenze in Python](#working-dags-dependencies-quota)
+ [Creazione di un file requirements.txt](#working-dags-dependencies-test-create)
  + [Fase uno: testare le dipendenze di Python utilizzando l'utilità CLI di Amazon MWAA](#working-dags-dependencies-cli-utility)
  + [Fase due: Creare il `requirements.txt`](#working-dags-dependencies-syntax-create)
+ [Caricamento `requirements.txt` su Amazon S3](#configuring-dag-dependencies-upload)
  + [Usando il AWS CLI](#configuring-dag-dependencies-upload-cli)
  + [Utilizzo della console Amazon S3](#configuring-dag-dependencies-upload-console)
+ [Installazione delle dipendenze Python nel proprio ambiente](#configuring-dag-dependencies-installing)
  + [Specificazione del percorso `requirements.txt` sulla console Amazon MWAA (la prima volta)](#configuring-dag-dependencies-first)
  + [Specificazione della `requirements.txt` versione sulla console Amazon MWAA](#working-dags-dependencies-mwaaconsole-version)
+ [Accedere ai log per `requirements.txt`](#working-dags-dependencies-logs)
+ [Fasi successive](#working-dags-dependencies-next-up)

## Prerequisiti
<a name="working-dags-dependencies-prereqs"></a>

Avrai bisogno di quanto segue prima di completare i passaggi in questa pagina.
+ **Autorizzazioni**: Account AWS devi aver ottenuto l'accesso dal tuo amministratore alla politica di controllo degli MWAAFull ConsoleAccess accessi di [Amazon](access-policies.md#console-full-access) per il tuo ambiente. Inoltre, il tuo ambiente Amazon MWAA deve essere autorizzato dal tuo [ruolo di esecuzione](mwaa-create-role.md) 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, vedi [Modalità di accesso ad Apache Airflow](configuring-networking.md).
+ **Configurazione Amazon S3** **: il bucket [Amazon S3](mwaa-s3-bucket.md) utilizzato per archiviare i plug-in `plugins.zip` personalizzati e DAGs le `requirements.txt` dipendenze Python deve essere configurato con Public Access Blocked e Versioning Enabled.**

## Come funziona
<a name="working-dags-dependencies-how"></a>

Su Amazon MWAA, installi tutte le dipendenze Python caricando un file nel `requirements.txt` tuo bucket Amazon S3, quindi specificando la versione del file sulla console Amazon MWAA ogni volta che aggiorni il file. Amazon MWAA viene eseguito `pip3 install -r requirements.txt` per installare le dipendenze Python sullo scheduler Apache Airflow e su ciascuno dei worker.

Per eseguire le dipendenze di Python nel tuo ambiente, devi fare tre cose:

1. Crea un `requirements.txt` file localmente.

1. Carica il file locale `requirements.txt` nel tuo bucket Amazon S3.

1. Specificare la versione di questo file nel campo **File dei requisiti** sulla console Amazon MWAA.

**Nota**  
Se è la prima volta che crei e carichi un `requirements.txt` file nel tuo bucket Amazon S3, devi anche specificare il percorso del file sulla console Amazon MWAA. Devi completare questo passaggio solo una volta.

## Panoramica delle dipendenze in Python
<a name="working-dags-dependencies-overview"></a>

Puoi installare gli extra di Apache Airflow e altre dipendenze Python dalle dipendenze Python Package PyPi Index (.org), Python `.whl` wheels () o Python ospitate su un repository privato conforme a /PEP-503 nel tuo ambiente. PyPi

### Limiti di posizione e dimensione delle dipendenze in Python
<a name="working-dags-dependencies-quota"></a>

Lo scheduler Apache Airflow e gli operatori cercano i pacchetti nel `requirements.txt` file e i pacchetti vengono installati nell'ambiente in. `/usr/local/airflow/.local/bin`
+ **Limite di dimensione.** Consigliamo un `requirements.txt` file che faccia riferimento a librerie la cui dimensione combinata è inferiore a 1 GB. Maggiore è il numero di librerie che Amazon MWAA deve installare, maggiore è il tempo di *avvio* in un ambiente. Sebbene Amazon MWAA non limiti esplicitamente la dimensione delle librerie installate, 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.

## Creazione di un file requirements.txt
<a name="working-dags-dependencies-test-create"></a>

I passaggi seguenti descrivono i passaggi consigliati per creare un file requirements.txt localmente.

### Fase uno: testare le dipendenze di Python utilizzando l'utilità CLI di Amazon MWAA
<a name="working-dags-dependencies-cli-utility"></a>
+ 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. Puoi utilizzarlo per eseguire un ambiente Apache Airflow locale per sviluppare e DAGs testare plugin personalizzati e dipendenze prima della distribuzione su Amazon MWAA.
+ Per eseguire la CLI, fare riferimento a [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images)on. GitHub

### Fase due: Creare il `requirements.txt`
<a name="working-dags-dependencies-syntax-create"></a>

La sezione seguente descrive come specificare le dipendenze Python dall'indice dei pacchetti [Python in un file](https://pypi.org/). `requirements.txt`

------
#### [ Apache Airflow v3 ]

1. **Esegui il test localmente.** Aggiungi altre librerie in modo iterativo per trovare la giusta combinazione di pacchetti e le relative versioni, prima di creare un `requirements.txt` file. Per eseguire l'utilità CLI di Amazon MWAA, consulta on. [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images) GitHub

1. **Consulta gli extra del pacchetto Apache Airflow**. Per accedere a un elenco dei pacchetti installati per Apache Airflow v3 su Amazon MWAA, consulta il sito Web. [aws-mwaa-docker-images `requirements.txt`](https://github.com/aws/amazon-mwaa-docker-images/blob/main/requirements.txt) GitHub 

1. **Aggiungi una dichiarazione di vincoli.** Aggiungi il file dei vincoli per il tuo ambiente Apache Airflow v3 nella parte superiore del file. `requirements.txt` I file dei vincoli di Apache Airflow specificano le versioni del provider disponibili al momento di una versione di Apache Airflow.

    Nell'esempio seguente, sostituisci {{\{environment-version\}}} con il numero di versione del tuo ambiente e {{\{Python-version\}}} con la versione di Python compatibile con il tuo ambiente. 

   [Per informazioni sulla versione di Python compatibile con il tuo ambiente Apache Airflow, consulta le versioni di Apache Airflow.](airflow-versions.md#airflow-versions-official) 

   ```
   --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-{{{Airflow-version}}}/constraints-{{{Python-version}}}.txt"
   ```

    Se il file dei vincoli determina che il `xyz==1.0` pacchetto non è compatibile con altri pacchetti dell'ambiente, non `pip3 install` riuscirà a impedire l'installazione di librerie incompatibili nell'ambiente. Se l'installazione non riesce per qualsiasi pacchetto, puoi accedere ai log degli errori per ogni componente Apache Airflow (lo scheduler, il worker e il server web) nel flusso di log corrispondente su Logs. CloudWatch Per ulteriori informazioni sui tipi di registro, fare riferimento a. [Accesso ai log Airflow in Amazon CloudWatch](monitoring-airflow.md) 

1. **Pacchetti Apache Airflow**. Aggiungi gli [extra del pacchetto e la](http://airflow.apache.org/docs/apache-airflow/2.5.1/extra-packages-ref.html) versione (). `==` Questo aiuta a evitare che pacchetti con lo stesso nome, ma con una versione diversa, vengano installati nell'ambiente.

   ```
   apache-airflow[package-extra]==2.5.1
   ```

1. **Librerie Python**. Aggiungi il nome del pacchetto e la versione (`==`) nel tuo `requirements.txt` file. In questo modo si evita l'applicazione automatica di future interruzioni del [PyPisito .org](https://pypi.org).

   ```
   {{library}} == {{version}}
   ```  
**Example Boto3 e psycopg2-binary**  

   Questo esempio viene fornito a scopo dimostrativo. Le librerie boto e psycopg2-binary sono incluse nell'installazione di base per Apache Airflow v3 e non devono essere specificate in un file. `requirements.txt`

   ```
   boto3==1.17.54
   boto==2.49.0
   botocore==1.20.54
   psycopg2-binary==2.8.6
   ```

   [Se viene specificato un pacchetto senza una versione, Amazon MWAA installa la versione più recente del pacchetto da .org. PyPi](https://pypi.org) Questa versione potrebbe entrare in conflitto con altri pacchetti del tuo. `requirements.txt`

------
#### [ Apache Airflow v2 ]

1. **Esegui il test localmente**. Aggiungi altre librerie in modo iterativo per trovare la giusta combinazione di pacchetti e le relative versioni, prima di creare un `requirements.txt` file. Per eseguire l'utilità CLI di Amazon MWAA, consulta on. [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images) GitHub

1. **Consulta gli extra del pacchetto Apache Airflow**. Per accedere a un elenco dei pacchetti installati per Apache Airflow v2 su Amazon MWAA, accedi al sito Web. [aws-mwaa-docker-images `requirements.txt`](https://github.com/aws/amazon-mwaa-docker-images/blob/main/requirements.txt) GitHub 

1. **Aggiungi una dichiarazione di vincoli.** Aggiungi il file dei vincoli per il tuo ambiente Apache Airflow v2 nella parte superiore del file. `requirements.txt` I file dei vincoli di Apache Airflow specificano le versioni del provider disponibili al momento di una versione di Apache Airflow.

    A partire da Apache Airflow v2.7.2, il file dei requisiti deve includere una dichiarazione. `--constraint` Se non fornisci un vincolo, Amazon MWAA te ne specificherà uno per garantire che i pacchetti elencati nei tuoi requisiti siano compatibili con la versione di Apache Airflow che stai utilizzando. 

   Nell'esempio seguente, sostituisci {{\{environment-version\}}} con il numero di versione del tuo ambiente e {{\{Python-version\}}} con la versione di Python compatibile con il tuo ambiente.

   [Per informazioni sulla versione di Python compatibile con il tuo ambiente Apache Airflow, consulta le versioni di Apache Airflow.](airflow-versions.md#airflow-versions-official)

   ```
   --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-{{{Airflow-version}}}/constraints-{{{Python-version}}}.txt"
   ```

   Se il file dei vincoli determina che il `xyz==1.0` pacchetto non è compatibile con altri pacchetti dell'ambiente, non `pip3 install` riuscirà a impedire l'installazione di librerie incompatibili nell'ambiente. Se l'installazione non riesce per qualsiasi pacchetto, puoi accedere ai log degli errori per ogni componente Apache Airflow (lo scheduler, il worker e il server web) nel flusso di log corrispondente su Logs. CloudWatch Per ulteriori informazioni sui tipi di registro, fare riferimento a. [Accesso ai log Airflow in Amazon CloudWatch](monitoring-airflow.md)

1. **Pacchetti Apache Airflow**. Aggiungi gli [extra del pacchetto e la](http://airflow.apache.org/docs/apache-airflow/2.5.1/extra-packages-ref.html) versione (). `==` Questo aiuta a evitare che pacchetti con lo stesso nome, ma con una versione diversa, vengano installati nell'ambiente.

   ```
   apache-airflow[package-extra]==2.5.1
   ```

1. **Librerie Python**. Aggiungi il nome del pacchetto e la versione (`==`) nel tuo `requirements.txt` file. In questo modo si evita l'applicazione automatica di future interruzioni del [PyPisito .org](https://pypi.org).

   ```
   {{library}} == {{version}}
   ```  
**Example Boto3 e psycopg2-binary**  

   Questo esempio viene fornito a scopo dimostrativo. Le librerie boto e psycopg2-binary sono incluse nell'installazione di base di Apache Airflow v2 e non devono essere specificate in un file. `requirements.txt`

   ```
   boto3==1.17.54
   boto==2.49.0
   botocore==1.20.54
   psycopg2-binary==2.8.6
   ```

   [Se viene specificato un pacchetto senza una versione, Amazon MWAA installa la versione più recente del pacchetto da .org. PyPi](https://pypi.org) Questa versione potrebbe entrare in conflitto con altri pacchetti del tuo. `requirements.txt`

------

## Caricamento `requirements.txt` su Amazon S3
<a name="configuring-dag-dependencies-upload"></a>

Puoi utilizzare la console Amazon S3 o il AWS Command Line Interface (AWS CLI) per caricare un `requirements.txt` file nel tuo bucket Amazon S3.

### Usando il AWS CLI
<a name="configuring-dag-dependencies-upload-cli"></a>

Il AWS Command Line Interface (AWS CLI) è uno strumento open source che è possibile utilizzare per interagire con i AWS servizi utilizzando i comandi nella shell della riga di comando. Per completare la procedura descritta in questa pagina, è necessario quanto segue:
+ [AWS CLI — Installa la versione 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).
+ [AWS CLI — Configurazione rapida con `aws configure`](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).

**Per caricare utilizzando il AWS CLI**

1. Usa il seguente comando per elencare tutti i tuoi bucket Amazon S3.

   ```
   aws s3 ls
   ```

1. 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}}
   ```

1. Il comando seguente carica un `requirements.txt` file in un bucket Amazon S3.

   ```
   aws s3 cp requirements.txt s3://{{amzn-s3-demo-bucket}}/requirements.txt
   ```

### Utilizzo della console Amazon S3
<a name="configuring-dag-dependencies-upload-console"></a>

La console Amazon S3 è un'interfaccia utente basata sul Web che puoi utilizzare per creare e gestire le risorse nel tuo bucket Amazon S3.

**Per caricare utilizzando la console Amazon S3**

1. Apri la pagina [Ambienti](https://console.aws.amazon.com/mwaa/home#/environments) sulla console Amazon MWAA.

1. Scegli un ambiente.

1. Seleziona il link al **bucket S3** nel **codice DAG nel riquadro S3 per aprire il bucket di archiviazione nella** console.

1. Scegli **Carica**.

1. **Scegli Aggiungi file.**

1. Seleziona la copia locale del tuo`requirements.txt`, scegli **Carica**.

## Installazione delle dipendenze Python nel proprio ambiente
<a name="configuring-dag-dependencies-installing"></a>

Questa sezione descrive come installare le dipendenze caricate nel bucket Amazon S3 specificando il percorso del file requirements.txt e specificando la versione del file requirements.txt ogni volta che viene aggiornato.

### Specificazione del percorso `requirements.txt` sulla console Amazon MWAA (la prima volta)
<a name="configuring-dag-dependencies-first"></a>

Se è la prima volta che crei e carichi un `requirements.txt` file nel tuo bucket Amazon S3, devi anche specificare il percorso del file sulla console Amazon MWAA. Devi completare questo passaggio solo una volta.

1. Apri la pagina [Ambienti](https://console.aws.amazon.com/mwaa/home#/environments) sulla console Amazon MWAA.

1. Scegli un ambiente.

1. Scegli **Modifica**.

1. **Nel riquadro del codice DAG di Amazon** S3, **scegli Browse** S3 accanto al **file dei requisiti** (campo opzionale).

1. Seleziona il `requirements.txt` file nel tuo bucket Amazon S3.

1. Scegliere **Choose (Scegli)**.

1. Scegli **Avanti**, **Aggiorna** ambiente.

È possibile iniziare a utilizzare i nuovi pacchetti subito dopo il completamento dell'aggiornamento dell'ambiente.

### Specificazione della `requirements.txt` versione sulla console Amazon MWAA
<a name="working-dags-dependencies-mwaaconsole-version"></a>

È necessario specificare la versione del `requirements.txt` file sulla console Amazon MWAA ogni volta che si carica una nuova versione del file `requirements.txt` nel bucket Amazon S3.

1. Apri la pagina [Ambienti](https://console.aws.amazon.com/mwaa/home#/environments) sulla console Amazon MWAA.

1. Scegli un ambiente.

1. Scegli **Modifica**.

1. **Nel riquadro del codice DAG di Amazon** S3, scegli `requirements.txt` una versione nell'elenco a discesa.

1. **Scegli **Avanti, Aggiorna** ambiente.**

È possibile iniziare a utilizzare i nuovi pacchetti subito dopo il completamento dell'aggiornamento dell'ambiente.

## Accedere ai log per `requirements.txt`
<a name="working-dags-dependencies-logs"></a>

Puoi visualizzare i log di Apache Airflow per lo scheduler che pianifica i flussi di lavoro e analizza la cartella. `dags` I passaggi seguenti descrivono come aprire il gruppo di log per lo scheduler sulla console Amazon MWAA e accedere ai log di Apache Airflow sulla console Logs. CloudWatch 

**Per accedere ai log di un `requirements.txt`**

1. Apri la pagina [Ambienti](https://console.aws.amazon.com/mwaa/home#/environments) sulla console Amazon MWAA.

1. Scegli un ambiente.

1. Scegli il **gruppo di log dello scheduler Airflow** nel riquadro **Monitoraggio**.

1. Scegli il `requirements_install_ip` log in **Log** Streams.

1. Fate riferimento all'elenco dei pacchetti che sono stati installati nell'ambiente all'indirizzo`/usr/local/airflow/.local/bin`. Esempio:

   ```
   Collecting appdirs==1.4.4 (from -r /usr/local/airflow/.local/bin (line 1))
   Downloading https://files.pythonhosted.org/packages/3b/00/2344469e2084fb28kjdsfiuyweb47389789vxbmnbjhsdgf5463acd6cf5e3db69324/appdirs-1.4.4-py2.py3-none-any.whl  
   Collecting astroid==2.4.2 (from -r /usr/local/airflow/.local/bin (line 2))
   ```

1. Controlla l'elenco dei pacchetti e verifica se qualcuno di questi ha riscontrato un errore durante l'installazione. Se qualcosa è andato storto, viene visualizzato un errore simile al seguente:

   ```
   2021-03-05T14:34:42.731-07:00
   No matching distribution found for LibraryName==1.0.0 (from -r /usr/local/airflow/.local/bin (line 4))
   No matching distribution found for LibraryName==1.0.0 (from -r /usr/local/airflow/.local/bin (line 4))
   ```

## Fasi successive
<a name="working-dags-dependencies-next-up"></a>

Testa i tuoi DAGs plugin personalizzati e le dipendenze Python localmente usando on. [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images) GitHub