Uso de paquetes de Python en CodeBuild - CodeArtifact

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de paquetes de Python en CodeBuild

Los siguientes pasos se han probado con los sistemas operativos que figuran en las imágenes de Docker proporcionadas por CodeBuild.

Configure los permisos necesarios para los roles de IAM

Estos pasos son necesarios cuando se utilizan paquetes Python de CodeArtifact en CodeBuild.

  1. Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. Seleccione Roles (Roles) en el panel de navegación. En la página Roles, edite el rol que usa su proyecto de compilación de CodeBuild. Este rol debe tener los siguientes permisos.

    { "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

    Si también quiere usar CodeBuild para publicar paquetes, añada el permiso codeartifact:PublishPackageVersion.

    Para obtener información, consulte Modificación de un rol en la Guía del usuario de IAM.

Regístrese y utilice pip o twine

Para usar los paquetes Python de CodeBuild, ejecute el comando login de la sección pre-build de su archivo del proyecto pip para configurar la búsqueda de paquetes buildspec.yaml de CodeArtifact. Para obtener más información, consulte Uso CodeArtifact con Python.

Una vez que se haya ejecutado login correctamente, puede ejecutar los comandos pip de la sección build para instalar o publicar paquetes Python.

Linux

nota

Solo es necesario actualizar la AWS CLI con pip3 install awscli --upgrade --user si está utilizando una imagen de CodeBuild anterior. Si está utilizando las versiones de imagen más recientes, puede eliminar esa línea.

Para instalar paquetes de Python mediante 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 paquetes de Python mediante 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 paquetes de Python mediante 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 paquetes de Python mediante 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