As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Crie uma EventBridge regra para uma ECR fonte da Amazon (CLI)
Use o comando put-rule, especificando:
-
Um nome que identifique de forma exclusiva a regra que você está criando. Esse nome deve ser exclusivo em todos os pipelines que você cria CodePipeline associados à sua AWS conta.
-
O padrão de evento para a origem e os campos detalhados usados pela regra. Para obter mais informações, consulte Amazon EventBridge e Event Patterns.
Para criar uma EventBridge regra com a Amazon ECR como origem e CodePipeline destino do evento
-
Adicione permissões para usar EventBridge CodePipeline para invocar a regra. Para obter mais informações, consulte Uso de políticas baseadas em recursos para a Amazon. EventBridge
-
Use o exemplo a seguir para criar a política de confiança que permite assumir EventBridge a função de serviço. Nomeie a política de confiança
trustpolicyforEB.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Use o comando a seguir para criar a função
Role-for-MyRule
e anexar a política de confiança.aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforEB.json
-
Crie a política de permissõesJSON, conforme mostrado neste exemplo, para o pipeline chamado
MyFirstPipeline
. Nomeie a politica de permissõespermissionspolicyforEB.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:StartPipelineExecution" ], "Resource": [ "arn:aws:codepipeline:us-west-2:80398EXAMPLE:MyFirstPipeline" ] } ] }
-
Use o comando a seguir para anexar a política de permissões
CodePipeline-Permissions-Policy-for-EB
à funçãoRole-for-MyRule
.Por que estou fazendo essa alteração? Adicionar essa política à função cria permissões para EventBridge.
aws iam put-role-policy --role-name Role-for-MyRule --policy-name CodePipeline-Permissions-Policy-For-EB --policy-document file://permissionspolicyforEB.json
-
-
Use o comando put-rule e inclua os parâmetros
--name
,--event-pattern
e--role-arn
.Por que estou fazendo essa alteração? Você deve criar um evento com uma regra que especifique como deve ser feito um envio de imagem por push e um destino que nomeie o pipeline a ser iniciado pelo evento.
O comando de exemplo a seguir cria uma regra chamada
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 o padrão completo de eventos suportado pelos ECR eventos da Amazon, consulte Amazon ECR Events EventBridge e/ou Amazon Elastic Container Registry Events.
-
Para adicionar CodePipeline como destino, chame o put-targets comando e inclua os seguintes parâmetros:
-
O parâmetro
--rule
é usado comrule_name
criado por meio de put-rule. -
O parâmetro
--targets
é usado com oId
da lista do destino na lista de destinos e oARN
do pipeline de destino.
O exemplo de comando a seguir especifica que, para a regra chamada
MyECRRepoRule
, oId
do destino é composto do número um, indicando que, em uma lista de destinos para a regra, esse é o destino 1. O comando de exemplo também especifica um exemploArn
para o pipeline e o exemploRoleArn
para a regra. O pipeline é iniciado quando uma alteração é feita no repositório.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
-