

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usando pacotes Python em CodeBuild
<a name="using-python-packages-in-codebuild"></a>

As etapas a seguir foram testadas com os sistemas operacionais listados nas [imagens do Docker fornecidas pelo CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html).

## Configurar permissões com perfis do IAM
<a name="python-packages-in-codebuild-iam"></a>

Essas etapas são necessárias ao usar pacotes Python a partir de CodeArtifact dentro. CodeBuild

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Perfis**. Na página **Funções**, edite a função usada pelo seu projeto de CodeBuild compilação. Essa função deve ter as seguintes permissões.

------
#### [ 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"
                 }
             }
         }
     ]
   }
   ```

------
**Importante**  
 Se você também quiser usar CodeBuild para publicar pacotes, adicione a **codeartifact:PublishPackageVersion** permissão. 

   Para obter informações, consulte [Modificar uma função](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) no *Guia do usuário do IAM*.

## Faça login e use pip ou twine
<a name="python-packages-in-codebuild-login"></a>

Para usar pacotes Python do CodeBuild, execute o `login` comando na `pre-build` seção do `buildspec.yaml` arquivo do seu projeto para configurar `pip` a busca de pacotes. CodeArtifact Para obter mais informações, consulte [Usando CodeArtifact com Python](using-python.md).

Depois de `login` ter sido executado com êxito, você pode executar os comandos `pip` na seção `build` para instalar ou publicar pacotes Python.

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

**nota**  
Só é necessário atualizar o AWS CLI with `pip3 install awscli --upgrade --user` se você estiver usando uma CodeBuild imagem mais antiga. Se você estiver usando as versões mais recentes da imagem, poderá remover essa linha.

 Para instalar pacotes Python usando `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
```

 Para publicar pacotes Python usando `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>

 Para instalar pacotes Python usando `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
```

 Para publicar pacotes Python usando `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
```