View a markdown version of this page

Crie um pipeline em Regiões da AWS que não suportam AWS CodePipeline - Recomendações da AWS

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 um pipeline em Regiões da AWS que não suportam AWS CodePipeline

Anand Krishna Varanasi, Amazon Web Services

Resumo

AWS CodePipeline é um serviço de orquestração de entrega contínua (CD) que faz parte de um conjunto de DevOps ferramentas da Amazon Web Services ()AWS. Ele se integra a uma grande variedade de fontes (como sistemas de controle de versão e soluções de armazenamento), produtos e serviços de integração contínua (CI) da and AWS Partners AWS e produtos de código aberto para fornecer um serviço de fluxo de trabalho de ponta a ponta para implantações rápidas de aplicativos e infraestrutura.

No entanto, CodePipeline não é compatível com todos Regiões da AWS e é útil ter um orquestrador invisível que conecte AWS CI/CD serviços. Esse padrão descreve como implementar um pipeline de fluxo de trabalho de ponta a ponta Regiões da AWS onde ainda CodePipeline não é suportado pelo uso de AWS CI/CD serviços como AWS CodeCommit AWS CodeBuild, e. AWS CodeDeploy

Pré-requisitos e limitações

Pré-requisitos

  • Um ativo Conta da AWS

  • AWS Cloud Development Kit (AWS CDK) CLI versão 2.28 ou posterior

Arquitetura

O diagrama a seguir mostra um pipeline que foi criado em uma região que não oferece suporte CodePipeline, como a região da África (Cidade do Cabo). Um desenvolvedor envia os arquivos de CodeDeploy configuração (também chamados de scripts de gancho do ciclo de vida de implantação) para o repositório Git hospedado por. CodeCommit (Consulte o GitHub repositório fornecido com esse padrão.) Uma EventBridge regra da Amazon é iniciada automaticamente. CodeBuild

Os arquivos de CodeDeploy configuração são obtidos CodeCommit como parte do estágio de origem do pipeline e transferidos para o. CodeBuild 

Na próxima fase, CodeBuild executa as seguintes tarefas: 

  1. Faz o download do arquivo TAR do código-fonte da aplicação. Você pode configurar o nome desse arquivo usando o Parameter Store, um recurso de AWS Systems Manager.

  2. Faz o download dos arquivos de CodeDeploy configuração.

  3. Cria um arquivo combinado de código-fonte e arquivos CodeDeploy de configuração do aplicativo que são específicos para o tipo de aplicativo.

  4. Inicia a CodeDeploy implantação em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) usando o arquivamento combinado.

Criação de pipeline em uma região da AWS sem suporte

Ferramentas

AWS serviços

  • O AWS CodeBuild é um serviço de compilação totalmente gerenciado que permite compilar o código-fonte, realizar testes de unidade e produzir artefatos preparados para a implantação.

  • O AWS CodeCommit é um serviço de controle de versão que ajuda no armazenamento e no gerenciamento de repositórios Git de forma privada, sem a necessidade de administrar o próprio sistema de controle de origem.

  • AWS CodeDeployautomatiza implantações no Amazon EC2 ou em instâncias, AWS Lambda funções ou serviços do Amazon Elastic Container Service (Amazon ECS) no local.

  • O AWS CodePipeline ajuda você a modelar e configurar rapidamente os diferentes estágios de uma versão de software, além de automatizar as etapas necessárias para a implantação contínua de alterações.

  • AWS Cloud Development Kit (AWS CDK)é uma estrutura de desenvolvimento de software que ajuda você a definir e provisionar Nuvem AWS infraestrutura em código.

Código

O código desse padrão está disponível no repositório GitHub CodePipeline Unsupported Regions.

Épicos

TarefaDescriptionHabilidades necessárias

Instale a AWS CDK CLI.

Para obter instruções, consulte a documentação do AWS CDK.

AWS DevOps

Instalar um cliente Git.

Para criar commits, você pode usar um cliente Git instalado em seu computador local e, em seguida, enviar seus commits para o repositório. CodeCommit Para configurar CodeCommit com seu cliente Git, consulte a CodeCommit documentação.

AWS DevOps

Instale o npm.

Instale o gerenciador de pacotes npm. Para obter mais informações, consulte a documentação do npm.

AWS DevOps
TarefaDescriptionHabilidades necessárias

Clone o repositório de códigos.

Clone o repositório de regiões GitHub CodePipeline não suportadas em sua máquina local executando o comando a seguir.

git clone https://github.com/aws-samples/invisible-codepipeline-unsupported-regions
DevOps engenheiro

Defina os parâmetros em cdk.json.

Abra o arquivo cdk.json e forneça valores para os seguintes parâmetros:

"pipeline_account":"XXXXXXXXXXXX", "pipeline_region":"us-west-2", "repo_name": "app-dev-repo", "ec2_tag_key": "test-vm", "configName" : "cbdeployconfig", "deploymentGroupName": "cbdeploygroup", "applicationName" : "cbdeployapplication", "projectName" : "CodeBuildProject"

em que:

  • pipeline_accounté Conta da AWS onde o gasoduto será construído.

  • pipeline_regioné Região da AWS onde o gasoduto será construído.

  • repo_nameé o nome do CodeCommit repositório.

  • ec2_tag_keyé a tag anexada à instância do Amazon EC2 na qual você deseja implantar o código.

  • configNameé o nome do arquivo CodeDeploy de configuração.

  • deploymentGroupNameé o nome do grupo CodeDeploy de implantação.

  • applicationNameé o nome do CodeDeploy aplicativo.

  • projectNameé o nome CodeBuild do projeto.

AWS DevOps

Configure a biblioteca de AWS CDK construção.

No GitHub repositório clonado, use os comandos a seguir para instalar a biblioteca de AWS CDK construção, criar seu aplicativo e sintetizar para gerar o AWS CloudFormation modelo para o aplicativo.

npm i aws-cdk-lib npm run build cdk synth
AWS DevOps

Implante o AWS CDK aplicativo de amostra.

Implante o código executando o comando a seguir em uma região sem suporte (como af-south-1).

cdk deploy
AWS DevOps
TarefaDescriptionHabilidades necessárias

Configure CI/CD para o aplicativo.

Clone o CodeCommit repositório que você especificou no cdk.json arquivo (chamado app-dev-repo por padrão) para configurar o CI/CD pipeline do aplicativo.

git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/app-dev-repo

onde o nome do repositório e a região dependem dos valores fornecidos no arquivo cdk.json.

AWS DevOps
TarefaDescriptionHabilidades necessárias

Teste o pipeline com instruções de implantação.

A CodeDeploy_Files pasta do repositório GitHub CodePipeline Unsupported Regions inclui arquivos de amostra que instruem CodeDeploy a implantação do aplicativo. O appspec.yml arquivo é um arquivo CodeDeploy de configuração que contém ganchos para controlar o fluxo de implantação do aplicativo. Você pode usar os arquivos de amostra index.html, start_server.sh, stop_server.sh e install_dependencies.sh para atualizar um site hospedado no Apache. Esses são exemplos: você pode usar o código no GitHub repositório para implantar qualquer tipo de aplicativo. Quando os arquivos são enviados para o CodeCommit repositório, o pipeline invisível é iniciado automaticamente. Para ver os resultados da implantação, verifique os resultados das fases individuais nos CodeBuild CodeDeploy consoles e.

AWS DevOps

Recursos relacionados