Adicionar uma ação entre regiões em CodePipeline - AWS CodePipeline

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á.

Adicionar uma ação entre regiões em CodePipeline

AWS CodePipeline inclui várias ações que ajudam você a configurar recursos de criação, teste e implantação para seu processo de lançamento automatizado. Você pode adicionar ações ao seu funil que estejam em uma AWS região diferente do seu funil. Quando an serviço da AWS é o provedor de uma ação e esse tipo de ação/tipo de provedor está em uma AWS região diferente do seu pipeline, essa é uma ação entre regiões.

nota

As ações entre regiões são suportadas e só podem ser criadas nas AWS regiões em que CodePipeline são suportadas. Para obter uma lista das AWS regiões com suporte para CodePipeline, consulteCotas em AWS CodePipeline.

Você pode usar o console ou AWS CloudFormation adicionar ações entre regiões em pipelines. AWS CLI

nota

Certos tipos de ação CodePipeline podem estar disponíveis somente em determinadas AWS regiões. Observe também que pode haver AWS regiões em que um tipo de ação esteja disponível, mas um AWS provedor específico para esse tipo de ação não esteja disponível.

Ao criar ou editar um pipeline, é necessário ter um bucket de artefato na região do pipeline e ter um bucket de artefato por região em que planeja executar uma ação. Para obter mais informações sobre o parâmetro ArtifactStores, consulte CodePipeline referência de estrutura de tubulação.

nota

CodePipeline manipula a cópia de artefatos de uma AWS região para outras regiões ao realizar ações entre regiões.

Se você usa o console para criar um pipeline ou ações entre regiões, os buckets de artefatos padrão são configurados nas regiões CodePipeline em que você tem ações. Ao usar o AWS CLI, AWS CloudFormation, ou um SDK para criar um pipeline ou ações entre regiões, você fornece o repositório de artefatos para cada região em que você tem ações.

nota

Você deve criar o repositório de artefatos e a chave de criptografia na mesma AWS região da ação entre regiões e na mesma conta do seu pipeline.

Não é possível criar ações entre regiões para os seguintes tipos de ação:

  • Ações de origem

  • Ações de terceiros

  • Ações personalizadas

nota

Ao usar a ação de invocação Lambda entre regiões CodePipeline em, o status da execução lambda usando o PutJobFailureResulte deve ser enviado para PutJobSuccessResulta AWS região em que a função Lambda está presente e não para a região onde existe. CodePipeline

Quando um pipeline inclui uma ação entre regiões como parte de um estágio, CodePipeline replica somente os artefatos de entrada da ação entre regiões da região do pipeline para a região da ação.

nota

A região do pipeline e a região em que seus recursos de detecção de alterações de CloudWatch eventos são mantidos permanecem as mesmas. A região em que o pipeline é hospedado não se altera.

Gerenciar ações entre regiões em um pipeline (console)

Você pode usar o CodePipeline console para adicionar uma ação entre regiões a um pipeline existente. Para criar um novo pipeline com ações entre regiões usando o assistente Criar pipeline, consulte Criar um pipeline (console).

No console, crie uma ação entre regiões em um estágio do pipeline escolhendo o provedor da ação e o campo Região, que lista os recursos criados nessa região para esse provedor. Quando você adiciona uma ação entre regiões, CodePipeline usa um bucket de artefatos separado na região da ação. Para obter mais informações sobre buckets de artefatos entre regiões, consulte CodePipeline referência de estrutura de tubulação.

Adicionar uma ação entre regiões a um estágio de pipeline (console)

Use o console para adicionar uma ação entre regiões a um pipeline.

nota

Se o pipeline estiver em execução quando as alterações forem salvas, essa execução não será concluída.

Adicionar uma ação entre regiões
  1. Faça login no console em http://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Selecione o pipeline e escolha Edit (Editar).

  3. Na parte inferior do diagrama, escolha + Add stage (+ Adicionar estágio) se estiver adicionando um novo estágio ou escolha Edit stage (Editar estágio) se quiser adicionar a ação a um estágio existente.

  4. Em Edit: <Stage> (Editar: <estágio>), escolha + Add action group (+ Adicionar grupo de ações) para adicionar uma ação serial. Ou escolha + Add action (+ Adicionar ação) para adicionar uma ação paralela.

  5. Na página Edit action (Editar ação):

    1. Em Nome da ação, insira um nome para a ação entre regiões.

    2. Em Action provider (Provedor de ação), escolha o provedor de ação.

    3. Em Região, escolha a AWS região em que você criou ou planeja criar o recurso para a ação. Quando a região for selecionada, os recursos disponíveis para essa região serão listados para seleção. O campo Região designa onde os AWS recursos são criados para esse tipo de ação e tipo de provedor. Esse campo é exibido apenas para ações em que o provedor de ação é um serviço da AWS. O campo Região assume como valor padrão a mesma Região da AWS do seu pipeline.

    4. Em Input artifacts (Artefatos de entrada) escolha a entrada adequada do estágio anterior. Por exemplo, se o estágio anterior for um estágio de origem, escolha SourceArtifact.

    5. Preencha todos os campos obrigatórios para o provedor de ação que está configurando.

    6. Em Output artifacts (Artefatos de saída) escolha a saída adequada para o próximo estágio. Por exemplo, se o próximo estágio for um estágio de implantação, escolha BuildArtifact.

    7. Escolha Salvar.

  6. Em Edit: <Stage> (Editar: <estágio>), escolha Done (Concluído).

  7. Escolha Salvar.

Editar uma ação entre regiões em um estágio de pipeline (console)

Use o console para editar uma ação entre regiões existente em um pipeline.

nota

Se o pipeline estiver em execução quando as alterações forem salvas, essa execução não será concluída.

Como editar uma ação entre regiões
  1. Faça login no console em https://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Selecione o pipeline e escolha Edit (Editar).

  3. Selecione Edit stage (Editar estágio).

  4. Em Edit: <Stage> (Editar: <estágio>), escolha o ícone para editar uma ação existente.

  5. Na página Edit action (Editar ação), faça alterações nos campos, conforme apropriado.

  6. Em Edit: <Stage> (Editar: <estágio>), escolha Done (Concluído).

  7. Escolha Salvar.

Excluir uma ação entre regiões de um estágio de pipeline (console)

Use o console para excluir uma ação entre regiões existente de um pipeline.

nota

Se o pipeline estiver em execução quando as alterações forem salvas, essa execução não será concluída.

Como excluir uma ação entre regiões
  1. Faça login no console em http://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Selecione o pipeline e escolha Edit (Editar).

  3. Selecione Edit stage (Editar estágio).

  4. Em Edit: <Stage> (Editar: <estágio>), escolha o ícone para excluir uma ação existente.

  5. Em Edit: <Stage> (Editar: <estágio>), escolha Done (Concluído).

  6. Escolha Salvar.

Adicionar uma ação entre regiões a um pipeline (CLI)

Você pode usar o AWS CLI para adicionar uma ação entre regiões a um pipeline existente.

Para criar uma ação entre regiões em um estágio de pipeline com o AWS CLI, você adiciona a ação de configuração junto com um region campo opcional. É necessário já ter criado um bucket de artefatos na região da ação. Em vez de fornecer o parâmetro artifactStore do pipeline de região única, use o parâmetro artifactStores para incluir uma listagem de cada bucket de artefatos da região.

nota

Nesta demonstração e seus exemplos, RegionA é a região em que o pipeline é criado. Ele tem acesso à região Um bucket Amazon S3 usado para armazenar artefatos de pipeline e a função de serviço usada por. CodePipeline RegionB é a região em que o aplicativo, CodeDeploy o grupo de implantação e a função de serviço usados CodeDeploy pelo são criados.

Pré-requisitos

É necessário criar os seguintes itens:

  • Um pipeline em RegionA.

  • Um bucket de artefatos do Amazon S3 em RegionB.

  • Os recursos para sua ação, como seu CodeDeploy aplicativo e grupo de implantação para uma ação de implantação entre regiões, na RegionB.

Adicionar uma ação entre regiões a um pipeline (CLI)

Use o AWS CLI para adicionar uma ação entre regiões a um pipeline.

Adicionar uma ação entre regiões
  1. Para um pipeline na RegiãoA, execute o comando get-pipeline 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 --name MyFirstPipeline >pipeline.json

    Este comando retorna nada, mas o arquivo que você criou deve aparecer no diretório onde você executou o comando.

  2. Adicione o campo region para adicionar um novo estágio com a ação entre regiões que inclui a região e os recursos para sua ação. O exemplo de JSON a seguir adiciona um estágio de implantação com uma ação de implantação entre regiões onde o provedor está CodeDeploy, em uma nova região. us-east-1

    { "name": "Deploy", "actions": [ { "inputArtifacts": [ { "name": "SourceArtifact" } ], "name": "Deploy", "region": "RegionB", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "name", "DeploymentGroupName": "name" }, "runOrder": 1 }
  3. Na estrutura do pipeline, remova o campo artifactStore e adicione o mapa artifactStores para a nova ação entre regiões. O mapeamento deve incluir uma entrada para cada AWS região na qual você tem ações. Para cada entrada no mapeamento, os recursos devem estar na respectiva AWS região. No exemplo abaixo, ID-A é o ID da chave de criptografia para a RegionA e ID-B é o ID da chave de criptografia para a RegionB.

    "artifactStores":{ "RegionA":{ "encryptionKey":{ "id":"ID-A", "type":"KMS" }, "location":"Location1", "type":"S3" }, "RegionB":{ "encryptionKey":{ "id":"ID-B", "type":"KMS" }, "location":"Location2", "type":"S3" } }

    O exemplo de JSON a seguir exibe o bucket da us-west-2 como my-storage-bucket e adiciona o novo bucket da us-east-1 chamado my-storage-bucket-us-east-1.

    "artifactStores": { "us-west-2": { "type": "S3", "location": "my-storage-bucket" }, "us-east-1": { "type": "S3", "location": "my-storage-bucket-us-east-1" } },
  4. Se você estiver trabalhando com a estrutura do pipeline recuperada por meio do comando get-pipeline, remova as linhas metadata do 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.

  5. 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.json

    Este comando retorna toda a estrutura do pipeline editado. A saída é semelhante à seguinte.

    { "pipeline": { "version": 4, "roleArn": "ARN", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "CodeCommit" }, "outputArtifacts": [ { "name": "SourceArtifact" } ], "configuration": { "PollForSourceChanges": "false", "BranchName": "main", "RepositoryName": "MyTestRepo" }, "runOrder": 1 } ] }, { "name": "Deploy", "actions": [ { "inputArtifacts": [ { "name": "SourceArtifact" } ], "name": "Deploy", "region": "us-east-1", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "name", "DeploymentGroupName": "name" }, "runOrder": 1 } ] } ], "name": "AnyCompanyPipeline", "artifactStores": { "us-west-2": { "type": "S3", "location": "my-storage-bucket" }, "us-east-1": { "type": "S3", "location": "my-storage-bucket-us-east-1" } } } }
    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-execution para iniciar manualmente o pipeline.

  6. Após atualizar o pipeline, a ação entre regiões é exibida no console.

    Uma exibição de alto nível de um pipeline que inclui uma ação entre regiões.

Adicionar uma ação entre regiões a um pipeline (AWS CloudFormation)

Você pode usar AWS CloudFormation para adicionar uma ação entre regiões a um pipeline existente.

Para adicionar uma ação entre regiões com AWS CloudFormation
  1. Adicione o parâmetro Region ao recurso ActionDeclaration em seu modelo, conforme mostrado no exemplo a seguir:

    ActionDeclaration: Type: Object Properties: ActionTypeId: Type: ActionTypeId Required: true Configuration: Type: Map InputArtifacts: Type: Array ItemType: Type: InputArtifact Name: Type: String Required: true OutputArtifacts: Type: Array ItemType: Type: OutputArtifact RoleArn: Type: String RunOrder: Type: Integer Region: Type: String
  2. Em Mappings, adicione o mapa de região como mostrado neste exemplo para um mapeamento chamado SecondRegionMap que mapeia valores para as chaves RegionA e RegionB. No recurso Pipeline, no campo artifactStore, adicione o mapa artifactStores para a nova ação entre regiões da seguinte forma:

    Mappings: SecondRegionMap: RegionA: SecondRegion: "RegionB" RegionB: SecondRegion: "RegionA" ... Properties: ArtifactStores: - Region: RegionB ArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-RegionB - Region: RegionA ArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-RegionA

    O exemplo de YAML a seguir exibe o bucket da RegiãoA como us-west-2 e adiciona o novo bucket da RegiãoB, eu-central-1:

    Mappings: SecondRegionMap: us-west-2: SecondRegion: "eu-central-1" eu-central-1: SecondRegion: "us-west-2" ... Properties: ArtifactStores: - Region: eu-central-1 ArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-eu-central-1 - Region: us-west-2 ArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-us-west-2
  3. Salve o modelo atualizado em seu computador local e abra o console do AWS CloudFormation .

  4. Selecione sua pilha e clique em Create Change Set for Current Stack (Criar conjunto de alterações para a pilha atual).

  5. Carregue o modelo e visualize as alterações listadas no AWS CloudFormation. Essas são as alterações a serem feitas na pilha. Seus novos recursos devem ser exibidos na lista.

  6. Clique em Executar.