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.
Temas
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 eslatest. - 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 esprivate.
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
sha256del 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
Véase también
Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
-
Tutorial: compilación e inserción de una imagen de Docker en Amazon ECR con CodePipeline (tipo V2). Este tutorial proporciona un ejemplo de Dockerfile e instrucciones para crear una canalización que inserta la imagen en ECR con un cambio en el repositorio de código fuente y, a continuación, la implementa en Amazon ECS.