Crie um pipeline em regiões da AWS que não oferecem suporte à 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 oferecem suporte à AWS CodePipeline

Criado por Anand Krishna Varanasi (AWS)

Repositório de códigos: invisible-codepipeline-unsupported-regions

Ambiente: PoC ou piloto

Tecnologias: Infraestrutura; DevOps

Serviços da AWS: AWS CodeBuild; AWS CodeCommit; AWS CodeDeploy; AWS CodePipeline

Resumo

CodePipeline A AWS é 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 AWS e de parceiros da AWS e produtos de código aberto para fornecer um serviço de end-to-end fluxo de trabalho para implantações rápidas de aplicativos e infraestrutura.

No entanto, CodePipeline não é compatível com todas as regiões da AWS e é útil ter um orquestrador invisível que conecte os serviços de CI/CD da AWS. Esse padrão descreve como implementar um pipeline de end-to-end fluxo de trabalho em regiões da AWS onde ainda CodePipeline não há suporte usando serviços de CI/CD da AWS, como AWS CodeBuild, CodeCommit AWS e AWS. CodeDeploy

Pré-requisitos e limitações

Pré-requisitos

  • Uma conta AWS ativa

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

Arquitetura

Pilha de tecnologias de destino

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 do 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

Serviços da AWS

  • CodeBuildA AWS é um serviço de criação totalmente gerenciado que ajuda você a compilar o código-fonte, executar testes unitários e produzir artefatos prontos para implantação.

  • CodeCommitA AWS é um serviço de controle de versão que ajuda você a armazenar e gerenciar repositórios Git de forma privada, sem precisar gerenciar seu próprio sistema de controle de origem.

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

  • CodePipelineA AWS ajuda você a modelar e configurar rapidamente os diferentes estágios de uma versão de software e automatizar as etapas necessárias para liberar alterações de software continuamente.

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

Código

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

Épicos

TarefaDescriçãoHabilidades 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
TarefaDescriçãoHabilidades 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"

onde:

  • pipeline_account é a conta da AWS na qual o pipeline será compilado.

  • pipeline_region é a região da AWS onde o pipeline será construído.

  • repo_nameé o nome do CodeCommit repositório.

  • ec2_tag_key é a tag anexada à instância do 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 estruturas CDK da AWS.

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

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

Implante a aplicação WS CDK CLI de exemplo.

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

cdk deploy
AWS DevOps
TarefaDescriçãoHabilidades necessárias

Configure o 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 pipeline de CI/CD para o 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
TarefaDescriçãoHabilidades 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