

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
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline"></a>

*Anand Krishna Varanasi, Amazon Web Services*

## Resumo
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-summary"></a>

**Aviso**: não AWS CodeCommit está mais disponível para novos clientes. Os clientes existentes do AWS CodeCommit podem continuar usando o serviço normalmente. [Saiba mais](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider/)

 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 da AWS CI/CD . 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 é suportado pelo uso de CI/CD serviços da AWS CodeCommit, como AWS CodeBuild, AWS e AWS CodeDeploy.

## Pré-requisitos e limitações
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ CLI do AWS Cloud Development Kit (AWS CDK) versão 2.28 ou superior

## Arquitetura
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-architecture"></a>

**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](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) 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.

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

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

1. 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\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/e27750de-b597-424e-b5bf-4d58dc9b60cc/images/95fc815e-a762-4142-b0fd-2a716823e498.png)


## Ferramentas
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-tools"></a>

**Serviços da AWS**
+  CodeBuildA [AWS](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) é 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](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) é 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](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 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](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 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)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) é 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](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions).

## Épicos
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-epics"></a>

### Configurar a estação de trabalho do desenvolvedor
<a name="set-up-your-developer-workstation"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale a AWS CDK CLI. | Para obter instruções, consulte a [documentação do AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites). | 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.](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-commit.html) | AWS DevOps | 
| Instale o npm. | Instale o gerenciador de pacotes **npm**. Para obter mais informações, consulte a [documentação do npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). | AWS DevOps | 

### Configurar o pipeline
<a name="set-up-the-pipeline"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone o repositório de códigos. | Clone o repositório de [regiões GitHub CodePipeline não suportadas](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) em sua máquina local executando o comando a seguir.<pre>git clone https://github.com/aws-samples/invisible-codepipeline-unsupported-regions</pre> | DevOps engenheiro | 
| Defina os parâmetros em cdk.json. | Abra o arquivo `cdk.json` e forneça valores para os seguintes parâmetros:<pre>"pipeline_account":"XXXXXXXXXXXX",<br />"pipeline_region":"us-west-2",<br />"repo_name": "app-dev-repo",<br />"ec2_tag_key": "test-vm",<br />"configName" : "cbdeployconfig",<br />"deploymentGroupName": "cbdeploygroup",<br />"applicationName" : "cbdeployapplication",<br />"projectName" : "CodeBuildProject"</pre>em que:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline.html) | 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.<pre>npm i aws-cdk-lib<br />npm run build<br />cdk synth</pre> | 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`).<pre>cdk deploy</pre> | AWS DevOps | 

### Configure o CodeCommit repositório para CodeDeploy
<a name="set-up-the-codecommit-repository-for-codedeploy"></a>


| Tarefa | Description | Habilidades 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.<pre>git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/app-dev-repo</pre>onde o nome do repositório e a região dependem dos valores fornecidos no arquivo `cdk.json`. | AWS DevOps | 

### Teste o pipeline
<a name="test-the-pipeline"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste o pipeline com instruções de implantação. | A `CodeDeploy_Files` pasta do repositório GitHub [CodePipeline Unsupported Regions](https://github.com/aws-samples/invisible-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
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-resources"></a>
+ [Conceitos básicos](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites) (documentação do AWS CDK)
+ [Introdução ao kit de desenvolvimento em nuvem (CDK)](https://catalog.us-east-1.prod.workshops.aws/workshops/5962a836-b214-4fbf-9462-fedba7edcc9b/en-US) (AWS Workshop Studio)
+ [Workshop sobre o AWS CDK](https://cdkworkshop.com/)