View a markdown version of this page

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

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

AWS CodePipeline inclui várias ações que ajudam você a configurar, criar, testar e implantar recursos 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 AWS service (Serviço da AWS) é o provedor de uma ação e esse type/provider tipo de ação está em uma AWS região diferente do seu funil, essa é uma ação entre regiões.

nota

Cross-region as ações são suportadas e só podem ser criadas nas AWS regiões em que CodePipeline há suporte. Para obter uma lista das AWS regiões suportadas para CodePipeline, consulteCotas em AWS CodePipeline.

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

nota

Alguns 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 está disponível, mas um AWS provedor específico para esse tipo de ação não está 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ê usar o console para criar um pipeline ou ações entre regiões, os buckets de artefatos padrão serão configurados nas regiões CodePipeline em que você tem ações. Ao usar o AWS CLI, CloudFormation, ou um SDK para criar um funil ou ações entre regiões, você fornece o bucket de artefatos para cada região em que você tem ações.

nota

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

Você não pode criar ações entre regiões para os seguintes tipos de ação:

  • Ações de origem

  • Third-party ações

  • Ações personalizadas

nota

Ao usar a ação de invocação do Lambda entre regiões em CodePipeline, o status da execução do Lambda usando o PutJobSuccessResult e PutJobFailureResult deve ser enviado para a AWS região em que a função Lambda está presente e não para a região em que 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.

Gerencie 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 Create pipeline (Criar pipeline), consulte Criar um pipeline personalizado (console).

No console, você cria uma ação entre regiões em um estágio de funil escolhendo o provedor de ação e o campo Região, que lista os recursos que você criou 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 do 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 Action name (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 AWS service (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.

Para editar 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 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.

Para 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. Você também deve já ter criado um balde 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

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

Pré-requisitos

É necessário criar os seguintes itens:

  • Um oleoduto emRegionA.

  • Um bucket de artefato 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, emRegionB.

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 entrar um pipelineRegionA, 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 --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 sua 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 em que 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 sua 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 RegionA e ID-B é o ID da chave de criptografia paraRegionB.

    "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. Depois de atualizar seu funil, 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.

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

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

Para adicionar uma ação entre regiões com 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 sua 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 mostra o RegionA bucket como us-west-2 e adiciona o novo RegionB bucket: 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 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 CloudFormation. Essas são as alterações a serem feitas na pilha. Seus novos recursos devem ser exibidos na lista.

  6. Clique em Executar.