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 de Python desde CodeArtifact dentro CodeBuild.

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

  2. Seleccione Roles en el panel de navegación. En la página de roles, edite el rol que usa su proyecto de CodeBuild compilación. 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 quieres usarlo CodeBuild para publicar paquetes, añade el codeartifact:PublishPackageVersion permiso.

    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 de Python desde CodeBuild, ejecuta el login comando de la pre-build sección del buildspec.yaml archivo de tu proyecto desde la que deseas pip configurar la búsqueda de CodeArtifact paquetes. 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 el AWS CLI with pip3 install awscli --upgrade --user si se utiliza una CodeBuild imagen antigua. 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