

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.

# Utilisation de packages Python dans CodeBuild
<a name="using-python-packages-in-codebuild"></a>

Les étapes suivantes ont été testées avec les systèmes d'exploitation répertoriés dans les [images Docker fournies par CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html).

## Configurer des autorisations avec des rôles IAM
<a name="python-packages-in-codebuild-iam"></a>

Ces étapes sont obligatoires lors de l'utilisation de packages Python depuis CodeArtifact l'entrée CodeBuild.

1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse.

1. Dans le panneau de navigation, choisissez **Rôles**. Sur la page **Rôles**, modifiez le rôle utilisé par votre projet de CodeBuild construction. Ce rôle doit disposer des autorisations suivantes.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [ "codeartifact:GetAuthorizationToken",
                         "codeartifact:GetRepositoryEndpoint",
                         "codeartifact:ReadFromRepository"
                         ],
             "Resource": "*"
         },
         {       
             "Effect": "Allow",
             "Action": "sts:GetServiceBearerToken",
             "Resource": "*",
             "Condition": {
                 "StringEquals": {
                     "sts:AWSServiceName": "codeartifact.amazonaws.com"
                 }
             }
         }
     ]
   }
   ```

------
**Important**  
 Si vous souhaitez également utiliser pour CodeBuild publier des packages, ajoutez l'**codeartifact:PublishPackageVersion**autorisation. 

   Pour plus d'informations, consultez [la section Modification d'un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) dans le *guide de l'utilisateur IAM*.

## Connectez-vous et utilisez pip ou twine
<a name="python-packages-in-codebuild-login"></a>

Pour utiliser les packages Python depuis CodeBuild, exécutez la `login` commande depuis la `pre-build` section du `buildspec.yaml` fichier de votre projet à configurer `pip` pour récupérer les packages. CodeArtifact Pour de plus amples informations, veuillez consulter [Utilisation CodeArtifact avec Python](using-python.md).

Une `login` fois l'exécution réussie, vous pouvez exécuter `pip` les commandes de la `build` section pour installer ou publier des packages Python.

### Linux
<a name="python-packages-in-codebuild-login-linux"></a>

**Note**  
Il n'est nécessaire de mettre à jour le AWS CLI with que `pip3 install awscli --upgrade --user` si vous utilisez une CodeBuild image plus ancienne. Si vous utilisez les dernières versions d'image, vous pouvez supprimer cette ligne.

 Pour installer des packages Python à l'aide de `pip` : 

```
pre_build:
  commands:
    - pip3 install awscli --upgrade --user
    - aws codeartifact login --tool pip --domain my_domain --domain-owner 111122223333 --repository my_repo
build:
  commands:
    - pip install requests
```

 Pour publier des packages Python à l'aide de `twine` : 

```
pre_build:
  commands:
    - pip3 install awscli --upgrade --user
    - aws codeartifact login --tool twine --domain my_domain --domain-owner 111122223333 --repository my_repo
build:
  commands:
    - twine upload --repository codeartifact mypackage
```

### Windows
<a name="python-packages-in-codebuild-login-windows"></a>

 Pour installer des packages Python à l'aide de `pip` : 

```
version: 0.2
phases:
  install:
    commands:
      - '[Net.ServicePointManager]::SecurityProtocol = "Tls12"; Invoke-WebRequest https://awscli.amazonaws.com/AWSCLIV2.msi -OutFile $env:TEMP/AWSCLIV2.msi'
      - Start-Process -Wait msiexec "/i $env:TEMP\AWSCLIV2.msi /quiet /norestart"
  pre_build:
    commands:
      - '&"C:\Program Files\Amazon\AWSCLIV2\aws" codeartifact login --tool pip --domain my_domain --domain-owner 111122223333 --repository my_repo'
  build:
    commands:
      - pip install requests
```

 Pour publier des packages Python à l'aide de `twine` : 

```
version: 0.2
phases:
  install:
    commands:
      - '[Net.ServicePointManager]::SecurityProtocol = "Tls12"; Invoke-WebRequest https://awscli.amazonaws.com/AWSCLIV2.msi -OutFile $env:TEMP/AWSCLIV2.msi'
      - Start-Process -Wait msiexec "/i $env:TEMP\AWSCLIV2.msi /quiet /norestart"
  pre_build:
    commands:
      - '&"C:\Program Files\Amazon\AWSCLIV2\aws" codeartifact login --tool twine --domain my_domain --domain-owner 111122223333 --repository my_repo'
  build:
    commands:
      - twine upload --repository codeartifact mypackage
```