

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

# O que CodeDeploy é
<a name="welcome"></a>

CodeDeploy é um serviço de implantação que automatiza implantações de aplicativos em instâncias do Amazon EC2, instâncias locais, funções Lambda sem servidor ou serviços do Amazon ECS.

Você pode implantar uma variedade quase ilimitada de conteúdos de aplicativos, incluindo:
+ Código
+ Funções sem servidor AWS Lambda 
+ Arquivos de configuração e da Web
+ Executáveis
+ Pacotes
+ Scripts
+ Arquivos de multimídia

CodeDeploy pode implantar conteúdo de aplicativo executado em um servidor e armazenado em buckets, GitHub repositórios ou repositórios Bitbucket do Amazon S3. CodeDeploy também pode implantar uma função Lambda sem servidor. Você não precisa fazer alterações no seu código existente antes de poder usar o CodeDeploy. 

CodeDeploy torna mais fácil para você:
+ Lançar novos recursos rapidamente.
+ Atualize as versões da AWS Lambda função.
+ Evite tempo de inatividade durante a implantação do aplicativo.
+ Processar a complexidade da atualização de seus aplicativos sem muitos dos riscos associados a implantações manuais propensas a erro.

O serviço se adequa à sua infraestrutura para que você possa implantar uma instância ou milhares de maneira fácil.

CodeDeploy trabalha com vários sistemas para gerenciamento de configuração, controle de origem, [integração contínua](https://aws.amazon.com/devops/continuous-integration/)[, entrega](https://aws.amazon.com/devops/continuous-delivery/) contínua e implantação contínua. Para obter mais informações, consulte [Integrações de produtos](https://aws.amazon.com/codedeploy/product-integrations/).

 O CodeDeploy console também fornece uma maneira de pesquisar rapidamente seus recursos, como repositórios, criar projetos, aplicativos de implantação e pipelines. Selecione **Go to resource (Acessar recurso)** ou pressione a tecla `/` e digite o nome do recurso. Qualquer correspondência aparecerá na lista. As pesquisas não diferenciam letras maiúsculas de minúsculas. Só é possível ver recursos para os quais você tem permissão de visualizar. Para obter mais informações, consulte [Gerenciamento de identidade e acesso para AWS CodeDeploy](security-iam.md). 

**Topics**
+ [Benefícios do AWS CodeDeploy](#benefits)
+ [Visão geral das CodeDeploy plataformas de computação](#compute-platform)
+ [Visão geral dos tipos de CodeDeploy implantação](#welcome-deployment-overview)
+ [Deixe seu comentário](#welcome-contact-us)
+ [Primary Components](primary-components.md)
+ [Deployments](deployment-steps.md)
+ [Application Specification Files](application-specification-files.md)

## Benefícios do AWS CodeDeploy
<a name="benefits"></a>

CodeDeploy oferece os seguintes benefícios:
+ Aplicativos de **servidor, sem servidor e de contêiner**. CodeDeploypermite implantar aplicativos tradicionais em servidores e aplicativos que implantam uma versão de AWS Lambda função sem servidor ou um aplicativo Amazon ECS.
+ **Implantações automatizadas.** CodeDeploy automatiza totalmente suas implantações de aplicativos em seus ambientes de desenvolvimento, teste e produção. CodeDeployse expande com sua infraestrutura para que você possa implantar em uma instância ou em milhares.
+ **Minimize o tempo de inatividade**. Se seu aplicativo usa a plataforma de computação EC2/On-Premises, CodeDeploy ajuda a maximizar a disponibilidade do seu aplicativo. Durante uma implantação local, CodeDeploy executa uma atualização contínua em todas as instâncias do Amazon EC2. Você pode especificar o número de instâncias a serem colocadas offline de cada vez para atualizações. Durante uma blue/green implantação, a revisão mais recente do aplicativo é instalada nas instâncias substitutas. O tráfego é roteado novamente para essas instâncias no momento que você escolher, seja imediatamente ou assim que o teste do novo ambiente terminar. Para ambos os tipos de implantação, o CodeDeploy controla a integridade do aplicativo de acordo com regras que você configura. 
+ **Interromper e reverter**. Em caso de erros, é possível interromper e reverter implantações automática ou manualmente. 
+ **Controle centralizado**. Você pode iniciar e acompanhar o status de suas implantações por meio do CodeDeploy console ou do AWS CLI. Você recebe um relatório que lista quando cada revisão de aplicativo foi implantada e em quais instâncias do Amazon EC2. 
+ **Fácil de adotar**. CodeDeploy é independente de plataforma e funciona com qualquer aplicativo. Você pode facilmente reutilizar seu código de configuração. CodeDeploy também pode se integrar ao seu processo de lançamento de software ou à cadeia de ferramentas de entrega contínua.
+ **Implantações simultâneas**. Se você tiver mais de um aplicativo que usa a plataforma de computação EC2/local, CodeDeploy pode implantá-los simultaneamente no mesmo conjunto de instâncias.



## Visão geral das CodeDeploy plataformas de computação
<a name="compute-platform"></a>

CodeDeploy é capaz de implantar aplicativos em três plataformas de computação:
+ **EC2/On-Premises**: descreve instâncias de servidores físicos que podem ser instâncias do Amazon EC2 na nuvem, servidores no local ou ambos. Aplicativos criados usando a plataforma de computação EC2/On-Premises podem ser compostos de arquivos executáveis, arquivos de configuração, imagens e outros.

  As implantações que usam a plataforma de computação EC2/On-Premises gerenciam a maneira como o tráfego é direcionado para instâncias usando um tipo de implantação azul/verde ou no local. Para obter mais informações, consulte [Visão geral dos tipos de CodeDeploy implantação](#welcome-deployment-overview).
+ **AWS Lambda**: usado para implantar aplicativos que consistem em uma versão atualizada de uma função Lambda. AWS Lambda gerencia a função Lambda em um ambiente computacional sem servidor composto por uma estrutura computacional de alta disponibilidade. Toda a administração dos recursos computacionais é realizada por AWS Lambda. Para obter mais informações, consulte [Computação e Aplicativos com tecnologia sem servidor](https://aws.amazon.com/serverless/). Para obter mais informações sobre AWS Lambda as funções Lambda, consulte. [AWS Lambda](https://aws.amazon.com/lambda/)

  Você pode gerenciar a forma como o tráfego é transferido para as versões atualizadas da função Lambda durante uma implantação escolhendo uma configuração canária, linear ou linear. all-at-once 
+ **Amazon ECS**: usado para implantar um aplicativo em contêineres do Amazon ECS como um conjunto de tarefas. CodeDeploy executa uma blue/green implantação instalando uma versão atualizada do aplicativo como um novo conjunto de tarefas de substituição. CodeDeploy redireciona o tráfego de produção do conjunto de tarefas original do aplicativo para o conjunto de tarefas de substituição. O conjunto de tarefas original é encerrado após uma implantação bem-sucedida. Para obter mais informações sobre o Amazon ECS, consulte [Amazon Elastic Container Service](https://aws.amazon.com/ecs/).

  Você pode gerenciar a forma como o tráfego é transferido para o conjunto de tarefas atualizado durante uma implantação escolhendo uma configuração canária, linear ou all-at-once linear.
**nota**  
As blue/green implantações do Amazon ECS são suportadas usando e. CodeDeploy CloudFormation Os detalhes dessas implantações são descritos nas seções subsequentes.

A tabela a seguir descreve como CodeDeploy os componentes são usados com cada plataforma de computação. Para obter mais informações, consulte: 
+  [Trabalhando com grupos de implantação em CodeDeploy](deployment-groups.md) 
+  [Trabalhando com implantações em CodeDeploy](deployments.md) 
+  [Trabalhando com configurações de implantação em CodeDeploy](deployment-configurations.md) 
+  [Trabalhando com revisões de aplicativos para CodeDeploy](application-revisions.md) 
+  [Trabalhar com aplicativos no CodeDeploy](applications.md) 


| CodeDeploy componente | EC2/On-Premises | AWS Lambda | Amazon ECS | 
| --- | --- | --- | --- | 
| Grupo de implantação | Implanta uma revisão em um conjunto de instâncias. | Implanta uma nova versão de uma função do Lambda com tecnologia sem servidor em uma infraestrutura de computação de alta disponibilidade. | Especifica o serviço do Amazon ECS com o aplicativo em contêineres para fazer a implantação como um conjunto de tarefas, um receptor de produção e de teste opcional usado para fornecer o tráfego para o aplicativo implantado, quando rotear novamente o tráfego e encerrar o conjunto de tarefas original do aplicativo implantado e configurações opcionais de trigger, alarme e reversão. | 
| Implantação | Implanta uma nova revisão que consiste em um aplicativo e um AppSpec arquivo. O AppSpec especifica como implantar o aplicativo nas instâncias em um grupo de implantação. | Passa o tráfego de produção de uma versão de uma função do Lambda para uma nova versão da mesma função. O AppSpec arquivo especifica qual versão da função Lambda deve ser implantada. | Implanta uma versão atualizada de um aplicativo em contêineres do Amazon ECS como um novo conjunto de tarefas substituto. CodeDeploy redireciona o tráfego de produção do conjunto de tarefas com a versão original para o novo conjunto de tarefas de substituição com a versão atualizada. Quando a implantação for concluída, o conjunto de tarefas original é encerrado. | 
| Configuração de implantação | Configurações que determinam a velocidade de implantação e o número mínimo de instâncias que devem permanecer íntegras em qualquer ponto de uma implantação. | Configurações que determinam como o tráfego é deslocado para as versões atualizadas da função do Lambda. | Configurações que determinam como o tráfego é deslocado para o conjunto de tarefas do Amazon ECS atualizado. | 
| Revisão | Uma combinação de um AppSpec arquivo e arquivos de aplicativo, como executáveis, arquivos de configuração e assim por diante. | Um AppSpec arquivo que especifica qual função Lambda implantar e funções Lambda que podem executar testes de validação durante ganchos de eventos do ciclo de vida da implantação. |  Um AppSpec arquivo que especifica: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/welcome.html)  | 
| Aplicação | Uma coleção de grupos de implantação e revisões. Um aplicativo EC2/On-Premises usa a plataforma de computação EC2/On-Premises. | Uma coleção de grupos de implantação e revisões. Um aplicativo usado para uma AWS Lambda implantação usa a plataforma de computação AWS Lambda sem servidor. | Uma coleção de grupos de implantação e revisões. Um aplicativo usado para uma implantação do Amazon ECS usa a plataforma de computação do Amazon ECS. | 

## Visão geral dos tipos de CodeDeploy implantação
<a name="welcome-deployment-overview"></a>

CodeDeploy fornece duas opções de tipo de implantação:
+ **Implantação no local**: o aplicativo em cada instância no grupo de implantação é interrompido, a última revisão de aplicativo é instalada, e a nova versão do aplicativo é iniciada e validada. Você pode usar um balanceador de carga de forma que cada registro de instância é cancelado durante sua implantação e, em seguida, restaurado para o serviço após a conclusão da implantação. Somente implantações que usam a plataforma de computação EC2/On-Premises podem usar implantações no local. Para obter mais informações sobre implantações no local, consulte [Visão geral de uma implantação no local](#welcome-deployment-overview-in-place).
**nota**  
AWS As implantações do Lambda e do Amazon ECS não podem usar um tipo de implantação local.
+ **Implantação azul/verde**: o comportamento da sua implantação depende de qual plataforma você usa:
  + **Blue/green on an EC2/On-Plataforma de computação local**: as instâncias em um grupo de implantação (o ambiente original) são substituídas por um conjunto diferente de instâncias (o ambiente substituto) usando estas etapas:
    + As instâncias são provisionadas para o ambiente de substituição.
    + A revisão de aplicativo mais recente será instalada nas instâncias de substituição.
    + Um tempo de espera opcional ocorre para atividades como teste de aplicativos e verificação do sistema.
    + As instâncias no ambiente de substituição são registradas com um ou mais balanceadores de carga do Elastic Load Balancing, fazendo com que o tráfego seja redirecionado para elas. O registro das instâncias no ambiente original é cancelado e pode ser encerrado ou mantido em execução para outros usos.
**nota**  
Se você usa uma plataforma computacional EC2/local, esteja ciente de que as blue/green implantações funcionam somente com instâncias do Amazon EC2.
  + **Azul/verde em uma plataforma computacional ou AWS Lambda Amazon ECS****: o tráfego é deslocado em incrementos de acordo com uma configuração **canária**, linear ou de implantação. **all-at-once****
  + **Implantações em azul/verde por meio** de CloudFormation: O tráfego é transferido de seus recursos atuais para seus recursos atualizados como parte de uma atualização de pilha. CloudFormation Atualmente, somente blue/green implantações do ECS são suportadas. 

  Para obter mais informações sobre blue/green implantações, consulte[Visão geral de uma blue/green implantação](#welcome-deployment-overview-blue-green).

**nota**  
Usando o CodeDeploy agente, você pode realizar uma implantação em uma instância na qual está conectado sem a necessidade de um aplicativo, grupo de implantação ou até mesmo uma AWS conta. Para mais informações, consulte [Use o CodeDeploy agente para validar um pacote de implantação em uma máquina local](deployments-local.md).

**Topics**
+ [Visão geral de uma implantação no local](#welcome-deployment-overview-in-place)
+ [Visão geral de uma blue/green implantação](#welcome-deployment-overview-blue-green)

### Visão geral de uma implantação no local
<a name="welcome-deployment-overview-in-place"></a>

**nota**  
AWS As implantações do Lambda e do Amazon ECS não podem usar um tipo de implantação local.

Veja como funciona uma implantação no local:

1. Primeiro, você cria conteúdo implantável em sua máquina de desenvolvimento local ou ambiente similar e, em seguida, adiciona um arquivo de *especificação do aplicativo* (AppSpec arquivo). O AppSpec arquivo é exclusivo do CodeDeploy. Ele define as ações de implantação que você CodeDeploy deseja executar. Você agrupa o conteúdo implantável e o AppSpec arquivo em um arquivo de arquivamento e, em seguida, faz o upload para um bucket ou repositório do Amazon S3. GitHub Esse arquivo é chamado de *revisão de aplicativo* (ou simplesmente de *revisão*).

1. Em seguida, você CodeDeploy fornece informações sobre sua implantação, como de qual bucket ou GitHub repositório do Amazon S3 extrair a revisão e em qual conjunto de instâncias do Amazon EC2 implantar seu conteúdo. CodeDeploy chama um conjunto de instâncias do Amazon EC2 de um grupo de *implantação*. Um grupo de implantação contém instâncias do Amazon EC2 marcadas individualmente, instâncias do Amazon EC2 no Amazon EC2 Auto Scaling ou ambas.

   Cada vez que você carrega com êxito uma nova revisão de aplicativo que deseja implantar no grupo de implantação, esse pacote é definido como a *revisão de destino* para esse grupo de implantação. Em outras palavras, a revisão de aplicativo atualmente direcionada para implantação é a revisão de destino. Ela também é a revisão que é extraída para implantações automáticas.

1. Em seguida, o CodeDeploy agente em cada instância faz uma pesquisa CodeDeploy para determinar o que e quando extrair do bucket GitHub ou repositório especificado do Amazon S3.

1. Por fim, o CodeDeploy agente em cada instância extrai a revisão de destino do bucket GitHub ou repositório do Amazon S3 e, usando as instruções no arquivo, implanta AppSpec o conteúdo na instância.

 CodeDeploy mantém um registro de suas implantações para que você possa obter o status da implantação, os parâmetros de configuração da implantação, a integridade da instância e assim por diante.

### Visão geral de uma blue/green implantação
<a name="welcome-deployment-overview-blue-green"></a>

Uma blue/green implantação é usada para atualizar seus aplicativos e, ao mesmo tempo, minimizar as interrupções causadas pelas alterações de uma nova versão do aplicativo. CodeDeploy provisiona a nova versão do aplicativo junto com a versão antiga antes de redirecionar o tráfego de produção. 
+  **AWS Lambda**: o tráfego é transferido de uma versão de uma função Lambda para uma nova versão da mesma função Lambda. 
+  **Amazon ECS**: o tráfego é passado de um conjunto de tarefas em seu serviço do Amazon ECS para um conjunto de tarefas de substituição atualizado no mesmo serviço do Amazon ECS. 
+  **EC2/On-Premises**: o tráfego é passado de um conjunto de instâncias no ambiente original para um conjunto de instâncias de substituição. 

Todas as implantações do AWS Lambda e do Amazon ECS oferecem uma série de vantagens em relação a uma blue/green. An EC2/On-Premises deployment can be in-place or blue/green. A blue/green implantação local:
+ Você pode instalar e testar um aplicativo no novo ambiente de substituição e implantá-lo na produção simplesmente redirecionando o tráfego.
+  Caso esteja usando a plataforma de computação EC2/On-Premises, mudar novamente para a versão mais recente de um aplicativo é mais rápido e mais confiável. Isso ocorre porque o tráfego pode ser direcionado de volta para as instâncias originais, desde que elas não tenham sido encerradas. Com uma implantação no local, as versões devem ser revertidas com a reimplantação da versão anterior do aplicativo.
+ Se você estiver usando a plataforma de computação EC2/on-premises, novas instâncias são provisionadas para uma blue/green implantação e refletem a maioria das configurações de servidor. up-to-date Isso ajuda a evitar os tipos de problemas que ocorrem algumas vezes em instâncias de execução prolongada.
+ Se você estiver usando a plataforma de computação AWS Lambda, você controla como o tráfego é transferido da versão original da função Lambda para a nova versão AWS da função Lambda. AWS 
+ Caso esteja usando a plataforma de computação do Amazon ECS, você controla como o tráfego é deslocado do conjunto de tarefas original para o novo conjunto de tarefas.

Uma blue/green implantação com CloudFormation pode usar um dos seguintes métodos:
+ **CloudFormation modelos para implantações**: quando você configura implantações com CloudFormation modelos, suas implantações são acionadas por atualizações. CloudFormation Quando você altera um recurso e carrega uma alteração de modelo, uma atualização de pilha CloudFormation inicia a nova implantação. Para obter uma lista dos recursos que você pode usar em CloudFormation modelos, consulte[CloudFormation modelos para CodeDeploy referência](reference-cloudformation-templates.md).
+ **Implantações azul/verdes por meio de CloudFormation**: Você pode usar CloudFormation para gerenciar suas blue/green implantações por meio de atualizações de pilha. Defina os recursos azuis e verdes, além de especificar as configurações de roteamento e estabilização de tráfego, dentro do modelo de pilha. Em seguida, se você atualizar os recursos selecionados durante uma atualização da pilha, CloudFormation gera todos os recursos verdes necessários, desloca o tráfego com base nos parâmetros de roteamento de tráfego especificados e exclui os recursos azuis. *Para obter mais informações, consulte [Automatizar as blue/green implantações do Amazon ECS CodeDeploy usando](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/blue-green.html) o Guia do CloudFormationAWS CloudFormation usuário.*
**nota**  
Compatível somente com blue/green implantações do Amazon ECS.

A forma como você configura uma blue/green implantação depende da plataforma computacional que sua implantação está usando.



#### Implantação azul/verde em uma plataforma AWS Lambda computacional ou Amazon ECS
<a name="blue-green-lambda-compute-type"></a>

Se você estiver usando a plataforma de computação AWS Lambda ou o Amazon ECS, deverá indicar como o tráfego é transferido da função original AWS Lambda ou do conjunto de tarefas do Amazon ECS para a nova função ou conjunto de tarefas. Para indicar como o tráfego é deslocado, você deve especificar uma das seguintes configurações de implantação:
+ **canário**
+ **linear**
+ **all-at-once**

Para obter informações sobre como o tráfego é deslocado em configurações canárias, lineares ou de all-at-once implantação, consulte. [Configuração de implantação](primary-components.md#primary-components-deployment-configuration)

Para obter detalhes sobre a configuração de implantação do Lambda, consulte [Configurações de implantação em uma plataforma de AWS Lambda computação](deployment-configurations.md#deployment-configuration-lambda).

Para obter detalhes sobre a configuração de implantação do Amazon ECS, consulte [Configurações de implantação em uma plataforma de computação do Amazon ECS](deployment-configurations.md#deployment-configuration-ecs).

#### Blue/Green deployment on an EC2/on-plataforma de computação local
<a name="blue-green-server-compute-type"></a>

**nota**  
Você deve usar instâncias do Amazon EC2 para blue/green implantações na plataforma computacional EC2/local. As instâncias locais não são compatíveis com o tipo blue/green de implantação.

Caso esteja usando a plataforma de computação EC2/On-Premises, aplica-se o seguinte:

 É necessário ter uma ou mais instâncias do Amazon EC2 com etiquetas do Amazon EC2 ou um grupo do Amazon EC2 Auto Scaling. As instâncias devem atender a estes requisitos adicionais:
+ Cada instância do Amazon EC2 deve ter o perfil de instância do IAM correto anexado.
+ O CodeDeploy agente deve estar instalado e executado em cada instância.

**nota**  
Normalmente, você também tem uma revisão do aplicativo em execução nas instâncias do seu ambiente original, mas isso não é um requisito para uma blue/green implantação.

Ao criar um grupo de implantação que é usado em blue/green implantações, você pode escolher como seu ambiente substituto é especificado:

**Copie um grupo existente do Amazon EC2 Auto** Scaling: blue/green durante a CodeDeploy implantação, cria as instâncias para seu ambiente substituto durante a implantação. Com essa opção, CodeDeploy usa o grupo Amazon EC2 Auto Scaling que você especifica como modelo para o ambiente de substituição, incluindo o mesmo número de instâncias em execução e muitas outras opções de configuração.

**Escolher instâncias manualmente**: você pode especificar as instâncias a serem contadas como substituição usando tags de instância do Amazon EC2, nome de grupos do Amazon EC2 Auto Scaling ou ambos. Se você escolher essa opção, não precisará especificar as instâncias para o ambiente de substituição até criar uma implantação.

Como isso funciona:

1. Você já tem instâncias ou um grupo do Amazon EC2 Auto Scaling que serve como seu ambiente original. Na primeira vez que você executa uma blue/green implantação, normalmente usa instâncias que já foram usadas em uma implantação local.

1. Em um CodeDeploy aplicativo existente, você cria um grupo de blue/green implantação em que, além das opções necessárias para uma implantação local, você especifica o seguinte:
   + O balanceador de carga ou balanceadores de carga que roteiam o tráfego do ambiente original para o ambiente substituto durante o processo de blue/green implantação.
   + Se deseja redirecionar o tráfego para o ambiente de substituição imediatamente ou esperar e redirecioná-lo manualmente. 
   + A taxa em que o tráfego é direcionado para as instâncias de substituição.
   + Se as instâncias substituídas devem ser encerradas ou continuar em execução.

1. Você cria uma implantação para esse grupo de implementação e, durante o processo, acontece o seguinte:

   1. Se você optou por copiar um grupo de Amazon EC2 Auto Scaling , as instâncias serão provisionadas para o seu ambiente de substituição.

   1. A revisão de aplicativo que você especificou para a implantação será instalada nas instâncias de substituição.

   1. Se você especificou um tempo de espera nas configurações do grupo de implantação, a implantação será pausada. Este é o momento em que é possível executar testes e verificações no ambiente de substituição. Se você não redirecionar manualmente o tráfego antes do final do período de espera, a implantação será interrompida.

   1. As instâncias no ambiente de substituição serão registradas em um balanceador de carga do Elastic Load Balancing, e o tráfego começará a ser redirecionado para elas.

   1. As instâncias no ambiente original terão o registro cancelado e serão manipuladas de acordo com as suas especificações no grupo de implantação, ou seja, serão encerradas ou continuarão em execução.

#### Implantação azul/verde por meio de CloudFormation
<a name="blue-green-cfn-config-type"></a>

Você pode gerenciar implantações em CodeDeploy azul/verde modelando seus recursos com um modelo. CloudFormation 

Ao modelar seus blue/green recursos usando um CloudFormation modelo, você cria uma atualização de pilha CloudFormation que atualiza seu conjunto de tarefas. O tráfego de produção é deslocado do conjunto de tarefas original do serviço para um conjunto de tarefas de substituição de uma só vez, com implantações lineares e tempos de incorporação ou com implantações canário. A atualização de pilha inicia uma implantação no CodeDeploy. Você pode visualizar o status e o histórico de implantação no modelo CodeDeploy, mas não cria nem gerencia CodeDeploy recursos fora do CloudFormation modelo.

**nota**  
Para blue/green implantações concluídas CloudFormation, você não cria um CodeDeploy aplicativo ou grupo de implantação.

Esse método é compatível somente com blue/green implantações do Amazon ECS. Para obter mais informações sobre blue/green implantações por meio de CloudFormation, consulte[Crie uma blue/green implantação do Amazon ECS por meio de CloudFormation](deployments-create-ecs-cfn.md).

## Deixe seu comentário
<a name="welcome-contact-us"></a>

Os seus comentários são bem-vindos. Para entrar em contato conosco, visite [o CodeDeploy fórum](https://forums.aws.amazon.com/forum.jspa?forumID=179).

**Tópicos**
+ [Primary Components](primary-components.md)
+ [Deployments](deployment-steps.md)
+ [Application Specification Files](application-specification-files.md)

# CodeDeploy componentes primários
<a name="primary-components"></a>

Antes de começar a trabalhar com o serviço, você deve se familiarizar com os principais componentes do processo de CodeDeploy implantação.

**Topics**
+ [Aplicação](#primary-components-application)
+ [Plataforma de computação](#primary-components-compute-platform)
+ [Configuração de implantação](#primary-components-deployment-configuration)
+ [Grupo de implantação](#primary-components-deployment-group)
+ [Tipo de implantação](#primary-components-deployment-type)
+ [Perfil de instância do IAM](#primary-components-iam-instance-profile)
+ [Revisão](#primary-components-revision)
+ [Perfil de serviço](#primary-components-service-role)
+ [Revisão de destino](#primary-components-target-revision)
+ [Outros componentes](#primary-components-other-components)

## Aplicação
<a name="primary-components-application"></a>

Um *aplicativo* é um nome que identifica de forma exclusiva o aplicativo que você deseja implantar. CodeDeploy usa esse nome, que funciona como um contêiner, para garantir que a combinação correta de revisão, configuração de implantação e grupo de implantação seja referenciada durante uma implantação.

## Plataforma de computação
<a name="primary-components-compute-platform"></a>

Uma *plataforma de computação* é uma plataforma na qual CodeDeploy implanta um aplicativo. Existem três plataformas de computação:
+ **EC2/On-Premises**: descreve instâncias de servidores físicos que podem ser instâncias EC2 na nuvem da Amazon, servidores locais ou ambos. Os aplicativos criados usando a plataforma de computação EC2 /On-Premises podem ser compostos por arquivos executáveis, arquivos de configuração, imagens e muito mais.

  As implantações que usam a plataforma de computação EC2 /On-Premises gerenciam a forma como o tráfego é direcionado às instâncias usando um tipo de implantação local ou azul/verde. Para obter mais informações, consulte [Visão geral dos tipos de CodeDeploy implantação](welcome.md#welcome-deployment-overview).
+ **AWS Lambda**: usado para implantar aplicativos que consistem em uma versão atualizada de uma função Lambda. AWS Lambda gerencia a função Lambda em um ambiente computacional sem servidor composto por uma estrutura computacional de alta disponibilidade. Toda a administração dos recursos computacionais é realizada por AWS Lambda. Para obter mais informações, consulte [Computação e Aplicativos com tecnologia sem servidor](https://aws.amazon.com/serverless/). Para obter mais informações sobre AWS Lambda as funções Lambda, consulte. [AWS Lambda](https://aws.amazon.com/lambda/)

  Você pode gerenciar a forma como o tráfego é transferido para as versões atualizadas da função Lambda durante uma implantação escolhendo uma configuração canária, linear ou linear. all-at-once 
+ **Amazon ECS**: usado para implantar um aplicativo em contêineres do Amazon ECS como um conjunto de tarefas. CodeDeploy executa uma blue/green implantação instalando uma versão atualizada do aplicativo como um novo conjunto de tarefas de substituição. CodeDeploy redireciona o tráfego de produção do conjunto de tarefas original do aplicativo para o conjunto de tarefas de substituição. O conjunto de tarefas original é encerrado após uma implantação bem-sucedida. Para obter mais informações sobre o Amazon ECS, consulte [Amazon Elastic Container Service](https://aws.amazon.com/ecs/).

  Você pode gerenciar a forma como o tráfego é transferido para o conjunto de tarefas atualizado durante uma implantação escolhendo uma configuração canária, linear ou all-at-once linear.

**nota**  
As blue/green implantações do Amazon ECS são suportadas por meio de e. CodeDeploy CloudFormation Os detalhes dessas implantações são descritos nas seções subsequentes.

## Configuração de implantação
<a name="primary-components-deployment-configuration"></a>

Uma *configuração de implantação* é um conjunto de regras de implantação e condições de sucesso e falha de implantação usadas CodeDeploy durante uma implantação. Se sua implantação usa a plataforma de computação EC2 /On-Premises, você pode especificar o número mínimo de instâncias íntegras para a implantação. Se sua implantação usa a plataforma de computação Amazon ECS AWS Lambda ou a plataforma de computação Amazon ECS, você pode especificar como o tráfego é roteado para sua função Lambda atualizada ou conjunto de tarefas do ECS.

Para obter mais informações sobre como especificar o número mínimo de hosts íntegros para uma implantação que usa a plataforma de computação EC2 /On-Premises, consulte. [Sobre o número mínimo de instâncias íntegras](instances-health.md#minimum-healthy-hosts)

As configurações de implantação a seguir especificam como o tráfego é roteado durante uma implantação que usa a plataforma de computação Lambda ou ECS:
+ **Canário:** o tráfego é deslocado em dois incrementos. Você pode escolher entre as opções canário predefinidas que especificam a porcentagem de tráfego deslocado para a sua função do Lambda atualizada ou o conjunto de tarefas do ECS no primeiro incremento e o intervalo, em minutos, antes que o tráfego restante seja deslocado no segundo incremento. 
+ **Linear:** o tráfego é deslocado em incrementos iguais com um número igual de minutos entre cada incremento. Você pode escolher entre opções lineares predefinidas que especificam a porcentagem de tráfego deslocado em cada incremento e o número de minutos entre cada incremento.
+ **R ll-at-once**: Todo o tráfego é transferido da função Lambda original ou do conjunto de tarefas do ECS para a função ou conjunto de tarefas atualizado de uma só vez.

## Grupo de implantação
<a name="primary-components-deployment-group"></a>

Um *grupo de implantação* é um conjunto de instâncias individuais. Um grupo de implantação contém instâncias marcadas individualmente, EC2 instâncias da Amazon em grupos do Amazon EC2 Auto Scaling ou ambas. Para obter informações sobre as tags de EC2 instância da Amazon, consulte Como [trabalhar com tags usando o console](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_Console). Para obter informações sobre instâncias on-premises, consulte [Trabalhando com instâncias locais para CodeDeploy](instances-on-premises.md). Para obter informações sobre o Amazon EC2 Auto Scaling, consulte. [Integração CodeDeploy com o Amazon EC2 Auto Scaling](integrations-aws-auto-scaling.md)

## Tipo de implantação
<a name="primary-components-deployment-type"></a>

Um *tipo de implantação* é um método usado para disponibilizar a revisão mais recente do aplicativo nas instâncias em um grupo de implantação. Existem dois tipos de implantação:
+ **Implantação no local**: o aplicativo em cada instância no grupo de implantação é interrompido, a última revisão de aplicativo é instalada, e a nova versão do aplicativo é iniciada e validada. Você pode usar um balanceador de carga de forma que cada registro de instância é cancelado durante sua implantação e, em seguida, restaurado para o serviço após a conclusão da implantação. Somente implantações que usam a plataforma de computação EC2 /On-Premises podem usar implantações no local. Para obter mais informações sobre implantações no local, consulte [Visão geral de uma implantação no local](welcome.md#welcome-deployment-overview-in-place).
+ **Implantação azul/verde**: o comportamento da sua implantação depende de qual plataforma você usa:
  + **Blue/green on an EC2/On-Plataforma de computação local**: as instâncias em um grupo de implantação (o ambiente original) são substituídas por um conjunto diferente de instâncias (o ambiente substituto) usando estas etapas:
    + As instâncias são provisionadas para o ambiente de substituição.
    + A revisão de aplicativo mais recente será instalada nas instâncias de substituição.
    + Um tempo de espera opcional ocorre para atividades como teste de aplicativos e verificação do sistema.
    + As instâncias no ambiente de substituição são registradas com um ou mais balanceadores de carga do Elastic Load Balancing, fazendo com que o tráfego seja redirecionado para elas. O registro das instâncias no ambiente original é cancelado e pode ser encerrado ou mantido em execução para outros usos.
**nota**  
Se você usa uma plataforma computacional EC2 /On-Premises, saiba que as blue/green implantações funcionam somente com instâncias da Amazon. EC2 
  + **Azul/verde em uma plataforma computacional ou AWS Lambda Amazon ECS****: o tráfego é deslocado em incrementos de acordo com uma configuração **canária**, linear ou de implantação. **all-at-once****
  + **Implantações em azul/verde por meio** de CloudFormation: O tráfego é transferido de seus recursos atuais para seus recursos atualizados como parte de uma atualização de pilha. CloudFormation Atualmente, somente blue/green implantações do ECS são suportadas. 

  Para obter mais informações sobre blue/green implantações, consulte[Visão geral de uma blue/green implantação](welcome.md#welcome-deployment-overview-blue-green).

**nota**  
As blue/green implantações do Amazon ECS são suportadas usando e. CodeDeploy CloudFormation Os detalhes dessas implantações são descritos nas seções subsequentes.

## Perfil de instância do IAM
<a name="primary-components-iam-instance-profile"></a>

Um *perfil de instância do IAM* é uma função do IAM que você atribui às suas EC2 instâncias da Amazon. Esse perfil inclui as permissões necessárias para acessar os buckets ou GitHub repositórios do Amazon S3 em que os aplicativos são armazenados. Para obter mais informações, consulte [Etapa 4: criar um perfil de instância do IAM para as suas instâncias do Amazon EC2](getting-started-create-iam-instance-profile.md).

## Revisão
<a name="primary-components-revision"></a>

Uma *revisão* é uma versão do seu aplicativo. Uma revisão de implantação do AWS Lambda é um arquivo formatado em YAML ou JSON que especifica informações sobre a função Lambda a ser implantada. Uma revisão de implantação EC2 /On-Premises é um arquivo que contém conteúdo de origem (código-fonte, páginas da Web, arquivos executáveis e scripts de implantação) e um arquivo de especificação do aplicativo (arquivo). AppSpec AWS As revisões do Lambda podem ser armazenadas em buckets do Amazon S3. EC2/As revisões locais são armazenadas em buckets ou repositórios do Amazon S3. GitHub Para o Amazon S3, uma revisão é identificada exclusivamente por sua chave de objeto do Amazon S3 e sua ETag versão ou ambas. Pois GitHub, uma revisão é identificada exclusivamente por seu ID de confirmação.

## Perfil de serviço
<a name="primary-components-service-role"></a>

Uma *função de serviço* é uma função do IAM que concede permissões a um AWS serviço para que ele possa acessar AWS recursos. As políticas que você anexa à função de serviço determinam quais AWS recursos o serviço pode acessar e as ações que ele pode realizar com esses recursos. Para CodeDeploy, uma função de serviço é usada para o seguinte:
+ Para ler as tags aplicadas às instâncias ou os nomes dos grupos do Amazon EC2 Auto Scaling associados às instâncias. Isso permite CodeDeploy identificar instâncias nas quais ele pode implantar aplicativos.
+ Para realizar operações em instâncias, grupos do Amazon EC2 Auto Scaling e balanceadores de carga do Elastic Load Balancing.
+ Para publicar informações nos tópicos do Amazon SNS para que as notificações possam ser enviadas quando ocorrerem eventos específicos de implantação ou instância.
+ Para recuperar informações sobre CloudWatch alarmes para configurar o monitoramento de alarmes para implantações.

Para obter mais informações, consulte [Etapa 2: criar uma função de serviço para CodeDeploy](getting-started-create-service-role.md).

## Revisão de destino
<a name="primary-components-target-revision"></a>

Uma *revisão de destino* é a versão mais recente da revisão do aplicativo que você carregou no seu repositório e deseja implantar nas instâncias em um grupo de implantação. Em outras palavras, a revisão de aplicação que é o destino atual da implantação. Ela também é a revisão que é extraída para implantações automáticas.

## Outros componentes
<a name="primary-components-other-components"></a>

Para obter informações sobre outros componentes no CodeDeploy fluxo de trabalho, consulte os tópicos a seguir:
+ [Escolher um tipo de repositório do CodeDeploy](application-revisions-repository-type.md)
+  [CodeDeploy implantações](deployment-steps.md)
+  [CodeDeploy arquivos de especificação do aplicativo (AppSpec)](application-specification-files.md)
+  [CodeDeploy integridade da instância](instances-health.md)
+  [Trabalhando com o CodeDeploy agente](codedeploy-agent.md)
+  [Trabalhando com instâncias locais para CodeDeploy](instances-on-premises.md)

# CodeDeploy implantações
<a name="deployment-steps"></a>

Este tópico fornece informações sobre os componentes e o fluxo de trabalho de implantações no CodeDeploy. O processo de implantação varia, dependendo da plataforma computacional ou do método de implantação (Lambda, Amazon ECS, EC2/no local ou AWS CloudFormation por meio) que você usa para suas implantações.

**Topics**
+ [Implantações em uma plataforma de computação AWS Lambda](deployment-steps-lambda.md)
+ [Implantação azul/verde em uma plataforma de computação do Amazon ECS](deployment-steps-ecs.md)
+ [Implantação azul/verde em uma Plataforma de computação EC2/On-Premises](deployment-steps-server.md)

# Implantações em uma plataforma de computação AWS Lambda
<a name="deployment-steps-lambda"></a>

Este tópico fornece informações sobre os componentes e o fluxo de trabalho das CodeDeploy implantações que usam a plataforma de computação AWS Lambda. 

**Topics**
+ [Fluxo de trabalho de implantação em uma AWS Lambda plataforma de computação](#deployment-process-workflow-lambda)
+ [Carregando sua revisão de aplicativo](#deployment-steps-uploading-your-app-lambda)
+ [Criando seus grupos de implantação e aplicativos](#deployment-steps-registering-app-deployment-groups-lambda)
+ [Implantando sua revisão de aplicativo](#deployment-steps-deploy-lambda)
+ [Atualizar o aplicativo do](#deployment-steps-updating-your-app-lambda)
+ [Implantações interrompidas e com falha](#deployment-stop-fail-lambda)
+ [Reimplantações e reversões de implantação](#deployment-rollback-lambda)

## Fluxo de trabalho de implantação em uma AWS Lambda plataforma de computação
<a name="deployment-process-workflow-lambda"></a>

O diagrama a seguir mostra as principais etapas na implantação de funções do AWS Lambda novas e atualizadas.

![\[Como CodeDeploy implanta uma AWS Lambda função nova ou atualizada.\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/images/deployment-process-lambda.png)


Essas etapas incluem:

1. Criar um aplicativo e atribuir a ele um nome que identifique exclusivamente as revisões de aplicativo que você deseja implantar. Para implantar funções Lambda, escolha a plataforma de computação AWS Lambda ao criar seu aplicativo. CodeDeploy usa esse nome durante uma implantação para garantir que esteja referenciando os componentes de implantação corretos, como o grupo de implantação, a configuração de implantação e a revisão do aplicativo. Para obter mais informações, consulte [Crie um aplicativo com CodeDeploy](applications-create.md). 

1. Configurar um grupo de implantação especificando o nome de seu grupo de implantação.

1. Escolha uma configuração de implantação para especificar como o tráfego é transferido da versão original da AWS Lambda função para a nova versão da função Lambda. Para obter mais informações, consulte [Veja os detalhes da configuração de implantação com CodeDeploy](deployment-configurations-view-details.md).

1. Fazer upload de um arquivo de *especificação do aplicativo* (AppSpec arquivo) para o Amazon S3. O AppSpec arquivo especifica uma versão da função Lambda e as funções Lambda usadas para validar sua implantação. Se não quiser criar um AppSpec arquivo, você pode especificar uma versão da função Lambda e as funções de validação de implantação do Lambda diretamente no console usando YAML ou JSON. Para obter mais informações, consulte [Trabalhando com revisões de aplicativos para CodeDeploy](application-revisions.md).

1. Implante sua revisão do aplicativo no grupo de implantação. AWS CodeDeploy implanta a revisão da função Lambda que você especificou. O tráfego é transferido para a revisão da função Lambda usando o arquivo de AppSpec implantação que você escolheu ao criar seu aplicativo. Para obter mais informações, consulte [Crie uma implantação com CodeDeploy](deployments-create.md).

1. Verificar os resultados da implantação. Para obter mais informações, consulte [Monitorando implantações em CodeDeploy](monitoring.md).

## Carregando sua revisão de aplicativo
<a name="deployment-steps-uploading-your-app-lambda"></a>

Coloque um AppSpec arquivo no Amazon S3 ou insira-o diretamente no console ou. AWS CLI Para obter mais informações, consulte [CodeDeploy arquivos de especificação do aplicativo (AppSpec)](application-specification-files.md).

## Criando seus grupos de implantação e aplicativos
<a name="deployment-steps-registering-app-deployment-groups-lambda"></a>

Um grupo CodeDeploy de implantação em uma plataforma de computação AWS Lambda identifica uma coleção de um ou mais arquivos. AppSpec Cada AppSpec arquivo pode implantar uma versão da função Lambda. Um grupo de implantação também define um conjunto de opções de configuração para futuras implantações, como configurações de alarmes e reversões.

## Implantando sua revisão de aplicativo
<a name="deployment-steps-deploy-lambda"></a>

Agora você está pronto para implantar a revisão da função especificada no AppSpec arquivo no grupo de implantação. Você pode usar o CodeDeploy console ou o comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html). Existem parâmetros que você pode especificar para controlar sua implantação, incluindo a revisão, o grupo de implantação e a configuração de implantação.

## Atualizar o aplicativo do
<a name="deployment-steps-updating-your-app-lambda"></a>

Você pode fazer atualizações em seu aplicativo e, em seguida, usar o CodeDeploy console ou chamar o comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) para enviar uma revisão. 

## Implantações interrompidas e com falha
<a name="deployment-stop-fail-lambda"></a>

Você pode usar o CodeDeploy console ou o comando [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) para interromper uma implantação. Quando você tenta interromper a implantação, uma de três coisas acontece:
+ A implantação é interrompida, e a operação retorna a um status de sucesso. Nesse caso, mais nenhum evento de ciclo de vida de implantação é executado no grupo de implantação para a implantação interrompida. 
+ A implantação não é interrompida imediatamente, e a operação retorna um status pendente. Nesse caso, alguns eventos de ciclo de vida de implantação ainda podem estar em execução no grupo de implantação. Após a conclusão da operação pendente, as chamadas subsequentes para interromper a implantação retornam um status de sucesso.
+ A implantação não pode ser interrompida, e a operação retorna um erro. Para obter mais informações, consulte [ErrorInformation](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html)[Erros comuns](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) na Referência AWS CodeDeploy da API.

Como as implantações interrompidas, as implantações com falha podem resultar em alguns eventos de ciclo de vida da implantação que já foram executados. Para descobrir por que uma implantação falhou, você pode usar o console do CodeDeploy ou analisar os dados do arquivo de log da implantação com falha. Para obter mais informações, consulte [Limpeza de revisões de aplicativo e arquivos de log](codedeploy-agent.md#codedeploy-agent-revisions-logs-cleanup) e [Exibir dados de log para implantações CodeDeploy EC2/locais](deployments-view-logs.md).

## Reimplantações e reversões de implantação
<a name="deployment-rollback-lambda"></a>

CodeDeploy implementa reversões reimplantando, como uma nova implantação, uma revisão implantada anteriormente. 

Você pode configurar um grupo de implantação para reverter automaticamente as implantações quando determinadas condições forem atendidas, inclusive quando uma implantação falhar ou um limite de monitoramento de alarme for atingido. Você também pode substituir configurações de reversão especificadas para um grupo de implantação em uma implantação individual.

Além disso, pode optar por reverter uma implantação com falha, reimplantando manualmente uma revisão anteriormente implantada. 

Em todos os casos, a implantação nova ou revertida tem um ID de implantação próprio. A lista de implantações que você pode ver no CodeDeploy console mostra quais são o resultado de uma implantação automática. 

Para obter mais informações, consulte [Reimplante e reverta uma implantação com CodeDeploy](deployments-rollback-and-redeploy.md).

# Implantação azul/verde em uma plataforma de computação do Amazon ECS
<a name="deployment-steps-ecs"></a>

Este tópico fornece informações sobre os componentes e o fluxo de trabalho das CodeDeploy implantações que usam a plataforma computacional Amazon ECS. 

**Topics**
+ [Antes de começar uma implantação do](#deployment-steps-prerequisites-ecs)
+ [Fluxo de trabalho da implantação (alto nível) em uma plataforma de computação do Amazon ECS](#deployment-process-workflow-ecs)
+ [O que acontece durante uma implantação do](#deployment-steps-what-happens)
+ [Carregando sua revisão de aplicativo](#deployment-steps-uploading-your-app-ecs)
+ [Criando seus grupos de implantação e aplicativos](#deployment-steps-registering-app-deployment-groups-ecs)
+ [Implantando sua revisão de aplicativo](#deployment-steps-deploy-ecs)
+ [Atualizar o aplicativo](#deployment-steps-updating-your-app-ecs)
+ [Implantações interrompidas e com falha](#deployment-stop-fail-ecs)
+ [Reimplantações e reversões de implantação](#deployment-rollback-ecs)
+ [blue/green Implantações do Amazon ECS por meio de AWS CloudFormation](#deployment-steps-ecs-cf)

## Antes de começar uma implantação do
<a name="deployment-steps-prerequisites-ecs"></a>

 Antes de iniciar uma implantação de aplicativo do Amazon ECS, você deve ter o seguinte preparado. Alguns requisitos são especificados quando você cria seu grupo de implantação e alguns são especificados no AppSpec arquivo.


****  

| Requisito | Onde especificado | 
| --- | --- | 
| Cluster do Amazon ECS | Grupo de implantação | 
| Serviço do Amazon ECS | Grupo de implantação | 
| Application Load Balancer e Network Load Balancer | Grupo de implantação | 
| Listener de produção | Grupo de implantação | 
| Listener de teste (opcional) | Grupo de implantação | 
| Dois grupos de destino | Grupo de implantação | 
| Definição de tarefa do Amazon ECS | AppSpec arquivo | 
| Nome do contêiner | AppSpec arquivo | 
| Porta do contêiner | AppSpec arquivo | 

**Cluster do Amazon ECS**  
Um *cluster* do Amazon ECS é um agrupamento lógico de tarefas ou serviços. Você especifica o cluster do Amazon ECS que contém seu serviço Amazon ECS ao criar o grupo de implantação do seu CodeDeploy aplicativo. Para obter mais informações, consulte [ clusters do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_clusters.html) no *Guia do desenvolvedor do Amazon Elastic Container Service*.

**Serviço do Amazon ECS**  
Um *serviço* do Amazon ECS ajuda você a executar e manter simultaneamente um número especificado de instâncias de uma definição de tarefa em um cluster do Amazon ECS. Seu serviço Amazon ECS deve estar habilitado para CodeDeploy. Por padrão, um serviço do Amazon ECS é habilitado para implantações do Amazon ECS . Ao criar o grupo de implantação, você pode optar por implantar um serviço do Amazon ECS que está no seu cluster do Amazon ECS. Para obter mais informações, consulte [ no Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) no *Guia do desenvolvedor do Amazon Elastic Container Service*.

**Application Load Balancer e Network Load Balancer**  
 Você deve usar o Elastic Load Balancing com o serviço Amazon ECS que você deseja atualizar com uma implantação do Amazon ECS. É possível utilizar um Application Load Balancer ou Network Load Balancer. Recomendamos um Application Load Balancer para que você possa aproveitar atributos, como o mapeamento de porta dinâmico e o roteamento baseado em caminhos e regras de prioridade. Você especifica o balanceador de carga ao criar o grupo de implantação do seu CodeDeploy aplicativo. Para obter mais informações, consulte [Configure um balanceador de carga, grupos-alvo e ouvintes para implantações do CodeDeploy Amazon ECS](deployment-groups-create-load-balancer-for-ecs.md) e [Criar um cluster no balanceador de carga](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-load-balancer.html) no *Guia do desenvolvedor do Amazon Elastic Container Service*. 

**Um ou dois receptores**  
Um *listener* é usado pelo seu load balancer para direcionar o tráfego para seus grupos de destino. Um listener de produção é necessário. Você pode especificar um segundo listener de teste opcional que direciona o tráfego para o seu conjunto de tarefas de substituição enquanto você executa testes de validação. Especifique um ou dois listeners ao criar seu grupo de implantação. Se você usar o console do Amazon ECS para criar o serviço do Amazon ECS, seus receptores são criados para você. Para obter mais informações, consulte [Receptores para seus Application Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listener.html) no *Guia do usuário do Elastic Load Balancing* e [Criar um serviço](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service.html) no *Guia do usuário do Amazon Elastic Container Service*.

**Dois grupos-alvo do Amazon ECS**  
 Um *grupo de destino* é usado para rotear o tráfego para um destino registrado. Uma implantação do Amazon ECS requer dois grupos de destino: um para o conjunto de tarefas original do aplicativo do Amazon ECS e um para seu conjunto de tarefas de substituição. Durante a implantação, CodeDeploy cria um conjunto de tarefas de substituição e redireciona o tráfego do conjunto de tarefas original para o novo. Especifique os grupos de destino ao criar o grupo de implantação do aplicativo do CodeDeploy .   
 Durante uma implantação, CodeDeploy determina qual grupo-alvo está associado ao conjunto de tarefas em seu serviço Amazon ECS que tem o status `PRIMARY` (esse é o conjunto de tarefas original) e associa um grupo-alvo a ele e, em seguida, associa o outro grupo-alvo ao conjunto de tarefas de substituição. Se você executar outra implantação, o grupo de destino associado ao conjunto de tarefas original da implantação atual será associado ao conjunto de tarefas de substituição da próxima implantação. Para obter mais informações, consulte [Grupos de destino para seus Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html) no *Guia do usuário do Elastic Load Balancing*. 

**Definição de tarefa do Amazon ECS**  
 Uma *definição de tarefa* é necessária para executar o contêiner do Docker que contém o aplicativo do Amazon ECS. Você especifica o ARN da definição da tarefa no arquivo do CodeDeploy AppSpec aplicativo. Para obter mais informações, consulte [Definições de tarefas do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) no *Guia do desenvolvedor do Serviço Amazon Elastic Container* e [AppSpec seção 'recursos' para implantações do Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Contêiner para seu aplicativo do Amazon ECS**  
 Um *contêiner* do Docker é uma unidade de software que reúne o código e suas dependências para que o aplicativo possa ser executado. Um contêiner isola o aplicativo para que ele seja executado em diferentes ambientes de computação. Seu balanceador de carga direciona o tráfego para um contêiner no conjunto de tarefas do aplicativo do Amazon ECS. Você especifica o nome do seu contêiner no AppSpec arquivo do seu CodeDeploy aplicativo. O contêiner especificado em seu AppSpec arquivo deve ser um dos contêineres especificados na definição de tarefas do Amazon ECS. Para obter mais informações, consulte [O que é o Amazon Elastic Container Service?](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) no *Guia do usuário do Amazon Elastic Container Service* e [AppSpec seção 'recursos' para implantações do Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Uma porta para o conjunto de tarefas de substituição**  
 Durante a implantação do Amazon ECS, seu balanceador de carga direciona o tráfego para essa *porta* no contêiner especificado no arquivo do seu CodeDeploy aplicativo. AppSpec Você especifica a porta no AppSpec arquivo do seu CodeDeploy aplicativo. Para obter mais informações, consulte [AppSpec seção 'recursos' para implantações do Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

## Fluxo de trabalho da implantação (alto nível) em uma plataforma de computação do Amazon ECS
<a name="deployment-process-workflow-ecs"></a>

O diagrama a seguir mostra as principais etapas na implantação de serviços do Amazon ECS atualizados.

![\[Como CodeDeploy implanta um aplicativo como um conjunto de tarefas no Amazon ECS.\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/images/deployment-process-ecs.png)


Essas etapas incluem:

1. Crie um AWS CodeDeploy aplicativo especificando um nome que represente de forma exclusiva o que você deseja implantar. Para implantar um aplicativo Amazon ECS, em seu AWS CodeDeploy aplicativo, escolha a plataforma computacional Amazon ECS. CodeDeploy usa um aplicativo durante uma implantação para referenciar os componentes de implantação corretos, como o grupo de implantação, grupos-alvo, ouvintes, comportamento de redirecionamento de tráfego e revisão do aplicativo. Para obter mais informações, consulte [Crie um aplicativo com CodeDeploy](applications-create.md). 

1. Configurar um grupo de implantação especificando:
   +  O nome do grupo de implantação. 
   +  Cluster e serviço do Amazon ECS O controlador de implantação do serviço Amazon ECS deve estar configurado como. CodeDeploy 
   +  O listener de produção, um listener de teste opcional e grupos de destino usados durante uma implantação. 
   +  Configurações de implantação, como quando redirecionar o tráfego de produção para o conjunto de tarefas de substituição do Amazon ECS em seu serviço do Amazon ECS e quando encerrar o conjunto de tarefas original do Amazon ECS definido em seu serviço do Amazon ECS. 
   +  Configurações opcionais, como triggers, alarmes e o comportamento de reversão. 

1. Especifique um *arquivo de especificação do aplicativo* (AppSpec arquivo). Você pode enviá-lo para o Amazon S3, inseri-lo no console no formato YAML ou JSON ou especificá-lo com o ou SDK. AWS CLI O AppSpec arquivo especifica uma definição de tarefa do Amazon ECS para a implantação, um nome de contêiner e mapeamento de portas usados para rotear o tráfego, além de funções Lambda executadas após os ganchos do ciclo de vida da implantação. O nome do contêiner deve ser um contêiner em sua definição de tarefa do . Para obter mais informações, consulte [Trabalhando com revisões de aplicativos para CodeDeploy](application-revisions.md).

1. Implante a revisão do seu aplicativo. AWS CodeDeploy redireciona o tráfego da versão original de um conjunto de tarefas em seu serviço Amazon ECS para um novo conjunto de tarefas substituto. Grupos de destino especificados no grupo de implantação são usados para fornecer o tráfego para conjuntos de tarefa originais e de substituição. Depois de concluir a implantação, o conjunto de tarefas original é encerrado. Você pode especificar um listener de teste opcional para fornecer o tráfego de teste para a sua versão de substituição antes que o tráfego seja redirecionado a ele. Para obter mais informações, consulte [Crie uma implantação com CodeDeploy](deployments-create.md).

1. Verificar os resultados da implantação. Para obter mais informações, consulte [Monitorando implantações em CodeDeploy](monitoring.md).

## O que acontece durante uma implantação do
<a name="deployment-steps-what-happens"></a>

Antes de uma implantação do Amazon ECS com um receptor de teste ser iniciada, você deve configurar seus componentes. Para obter mais informações, consulte [Antes de começar uma implantação do](#deployment-steps-prerequisites-ecs).

 O diagrama a seguir mostra a relação entre esses componentes quando uma implantação do Amazon ECS está pronta para ser iniciada. 

![\[O relacionamento entre balanceador de carga, receptores, grupos de destino e conjunto de tarefas quando uma implantação do Amazon ECS está pronta para ser iniciada.\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-1.png)


Quando a implantação é iniciada, os eventos de ciclo de vida de implantação começam a ser executados um de cada vez. Alguns eventos do ciclo de vida são ganchos que executam somente funções Lambda especificadas no arquivo. AppSpec Os eventos de ciclo de vida de implantação na tabela a seguir são listados na ordem em que são executados. Para obter mais informações, consulte [AppSpec seção 'hooks' para uma implantação do Amazon ECS](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs).


| Evento de ciclo de vida | Ação do evento de ciclo de vida | 
| --- | --- | 
| BeforeInstall (um hook para funções do Lambda) | Executar função do Lambda | 
| Instalar | Configurar o conjunto de tarefas de substituição. | 
| AfterInstall (um hook para funções do Lambda) | Executar função do Lambda | 
| AllowTestTraffic | Rotear o tráfego do listener de teste para o grupo de destino 2. | 
| AfterAllowTestTraffic (um hook para funções do Lambda) | Executar função do Lambda | 
| BeforeAllowTraffic (um hook para funções do Lambda) | Executar função do Lambda | 
| AllowTraffic | Rotear o tráfego do listener de produção para o grupo de destino 2. | 
| AfterAllowTraffic | Executar função do Lambda | 



**nota**  
As funções do Lambda em um hook são opcionais.

1. <a name="ecs-before-install"></a>

****

   Execute qualquer função Lambda especificada no `BeforeInstall` gancho do arquivo. AppSpec 

1. <a name="ecs-install"></a>

****

   Durante o evento de ciclo de vida `Install`:

   1.  Um conjunto de tarefas de substituição é criado no seu serviço . 

   1.  O aplicativo em contêineres atualizado é instalado no conjunto de tarefas de substituição. 

   1.  O segundo grupo de destino é associado ao conjunto de tarefas de substituição. 

    Este diagrama mostra os componentes de implantação com o novo conjunto de tarefas de substituição. O aplicativo em contêineres está dentro desse conjunto de tarefas. O conjunto de tarefas é composto de três tarefas. (Um aplicativo pode ter qualquer número de tarefas.) O segundo grupo de destino agora está associado ao conjunto de tarefas de substituição.   
![\[Os componentes de implantação com o novo conjunto de tarefas de substituição. O aplicativo em contêineres está dentro desse conjunto de tarefas. O conjunto de tarefas é composto de três tarefas. O segundo grupo de destino agora está associado ao conjunto de tarefas de substituição.\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-2.png)

1. <a name="ecs-after-install"></a>

****

   Execute qualquer função Lambda especificada no `AfterInstall` gancho do arquivo. AppSpec 

1. <a name="ecs-allow-test-traffic"></a>

****

   O evento `AllowTestTraffic` é invocado. Durante esse evento de ciclo de vida, o listener de teste roteia o tráfego para o aplicativo em contêineres atualizado.  
![\[O receptor de teste direciona o tráfego para a aplicação em contêineres atualizado.\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-3.png)

1. <a name="ecs-after-allow-test-traffic"></a>

****

   Execute qualquer função Lambda especificada no `AfterAllowTestTraffic` gancho do arquivo. AppSpec As funções do Lambda podem validar a implantação usando o tráfego de teste. Por exemplo, uma função Lambda pode fornecer o tráfego ao listener de teste e rastrear as métricas do conjunto de tarefas de substituição. Se as reversões estiverem configuradas, você poderá configurar um CloudWatch alarme que acionará uma reversão quando o teste de validação em sua função Lambda falhar.

    Após a conclusão dos testes de validação, ocorre uma das seguintes situações: 
   +  Se a validação falhar e as reversões estiverem configuradas, o status da implantação será marcado como `Failed` e os componentes retornarão ao estado em que estavam quando a implantação começou. 
   +  Se a validação falhar e as reversões não estiverem configuradas, o status da implantação será marcado como `Failed` e os componentes permanecerão no estado atual.
   +  Se a validação for bem-sucedida, a implantação continuará no gancho `BeforeAllowTraffic`.

    Para obter mais informações, consulte [Monitorando implantações com CloudWatch alarmes em CodeDeploy](monitoring-create-alarms.md), [Reversões automáticas](deployments-rollback-and-redeploy.md#deployments-rollback-and-redeploy-automatic-rollbacks) e [Configurar opções avançadas para um grupo de implantação](deployment-groups-configure-advanced-options.md). 

1. <a name="ecs-before-allow-traffic"></a>

****

   Execute qualquer função Lambda especificada no `BeforeAllowTraffic` gancho do arquivo. AppSpec 

1. <a name="ecs-allow-traffic"></a>

****

   O evento `AllowTraffic` é invocado. O tráfego de produção é redirecionado do conjunto de tarefas original para o conjunto de tarefas de substituição. O diagrama a seguir mostra o conjunto de tarefas de substituição recebendo o tráfego de produção.   
![\[O conjunto de tarefas de substituição recebe tráfego de produção.\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-4.png)

1. <a name="ecs-after-allow-traffic"></a>

****

   Execute qualquer função Lambda especificada no `AfterAllowTraffic` gancho do arquivo. AppSpec 

1. 

****

   Após a execução bem-sucedida de todos os eventos, o status da implantação é definido como `Succeeded` e o conjunto de tarefas original é removido.   
![\[Todos os eventos estão sendo bem-sucedidos.\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-6.png)

## Carregando sua revisão de aplicativo
<a name="deployment-steps-uploading-your-app-ecs"></a>

Coloque um AppSpec arquivo no Amazon S3 ou insira-o diretamente no console ou. AWS CLI Para obter mais informações, consulte [CodeDeploy arquivos de especificação do aplicativo (AppSpec)](application-specification-files.md).

## Criando seus grupos de implantação e aplicativos
<a name="deployment-steps-registering-app-deployment-groups-ecs"></a>

Um grupo de CodeDeploy implantação em uma plataforma computacional do Amazon ECS identifica ouvintes para fornecer tráfego para seu aplicativo Amazon ECS atualizado e dois grupos-alvo usados durante sua implantação. Um grupo de implantação também define um conjunto de opções de configuração, como configurações de reversões e alarmes.

## Implantando sua revisão de aplicativo
<a name="deployment-steps-deploy-ecs"></a>

Agora, você está pronto para implantar o serviço do Amazon ECS atualizado e especificado no seu grupo de implantação. Você pode usar o CodeDeploy console ou o comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html). Existem parâmetros que você pode especificar para controlar sua implantação, incluindo o grupo de implantação e a revisão.

## Atualizar o aplicativo
<a name="deployment-steps-updating-your-app-ecs"></a>

Você pode fazer atualizações em seu aplicativo e, em seguida, usar o CodeDeploy console ou chamar o comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) para enviar uma revisão. 

## Implantações interrompidas e com falha
<a name="deployment-stop-fail-ecs"></a>

Você pode usar o CodeDeploy console ou o comando [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) para interromper uma implantação. Quando você tenta interromper a implantação, uma de três coisas acontece:
+ A implantação é interrompida, e a operação retorna a um status de sucesso. Nesse caso, mais nenhum evento de ciclo de vida de implantação é executado no grupo de implantação para a implantação interrompida. 
+ A implantação não é interrompida imediatamente, e a operação retorna um status pendente. Nesse caso, alguns eventos de ciclo de vida de implantação ainda podem estar em execução no grupo de implantação. Após a conclusão da operação pendente, as chamadas subsequentes para interromper a implantação retornam um status de sucesso.
+ A implantação não pode ser interrompida, e a operação retorna um erro. Para obter mais informações, consulte [Informações sobre erros](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html) [e Erros comuns](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) na Referência AWS CodeDeploy da API.

## Reimplantações e reversões de implantação
<a name="deployment-rollback-ecs"></a>

CodeDeploy implementa reversões redirecionando o tráfego do conjunto de tarefas de substituição para o conjunto de tarefas original. 

Você pode configurar um grupo de implantação para reverter automaticamente as implantações quando determinadas condições forem atendidas, inclusive quando uma implantação falhar ou um limite de monitoramento de alarme for atingido. Você também pode substituir configurações de reversão especificadas para um grupo de implantação em uma implantação individual.

Além disso, pode optar por reverter uma implantação com falha, reimplantando manualmente uma revisão anteriormente implantada. 

Em todos os casos, a implantação nova ou revertida tem um ID de implantação próprio. O console do CodeDeploy exibe uma lista de implantações que são o resultado de uma implantação automática. 

Se você implantar novamente, o grupo de destino associado ao conjunto de tarefas original da implantação atual será associado ao conjunto de tarefas de substituição da nova implantação.

Para obter mais informações, consulte [Reimplante e reverta uma implantação com CodeDeploy](deployments-rollback-and-redeploy.md).

## blue/green Implantações do Amazon ECS por meio de AWS CloudFormation
<a name="deployment-steps-ecs-cf"></a>

Você pode usar AWS CloudFormation para gerenciar blue/green implantações do Amazon ECS por meio de. CodeDeploy Para obter mais informações, consulte [Crie uma blue/green implantação do Amazon ECS por meio de CloudFormation](deployments-create-ecs-cfn.md).

**nota**  
O gerenciamento de blue/green implantações do Amazon ECS com não CloudFormation está disponível na região Ásia-Pacífico (Osaka).

# Implantação azul/verde em uma Plataforma de computação EC2/On-Premises
<a name="deployment-steps-server"></a>

Este tópico fornece informações sobre os componentes e o fluxo de trabalho das CodeDeploy implantações que usam a plataforma de computação EC2/on-premises. Para obter informações sobre blue/green implantações, consulte[Visão geral de uma blue/green implantação](welcome.md#welcome-deployment-overview-blue-green).

**Topics**
+ [Componentes de implantação em uma plataforma de computação EC2/On-Premises](#deployment-steps-components-server)
+ [Fluxo de trabalho de implantação em uma plataforma de computação EC2/On-Premises](#deployment-steps-workflow)
+ [Configurando Instâncias](#deployment-steps-setting-up-instances)
+ [Carregando sua revisão de aplicativo](#deployment-steps-uploading-your-app)
+ [Criando seus grupos de implantação e aplicativos](#deployment-steps-registering-app-deployment-groups)
+ [Implantando sua revisão de aplicativo](#deployment-steps-deploy)
+ [Atualizar o aplicativo do](#deployment-steps-updating-your-app)
+ [Implantações interrompidas e com falha](#deployment-stop-fail)
+ [Reimplantações e reversões de implantação](#deployment-rollback)

## Componentes de implantação em uma plataforma de computação EC2/On-Premises
<a name="deployment-steps-components-server"></a>

O diagrama a seguir mostra os componentes em uma CodeDeploy implantação em uma plataforma computacional EC2/local. 

![\[Os componentes em uma CodeDeploy implantação em uma plataforma de computação EC2/local.\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/images/deployment-components-workflow.png)


## Fluxo de trabalho de implantação em uma plataforma de computação EC2/On-Premises
<a name="deployment-steps-workflow"></a>

O diagrama a seguir mostra as principais etapas na implantação de revisões de aplicativo:

![\[As principais etapas da implantação de revisões da aplicação.\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/images/deployment-process.png)


Essas etapas incluem:

1. Crie um aplicativo e dê a ele um nome que identifique de forma exclusiva as revisões do aplicativo que você deseja implantar e a plataforma de computação do seu aplicativo. CodeDeploy usa esse nome durante uma implantação para garantir que esteja referenciando os componentes de implantação corretos, como o grupo de implantação, a configuração de implantação e a revisão do aplicativo. Para obter mais informações, consulte [Crie um aplicativo com CodeDeploy](applications-create.md).

1. Configurar um grupo de implantação especificando um tipo de implantação e as instâncias nas quais você deseja implantar suas revisões de aplicativo. Uma implantação no local atualiza instâncias com a revisão de aplicativo mais recente. Uma blue/green implantação registra um conjunto substituto de instâncias para o grupo de implantação com um balanceador de carga e cancela o registro das instâncias originais. 

   Você pode especificar as tags aplicadas às instâncias, os nomes dos grupos do Amazon EC2 Auto Scaling ou ambos.

   Se você especificar um grupo de tags em um grupo de CodeDeploy implantação, implanta em instâncias que tenham pelo menos uma das tags especificadas aplicada. Se você especificar dois ou mais grupos de tags, CodeDeploy implanta somente nas instâncias que atendem aos critérios de cada um dos grupos de tags. Para obter mais informações, consulte [Marcar instâncias para grupos de implantação em CodeDeploy](instances-tagging.md).

   Em todos os casos, as instâncias devem ser configuradas para serem usadas em uma implantação (ou seja, devem ser marcadas ou pertencer a um grupo do Amazon EC2 Auto Scaling) e CodeDeploy ter o agente instalado e em execução. 

   Fornecemos um CloudFormation modelo que você pode usar para configurar rapidamente uma instância do Amazon EC2 com base no Amazon Linux ou no Windows Server. Também fornecemos o CodeDeploy agente autônomo para que você possa instalá-lo em instâncias do Amazon Linux, Ubuntu Server, Red Hat Enterprise Linux (RHEL) ou Windows Server. Para obter mais informações, consulte [Crie um grupo de implantação com CodeDeploy](deployment-groups-create.md).

   Também é possível especificar as seguintes opções: 
   + **Notificações do Amazon SNS**. Crie gatilhos que enviem notificações aos assinantes de um tópico do Amazon SNS quando eventos específicos, como eventos de êxito ou falha, ocorrerem em implantações e instâncias. Para obter mais informações, consulte [Monitoramento de implantações com notificações de eventos do Amazon SNS](monitoring-sns-event-notifications.md).
   + **Gerenciamento de implantações com base em alarmes**. Implemente o monitoramento de CloudWatch alarmes da Amazon para interromper as implantações quando suas métricas excederem ou ficarem abaixo dos limites definidos. CloudWatch
   + **Reversões de implantação automáticas**. Configure uma implantação para que ela seja revertida automaticamente para a última revisão conhecida em bom estado quando uma implantação falhar ou um limite de alarme for atingido.

1. Especificar uma configuração de implantação para indicar em quantas instâncias suas revisões de aplicativo devem ser implantadas simultaneamente e descrever as condições de êxito e falha para a implantação. Para obter mais informações, consulte [Veja os detalhes da configuração de implantação com CodeDeploy](deployment-configurations-view-details.md).

1. Faça o upload de uma revisão do aplicativo para o Amazon S3 ou. GitHub Além dos arquivos que você deseja implantar e dos scripts que deseja executar durante a implantação, você deve incluir um arquivo de *especificação do aplicativo* (AppSpec arquivo). Esse arquivo contém instruções de implantação, como para onde copiar os arquivos em cada instância e quando executar scripts de implantação. Para obter mais informações, consulte [Trabalhando com revisões de aplicativos para CodeDeploy](application-revisions.md).

1. Implantar a revisão de aplicativo no grupo de implantação. O CodeDeploy agente em cada instância no grupo de implantação copia a revisão do seu aplicativo do Amazon S3 ou GitHub para a instância. Em seguida, o CodeDeploy agente separa a revisão e, usando o AppSpec arquivo, copia os arquivos nos locais especificados e executa todos os scripts de implantação. Para obter mais informações, consulte [Crie uma implantação com CodeDeploy](deployments-create.md).

1. Verificar os resultados da implantação. Para obter mais informações, consulte [Monitorando implantações em CodeDeploy](monitoring.md).

1. Reimplantar uma revisão. Você pode querer fazer isso se precisar corrigir um bug no conteúdo de origem, executar os scripts de implantação em uma ordem diferente ou corrigir uma implantação com falha. Para fazer isso, reagrupe seu conteúdo de origem revisado, quaisquer scripts de implantação e o AppSpec arquivo em uma nova revisão e, em seguida, faça o upload da revisão no bucket ou repositório do Amazon S3. GitHub Depois execute uma nova implantação no mesmo grupo de implantação com a nova revisão. Para obter mais informações, consulte [Crie uma implantação com CodeDeploy](deployments-create.md).

## Configurando Instâncias
<a name="deployment-steps-setting-up-instances"></a>

 Você precisa configurar instâncias para poder implantar revisões de aplicativo pela primeira vez. Se uma revisão de aplicativo exigir três servidores de produção e dois servidores de backup, você executará ou usará cinco instâncias. 

Para provisionar instâncias manualmente:

1. Instale o CodeDeploy agente nas instâncias. O CodeDeploy agente pode ser instalado nas instâncias Amazon Linux, Ubuntu Server, RHEL e Windows Server.

1. Ative a marcação, se você estiver usando tags para identificar instâncias em um grupo de implantação. CodeDeploy depende de tags para identificar e agrupar instâncias em grupos CodeDeploy de implantação. Embora os tutoriais de introdução usam ambas, você pode simplesmente usar uma chave ou um valor para definir uma tag para um grupo de implantação.

1. Inicie instâncias do EC2; com um perfil de instância do IAM anexado. O perfil da instância do IAM deve ser anexado a uma instância do Amazon EC2 à medida que é executado para que o CodeDeploy agente verifique a identidade da instância.

1. Crie uma função de serviço. Forneça acesso ao serviço para que CodeDeploy você possa expandir as tags em sua AWS conta.

Para uma implantação inicial, o CloudFormation modelo faz tudo isso por você. Ele cria e configura novas instâncias únicas do Amazon EC2 com base no Amazon Linux ou no Windows Server com CodeDeploy o agente já instalado. Para obter mais informações, consulte [Trabalhando com instâncias para CodeDeploy](instances.md). 

**nota**  
Para uma blue/green implantação, você pode escolher entre usar instâncias que você já tem para o ambiente de substituição ou deixar CodeDeploy provisionar novas instâncias para você como parte do processo de implantação. 

## Carregando sua revisão de aplicativo
<a name="deployment-steps-uploading-your-app"></a>

Coloque um AppSpec arquivo na pasta raiz na estrutura de pastas de conteúdo de origem do seu aplicativo. Para obter mais informações, consulte [CodeDeploy arquivos de especificação do aplicativo (AppSpec)](application-specification-files.md).

Agrupe a estrutura de pastas de conteúdo de origem do aplicativo em um formato de arquivamento, como zip, tar compactado. Faça upload do arquivo (a *revisão*) em um bucket ou GitHub repositório do Amazon S3.

**nota**  
Os formatos de arquivo tar e tar compactado (.tar e .tar.gz) não são compatíveis com instâncias do Windows Server.

## Criando seus grupos de implantação e aplicativos
<a name="deployment-steps-registering-app-deployment-groups"></a>

Um grupo de CodeDeploy implantação identifica uma coleção de instâncias com base em suas tags, nomes de grupos do Amazon EC2 Auto Scaling ou ambos. Várias revisões de aplicativos podem ser implantadas nas mesmas instâncias. Uma revisão de aplicativo pode ser implantada em várias instâncias. 

Por exemplo, você pode adicionar uma tag "Prod" aos três servidores de produção e "Backup" aos dois servidores de backup. Essas duas tags podem ser usadas para criar dois grupos de implantação diferentes no CodeDeploy aplicativo, permitindo que você escolha qual conjunto de servidores (ou ambos) deve participar de uma implantação.

Você pode usar grupos de várias tags em um grupo de implantação para restringir as implantações em um pequeno conjunto de instâncias. Para mais informações, consulte [Marcar instâncias para grupos de implantação em CodeDeploy](instances-tagging.md).

## Implantando sua revisão de aplicativo
<a name="deployment-steps-deploy"></a>

Agora você está pronto para implantar a revisão do seu aplicativo no Amazon S3 ou no GitHub grupo de implantação. Você pode usar o CodeDeploy console ou o comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html). Existem parâmetros que você pode especificar para controlar sua implantação, incluindo a revisão, o grupo de implantação e a configuração de implantação.

## Atualizar o aplicativo do
<a name="deployment-steps-updating-your-app"></a>

Você pode fazer atualizações em seu aplicativo e, em seguida, usar o CodeDeploy console ou chamar o comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) para enviar uma revisão. 

## Implantações interrompidas e com falha
<a name="deployment-stop-fail"></a>

Você pode usar o CodeDeploy console ou o comando [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) para interromper uma implantação. Quando você tenta interromper a implantação, uma de três coisas acontece:
+ A implantação é interrompida, e a operação retorna a um status de sucesso. Nesse caso, mais nenhum evento de ciclo de vida de implantação é executado no grupo de implantação para a implantação interrompida. Alguns arquivos podem já ter sido copiados para uma ou mais instâncias no grupo de implantação e alguns scripts talvez já tenham sido executados nessas instâncias.
+ A implantação não é interrompida imediatamente, e a operação retorna um status pendente. Nesse caso, alguns eventos de ciclo de vida de implantação ainda podem estar em execução no grupo de implantação. Alguns arquivos podem já ter sido copiados para uma ou mais instâncias no grupo de implantação e alguns scripts talvez já tenham sido executados nessas instâncias. Após a conclusão da operação pendente, as chamadas subsequentes para interromper a implantação retornam um status de sucesso.
+ A implantação não pode ser interrompida, e a operação retorna um erro. Para obter mais informações, consulte [ErrorInformation](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html)[Erros comuns](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) na Referência AWS CodeDeploy da API.

Como implantações interrompidas, implantações com falhas podem resultar em alguns eventos de ciclo de vida de implantação que já foram executados em uma ou mais instâncias no grupo de implantação. Para descobrir por que uma implantação falhou, você pode usar o CodeDeploy console, chamar o [get-deployment-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/get-deployment-instance.html)comando ou analisar os dados do arquivo de log da implantação com falha. Para obter mais informações, consulte [Limpeza de revisões de aplicativo e arquivos de log](codedeploy-agent.md#codedeploy-agent-revisions-logs-cleanup) e [Exibir dados de log para implantações CodeDeploy EC2/locais](deployments-view-logs.md).

## Reimplantações e reversões de implantação
<a name="deployment-rollback"></a>

CodeDeploy implementa reversões reimplantando, como uma nova implantação, uma revisão implantada anteriormente. 

Você pode configurar um grupo de implantação para reverter automaticamente as implantações quando determinadas condições forem atendidas, inclusive quando uma implantação falhar ou um limite de monitoramento de alarme for atingido. Você também pode substituir configurações de reversão especificadas para um grupo de implantação em uma implantação individual.

Além disso, pode optar por reverter uma implantação com falha, reimplantando manualmente uma revisão anteriormente implantada. 

Em todos os casos, a implantação nova ou revertida tem um ID de implantação próprio. A lista de implantações que você pode ver no CodeDeploy console mostra quais são o resultado de uma implantação automática. 

Para obter mais informações, consulte [Reimplante e reverta uma implantação com CodeDeploy](deployments-rollback-and-redeploy.md).

# CodeDeploy arquivos de especificação do aplicativo (AppSpec)
<a name="application-specification-files"></a>

Um arquivo de especificação do aplicativo (AppSpec arquivo), exclusivo do CodeDeploy, é um arquivo formatado em [YAML](http://www.yaml.org) ou em formato [JSON](http://www.json.org). O AppSpec arquivo é usado para gerenciar cada implantação como uma série de ganchos de eventos de ciclo de vida, que são definidos no arquivo.

Para obter informações sobre como criar um AppSpec arquivo bem formado, consulte[CodeDeploy AppSpec referência de arquivo](reference-appspec-file.md).

**Topics**
+ [AppSpec arquivos em uma plataforma de computação Amazon ECS](#appspec-files-on-ecs-compute-platform)
+ [AppSpec arquivos em uma plataforma de AWS Lambda computação](#appspec-files-on-lambda-compute-platform)
+ [AppSpec arquivos em uma plataforma de computação EC2/local](#appspec-files-on-server-compute-platform)
+ [Como o CodeDeploy agente usa o AppSpec arquivo](#application-specification-files-agent-usage)

## AppSpec arquivos em uma plataforma de computação Amazon ECS
<a name="appspec-files-on-ecs-compute-platform"></a>

Se seu aplicativo usa a plataforma de computação Amazon ECS, o AppSpec arquivo pode ser formatado com YAML ou JSON. Ele também poderá ser digitado diretamente em um editor no console. O AppSpec arquivo é usado para especificar:
+ O nome do serviço do Amazon ECS, o nome do contêiner e a porta usada para direcionar o tráfego para o novo conjunto de tarefas.
+ As funções a serem usadas como testes de validação.

É possível executar funções do Lambda de validação após os eventos de ciclo de vida da implantação. Para obter mais informações, consulte [AppSpec seção 'hooks' para uma implantação do Amazon ECS](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs), [AppSpec estrutura de arquivos para implantações do Amazon ECS](reference-appspec-file-structure.md#ecs-appspec-structure) e [AppSpec Exemplo de arquivo para uma implantação do Amazon ECS](reference-appspec-file-example.md#appspec-file-example-ecs).

## AppSpec arquivos em uma plataforma de AWS Lambda computação
<a name="appspec-files-on-lambda-compute-platform"></a>

Se seu aplicativo usa a plataforma de computação AWS Lambda, o AppSpec arquivo pode ser formatado com YAML ou JSON. Ele também poderá ser digitado diretamente em um editor no console. O AppSpec arquivo é usado para especificar:
+ A versão da AWS Lambda função a ser implantada.
+ As funções a serem usadas como testes de validação.

É possível executar funções do Lambda de validação após os eventos de ciclo de vida da implantação. Para obter mais informações, consulte [AppSpec seção 'hooks' para uma implantação do AWS Lambda](reference-appspec-file-structure-hooks.md#appspec-hooks-lambda).

## AppSpec arquivos em uma plataforma de computação EC2/local
<a name="appspec-files-on-server-compute-platform"></a>

Se seu aplicativo usa a plataforma de computação EC2/local, o AppSpec arquivo está sempre no formato YAML. O AppSpec arquivo é usado para:
+ Mapear os arquivos de origem na sua revisão de aplicativo para os respectivos destinos na instância.
+ Especificar permissões personalizadas para arquivos implantados.
+ Especificar scripts a serem executados em cada instância, em vários estágios do processo de implantação.

Você pode executar scripts em uma instância após muitos dos eventos individuais do ciclo de vida da implantação. CodeDeploy executa somente os scripts especificados no arquivo, mas esses scripts podem chamar outros scripts na instância. Você pode executar qualquer tipo de script, desde que ele seja compatível no sistema operacional em execução nas instâncias. Para obter mais informações, consulte [AppSpec seção 'ganchos' para uma implantação EC2/local](reference-appspec-file-structure-hooks.md#appspec-hooks-server). 

## Como o CodeDeploy agente usa o AppSpec arquivo
<a name="application-specification-files-agent-usage"></a>

Durante a implantação, o CodeDeploy agente procura o nome do evento atual na seção de **ganchos** do AppSpec arquivo. Se o evento não for encontrado, o agente do CodeDeploy passará para a próxima etapa. Se o evento for encontrado, o CodeDeploy agente recuperará a lista de scripts a serem executados. Os scripts são executados sequencialmente, na ordem em que aparecem no arquivo. O status de cada script é registrado no arquivo de log do CodeDeploy agente na instância. 

Se um script for executado com sucesso, ele retornará um código de saída de 0 (zero).

**nota**  
 O CodeDeploy agente não é usado em uma implantação do AWS Lambda ou do Amazon ECS. 

Durante o evento de **instalação**, o CodeDeploy agente usa os mapeamentos definidos na seção de **arquivos** do AppSpec arquivo para determinar quais pastas ou arquivos copiar da revisão para a instância.

Se o CodeDeploy agente instalado no sistema operacional não corresponder ao que está listado no AppSpec arquivo, a implantação falhará.

Para obter informações sobre os arquivos de log do CodeDeploy agente, consulte[Trabalhando com o CodeDeploy agente](codedeploy-agent.md).