Referencia de la acción de compilación ECRBuildAndPublish - AWS CodePipeline

Referencia de la acción de compilación ECRBuildAndPublish

Esta acción de compilación permite automatizar la compilación e inserción de una nueva imagen cuando se produce un cambio en el origen. Esta acción realiza la compilación a partir de una ubicación especificada en el archivo Docker e inserta la imagen. Esta acción de compilación no es la misma que la acción de origen de Amazon ECR en CodePipeline, que desencadena la canalización cuando se produce un cambio en el repositorio de código fuente de Amazon ECR. Para obtener información acerca de esa acción, consulte Referencia de acciones de origen de Amazon ECR.

No se trata de una acción de origen que vaya a desencadenar la canalización. Esta acción compila una imagen y la inserta en el repositorio de imágenes de Amazon ECR.

Previamente, debe haber creado un repositorio de Amazon ECR y agregado un Dockerfile al repositorio de código fuente, como GitHub, antes de agregar la acción a la canalización.

importante

Esta acción utiliza la computación de CodeBuild administrada por CodePipeline para ejecutar comandos en un entorno de compilación. Si ejecuta la acción de Comandos, se le cobrarán cargos por separado en AWS CodeBuild.

nota

Esta acción solo está disponible para canalizaciones de tipo V2.

Tipo de acción

  • Categoría: Build

  • Propietario: : AWS

  • Proveedor: ECRBuildAndPublish

  • Versión: 1

Parámetros de configuración

ECRRepositoryName

Obligatorio: sí

Nombre del repositorio de Amazon ECR donde se inserta la imagen.

DockerFilePath

Obligatorio: no

Ubicación del archivo Docker utilizado para compilar la imagen. Opcionalmente, puede proporcionar una ubicación alternativa para el archivo docker si no está en el nivel raíz.

nota

Si no se especifica ningún valor para DockerFilePath, el valor predeterminado es el nivel raíz del repositorio de código fuente.

ImageTags

Obligatorio: no

Etiquetas utilizadas para la imagen. Puede introducir varias etiquetas como una lista de cadenas delimitadas por comas.

nota

Si no se especifica un valor para ImageTags, el valor predeterminado es latest.

RegistryType

Obligatorio: no

Especifica si el repositorio es público o privado. Los valores válidos son private | public.

nota

Si no se especifica un valor para RegistryType, el valor predeterminado es private.

Artefactos de entrada

  • Número de artefactos: 1

  • Descripción: el artefacto generado por la acción de origen que contiene el Dockerfile necesario para compilar la imagen.

Artefactos de salida

  • Número de artefactos: 0

Variables de salida

Cuando se configura, esta acción produce variables a las que se puede hacer referencia mediante la configuración de acción de una acción descendente en la canalización. Esta acción produce variables que se pueden ver como variables de salida, incluso si la acción no tiene un espacio de nombres. Configure una acción con un espacio de nombres para que esas variables estén disponibles para la configuración de las acciones posteriores.

Para obtener más información, consulte Referencia de variables.

ECRImageDigestId

El resumen sha256 del manifiesto de la imagen.

ECRRepositoryName

El nombre del repositorio de Amazon ECR al que se envió la imagen.

Permisos del rol de servicio: acción ECRBuildAndPublish

Para la compatibilidad con la acción ECRBuildAndPublish, agregue lo siguiente a su declaración de política:

{ "Statement": [ { "Sid": "ECRRepositoryAllResourcePolicy", "Effect": "Allow", "Action": [ "ecr:DescribeRepositories", "ecr:GetAuthorizationToken", "ecr-public:DescribeRepositories", "ecr-public:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload", "ecr:PutImage", "ecr:GetDownloadUrlForLayer", "ecr:BatchCheckLayerAvailability" ], "Resource": "PrivateECR_Resource_ARN" }, { "Effect": "Allow", "Action": [ "ecr-public:GetAuthorizationToken", "ecr-public:DescribeRepositories", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart", "ecr-public:CompleteLayerUpload", "ecr-public:PutImage", "ecr-public:BatchCheckLayerAvailability", "sts:GetServiceBearerToken" ], "Resource": "PublicECR_Resource_ARN" }, { "Effect": "Allow", "Action": [ "sts:GetServiceBearerToken" ], "Resource": "*" } ] }

Además, si aún no se han agregado para la acción Commands, agregue los siguientes permisos a su rol de servicio para ver los registros de CloudWatch.

{ "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "resource_ARN" },
nota

Reduzca los permisos al nivel de recursos de la canalización a través de los permisos basados en recursos de la declaración de la política del rol de servicio.

Para obtener más información sobre esta acción, consulte Referencia de la acción de compilación ECRBuildAndPublish.

Declaración de acciones

YAML
name: ECRBuild actionTypeId: category: Build owner: AWS provider: ECRBuildAndPublish version: '1' runOrder: 1 configuration: ECRRepositoryName: actions/my-imagerepo outputArtifacts: [] inputArtifacts: - name: SourceArtifact region: us-east-1 namespace: BuildVariables
JSON
{ "name": "ECRBuild", "actionTypeId": { "category": "Build", "owner": "AWS", "provider": "ECRBuildAndPublish", "version": "1" }, "runOrder": 1, "configuration": { "ECRRepositoryName": "actions/my-imagerepo" }, "outputArtifacts": [], "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-east-1", "namespace": "BuildVariables" },

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.