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.
Crear una EventBridge regla para una ECR fuente de Amazon (CLI)
Ejecute el comando put-rule especificando lo siguiente:
-
Un nombre que identifique de forma inequívoca la regla que está creando. Este nombre debe ser único en todas las canalizaciones que crees CodePipeline asociadas a tu AWS cuenta.
-
El patrón de eventos para el origen y los campos de detalles utilizados por la regla. Para obtener más información, consulta Amazon EventBridge y Event Patterns.
Para crear una EventBridge regla con Amazon ECR como origen y CodePipeline destino del evento
-
Añada los permisos EventBridge para utilizarlos CodePipeline para invocar la regla. Para obtener más información, consulta Uso de políticas basadas en recursos para Amazon. EventBridge
-
Utilice el siguiente ejemplo para crear la política de confianza que permita EventBridge asumir la función de servicio. Ponga un nombre a la política de confianza
trustpolicyforEB.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Utilice el comando para crear el rol
Role-for-MyRule
y asocie la política de confianza.aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforEB.json
-
Cree la política de permisosJSON, como se muestra en este ejemplo, para la canalización denominada
MyFirstPipeline
. Ponga un nombre a la política de permisospermissionspolicyforEB.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:StartPipelineExecution" ], "Resource": [ "arn:aws:codepipeline:us-west-2:80398EXAMPLE:MyFirstPipeline" ] } ] }
-
Utilice el siguiente comando para asociar la política de permisos
CodePipeline-Permissions-Policy-for-EB
al rolRole-for-MyRule
.¿Por qué voy a hacer este cambio? Al agregar esta política al rol, se crean permisos para EventBridge.
aws iam put-role-policy --role-name Role-for-MyRule --policy-name CodePipeline-Permissions-Policy-For-EB --policy-document file://permissionspolicyforEB.json
-
-
Llame al comando put-rule e incluya los parámetros
--name
,--event-pattern
y--role-arn
.¿Por qué voy a hacer este cambio? Debe crear un evento con una regla que especifique cómo se debe hacer una inserción de imagen, y un objetivo que indique el nombre de la canalización que va a iniciar el evento.
El siguiente comando de ejemplo crea una regla llamada
MyECRRepoRule
.aws events put-rule --name "MyECRRepoRule" --event-pattern "{\"detail-type\":[\"ECR Image Action\"],\"source\":[\"aws.ecr\"],\"detail\":{\"action-type\":[\"PUSH\"],\"image-tag\":[\"latest\"],\"repository-name\":[\"eb-test\"],\"result\":[\"SUCCESS\"]}}}" --role-arn "arn:aws:iam::
ACCOUNT_ID
:role/Role-for-MyRule"nota
Para ver el patrón de eventos completo compatible con ECR los eventos de Amazon, consulte Amazon ECR Events EventBridge o Amazon Elastic Container Registry Events.
-
Para añadirlo CodePipeline como destino, ejecuta el put-targets comando e incluye los siguientes parámetros:
-
El parámetro
--rule
se usa con elrule_name
que creó con el comando put-rule. -
El parámetro
--targets
se usa con elId
del destino de la lista de destinos y elARN
de la canalización de destino.
El siguiente comando de muestra especifica que, para la regla denominada
MyECRRepoRule
, el destinoId
se compone del número uno, lo que indica que, en lo que puede ser una lista de destinos de la regla, se trata del destino 1. El comando de ejemplo también especifica unArn
de ejemplo para la canalización y elRoleArn
de ejemplo para la regla. La canalización se inicia cuando se produce algún cambio en el repositorio.aws events put-targets --rule MyECRRepoRule --targets Id=1,Arn=arn:aws:codepipeline:us-west-2:80398EXAMPLE:TestPipeline,RoleArn=arn:aws:iam::80398EXAMPLE:role/Role-for-MyRule
-