Iniciar um pipeline de acordo com uma programação - AWS CodePipeline

Iniciar um pipeline de acordo com uma programação

Você pode configurar uma regra no EventBridge para iniciar um pipeline de acordo com uma programação.

Criar uma regra do EventBridge que programa o pipeline para iniciar (console)

Para criar uma regra do EventBridge com uma programação como origem do evento
  1. Abra o console do Amazon EventBridge em https://console.aws.amazon.com/events/.

  2. No painel de navegação, escolha Regras.

  3. Escolha Criar regra e, em Detalhes da regra, escolha Programação.

  4. Configure a programação usando uma taxa fixa ou expressão. Para obter mais informações, consulte Schedule Expression for Rules.

  5. Em Targets (Destinos), selecione CodePipeline.

  6. Insira o ARN do pipeline para a execução do pipeline de acordo com essa programação.

    nota

    Você pode encontrar o ARN do pipeline em Configurações no console. Consulte Visualizar o ARN do pipeline e o ARN do perfil de serviço (console).

  7. Selecione uma das opções a seguir para criar ou especificar um perfil de serviço do IAM que dará permissões ao EventBridge para invocar o destino associado à regra do EventBridge (neste caso, o destino é o CodePipeline).

    • Escolha Criar um novo perfil para este recurso específico para criar um perfil de serviço que dê permissões ao EventBridge para iniciar as execuções do pipeline.

    • Escolha Usar perfil de serviço existente para inserir um perfil de serviço que dê permissões ao EventBridge para iniciar as execuções do pipeline.

  8. Escolha Configure details (Configurar detalhes).

  9. Na página Configure rule details (Configurar detalhes da regra), informe um nome e uma descrição para a regra e selecione State (Estado) para habilitá-la.

  10. Se você estiver satisfeito com a regra, escolha Create rule.

Criar uma regra do EventBridge que programa o pipeline para iniciar (CLI)

Para usar a AWS CLI para criar uma regra, chame 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 criados com o CodePipeline associado à sua conta da AWS.

  • A expressão de programação para a regra.

Para criar uma regra do EventBridge com uma programação como origem do evento
  1. Use o comando put-rule e inclua os parâmetros --name e --schedule-expression.

    Exemplos:

    O exemplo de comando a seguir utiliza --schedule-expression para criar uma regra denominada MyRule2 que filtra o EventBridge de acordo com uma programação.

    aws events put-rule --schedule-expression 'cron(15 10 ? * 6L 2002-2005)' --name MyRule2
  2. Para adicionar o CodePipeline como destino, chame o comando put-targets e inclua os seguintes parâmetros:

    • O parâmetro --rule é usado com rule_name criado por meio de put-rule.

    • O parâmetro --targets é usado com o Id da lista do destino na lista de destinos e o ARN do pipeline de destino.

    O exemplo de comando a seguir especifica que, para a regra chamada MyCodeCommitRepoRule, o Id do 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 exemplo ARN para 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
  3. Conceda ao EventBridge as permissões necessárias que o permitirão usar o CodePipeline para invocar a regra. Para obter mais informações, consulte Usar políticas baseadas em recursos para o Amazon EventBridge.

    1. Use o exemplo a seguir para criar a política de confiança que permitirá ao EventBridge assumir o perfil de serviço. Chame-o de trustpolicyforEB.json.

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. 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
    3. Crie o JSON de política de permissões, conforme mostrado neste exemplo, para o pipeline denominado MyFirstPipeline. Nomeie a politica de permissões permissionspolicyforEB.json.

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:StartPipelineExecution" ], "Resource": [ "arn:aws:codepipeline:us-west-2:111122223333:MyFirstPipeline" ] } ] }
    4. Use o comando a seguir para anexar a nova política de permissões CodePipeline-Permissions-Policy-for-EB à função Role-for-MyRule criada.

      aws iam put-role-policy --role-name Role-for-MyRule --policy-name CodePipeline-Permissions-Policy-For-EB --policy-document file://permissionspolicyforCWE.json