

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à.

# Aggiornamento di un token CodeArtifact
<a name="samples-code-artifact"></a>

Se utilizzi CodeArtifact per installare dipendenze Python, Amazon MWAA richiede un token attivo. Per consentire ad Amazon MWAA di accedere a un CodeArtifact repository in fase di esecuzione, puoi utilizzare uno [script di avvio](using-startup-script.md) e impostarlo [https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-extra-index-url](https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-extra-index-url)con il token.

Il seguente argomento descrive come creare uno script di avvio che utilizza l'operazione [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/codeartifact.html#CodeArtifact.Client.get_authorization_token](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/codeartifact.html#CodeArtifact.Client.get_authorization_token)CodeArtifact API per recuperare un nuovo token ogni volta che l'ambiente si avvia o si aggiorna.

**Topics**
+ [Versione](#samples-code-artifact-version)
+ [Prerequisiti](#samples-code-artifact-prereqs)
+ [Autorizzazioni](#samples-code-artifact-permissions)
+ [Esempio di codice](#samples-code-artifact-code)
+ [Fasi successive](#samples-code-artifact-next-up)

## Versione
<a name="samples-code-artifact-version"></a>

**[È possibile utilizzare l'esempio di codice in questa pagina con **Apache Airflow v2 in Python 3.10 e Apache Airflow v3**[in Python 3.11](https://peps.python.org/pep-0619/).](https://peps.python.org/pep-0664/)**

## Prerequisiti
<a name="samples-code-artifact-prereqs"></a>

Per utilizzare il codice di esempio in questa pagina, avrai bisogno di quanto segue:
+ Un ambiente [Amazon MWAA](get-started.md).
+ Un [CodeArtifact repository](https://docs.aws.amazon.com/codeartifact/latest/ug/create-repo.html) in cui archiviare le dipendenze per il proprio ambiente.

## Autorizzazioni
<a name="samples-code-artifact-permissions"></a>

Per aggiornare il CodeArtifact token e scrivere il risultato su Amazon S3, Amazon MWAA deve disporre delle seguenti autorizzazioni nel ruolo di esecuzione.
+ L'`codeartifact:GetAuthorizationToken`azione consente ad Amazon MWAA di recuperare un nuovo token da. CodeArtifact La seguente politica concede l'autorizzazione per ogni CodeArtifact dominio creato. Puoi limitare ulteriormente l'accesso ai tuoi domini modificando il valore della risorsa nell'istruzione e specificando solo i domini a cui desideri che l'ambiente acceda.

  ```
  {
    "Effect": "Allow",
    "Action": "codeartifact:GetAuthorizationToken",
    "Resource": "arn:aws:codeartifact:us-west-2:*:domain/*"
  }
  ```
+ L'`sts:GetServiceBearerToken`azione è necessaria per richiamare l'operazione API. CodeArtifact [https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_GetAuthorizationToken.html](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_GetAuthorizationToken.html) Questa operazione restituisce un token che deve essere utilizzato quando si utilizza un gestore di pacchetti come `pip` with CodeArtifact. Per utilizzare un gestore di pacchetti con un CodeArtifact repository, il ruolo del ruolo di esecuzione dell'ambiente deve consentire, `sts:GetServiceBearerToken` come elencato nella seguente dichiarazione politica.

  ```
  {
    "Sid": "AllowServiceBearerToken",
    "Effect": "Allow",
    "Action": "sts:GetServiceBearerToken",
    "Resource": "*"
  }
  ```

## Esempio di codice
<a name="samples-code-artifact-code"></a>

I passaggi seguenti descrivono come creare uno script di avvio che aggiorni il CodeArtifact token.

1. Copiate il contenuto del seguente esempio di codice e salvatelo localmente con nome`code_artifact_startup_script.sh`.

   ```
   #!/bin/sh
   
   # Startup script for MWAA, refer to https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html
   
   set -eu
   
   # setup code artifact endpoint and token
   # https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-0
   # https://docs.aws.amazon.com/mwaa/latest/userguide/samples-code-artifact.html
   DOMAIN="amazon"
   DOMAIN_OWNER="112233445566"
   REGION="us-west-2"
   REPO_NAME="MyRepo"
   echo "Getting token for CodeArtifact with args: --domain $DOMAIN --region $REGION --domain-owner $DOMAIN_OWNER"
   TOKEN=$(aws codeartifact get-authorization-token --domain $DOMAIN --region $REGION --domain-owner $DOMAIN_OWNER | jq -r '.authorizationToken')
   echo "Setting Pip env var for '--index-url' to point to CodeArtifact"
   export PIP_EXTRA_INDEX_URL="https://aws:$TOKEN@$DOMAIN-$DOMAIN_OWNER.d.codeartifact.$REGION.amazonaws.com/pypi/$REPO_NAME/simple/"
   echo "CodeArtifact startup setup complete"
   ```

1. Accedere alla cartella in cui è stato salvato lo script. Utilizzalo `cp` in una nuova finestra di richiesta per caricare lo script nel tuo bucket. Sostituiscilo *amzn-s3-demo-bucket* con le tue informazioni.

   ```
   aws s3 cp code_artifact_startup_script.sh s3://amzn-s3-demo-bucket/code_artifact_startup_script.sh
   ```

   In caso di successo, Amazon S3 restituisce il percorso URL dell'oggetto:

   ```
   upload: ./code_artifact_startup_script.sh to s3://amzn-s3-demo-bucket/code_artifact_startup_script.sh
   ```

   Dopo aver caricato lo script, l'ambiente si aggiorna ed esegue lo script all'avvio.

## Fasi successive
<a name="samples-code-artifact-next-up"></a>
+ Scopri come utilizzare gli script di avvio per personalizzare il tuo ambiente. [Utilizzo di uno script di avvio con Amazon MWAA](using-startup-script.md)
+ Scopri come caricare il codice DAG in questo esempio nella `dags` cartella del tuo bucket Amazon S3 in. [Aggiungere o aggiornare DAGs](configuring-dag-folder.md)
+ Scopri di più su come caricare il `plugins.zip` file in questo esempio nel tuo bucket Amazon S3 in. [Installazione di plugin personalizzati](configuring-dag-import-plugins.md)