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.
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 cree CodePipeline asociadas a su 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 destino CodePipeline 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 permite que EventBridge asuma el rol 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 el JSON de la política de permisos, tal y 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 añadir 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 los eventos de Amazon ECR, consulte Amazon ECR Events o EventBridge Amazon Elastic Container Registry Events.
-
Para añadirlo CodePipeline como destino, put-targets ejecute el comando e incluya 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
-
-
(Opcional) Para configurar un transformador de entrada con anulaciones de fuente para un ID de imagen específico, utilice el siguiente JSON en el comando CLI. En el siguiente ejemplo, se configura una anulación en la que:
-
Source
En este ejemploactionName
, es el valor dinámico, definido en la creación de la canalización, no derivado del evento de origen. -
IMAGE_DIGEST
En este ejemplorevisionType
, es el valor dinámico, definido en el momento de la creación de la canalización, no derivado del evento de origen. -
En este ejemplo
revisionValue
, <revisionValue
> se deriva de la variable del evento de origen.
{ "Rule": "my-rule", "Targets": [ { "Id": "MyTargetId", "Arn": "ARN", "InputTransformer": { "InputPathsMap": { "revisionValue": "$.detail.image-digest" }, "InputTemplate": { "sourceRevisions": { "actionName": "
Source
", "revisionType": "IMAGE_DIGEST
", "revisionValue": "<revisionValue
>" } } } } ] } -