

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Actualisation d'un CodeArtifact jeton
<a name="samples-code-artifact"></a>

Si vous utilisez CodeArtifact pour installer des dépendances Python, Amazon MWAA a besoin d'un jeton actif. Pour autoriser Amazon MWAA à accéder à un CodeArtifact référentiel lors de l'exécution, vous pouvez utiliser un [script de démarrage](using-startup-script.md) et le définir [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)avec le jeton.

La rubrique suivante décrit comment créer un script de démarrage qui utilise l'opération [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 pour récupérer un nouveau jeton chaque fois que votre environnement démarre ou se met à jour.

**Topics**
+ [Version](#samples-code-artifact-version)
+ [Prérequis](#samples-code-artifact-prereqs)
+ [Autorisations](#samples-code-artifact-permissions)
+ [Exemple de code](#samples-code-artifact-code)
+ [Quelle est la prochaine étape ?](#samples-code-artifact-next-up)

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

[Vous pouvez utiliser l'exemple de code présenté sur cette page avec **Apache Airflow v2** en [Python 3.10](https://peps.python.org/pep-0619/) et **Apache Airflow v3** en Python 3.11.](https://peps.python.org/pep-0664/)

## Prérequis
<a name="samples-code-artifact-prereqs"></a>

Pour utiliser l'exemple de code présenté sur cette page, vous aurez besoin des éléments suivants :
+ Un [environnement Amazon MWAA.](get-started.md)
+ Un [CodeArtifact référentiel dans](https://docs.aws.amazon.com/codeartifact/latest/ug/create-repo.html) lequel vous stockez les dépendances de votre environnement.

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

Pour actualiser le CodeArtifact jeton et écrire le résultat dans Amazon S3, Amazon MWAA doit disposer des autorisations suivantes dans le rôle d'exécution.
+ L'`codeartifact:GetAuthorizationToken`action permet à Amazon MWAA de récupérer un nouveau jeton auprès de CodeArtifact. La politique suivante accorde l'autorisation pour chaque CodeArtifact domaine que vous créez. Vous pouvez restreindre davantage l'accès à vos domaines en modifiant la valeur de la ressource dans l'instruction et en spécifiant uniquement les domaines auxquels vous souhaitez que votre environnement accède.

  ```
  {
    "Effect": "Allow",
    "Action": "codeartifact:GetAuthorizationToken",
    "Resource": "arn:aws:codeartifact:us-west-2:*:domain/*"
  }
  ```
+ L'`sts:GetServiceBearerToken`action est requise pour appeler l'opération CodeArtifact [https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_GetAuthorizationToken.html](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_GetAuthorizationToken.html)API. Cette opération renvoie un jeton qui doit être utilisé lors de l'utilisation d'un gestionnaire de packages tel que `pip` with CodeArtifact. Pour utiliser un gestionnaire de packages avec un CodeArtifact référentiel, le rôle d'exécution de votre environnement doit être autorisé, `sts:GetServiceBearerToken` comme indiqué dans la déclaration de politique suivante.

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

## Exemple de code
<a name="samples-code-artifact-code"></a>

Les étapes suivantes décrivent comment créer un script de démarrage qui met à jour le CodeArtifact jeton.

1. Copiez le contenu de l'exemple de code suivant et enregistrez-le localement sous`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. Accédez au dossier dans lequel vous avez enregistré le script. `cp`Utilisez-le dans une nouvelle fenêtre d'invite pour télécharger le script dans votre compartiment. Remplacez *amzn-s3-demo-bucket* par vos informations.

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

   En cas de succès, Amazon S3 affiche le chemin URL de l'objet :

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

   Une fois le script chargé, votre environnement le met à jour et l'exécute au démarrage.

## Quelle est la prochaine étape ?
<a name="samples-code-artifact-next-up"></a>
+ Découvrez comment utiliser des scripts de démarrage pour personnaliser votre environnement dans[Utilisation d’un script de démarrage avec Amazon MWAA](using-startup-script.md).
+ Découvrez comment télécharger le code DAG dans cet exemple dans le `dags` dossier de votre compartiment Amazon S3 dans[Ajouter ou mettre à jour DAGs](configuring-dag-folder.md).
+ Découvrez comment charger le `plugins.zip` fichier dans cet exemple dans votre compartiment Amazon S3 dans[Installation de plugins personnalisés](configuring-dag-import-plugins.md).