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 CodeCommit fonte (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 CodeCommit como origem do evento e CodePipeline como destino
-
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. -
Use o comando a seguir para criar a função
Role-for-MyRulee anexar a política de confiança.aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforEB.json -
Crie o JSON de política de permissões, conforme mostrado neste exemplo, para o pipeline denominado
MyFirstPipeline. Nomeie a politica de permissõespermissionspolicyforEB.json. -
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-patterne--role-arn.Por que estou fazendo essa alteração? Esse comando permite que o AWS CloudFormation crie o evento.
O comando de exemplo a seguir cria uma regra chamada
MyCodeCommitRepoRule.aws events put-rule --name "MyCodeCommitRepoRule" --event-pattern "{\"source\":[\"aws.codecommit\"],\"detail-type\":[\"CodeCommit Repository State Change\"],\"resources\":[\"repository-ARN\"],\"detail\":{\"referenceType\":[\"branch\"],\"referenceName\":[\"main\"]}}" --role-arn "arn:aws:iam::ACCOUNT_ID:role/Role-for-MyRule" -
Para adicionar CodePipeline como destino, chame o put-targets comando e inclua os seguintes parâmetros:
-
O parâmetro
--ruleé usado comrule_namecriado por meio de put-rule. -
O parâmetro
--targetsé usado com oIdda lista do destino na lista de destinos e oARNdo pipeline de destino.
O exemplo de comando a seguir especifica que, para a regra chamada
MyCodeCommitRepoRule, oIddo destino é composto do número um, indicando que, em uma lista de destinos para a regra, esse é o destino 1. O exemplo de comando também especifica um exemploARNpara o pipeline. O pipeline é iniciado quando uma alteração é feita no repositório.aws events put-targets --rule MyCodeCommitRepoRule --targets Id=1,Arn=arn:aws:codepipeline:us-west-2:80398EXAMPLE:TestPipeline -
-
(Opcional) Para configurar um transformador de entrada com substituições de origem para um ID de imagem específico, use o seguinte JSON no comando da CLI. O exemplo a seguir configura uma substituição em que:
-
O
actionName,Sourceneste exemplo, é o valor dinâmico, definido na criação do pipeline, não derivado do evento de origem. -
O
revisionType,COMMIT_IDneste exemplo, é o valor dinâmico, definido na criação do pipeline, não derivado do evento de origem. -
O
revisionValue, <revisionValue> neste exemplo, é derivado da variável de evento de origem.
{ "Rule": "my-rule", "Targets": [ { "Id": "MyTargetId", "Arn": "pipeline-ARN", "InputTransformer": { "sourceRevisions": { "actionName": "Source", "revisionType": "COMMIT_ID", "revisionValue": "<revisionValue>" }, "variables": [ { "name": "Branch_Name", "value": "value" } ] } } ] } -
Para editar o PollForSourceChanges parâmetro do seu funil
Importante
Ao criar um pipeline com esse método, o parâmetro PollForSourceChanges é padronizado como verdadeiro se não for explicitamente definido como falso. Ao adicionar a detecção de alterações baseada em eventos, é necessário adicionar o parâmetro a sua saída e defini-lo como falso para desativar a sondagem. Caso contrário, o pipeline inicia duas vezes para uma única alteração de origem. Para obter detalhes, consulte Configurações válidas para o parâmetro PollForSourceChanges.
-
Execute o get-pipeline comando para copiar a estrutura do pipeline em um arquivo JSON. Por exemplo, para um pipeline nomeado
MyFirstPipeline, execute o seguinte comando:aws codepipeline get-pipeline --nameMyFirstPipeline>pipeline.jsonEste comando retorna nada, mas o arquivo que você criou deve aparecer no diretório onde você executou o comando.
-
Abra o arquivo JSON em qualquer editor de texto plano e altere o
PollForSourceChangesparâmetrofalsepara editar o estágio de origem, como mostrado no exemplo a seguir.Por que estou fazendo essa alteração? A alteração deste parâmetro para
falsedesativa as verificações periódicas para que você possa utilizar apenas a detecção de alterações baseada em eventos."configuration": {"PollForSourceChanges": "false","BranchName": "main", "RepositoryName": "MyTestRepo" }, -
Se você estiver trabalhando com a estrutura do pipeline recuperada por meio do comando get-pipeline, remova as linhas
metadatado arquivo JSON. Caso contrário, o comando update-pipeline não é capaz de utilizá-la. Remova as linhas"metadata": { },"created","pipelineARN"e os campos"updated".Por exemplo, remova as seguintes linhas da estrutura:
"metadata": { "pipelineArn": "arn:aws:codepipeline:region:account-ID:pipeline-name", "created": "date", "updated": "date" },Salve o arquivo.
-
Para aplicar suas alterações, execute o comando update-pipeline especificando o arquivo JSON do pipeline:
Importante
Não se esqueça de incluir
file://antes do nome de arquivo. Ele é obrigatório nesse comando.aws codepipeline update-pipeline --cli-input-json file://pipeline.jsonEste comando retorna toda a estrutura do pipeline editado.
nota
O comando update-pipeline interrompe o pipeline. Se uma revisão estiver sendo executada pelo pipeline quando você executar o comando update-pipeline, essa execução será interrompida. Você deve iniciar manualmente o pipeline para executar a revisão através do pipeline atualizado. Use o comando
start-pipeline-executionpara iniciar manualmente o pipeline.