Usando pacotes Python em CodeBuild - CodeArtifact

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

As etapas a seguir foram testadas com os sistemas operacionais listados nas imagens do Docker fornecidas pelo CodeBuild.

Configurar permissões com perfis do IAM

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

  2. No painel de navegação, selecione 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 no Guia do usuário do IAM.

Faça login e use pip ou twine

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 o CodeArtifact com Python.

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

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

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