AWS CodeDeploy. Guia do usuário API Version

Tamanho: px
Começar a partir da página:

Download "AWS CodeDeploy. Guia do usuário API Version"

Transcrição

1 AWS CodeDeploy Guia do usuário

2 AWS CodeDeploy: Guia do usuário Copyright 2017 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by Amazon.

3 Table of Contents O que é o AWS CodeDeploy?... 1 Vídeo de introdução do AWS CodeDeploy... 1 Benefícios do AWS CodeDeploy... 2 Visão geral dos tipos de implantação do AWS CodeDeploy... 2 Visão geral de uma implantação no local... 2 Visão geral de uma implantação azul/verde... 4 Deixe seu comentário... 5 Componentes primários... 5 Implantações... 7 Componentes de implantação... 7 Fluxo de trabalho de implantação... 7 Configurando Instâncias... 9 Carregando sua revisão de aplicativo Criando seus grupos de implantação e aplicativos Implantando sua revisão de aplicativo Atualizando seu aplicativo Implantações interrompidas e com falha Reimplantações e reversões de implantação Arquivos de especificação de aplicativo Como o agente do AWS CodeDeploy usa o arquivo AppSpec Conceitos básicos Etapa 1: provisionar um usuário do IAM Etapa 2: instalar ou atualizar e depois configurar a AWS CLI Etapa 3: criar uma função de serviço Criar uma função de serviço (console) Criar uma função de serviço (CLI) Obter o ARN da função de serviço (console) Obter o ARN da função de serviço (CLI) Etapa 4: criar um perfil de instância do IAM Criar um perfil de instâncias do IAM para as suas instâncias do Amazon EC2 (CLI) Criar um perfil de instâncias do IAM para as suas instâncias do Amazon EC2 (console) Etapa 5: experimentar o assistente de implantação de amostra Pré-requisitos Testar uma implantação azul/verde de amostra no AWS CodeDeploy Testar uma implantação no local de amostra no AWS CodeDeploy Integrações de produtos e serviços Integração com outros serviços da AWS Auto Scaling Elastic Load Balancing Integração com produtos e serviços de parceiros GitHub Exemplos de integração da comunidade Publicações no blog Vídeos Tutoriais Tutorial: implantar o WordPress em uma instância não Windows Etapa 1: iniciar uma instância do Amazon EC Etapa 2: configurar seu conteúdo de origem Etapa 3: carregar seu aplicativo no Amazon S Etapa 4: implantar seu aplicativo Etapa 5: atualizar e reimplantar seu aplicativo Etapa 6: Limpeza Tutorial: implantar um aplicativo HelloWorld em uma instância do Windows Server Etapa 1: iniciar uma instância do Amazon EC iii

4 Etapa 2: configurar seu conteúdo de origem Etapa 3: carregar seu aplicativo no Amazon S Etapa 4: implantar seu aplicativo Etapa 5: atualizar e reimplantar seu aplicativo Etapa 6: Limpeza Tutorial: implantar um aplicativo em uma instância local Pré-requisitos Etapa 1: configurar a instância local Etapa 2: criar uma revisão de aplicativo de amostra Etapa 3: agrupar e carregar sua revisão de aplicativo no Amazon S Etapa 4: implantar sua revisão de aplicativo Etapa 5: verificar sua implantação Etapa 6: limpar os recursos Tutorial: implantar em um grupo de Auto Scaling Pré-requisitos Etapa 1: criar e configurar o grupo de Auto Scaling Etapa 2: implantar o aplicativo no grupo de Auto Scaling Etapa 3: verificar seus resultados Etapa 4: aumentar o número de instâncias do Amazon EC2 no grupo de Auto Scaling Etapa 5: verificar novamente seus resultados Etapa 6: Limpeza Tutorial: implantar um aplicativo do GitHub Pré-requisitos Etapa 1: configurar uma conta do GitHub Etapa 2: criar um repositório GitHub Etapa 3: carregar um aplicativo de exemplo no seu repositório GitHub Etapa 4: provisionar uma instância Etapa 5: criar um aplicativo e um grupo de implantação Etapa 6: implantar o aplicativo na instância Etapa 7: monitorar e verificar a implantação Etapa 8: Limpeza Trabalhando com o agente do AWS CodeDeploy Sistemas operacionais com suporte com o agente do AWS CodeDeploy Sistemas operacionais Amazon EC2 AMI com suporte Sistemas operacionais locais com suporte Protocolo de comunicação e porta do agente do AWS CodeDeploy Suporte da SDK da AWS para Ruby (aws-sdk-core) para o agente do AWS CodeDeploy Versões com suporte do agente do AWS CodeDeploy Limpeza de revisões de aplicativo e arquivos de log Gerenciando operações do agente do AWS CodeDeploy Verificar se o agente do AWS CodeDeploy está em execução Determinar a versão do agente do AWS CodeDeploy Instalar ou reinstalar o agente do AWS CodeDeploy Atualizar o agente do AWS CodeDeploy Desinstalar o agente do AWS CodeDeploy Trabalhando com instâncias Comparando instâncias do Amazon EC2 com instâncias locais Tarefas de instâncias para o AWS CodeDeploy Trabalhando com instâncias do Amazon EC Criar uma instância do Amazon EC2 (AWS CLI ou console do Amazon EC2) Criar uma instância do Amazon EC2 (modelo do AWS CloudFormation) Configurar uma instância do Amazon EC Trabalhando com instâncias locais Pré-requisitos para configurar uma instância local Registrar uma instância local Gerenciando operações de instâncias locais Exibir Detalhes da Instância iv

5 Exibir Detalhes da Instância (console) Exibir Detalhes da Instância (CLI) Integridade da instância Estado de integridade Instâncias e implantações mínimas íntegras Trabalhando com configurações de implantação Configurações de implantação predefinidas Criar uma configuração de implantação Visualizar detalhes de configurações de implantação Visualizar detalhes de configurações de implantação (console) Visualizar configuração de implantação (CLI) Excluir uma configuração de implantação Trabalhando com aplicativos Criar um aplicativo Criar um aplicativo para uma implantação no local (console) Criar um aplicativo para uma implantação azul/verde (console) Criar um aplicativo (CLI) Visualizar detalhes de aplicativos Visualizar detalhes de aplicativos (console) Visualizar detalhes de aplicativos (CLI) Renomear um aplicativo Excluir um aplicativo Excluir um aplicativo (console) Excluir um aplicativo (AWS CLI) Trabalhando com grupos de implantação Criar um grupo de implantação Criar um grupo de implantação para uma implantação no local (console) Criar um grupo de implantação para uma implantação azul/verde (console) Configurar um load balancer no Elastic Load Balancing para implantações do AWS CodeDeploy Criar um grupo de implantação (CLI) Visualizar detalhes do grupo de implantação Visualizar detalhes do grupo de implantação (console) Visualizar detalhes do grupo de implantação (CLI) Alterar configurações do grupo de implantação Alterar configurações do grupo de implantação (console) Alterar configurações do grupo de implantação (CLI) Configurar opções avançadas para um grupo de implantação Excluir um grupo de implantação Excluir um grupo de implantação (console) Excluir um grupo de implantação (CLI) Trabalhando com revisões de aplicativos Planejar uma revisão Adicionar um AppSpec File Template de arquivo AppSpec com instruções Escolher um tipo de repositório Enviar uma revisão Visualizar detalhes de revisões de aplicativo Visualizar detalhes de revisões de aplicativo (console) Visualizar detalhes de revisões de aplicativo (CLI) Registrar uma revisão de aplicativo Registrar uma revisão no Amazon S3 com o AWS CodeDeploy (CLI) Registrar uma revisão no GitHub com o AWS CodeDeploy (CLI) Trabalhando com implantações Criar uma implantação Pré-requisitos de implantação Criar uma implantação (console) Criar uma implantação (CLI) v

6 Visualizar detalhes de implantações Visualizar detalhes de implantações (console) Visualizar detalhes de implantações (CLI) Visualizar dados de log de implantações Visualizar dados do arquivo de log no console do Amazon CloudWatch Visualizar arquivos de log em uma instância Interromper uma implantação Interromper uma implantação (console) Interromper uma implantação (CLI) Reimplantar e reverter uma implantação Reversões automáticas Reversões manuais Fluxo de trabalho de reversão e reimplantação Comportamento de reversão com conteúdo existente Implantar um aplicativo em uma conta da AWS diferente Etapa 1: criar um bucket do S3 em qualquer uma das contas Etapa 2: conceder permissões de bucket do Amazon S3 ao perfil de instâncias do IAM da conta de produção Etapa 3: criar recursos e uma função entre contas na conta de produção Etapa 4: carregar a revisão de aplicativo no bucket do Amazon S Etapa 5: assumir a função entre contas e implantar aplicativos Monitorando implantações Ferramentas automatizadas Ferramentas manuais Monitorando implantações com ferramentas do Amazon CloudWatch Monitorando implantações com alarmes do CloudWatch Monitorando implantações com o Eventos do Amazon CloudWatch Monitoramento de implantações com o AWS CloudTrail Informações do AWS CodeDeploy no CloudTrail Noções básicas das entradas dos arquivos de log do AWS CodeDeploy Monitorando implantações com notificações de eventos do Amazon SNS Conceder permissões do Amazon SNS a uma função de serviço Criar um gatilho para um evento do AWS CodeDeploy Editar um gatilho em um grupo de implantação Excluir um gatilho de um grupo de implantação Formatos de dados JSON para gatilhos Autenticação e controle de acesso Autenticação Controle de acesso Visão geral do gerenciamento de acesso Recursos e operações Entender a propriedade de recursos Gerenciar o acesso aos recursos Especificação de elementos da política: ações, efeitos e principais Especificação de condições em uma política Como usar políticas com base em identidade (políticas do IAM) Permissões obrigatórias para usar o console AWS CodeDeploy Políticas gerenciadas (predefinidas) da AWS do AWS CodeDeploy Exemplos de política gerenciada pelo cliente Referência de permissões do AWS CodeDeploy Referência de arquivos AppSpec Estrutura de AppSpec File Seção 'files' de AppSpec Seção 'permissions' de AppSpec Seção 'hooks' de AppSpec Exemplo de AppSpec File Espaçamento de AppSpec File vi

7 Validar seu AppSpec File e local do arquivo Referência de configuração do agente Tópicos relacionados Referência de modelos do AWS CloudFormation Referência ao kit de recursos Lista de arquivos do kit de recursos Exibindo uma lista dos arquivos do kit de recursos Baixando os arquivos do kit de recursos Limites Aplicativos Revisões de aplicativo Implantações Configurações de implantação Grupos de implantação Instâncias Solução de problemas Problemas de solução de problemas gerais Lista geral de verificação para solução de problemas Os recursos de implantação do AWS CodeDeploy têm suporte apenas em certas regiões Funções do IAM necessárias não estão disponíveis Evite implantações simultâneas na mesma instância do Amazon EC Usar alguns editores de texto para criar arquivos AppSpec e scripts de shell pode fazer com que as implantações falhem Usar o Finder no Mac OS para agrupar uma revisão de aplicativo pode fazer com que as implantações falhem Solucionar problemas de implantação A implantação falha com a mensagem "Validation of PKCS7 signed message failed" A implantação ou reimplantação dos mesmos arquivos nos mesmos locais de instância falha com um erro indicando que a implantação falhou porque um arquivo especificado já existe na localização Solucionando problemas com um evento de ciclo de vida AllowTraffic com falha em erro relatado nos logs de implantação Solucionando problemas com eventos de ciclo de vida de implantação ApplicationStop, BeforeBlockTraffic e AfterBlockTraffic Solucionando problemas com um evento de ciclo de vida de implantação DownloadBundle com falha que indica "UnknownError: not opened for reading" Os scripts do Windows PowerShell não conseguem usar a versão de 64 bits do Windows PowerShell por padrão Processos de execução longa podem fazer com que as implantações falhem Solucionar problemas com o grupo de implantação Marcar uma instância como parte de um grupo de implantação não implanta automaticamente seu aplicativo na nova instância Solução de problemas com a instância As tags devem ser definidas corretamente O agente AWS CodeDeploy deve estar instalado e em execução nas instâncias As implantações não falham por até uma hora quando uma instância é encerrada durante uma implantação Analisando arquivos de log para investigar falhas de implantação em instâncias Criar um novo arquivo de log do AWS CodeDeploy caso ele tenha sido excluído por acidente Solucionando erros de implantação que indicam "InvalidSignatureException Signature expired: [time] is now earlier than [time]" Solução de problemas com o Auto Scaling Solução geral de problemas com o Auto Scaling As instâncias em um grupo de Auto Scaling são continuamente provisionadas e encerradas antes que uma revisão possa ser implantada Terminar ou reiniciar uma instância do Auto Scaling pode fazer com que as implantações falhem. 330 Evite associar vários grupos de implantação a um único grupo de Auto Scaling vii

8 As instâncias do Amazon EC2 em um grupo de Auto Scaling falham ao ser iniciadas e recebem o erro "Heartbeat Timeout" Ganchos de ciclo de vida de Auto Scaling com correspondência incorreta podem fazer com que implantações automáticas em grupos de Auto Scaling sejam interrompidas ou reprovadas Códigos de erro Tópicos relacionados Recursos Guias de referência e recursos de suporte Amostras Blogs Kits e ferramentas de desenvolvimento de software da AWS Histórico do documento AWS Glossary viii

9 Vídeo de introdução do AWS CodeDeploy O que é o AWS CodeDeploy? O AWS CodeDeploy é um serviço de implantação que automatiza implantações de aplicativos em instâncias do Amazon EC2 ou em instâncias locais nas suas próprias instalações. Você pode implantar uma variedade quase ilimitada de conteúdos de aplicativos, como código, arquivos da Web e de configuração, executáveis, pacotes, scripts, arquivos de multimídia e assim por diante. O AWS CodeDeploy pode implantar conteúdo de aplicativo armazenado em buckets do Amazon S3, repositórios GitHub ou repositórios Bitbucket. Você não precisa fazer alterações no seu código existente antes de poder usar o AWS CodeDeploy. O AWS CodeDeploy permite o rápido lançamento de novos recursos, ajuda a evitar tempo de inatividade durante a implantação de aplicativos e lida com a complexidade de atualizar os seus aplicativos, sem muitos dos riscos associados a implantações manuais sujeitas a erros. O serviço se adequa à sua infraestrutura para que você possa implantar uma instância ou milhares de maneira fácil. O AWS CodeDeploy funciona com vários sistemas de gerenciamento de configurações, controle de origem, integração contínua, entrega contínua e implantação contínua. Para obter mais informações, consulte Integrações de produtos e serviços. Tópicos Vídeo de introdução do AWS CodeDeploy (p. 1) Benefícios do AWS CodeDeploy (p. 2) Visão geral dos tipos de implantação do AWS CodeDeploy (p. 2) Deixe seu comentário (p. 5) Componentes primários do AWS CodeDeploy (p. 5) Implantações do AWS CodeDeploy (p. 7) Arquivos de especificação de aplicativo do AWS CodeDeploy (p. 11) Vídeo de introdução do AWS CodeDeploy Este curto vídeo (2:10) descreve como o AWS CodeDeploy automatiza implantações de código em instâncias do Amazon EC2, permitindo o rápido lançamento de novos recursos, eliminando o tempo de inatividade durante a implantação e dispensando a necessidade de operações manuais sujeitas a erros. 1

10 Benefícios do AWS CodeDeploy Passo-a-passo em vídeo de uma implantação do AWS CodeDeploy. Benefícios do AWS CodeDeploy O AWS CodeDeploy oferece estes benefícios: Implementações automatizadas. O AWS CodeDeploy automatiza totalmente as implantações de aplicativos nos seus ambientes de desenvolvimento, teste e produção. Além disso, ele se expande com a sua infraestrutura, para que você possa implantar em uma ou milhares de instâncias. Minimize o tempo de inatividade. O AWS CodeDeploy ajuda a maximizar a disponibilidade dos seus aplicativos. Durante uma implantação no local, o AWS CodeDeploy realiza uma atualização contínua nas 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 implantação azul/verde, a revisão de aplicativo mais recente é instalada em instâncias de substituição, e o tráfego é redirecionado 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 AWS 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 controlar o status das suas implantações no console do AWS CodeDeploy ou na AWS CLI. Você receberá 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. O AWS CodeDeploy é independente de plataforma e funciona com qualquer aplicativo. Você pode facilmente reutilizar seu código de configuração. O AWS CodeDeploy também pode se integrar com o processo de lançamento de softwares ou com a cadeia de ferramentas de entrega contínua. Visão geral dos tipos de implantação do AWS CodeDeploy O AWS CodeDeploy fornece duas opções de tipo de implantação: Implantação no local: Implementação azul/verde: Tópicos Visão geral de uma implantação no local (p. 2) Visão geral de uma implantação azul/verde (p. 4) Visão geral de uma implantação no local O diagrama a seguir ilustra o fluxo de uma típico implantação no local do AWS CodeDeploy: 2

11 Visão geral de uma implantação no local Como isso funciona: 1. Primeiro, você cria conteúdo implantável na sua máquina de desenvolvimento local ou em um ambiente semelhante e, em seguida, adiciona um arquivo de especificação do aplicativo (arquivo AppSpec). O arquivo AppSpec é exclusivo para o AWS CodeDeploy e define as ações de implantação que você deseja que o AWS CodeDeploy execute. Você agrupa seu conteúdo implementável e o arquivo AppSpec em um arquivamento e depois carrega esse arquivamento em um bucket do Amazon S3 ou em um repositório GitHub. Esse arquivo é chamado de revisão de aplicativo (ou simplesmente de revisão). 2. Em seguida, você fornece ao AWS CodeDeploy informações sobre a sua implantação, por exemplo, de qual bucket do Amazon S3 ou repositório GitHub a revisão deve ser extraída e em qual conjunto de instâncias do Amazon EC2 seu conteúdo deve ser implantado. O AWS CodeDeploy chama um conjunto de instâncias do Amazon EC2 de grupo de implantação. Um grupo de implantação contém instâncias do Amazon EC2 individualmente marcadas e/ou instâncias do Amazon EC2 em grupos do Auto Scaling. 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. Isto também é a revisão que será retirada em caso de implantações automáticas. 3. Em seguida, o agente do AWS CodeDeploy em cada instância faz uma sondagem no AWS CodeDeploy para determinar o que extrair do bucket do Amazon S3 ou do repositório GitHub especificado e quando essa extração deve ocorrer. 4. Por fim, o agente do AWS CodeDeploy em cada instância extrai a revisão de destino do bucket do Amazon S3 ou repositório GitHub especificado e, usando as instruções no arquivo AppSpec, implanta o conteúdo na instância. O AWS CodeDeploy mantém um registro das suas implantações, para que você possa obter informações como o status da implantação, os parâmetros de configuração de implantação, a integridade da instância e assim por diante. 3

12 Visão geral de uma implantação azul/verde Visão geral de uma implantação azul/verde Uma implantação azul/verde, na qual o tráfego é redirecionado de um conjunto de instâncias (o ambiente original) para um conjunto diferente (o ambiente de substituição), oferece uma série de vantagens em relação a uma implantação no local: Um aplicativo pode ser instalado e testado nas novas instâncias com antecedência e implantado para produção simplesmente deslocando o tráfego para os novos servidores. O retorno para a versão mais recente de um aplicativo é mais rápido e mais confiável, pois o tráfego pode ser direcionado de volta às instâncias originais, desde que estas 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. Como as instâncias provisionadas para uma implantação azul/verde são novas, elas refletem as configurações de servidor mais atualizadas, o que ajuda a evitar os tipos de problemas que costumam ocorrer em instâncias de longa execução. Para que uma implantação azul/verde ocorra, você deve ter uma ou mais instâncias do Amazon EC2 com tags do Amazon EC2 de identificação ou um grupo de Auto Scaling. As instâncias devem atender a estes requisitos adicionais: Cada instância do Amazon EC2 deve ter o perfil de instâncias do IAM correto anexado. O agente do AWS CodeDeploy deve ser instalado e executado em cada instância. Normalmente, você também terá uma revisão de aplicativo em execução nas instâncias do seu ambiente original, mas isso não é um requisito para uma implantação azul/verde. Ao criar um grupo de implantação que será usado em implantações azuis/verdes, você pode escolher como seu ambiente de substituição será especificado: Copiar um grupo de Auto Scaling existente: durante a implantação azul/verde, o AWS CodeDeploy criará as instâncias para o seu ambiente de substituição automaticamente no decorrer da implantação. Com essa opção, o AWS CodeDeploy usará o grupo de Auto Scaling que você especificar como um template 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 de 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á possui instâncias ou um grupo de Auto Scaling que servirá como seu ambiente original. Da primeira em que executar uma implantação azul/verde, normalmente você usará instâncias que já foram usadas em uma implantação no local. 2. Em um aplicativo AWS CodeDeploy existente, crie um grupo de implantação azul/verde no qual, além das opções necessárias para uma implantação no local, você especifica o seguinte: O balanceador de carga que direcionará o tráfego do seu ambiente original para o seu ambiente de substituição durante o processo de implantação azul/verde. 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. 4

13 Deixe seu comentário 3. Você cria uma implantação para esse grupo de implementação e, durante o processo, acontece o seguinte: a. Se você optou por copiar um grupo de Auto Scaling, as instâncias serão provisionadas para o seu ambiente de substituição. b. A revisão de aplicativo que você especificou para a implantação será instalada nas instâncias de substituição. c. 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. d. 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. e. 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. Deixe seu comentário Os seus comentários são bem-vindos. Para entrar em contato conosco, visite o fórum do AWS CodeDeploy. Tópicos Componentes primários do AWS CodeDeploy (p. 5) Implantações do AWS CodeDeploy (p. 7) Arquivos de especificação de aplicativo do AWS CodeDeploy (p. 11) Componentes primários do AWS CodeDeploy Antes de começar a trabalhar com o serviço, você deve se familiarizar com os principais componentes do processo de implantação do AWS CodeDeploy mencionados neste guia do usuário. Aplicativo: um nome que identifique exclusivamente o aplicativo deseja implantar. O AWS CodeDeploy usa esse nome, que funciona como um contêiner, para garantir que a combinação correta de revisão, configuração e grupo de implantação sejam mencionados durante uma implantação. Configuração de implantação: um conjunto de regras e condições de sucesso e falha de implantação que é usado pelo AWS CodeDeploy durante uma implantação. Grupo de implantação: um conjunto de instâncias individuais. Um grupo de implantação contém instâncias individualmente marcadas e/ou instâncias do Amazon EC2 em grupos do Auto Scaling. Para obter informações sobre tags de instâncias do Amazon EC2, consulte Trabalhando com tags usando o console. Para obter informações sobre instâncias locais, consulte Trabalhando com instâncias locais para o AWS CodeDeploy (p. 156). Para obter informações sobre o Auto Scaling, consulte Auto Scaling (p. 38). Tipo de implantação: o método usado para fazer revisão mais recente do aplicativo disponível em instâncias em um grupo 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 optar por usar um balanceador de carga de forma que cada registro de instância é cancelado durante sua implantação e, em seguida, restaurada para o serviço após a conclusão da implantação. Para obter mais informações sobre implantações no local, consulte Visão geral de uma implantação no local (p. 2). 5

14 Componentes primários Implantação azul/verde: 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 de substituição) seguindo estas etapas: As instâncias são provisionadas para o ambiente de substituição. A revisão mais recente de aplicativo é instalada em instâncias de substituição. Um tempo de espera opcional ocorre para atividades como testes de aplicativos e a verificação de sistema. 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. As instâncias no ambiente original serão canceladas e podem ser interrompidas ou mantidas em execução para outros usos. Para obter mais informações sobre implantações azul/verde, consulte Visão geral de uma implantação azul/verde (p. 4). Perfil de instância do IAM: uma função do IAM que você anexa a instâncias do Amazon EC2. Este perfil inclui as permissões necessárias para acessar os buckets do Amazon S3 ou os repositórios do GitHub nos quais os aplicativos que serão implantados pelo AWS CodeDeploy estão armazenados. Para obter mais informações, consulte Etapa 4: criar um perfil de instância do IAM (p. 19). Revisão: um arquivo que contém o conteúdo de origem, como código-fonte, páginas da web, arquivos executáveis e scripts de implantação com um arquivo de especificação do aplicativo (arquivo AppSpec). As revisões são armazenadas em buckets do Amazon S3 s em repositórios do GitHub. Para o Amazon S3, uma revisão é identificada de maneira exclusiva por sua uma chave de objeto do Amazon S3 e seu ETag, versão ou ambos. Para o GitHub, uma revisão é identificada de maneira exclusiva por seu ID de confirmação. Função de serviço: uma função do &IAM que concede permissões para um serviço da AWS para que ele possa acessar recursos do AWS. As políticas que você anexa à função de serviço determinam quais recursos da AWS o serviço pode acessar e as ações que ele pode realizar com esses recursos. No AWS CodeDeploy, uma função de serviço é usada para o seguinte: Para ler as tags aplicadas às instâncias ou aos nomes de grupo do Auto Scaling associados a essas instâncias. Isso permite que o AWS CodeDeploy identifique as instâncias nas quais poderá implantar aplicativos. Para executar operações em instâncias, grupos do Auto Scaling e load balancers do Elastic Load Balancing. Para publicar informações em tópicos do Amazon SNS de forma que as notificações possam ser enviadas quando eventos especificados de implantação ou instância ocorrerem. Para recuperar informações sobre alarmes do CloudWatch para configurar o monitoramento de alarmes de implantações. Para obter mais informações, consulte Etapa 3: criar uma função de serviço (p. 15). Revisão de destino: a versão mais recente da revisão da aplicação que foi carregada no repositório e será implantada nas instâncias em um grupo de implantação. Em outras palavras, a revisão do aplicativo atualmente direcionada para implantação é a revisão de destino. Isto também é a revisão que será retirada em caso de implantações automáticas. Para obter informações sobre outros componentes principais no fluxo de trabalho do AWS CodeDeploy, consulte os seguintes tópicos: Escolher um tipo de repositório do AWS CodeDeploy (p. 218) Implantações do AWS CodeDeploy (p. 7) Arquivos de especificação de aplicativo do AWS CodeDeploy (p. 11) Integridade da instância do AWS CodeDeploy (p. 184) Trabalhando com o agente do AWS CodeDeploy (p. 119) 6

15 Implantações Trabalhando com instâncias locais para o AWS CodeDeploy (p. 156) Implantações do AWS CodeDeploy Esse tópico fornece informações sobre os componentes e o fluxo de trabalho de implantações no AWS CodeDeploy, com foco em implantações no local. Para obter mais informações sobre outros componentes e o fluxo de trabalho em implantações azuis/verdes, consulte Visão geral de uma implantação azul/ verde (p. 4). Tópicos Componentes de implantação (p. 7) Fluxo de trabalho de implantação (p. 7) Configurando Instâncias (p. 9) Carregando sua revisão de aplicativo (p. 10) Criando seus grupos de implantação e aplicativos (p. 10) Implantando sua revisão de aplicativo (p. 10) Atualizando seu aplicativo (p. 10) Implantações interrompidas e com falha (p. 10) Reimplantações e reversões de implantação (p. 11) Componentes de implantação O diagrama a seguir mostra como os componentes em uma implantação do AWS CodeDeploy se relacionam entre si. Fluxo de trabalho de implantação O diagrama a seguir mostra as principais etapas na implantação de revisões de aplicativo: 7

16 Fluxo de trabalho de implantação Essas etapas incluem: 1. Criar um aplicativo, especificando um nome que represente exclusivamente as revisões de aplicativo que você deseja implantar. O AWS CodeDeploy usa esse nome durante uma implantação para garantir que ele esteja referenciando os componentes de implantação corretos, como o grupo de implantação, a configuração de implantação e a revisão de aplicativo. Para obter mais informações, consulte Criar um aplicativo (p. 194). 2. 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 implantação azul/verde registra um conjunto de instâncias de substituição para o grupo de implantação em 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 Auto Scaling ou ambos. Se você especificar um grupo de tags no grupo de implantação, o AWS CodeDeploy será implantado em instâncias que tenham pelo menos uma das tags especificadas aplicadas. Se você especificar dois ou mais grupos de tags, o AWS CodeDeploy será implantado apenas em instâncias que atendam aos critérios para cada um dos grupos de tags. Para obter mais informações, consulte???. Em todos os casos, as instâncias devem ser configuradas para serem usadas em uma implantação (ou seja, elas devem ser marcadas ou pertencer a um grupo do Auto Scaling) e ter o agente do AWS CodeDeploy instalado e em execução. Fornecemos um template do AWS CloudFormation 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 agente do AWS CodeDeploy 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 Criar um grupo de implantação com o AWS CodeDeploy (p. 203). Também é possível especificar as seguintes opções: Notificações do Amazon SNS Crie gatilhos que enviarão 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 Monitorando implantações com notificações de eventos do Amazon SNS (p. 254). 8

17 Configurando Instâncias Gerenciamento de implantações com base em alarmes Implemente o monitoramento de alarmes do Amazon CloudWatch para interromper implantações quando suas métricas excederem os limites definidos no CloudWatch ou caírem abaixo desses limites. 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. 3. Especificar uma configuração de implantação, determinando em quantas instâncias implementar suas revisões de aplicativo simultaneamente e descrevendo as condições de êxito e falha para a implantação. Para obter mais informações, consulte Visualizar detalhes de configurações de implantação (p. 192). 4. Carregar uma revisão de aplicativo no Amazon S3 ou GitHub. Além dos arquivos que você deseja implantar e de quaisquer scripts que você deseja executar durante a implantação, é necessário incluir um arquivo de especificação do aplicativo (arquivo AppSpec). Esse arquivo contém instruções de implantação, como para onde copiar os arquivos em cada instância e em que ponto executar scripts de implantação. Para obter mais informações, consulte Trabalhando com revisões de aplicativos para o AWS CodeDeploy (p. 215). 5. Implantar a revisão de aplicativo no grupo de implantação. O agente do AWS CodeDeploy em cada instância no grupo de implantação copia sua revisão de aplicativo do Amazon S3 ou GitHub para a instância. Em seguida, ele desagrupa a revisão e, usando o arquivo AppSpec, copia os arquivos para as localizações especificadas e executa os scripts de implantação. Para obter mais informações, consulte Criar uma implantação com o AWS CodeDeploy (p. 226). 6. Verificar os resultados da implantação. Para obter mais informações, consulte Monitorando implantações no AWS CodeDeploy (p. 246). 7. 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 o conteúdo de origem revisado, quaisquer scripts de implantação e o arquivo AppSpec em uma nova revisão e, em seguida, carregue essa revisão no bucket do Amazon S3 ou em um repositório GitHub. Em seguida, você executa uma nova implantação no mesmo grupo de implantação com a nova revisão. Para obter mais informações, consulte Criar uma implantação com o AWS CodeDeploy (p. 226). Configurando Instâncias Você precisa configurar instâncias para poder implantar revisões de aplicativo pela primeira vez. Se uma revisão de aplicação exigir três servidores de produção e dois servidores de backup, você iniciará ou usará cinco instâncias. Para provisionar instâncias manualmente: 1. Instale o agente do AWS CodeDeploy nas instâncias. O agente do AWS CodeDeploy pode ser instalado em instâncias do Amazon Linux, do Ubuntu Server, do RHEL, e Windows Server. 2. Habilite a marcação, se estiver usando tags para identificar instâncias em um grupo de implantação. O AWS CodeDeploy depende de tags para identificar e agrupar instâncias em implantação do AWS CodeDeploy. 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. 3. Inicie instâncias do Amazon EC2 com um perfil de instâncias do IAM anexado. O perfil de instâncias do IAM deve ser anexado a uma instância do Amazon EC2 ao ser iniciado para que o agente do AWS CodeDeploy verifique a identidade da instância. 4. Crie uma função de serviço. Forneça acesso ao serviço para que o AWS CodeDeploy possa expandir as tags na sua conta da AWS. Para uma implantação inicial, o template do AWS CloudFormation faz tudo isso para você automaticamente. Ele cria e configura instâncias do Amazon EC2 únicas e novas com base no Amazon 9

18 Carregando sua revisão de aplicativo Linux e no Windows Server com o agente do AWS CodeDeploy já instalado. Para obter mais informações, consulte Trabalhando com instâncias (p. 139). Para uma implantação azul/verde, é possível optar entre usar instâncias que você já possui para o ambiente de substituição ou deixar que o AWS CodeDeploy provisione novas instâncias como parte do processo de implantação. Carregando sua revisão de aplicativo Coloque um arquivo AppSpec na pasta raiz da estrutura de pastas de conteúdo de origem do seu aplicativo. Para obter mais informações, consulte Arquivos de especificação de aplicativo do AWS CodeDeploy (p. 11). Agrupe a estrutura de pastas de conteúdo de origem do aplicativo em um formato de arquivamento, como zip, tar compactado. Carregue o arquivamento (a revisão) em um bucket do Amazon S3 ou repositório GitHub. Não há suporte para os formatos de arquivo tar e tar compactado (.tar and.tar.gz) nas instâncias do Windows Server. Criando seus grupos de implantação e aplicativos Um grupo de implantação do AWS CodeDeploy identifica uma coleção de instâncias com base em suas tags, nomes de grupo do Auto Scaling ou ambos. Várias revisões de aplicativo podem ser implantadas na mesma instância, e 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 aplicativo AWS CodeDeploy, dando a você a capacidade de escolher qual o 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 obter mais informações, consulte???. Implantando sua revisão de aplicativo Agora, você está pronto para implantar sua revisão de aplicativo a partir do Amazon S3 ou GitHub no grupo de implantação. É possível usar o console do AWS CodeDeploy ou o comando create-deployment. 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. Atualizando seu aplicativo Você pode fazer atualizações no seu aplicativo e usar o console do AWS CodeDeploy ou chamar o comando create-deployment para enviar uma revisão. Implantações interrompidas e com falha Você pode usar o console do AWS CodeDeploy ou o comando stop-deployment para interromper uma implantação. Quando você tentar interromper a implantação, uma das três coisas acontecerá: A implantação será interrompida, e a operação retornará a um status de sucesso. Nesse caso, mais nenhum evento de ciclo de vida de implantação será executado no grupo de implantação para a 10

19 Reimplantações e reversões de implantação 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 será interrompida imediatamente, e a operação retornará 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 retornarão um status de sucesso. A implantação não pode ser interrompida, e a operação retornará um erro. Para obter mais informações, consulte ErrorInformation e Erros comuns no AWS CodeDeploy API Reference. 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 console do AWS CodeDeploy, chamar o comando get-deployment-instance 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 (p. 124) e Visualizar dados de log de implantações (p. 234). Reimplantações e reversões de implantação O AWS CodeDeploy implementa reversões reimplantando como uma nova implantação uma revisão anteriormente implantada. Você pode configurar um grupo de implantação para reverter automaticamente as implementaçõ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 recebe seu próprio ID de implantação, e a lista de implantações que você pode visualizar no AWS CodeDeploy indica quais são o resultado de uma implantação automática. Para obter mais informações, consulte Reimplantar e reverter uma implantação (p. 238). Arquivos de especificação de aplicativo do AWS CodeDeploy Um arquivo de especificação do aplicativo (arquivo AppSpec), exclusivo para o AWS CodeDeploy, é um arquivo com formatação YAML 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. O arquivo AppSpec é usado para gerenciar cada implantação como uma série de eventos de ciclo de vida. Ganchos de evento de ciclo de vida, que estão definidos no arquivo, permitem que você execute scripts em uma instância após muitos dos eventos de ciclo de vida de implantação individuais. O AWS CodeDeploy executa apenas os scripts especificadas no arquivo, mas estes podem chamar outros scripts 11

20 Como o agente do AWS CodeDeploy usa o arquivo AppSpec 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 informações sobre como criar um arquivo AppSpec bem formado, consulte Referência ao AppSpec File do AWS CodeDeploy (p. 283). Como o agente do AWS CodeDeploy usa o arquivo AppSpec Durante a implantação, o agente do AWS CodeDeploy procura o nome do evento atual na seção hooks do arquivo AppSpec. Se o evento não for encontrado, o agente do AWS CodeDeploy passará para a próxima etapa. Se o evento for encontrado, o agente do AWS CodeDeploy recuperará a lista de scripts para execução. Os scripts são executados sequencialmente, na ordem em que aparecem no arquivo. O status de cada script é registrado no arquivo de log do agente do AWS CodeDeploy na instância. Se um script for executado com sucesso, ele retornará um código de saída de 0 (zero). Para obter informações sobre os arquivos de log do agente do AWS CodeDeploy, consulte Trabalhando com o agente do AWS CodeDeploy (p. 119). Durante o evento Install, o agente do AWS CodeDeploy usa os mapeamentos definidos na seção files do arquivo AppSpec para determinar quais pastas ou arquivos devem ser copiados da revisão para a instância. Se o agente do AWS CodeDeploy instalado no sistema operacional não corresponder ao que está listado no arquivo AppSpec, a implantação falhará. 12

21 Etapa 1: provisionar um usuário do IAM Introdução ao AWS CodeDeploy Antes de usar o AWS CodeDeploy pela primeira vez, você deve concluir várias etapas necessárias de configuração. Para começar, você deve se inscrever para uma conta da AWS. Para se inscrever, acesse aws.amazon.com/ e escolha Create an AWS Account. Em seguida, você poderá continuar com o restante das tarefas de configuração nesta seção. Tópicos Etapa 1: provisionar um usuário do IAM (p. 13) Etapa 2: instalar ou atualizar e depois configurar a AWS CLI (p. 14) Etapa 3: criar uma função de serviço para o AWS CodeDeploy (p. 15) Etapa 4: criar um perfil de instância do IAM para as suas instâncias do Amazon EC2 (p. 19) Etapa 5: experimentar o assistente de implantação de amostra do AWS CodeDeploy (p. 22) Etapa 1: provisionar um usuário do IAM Siga estas instruções para preparar um usuário do IAM para usar o AWS CodeDeploy: 1. Crie um usuário do IAM ou use um existente associado à sua conta da AWS. Para obter mais informações, consulte Criando um usuário do IAM no Guia do usuário do IAM. 2. Conceda ao usuário do IAM acesso ao AWS CodeDeploy (e às ações e aos serviços da AWS dos quais o AWS CodeDeploy depende), copiando a seguinte política e anexando-a ao usuário do IAM: { "Version": " ", "Statement" : [ { "Effect" : "Allow", "Action" : [ "autoscaling:*", "codedeploy:*", "ec2:*", "elasticloadbalancing:*", "iam:addroletoinstanceprofile", "iam:createinstanceprofile", "iam:createrole", "iam:deleteinstanceprofile", 13

22 Etapa 2: instalar ou atualizar e depois configurar a AWS CLI } ] } "iam:deleterole", "iam:deleterolepolicy", "iam:getinstanceprofile", "iam:getrole", "iam:getrolepolicy", "iam:listinstanceprofilesforrole", "iam:listrolepolicies", "iam:listroles", "iam:passrole", "iam:putrolepolicy", "iam:removerolefrominstanceprofile", "s3:*" ], "Resource" : "*" Para saber como anexar uma política a um usuário do IAM, consulte Trabalhando com políticas. Para aprender a restringir os usuários a um conjunto limitado de ações e recursos do AWS CodeDeploy. consulte Controle de acesso e autenticação do AWS CodeDeploy (p. 265). Você pode usar os templates do AWS CloudFormation fornecidos nesta documentação para iniciar instâncias do Amazon EC2 que são compatíveis com o AWS CodeDeploy. Para usar templates do AWS CloudFormation para criar aplicativos, grupos de implantação ou configurações de implantação, você deve conceder acesso ao AWS CloudFormation (e às ações e aos serviços da AWS dos quais o AWS CloudFormation depende) para o usuário do IAM, anexando uma política adicional a esse usuário, da seguinte maneira: { } "Version": " ", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*" ], "Resource": "*" } ] Para obter informações sobre outros serviços da AWS listados nestas instruções, consulte: Visão geral de políticas do IAM da AWS Controlando o acesso do usuário ao seu balanceador de carga Controlando o acesso aos seus recursos do Auto Scaling Controlando o acesso ao AWS CloudFormation com o AWS Identity and Access Management Etapa 2: instalar ou atualizar e depois configurar a AWS CLI Para chamar comandos do AWS CodeDeploy a partir da AWS CLI em uma máquina de desenvolvimento local, você deve instalar a AWS CLI. Os comandos do AWS CodeDeploy foram inicialmente disponibilizados na versão da AWS CLI. Os comandos do AWS CodeDeploy para trabalhar com instâncias locais tornaram-se disponíveis na versão da AWS CLI. 14

23 Etapa 3: criar uma função de serviço Se você tiver uma versão mais antiga da AWS CLI instalada, deverá atualizá-la para que os comandos do AWS CodeDeploy fiquem disponíveis. É possível chamar aws --version para verificar a versão. Para instalar ou atualizar a AWS CLI: 1. Siga as instruções em Instalando a AWS Command Line Interface para instalar ou atualizar a AWS CLI. 2. Para configurar a AWS CLI, consulte Configurando a AWS Command Line Interface e Gerenciando chaves de acesso para usuários do IAM. Important Quando configurar a AWS CLI, você será solicitado a especificar uma região da AWS. Especifique uma das regiões com suporte listadas em Região e endpoints do documento AWS General Reference. 3. Para verificar a instalação ou atualização, chame o seguinte comando na AWS CLI: aws deploy help Se for bem-sucedido, esse comando exibirá uma lista de comandos do AWS CodeDeploy disponíveis. Etapa 3: criar uma função de serviço para o AWS CodeDeploy Na AWS, funções de serviço são usadas para conceder permissões a um serviço da AWS para que ele possa acessar recursos da AWS. As políticas que você anexa à função de serviço determinam quais recursos da AWS o serviço pode acessar e o que ele pode fazer com esses recursos. A função de serviço que você cria para o AWS CodeDeploy deve receber permissões para acessar as instâncias nas quais você implantará aplicativos. Essas permissões permitem que o AWS CodeDeploy leia as tags aplicadas às instâncias ou aos nomes de grupo do Auto Scaling associados a essas instâncias. As permissões que você adiciona à função de serviço especificam as operações que o AWS CodeDeploy pode executar quando acessa suas instâncias do Amazon EC2 e grupos do Auto Scaling. Para adicionar essas permissões, anexe uma política fornecida pela AWS, AWSCodeDeployRole, à função de serviço. Como parte da configuração da função de serviço, você também atualiza seu relacionamento de confiança para especificar os endpoints aos quais deseja conceder acesso. É possível criar uma função de serviço com o console do IAM, a AWS CLI ou APIs do IAM. Tópicos Criar uma função de serviço (console) (p. 15) Criar uma função de serviço (CLI) (p. 17) Obter o ARN da função de serviço (console) (p. 18) Obter o ARN da função de serviço (CLI) (p. 19) Criar uma função de serviço (console) 1. Faça login no Console de gerenciamento da AWS e abra o console da IAM em console.aws.amazon.com/iam/. 15

24 Criar uma função de serviço (console) 2. No painel de navegação, escolha Roles e, em seguida, escolha Create new role. 3. Na página Select role type, com o AWS Service Role selecionado, ao lado de AWS CodeDeploy, escolha Select. 4. Na página Attach Policy, marque a caixa ao lado da política AWSCodeDeployRole e, em seguida, escolha Next Step. A política AWSCodeDeployRole fornece as permissões necessárias para que a sua função de serviço leia as tags nas suas instâncias ou identifique suas instâncias do Amazon EC2 por nome de grupo do Auto Scaling para publicar informações em tópicos do Amazon SNS e recuperar informações sobre alarmes do CloudWatch. Por padrão, essa política também inclui um relacionamento de confiança que concede à sua função de serviço acesso a todos os endpoints atualmente com suporte pelo AWS CodeDeploy. É possível restringir o acesso da função de serviço apenas aos endpoints que você especifica. 5. Na caixa Role name, atribua um nome para a função de serviço (por exemplo, CodeDeployServiceRole). 6. Observe o valor do campo Policies. Você precisará disso mais tarde ao criar grupos de implantação. Se você se esquecer do valor, siga as instruções em Obter o ARN da função de serviço (console) (p. 18). 7. Escolha Create role. 8. Se quiser que essa função de serviço tenha permissão para acessar todos os endpoints atualmente com suporte, você concluiu este procedimento. Se quiser impedir que essa função de serviço acesse alguns endpoints, na lista de funções, navegue e escolha a função que você acabou de criar e continue na próxima etapa. 9. Na guia Trust relationships, selecione Edit trust relationship. 10. Você verá a seguinte política, que fornece permissão à função de serviço para acessar todos os endpoints com suporte: { } "Version": " ", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.amazonaws.com" ] }, "Action": "sts:assumerole" } ] Para conceder acesso para a função de serviço a apenas alguns endpoints com suporte, substitua o conteúdo da caixa Policy Document pela seguinte política, remova as linhas dos endpoints aos quais você deseja impedir acesso e escolha Update Trust Policy. { "Version": " ", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.us-east-2.amazonaws.com", 16

25 Criar uma função de serviço (CLI) } ] } "codedeploy.us-east-1.amazonaws.com", "codedeploy.us-west-1.amazonaws.com", "codedeploy.us-west-2.amazonaws.com", "codedeploy.ca-central-1.amazonaws.com", "codedeploy.eu-west-1.amazonaws.com", "codedeploy.eu-west-2.amazonaws.com", "codedeploy.eu-central-1.amazonaws.com", "codedeploy.ap-northeast-1.amazonaws.com", "codedeploy.ap-northeast-2.amazonaws.com", "codedeploy.ap-southeast-1.amazonaws.com", "codedeploy.ap-southeast-2.amazonaws.com", "codedeploy.ap-south-1.amazonaws.com", "codedeploy.sa-east-1.amazonaws.com" ] }, "Action": "sts:assumerole" Para obter mais informações sobre como criar funções de serviço, consulte o tópico sobre como criar uma função para delegar permissões a um serviço da AWS, no documento IAM User Guide. Criar uma função de serviço (CLI) 1. Na sua máquina de desenvolvimento, crie um arquivo de texto denominado, por exemplo, CodeDeployDemo-Trust.json. Esse arquivo será usado para permitir que o AWS CodeDeploy trabalhe em seu nome. Faça uma das coisas a seguir: Para conceder acesso a todas as regiões com suporte, salve o seguinte conteúdo no arquivo: { } "Version": " ", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.amazonaws.com" ] }, "Action": "sts:assumerole" } ] Para conceder acesso a apenas algumas regiões com suporte, digite o seguinte conteúdo no arquivo e remova as linhas para as regiões às quais você deseja excluir o acesso: { "Version": " ", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.us-east-2.amazonaws.com", 17

26 Obter o ARN da função de serviço (console) } ] } "codedeploy.us-east-1.amazonaws.com", "codedeploy.us-west-1.amazonaws.com", "codedeploy.us-west-2.amazonaws.com", "codedeploy.ca-central-1.amazonaws.com", "codedeploy.eu-west-1.amazonaws.com", "codedeploy.eu-west-2.amazonaws.com", "codedeploy.eu-central-1.amazonaws.com", "codedeploy.ap-northeast-1.amazonaws.com", "codedeploy.ap-northeast-2.amazonaws.com", "codedeploy.ap-southeast-1.amazonaws.com", "codedeploy.ap-southeast-2.amazonaws.com", "codedeploy.ap-south-1.amazonaws.com", "codedeploy.sa-east-1.amazonaws.com" ] }, "Action": "sts:assumerole" Não use uma vírgula após o último endpoint na lista. 2. No mesmo diretório, chame o comando create-role para criar uma função de serviço denominada CodeDeployServiceRole, com base nas informações do arquivo de texto que você acabou de criar: Important Não se esqueça de incluir file:// antes do nome de arquivo. Ele é obrigatório nesse comando. aws iam create-role --role-name CodeDeployServiceRole --assume-role-policy-document file://codedeploydemo-trust.json Na saída do comando, anote o valor da entrada Arn no objeto Role. Você precisará disso mais tarde ao criar grupos de implantação. Se você se esquecer do valor, siga as instruções em Obter o ARN da função de serviço (CLI) (p. 19). 3. Chame o comando attach-role-policy para dar à função de serviço CodeDeployServiceRole as permissões com base na política gerenciada do IAM denominada AWSCodeDeployRole. Por exemplo: aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/awscodedeployrole Para obter mais informações sobre como criar funções de serviço, consulte o tópico sobre como criar uma função para um serviço da AWS, no documento IAM User Guide. Obter o ARN da função de serviço (console) Para usar o console do IAM para obter o ARN da função de serviço: 1. Faça login no Console de gerenciamento da AWS e abra o console da IAM em console.aws.amazon.com/iam/. 2. No painel de navegação, selecione Roles. 3. Na caixa Filter, digite CodeDeployServiceRole e pressione Enter. 4. Escolha CodeDeployServiceRole. 5. Observe o valor do campo Role ARN. 18

27 Obter o ARN da função de serviço (CLI) Obter o ARN da função de serviço (CLI) Para usar a AWS CLI para obter o ARN da função de serviço, chame o comando get-role para a função de serviço denominada CodeDeployServiceRole: aws iam get-role --role-name CodeDeployServiceRole --query "Role.Arn" --output text O valor retornado é o ARN da função de serviço. Etapa 4: criar um perfil de instância do IAM para as suas instâncias do Amazon EC2 Suas instâncias do Amazon EC2 precisam de permissão para acessar os buckets do Amazon S3 ou os repositórios GitHub nos quais os aplicativos que serão implantados pelo AWS CodeDeploy estão armazenados. Para iniciar instâncias do Amazon EC2 compatíveis com o AWS CodeDeploy, você deve criar uma função do IAM adicional, um perfil de instância. Estas instruções mostram como criar um perfil de instâncias do IAM para anexar às suas instâncias do Amazon EC2. Essa função dá ao AWS CodeDeploy permissão para acessar os buckets do Amazon S3 ou os repositórios GitHub nos quais os seus aplicativos estão armazenados. Você pode criar um perfil de instâncias do IAM com a AWS CLI, o console do IAM ou as APIs do IAM. Você pode anexar um perfil de instâncias do IAM a uma instância do Amazon EC2 à medida que a inicia ou a uma instância anteriormente iniciada. Para obter mais informações, consulte Perfis de instância. Tópicos Criar um perfil de instâncias do IAM para as suas instâncias do Amazon EC2 (CLI) (p. 19) Criar um perfil de instâncias do IAM para as suas instâncias do Amazon EC2 (console) (p. 21) Criar um perfil de instâncias do IAM para as suas instâncias do Amazon EC2 (CLI) Nestas etapas, partimos do princípio de que você já tenha seguido as instruções em Conceitos básicos (p. 13). 1. Na máquina de desenvolvimento, crie um arquivo de texto denominado CodeDeployDemo-EC2- Trust.json. Cole o seguinte conteúdo, que permite ao Amazon EC2 trabalhar em seu nome: 2. No mesmo diretório, crie um arquivo de texto denominado CodeDeployDemo-EC2-Permissions.json. Cole o seguinte conteúdo: { "Version": " ", "Statement": [ { "Action": [ "s3:get*", "s3:list*" ], "Effect": "Allow", "Resource": "*" 19

28 Criar um perfil de instâncias do IAM para as suas instâncias do Amazon EC2 (CLI) } ] } Recomendamos que você restrinja essa política somente aos buckets do Amazon S3 que a sua instância do Amazon EC2 precisa acessar. Certifique-se de dar acesso aos buckets do Amazon S3 que contêm o agente do AWS CodeDeploy. Caso contrário, um erro poderá ocorrer quando o agente do AWS CodeDeploy for instalado ou atualizado nas instâncias. Para conceder acesso ao perfil da instância do IAM a somente alguns buckets do kit de recursos do AWS CodeDeploy no Amazon S3, use a política a seguir, mas remova as linhas de bucket às quais você deseja impedir o acesso: { } "Version": " ", "Statement": [ { "Effect": "Allow", "Action": [ "s3:get*", "s3:list*" ], "Resource": [ "arn:aws:s3:::codedeploydemobucket/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] 3. No mesmo diretório, chame o comando create-role para criar uma função do IAM denominada CodeDeployDemo-EC2-Instance-Profile, com base nas informações do primeiro arquivo : Important Não se esqueça de incluir file:// antes do nome de arquivo. Ele é obrigatório nesse comando. aws iam create-role --role-name CodeDeployDemo-EC2-Instance-Profile --assume-rolepolicy-document file://codedeploydemo-ec2-trust.json 4. No mesmo diretório, chame o comando put-role-policy para dar à função CodeDeployDemo-EC2- Instance-Profile as permissões baseadas nas informações no segundo arquivo: : Important Não se esqueça de incluir file:// antes do nome de arquivo. Ele é obrigatório nesse comando. 20

29 Criar um perfil de instâncias do IAM para as suas instâncias do Amazon EC2 (console) aws iam put-role-policy --role-name CodeDeployDemo-EC2-Instance-Profile --policyname CodeDeployDemo-EC2-Permissions --policy-document file://codedeploydemo-ec2- Permissions.json 5. Chame o comando create-instance-profile seguido do comando add-role-to-instance-profile para criar um perfil de instâncias do IAM CodeDeployDemo-EC2-Instance-Profile. O perfil de instância permite que o Amazon EC2 transmita a função do IAM denominada CodeDeployDemo-EC2-Instance-Profile a uma instância do Amazon EC2 quando essa instância é iniciada pela primeira vez: aws iam create-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance- Profile aws iam add-role-to-instance-profile --instance-profile-name CodeDeployDemo-EC2- Instance-Profile --role-name CodeDeployDemo-EC2-Instance-Profile Se você precisa obter o nome do perfil de instâncias do IAM, consulte list-instance-profiles-for-role na seção IAM do documento AWS CLI Reference. Agora, você criou um perfil de instâncias do IAM a ser anexado às suas instâncias do Amazon EC2. Para obter mais informações, consulte o tópico sobre Funções do IAM para o Amazon EC2, no documento Amazon EC2 User Guide. Criar um perfil de instâncias do IAM para as suas instâncias do Amazon EC2 (console) 1. Faça login no Console de gerenciamento da AWS e abra o console da IAM em console.aws.amazon.com/iam/. 2. No console do IAM, no painel de navegação, escolha Policies e depois escolha Create policy. (Se um botão Get Started aparecer, escolha-o e selecione Create Policy.) 3. Ao lado de Create Your Own Policy, escolha Select. 4. Na caixa Policy Name, digite CodeDeployDemo-EC2-Permissions. 5. Na caixa Policy Document, cole o seguinte: { } "Version": " ", "Statement": [ { "Action": [ "s3:get*", "s3:list*" ], "Effect": "Allow", "Resource": "*" } ] Recomendamos que você restrinja essa política somente aos buckets do Amazon S3 que a sua instância do Amazon EC2 precisa acessar. Certifique-se de dar acesso aos buckets do Amazon S3 que contêm o agente do AWS CodeDeploy. Caso contrário, um erro poderá ocorrer quando o agente do AWS CodeDeploy for instalado ou atualizado nas instâncias. Para conceder acesso ao perfil da instância do IAM a somente alguns buckets do kit de 21

30 Etapa 5: experimentar o assistente de implantação de amostra recursos do AWS CodeDeploy no Amazon S3, use a política a seguir, mas remova as linhas de bucket às quais você deseja impedir o acesso: { } "Version": " ", "Statement": [ { "Effect": "Allow", "Action": [ "s3:get*", "s3:list*" ], "Resource": [ "arn:aws:s3:::codedeploydemobucket/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] 6. Escolha Create Policy. 7. No painel de navegação, escolha Roles e, em seguida, escolha Create new role. 8. Na página Select role type, na lista AWS Service Role, ao lado de Amazon EC2, escolha Select. 9. Na página Attach Policy, marque a caixa ao lado de CodeDeployDemo-EC2-Permissions e escolha Next Step. 10. Na caixa Role name, dê ao perfil de instâncias do IAM um nome como CodeDeployDemo-EC2- Instance-Profile e escolha Create role. Agora, você criou um perfil de instâncias do IAM a ser anexado às suas instâncias do Amazon EC2. Para obter mais informações, consulte o tópico sobre Funções do IAM para o Amazon EC2, no documento Amazon EC2 User Guide. Etapa 5: experimentar o assistente de implantação de amostra do AWS CodeDeploy Depois de concluir as quatro primeiras etapas em Conceitos básicos (p. 13), tente o Assistente de implantação de exemplo. Ele o orientará pelas etapas necessárias para criar uma implantação do AWS CodeDeploy. O Assistente de implantação de exemplo permite testar uma implantação no local e uma implantação azul/verde. 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 optar 22

31 Pré-requisitos por usar um balanceador de carga de forma que cada registro de instância é cancelado durante sua implantação e, em seguida, restaurada para o serviço após a conclusão da implantação. Para obter mais informações sobre implantações no local, consulte Visão geral de uma implantação no local (p. 2). Implantação azul/verde: 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 de substituição) seguindo estas etapas: As instâncias são provisionadas para o ambiente de substituição. A revisão mais recente de aplicativo é instalada em instâncias de substituição. Um tempo de espera opcional ocorre para atividades como testes de aplicativos e a verificação de sistema. 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. As instâncias no ambiente original serão canceladas e podem ser interrompidas ou mantidas em execução para outros usos. Para obter mais informações sobre implantações azul/verde, consulte Visão geral de uma implantação azul/verde (p. 4). Para ambas as amostras de tipo de implantação, assumimos que você não tenha experiência prévia com o AWS CodeDeploy e ainda não tenha criado nenhum recurso, como aplicativos, revisões de aplicativo ou grupos de implantação no AWS CodeDeploy. Esses tópicos referem-se a recursos e conceitos que são exclusivos do AWS CodeDeploy. Para se familiarizar com eles antes de começar, consulte Componentes primários do AWS CodeDeploy (p. 5). Pré-requisitos Se quiser que o AWS CodeDeploy crie algumas instâncias do Amazon EC2 de amostra, você deve ter um par de chaves de instância do Amazon EC2. Para criar um par de chaves de instância Amazon EC2, siga as instruções em Como criar seu par de chaves usando o Amazon EC2. Certifique-se de que seu par de chaves de instância do Amazon EC2 seja criado em uma das regiões listadas em Região e endpoints, no documento AWS General Reference. Você deve criar um par de chaves de instância do Amazon EC2 antes de iniciar o assistente. Caso contrário, ele não aparecerá na lista suspensa Nome do par de chaves no assistente de implantação de amostra. Se você usar o modelo do AWS CloudFormation para executar instâncias do Amazon EC2, o usuário do IAM que está chamando deve ter acesso aos serviços e ações do AWS CloudFormation e do AWS dos quais o AWS CloudFormation depende. Se você não acompanhou as etapas em Etapa 1: provisionar um usuário do IAM (p. 13) para provisionar o usuário do IAM responsável pela chamada, você deve pelo menos anexar a seguinte política: { "Version": " ", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*", "codedeploy:*", "ec2:*", "iam:addroletoinstanceprofile", "iam:createinstanceprofile", "iam:createrole", "iam:deleteinstanceprofile", "iam:deleterole", "iam:deleterolepolicy", "iam:getrole", 23

32 Pré-requisitos } ] } "iam:passrole", "iam:putrolepolicy", "iam:removerolefrominstanceprofile" ], "Resource": "*" A seguinte parte da política concede para o usuário do IAM responsável pela chamada acesso às ações do IAM necessárias para criar a função de serviço. { } "Version": " ", "Statement": [ { "Effect": "Allow", "Action": [ "iam:createrole", "iam:putrolepolicy" ], "Resource": "*" } ] A seguinte parte da política concede para o usuário do IAM responsável pela chamada permissão para criar aplicativos e grupos de implantação e implantar aplicativos. { } "Version": " ", "Statement": [ { "Effect": "Allow", "Action": [ "codedeploy:*" ], "Resource": "*" } ] Não é o que você está procurando? Para criar uma implantação que use um aplicativo existente, uma revisão, um grupo de implantação ou uma configuração de implantação personalizada no AWS CodeDeploy, siga as instruções em Criar uma implantação com o AWS CodeDeploy (p. 226). Para praticar a implantação em instâncias locais em vez de em instâncias do Amazon EC2, consulte Tutorial: implantar um aplicativo em uma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux) (p. 84). Tópicos Testar uma implantação azul/verde de amostra no AWS CodeDeploy (p. 25) Testar uma implantação no local de amostra no AWS CodeDeploy (p. 29) 24

33 Testar uma implantação azul/verde de amostra no AWS CodeDeploy Testar uma implantação azul/verde de amostra no AWS CodeDeploy Esta seção o orienta pelas etapas necessárias para implantar uma revisão em uma ou mais instâncias do Amazon EC2 usando o Assistente de implantação de exemplo e então executar uma implantação azul/ verde para substituir o conjunto original de instâncias em um grupo de implantação, o ambiente original, por um conjunto diferente de instâncias, o ambiente de substituição. Tópicos Iniciar o assistente (p. 25) Etapa 1: introdução (p. 25) Etapa 2: escolher um tipo de implantação (p. 25) Etapa 3: criar uma implantação azul/verde (p. 25) Etapa 4: monitorar a implantação azul/verde (p. 27) Etapa 5: atualizar a janela do aplicativo Web (p. 27) Etapa 6: limpar recursos de amostra (p. 27) Iniciar o assistente Para iniciar o assistente: 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. Se a página introdutória for exibida, escolha Comece a usar agora. Se a página Aplicativos for exibida, em Mais informações, escolha Assistente de implantação de exemplo. Etapa 1: introdução Selecione Implantação da amostra e, em seguida, Avançar. Etapa 2: escolher um tipo de implantação Selecione Implantação azul/verde e, em seguida, Avançar. Etapa 3: criar uma implantação azul/verde Na página Etapa 3: criar uma implantação azul/verde, fornecemos valores padrão para a maioria dos componentes que você precisará para uma implantação azul/verde. 1. Aceite ou altere qualquer um dos nomes padrão nos seguintes campos: Como os campos têm requisitos de validação diferentes, para economizar tempo, recomendamos deixar os nomes padrão para a implantação de amostra. 25

34 Testar uma implantação azul/verde de amostra no AWS CodeDeploy Campo Application name Nome do grupo de implantação Nome do grupo do Auto Scaling Nome do load balancer Nome da função do serviço Descrição Um nome que funciona como contêiner para garantir que o conteúdo certo seja implantado usando a combinação correta de opções de implantação. Um nome que representa o grupo de instâncias nas quais implementar. Um nome para o grupo de Auto Scaling que provisionará as instâncias do Amazon EC2 para o ambiente de implementação. O Classic Load Balancer no Elastic Load Balancing que roteará o tráfego para as instâncias no seu ambiente de implantação. O nome da função de serviço que fornecerá ao AWS CodeDeploy as permissões necessárias para acessar outros serviços da AWS durante o processo de implantação. 2. Na lista suspensa Nome do par de chaves, escolha o par de chaves de instância do Amazon EC2 que você usará para se conectar às instâncias do Amazon EC2. Para criar um par de chaves de instância Amazon EC2, siga as instruções em Como criar seu par de chaves usando o Amazon EC2. Certifique-se de que seu par de chaves seja criado em uma das regiões listadas em Região e endpoints, no documento AWS General Reference. O novo par de chaves de instância do Amazon EC2 pode não ser exibido na lista suspensa Nome do par de chaves até você reiniciar o assistente. 3. Escolha Ambiente de ativação. 4. Depois que o ambiente estiver pronto, reveja os detalhes em Parabéns! Seu ambiente está pronto. Para facilitar a consulta mais tarde, recomendamos que você copie o texto inteiro na área Parabéns! Seu ambiente está pronto área para um arquivo no seu computador. O nome do Classic Load Balancer criado para você, como BlueGreenLoadBalancer-abcdefh. O nome do grupo de Auto Scaling criado para o ambiente original, como CodeDeployBGStackabcdefh-BlueGreenAutoScalingGroup-1IJKLMN234O56. O endereço Web do aplicativo que foi implantado no seu ambiente original, como BlueGreenLoadBalancer-abcdefh us-east-2.elb.amazonaws.com. Important Recomendamos que você agora abra o aplicativo Web em uma janela de navegador diferente, para poder atualizá-lo mais tarde para rever a alteração na cor de fundo feita durante a implantação azul/verde. O nome da pilha do AWS CloudFormation usada para criar seu ambiente, como BlueGreenLoadBalancer-abcdefh. Quando estiver pronto para limpar os recursos da sua implantação azul/verde de amostra, você usará o console do AWS CloudFormation para excluir essa pilha. A localização do aplicativo de exemplo que será instalado no ambiente original, como: 26

35 5. Escolha Iniciar implantação azul/verde. AWS CodeDeploy Guia do usuário Testar uma implantação azul/verde de amostra no AWS CodeDeploy Etapa 4: monitorar a implantação azul/verde Na página Implantação, você pode visualizar o andamento da implantação azul/verde em um formato de painel. A área Andamento da implantação relata o andamento das quatro principais etapas na implantação: Provisionando instâncias no ambiente de substituição. Instalando a nova revisão de aplicativo no ambiente de substituição. Redirecionando o tráfego para o ambiente de substituição. Encerrando as instâncias no ambiente original. A área Tráfego de recebimento das instâncias indica as contagens de instâncias nos ambientes original e de substituição que estão atualmente registrados no load balancer. A área Detalhes da implantação lista informações de identificação sobre a implantação e a revisão de aplicativo que foi instalada no ambiente de substituição. A área Atividade da instância fornece detalhes sobre cada instância do ambiente original e do ambiente de substituição. Etapa 5: atualizar a janela do aplicativo Web Na janela do navegador na qual você abriu anteriormente uma visualização do aplicativo que foi instalado no ambiente original, como escolha o botão Atualizar do navegador. Se a cor de fundo da página da Web mudar de azul para verde, significa que o tráfego foi direcionado com sucesso das instâncias que criamos em Etapa 3: criar uma implantação azul/verde (p. 25) para as instâncias de substituição criadas durante o processo em Etapa 4: monitorar a implantação azul/ verde (p. 27) Etapa 6: limpar recursos de amostra Para evitar cobranças futuras, você deve limpar os recursos usados nesse assistente. Os recursos devem ser limpos na seguinte ordem: O grupo de Auto Scaling ao qual as instâncias do ambiente de substituição pertencem. (O grupo de Auto Scaling associado às instâncias no ambiente original será excluído quando você excluir a pilha do AWS CloudFormation.) A pilha do AWS CloudFormation criada pelo Assistente de implantação de exemplo para fornecer o ambiente original para a implantação azul/verde. O grupo de implantação e o aplicativo do AWS CodeDeploy criados pelo Assistente de implantação de exemplo. Para excluir o grupo de Auto Scaling para o ambiente de substituição Você verá dois grupos do Auto Scaling associados à amostra de implantação azul/verde no console do Amazon EC2. Para evitar erros, certifique-se de excluir o grupo de Auto Scaling associado ao ambiente de substituição nessa etapa. Você pode distinguir os grupos do Auto Scaling por seus formatos: 27

36 Exclua o Auto Scaling com este formato: AWS CodeDeploy Guia do usuário Testar uma implantação azul/verde de amostra no AWS CodeDeploy CodeDeploy_BlueGreenDemoFleet-9zyxwvut_d-ZY9XWVUTS8R Você pode excluir o grupo de Auto Scaling com esse formato agora ou deixar que ele seja removido quando a pilha do AWS CloudFormation for excluída: CodeDeployBGStack-abcdefh-BlueGreenAutoScalingGroup-1IJKLMN234O56 1. Abra o console do Amazon EC2 em 2. No painel de navegação, em Auto Scaling, selecione Grupos do Auto Scaling. 3. Na página de grupos do Auto Scaling, marque a caixa ao lado do grupo de Auto Scaling criado para o ambiente de substituição. Por exemplo: CodeDeploy_BlueGreenDemoFleet-9zyxwvut_d-ZY9XWVUTS8R No menu Ações, escolha Excluir. 4. Quando a confirmação for solicitada, escolha Sim, excluir. Para excluir a pilha do AWS CloudFormation 1. Faça login no Console de gerenciamento da AWS e abra o console da AWS CloudFormation em 2. Marque a caixa ao lado da pilha criada para a implantação azul/verde. Por exemplo: CodeDeployBGStack-abcdefh-BlueGreenAutoScalingGroup-1IJKLMN234O56 No menu Ações, escolha Excluir pilha. 3. Quando solicitado, escolha Sim, excluir. Os recursos restantes que foram criados para essa implantação no Amazon EC2, AWS Identity and Access Management, Amazon VPC e Elastic Load Balancing serão excluídos. Para excluir registros de recurso de uma implantação azul/verde do AWS CodeDeploy 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. Se a página Aplicativos não for exibida, selecione a opção Aplicativos no menu do AWS CodeDeploy. 3. Na página Applications, escolha o aplicativo a ser excluído, como BlueGreenDemoApplication. 4. Na página Detalhes do aplicativo, em Grupos de implantação, escolha o botão ao lado do grupo de implantação que você deseja excluir, como BlueGreenDemoFleet-1abcdef. No menu Ações, escolha Excluir. Quando solicitado, digite o nome do grupo de implantação para confirmar que você deseja excluí-lo e, em seguida, escolha Excluir. 5. Na parte inferior da página Application details, escolha Delete application. 6. Quando solicitado, digite o nome do aplicativo e escolha Excluir. Todos os registros sobre o aplicativo e seus grupos de implantação, revisões e implantações associados serão excluídos. 28

37 Testar uma implantação no local de amostra no AWS CodeDeploy Testar uma implantação no local de amostra no AWS CodeDeploy Esta seção o orienta pelas etapas necessárias para implantar uma revisão em uma ou mais instâncias do Amazon EC2 usando o Assistente de implantação de exemplo. Tópicos Vídeo de uma amostra de implantação no local do AWS CodeDeploy (p. 29) Iniciar o assistente (p. 29) Etapa 1: introdução (p. 29) Etapa 2: escolher um tipo de implantação (p. 29) Etapa 3: configurar instâncias (p. 30) Etapa 4: nomear seu aplicativo (p. 30) Etapa 5: selecionar uma revisão (p. 30) Etapa 6: criar um grupo de implantação (p. 31) Etapa 7: selecionar uma função de serviço (p. 31) Etapa 8: escolher uma configuração de implantação (p. 32) Etapa 9: revisar os detalhes da implantação (p. 32) Limpar recursos de implantação no local de amostra (p. 32) Vídeo de uma amostra de implantação no local do AWS CodeDeploy Este curto vídeo (5:01) fornece orientações ao longo de uma amostra de implantação no local do AWS CodeDeploy usando o console do AWS CodeDeploy. Vídeo de uma implantação no local do AWS CodeDeploy. Iniciar o assistente Para iniciar o assistente: 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. Se a página introdutória for exibida, escolha Comece a usar agora. Se a página Aplicativos for exibida, em Mais informações, escolha Assistente de implantação de exemplo. Etapa 1: introdução Selecione Implantação da amostra e, em seguida, Avançar. Etapa 2: escolher um tipo de implantação Selecione Implantação local e, em seguida, Avançar. 29

38 Testar uma implantação no local de amostra no AWS CodeDeploy Etapa 3: configurar instâncias Se você tiver instâncias do Amazon EC2 já configuradas para uso nas implantações do AWS CodeDeploy, escolha Ignorar, leia e siga as instruções e, em seguida, avance para Etapa 4: nomear seu aplicativo (p. 30). Se quiser que o AWS CodeDeploy inicie um novo conjunto de instâncias do Amazon EC2: 1. Próximo para o Sistema operacional, escolha Amazon Linux ou Windows Server. Important Você pode ser cobrado pelas instâncias do Amazon EC2 iniciadas pelo AWS CodeDeploy. Por isso, não se esqueça de encerrá-las depois de concluir o assistente. Nesse assistente, um template do AWS CloudFormation é usado para iniciar essas instâncias do Amazon EC2. Para excluir a pilha do AWS CloudFormation criada para iniciar as instâncias do Amazon EC2, consulte Excluindo uma pilha no console do AWS CloudFormation. O nome da pilha começará com CodeDeploySampleStack. 2. Na lista suspensa Nome do par de chaves, escolha o par de chaves de instância do Amazon EC2 que você usará para se conectar às instâncias do Amazon EC2. Para criar um par de chaves de instância Amazon EC2, siga as instruções em Como criar seu par de chaves usando o Amazon EC2. Certifique-se de que seu par de chaves seja criado em uma das regiões listadas em Região e endpoints, no documento AWS General Reference. O novo par de chaves de instância do Amazon EC2 pode não ser exibido na lista suspensa Nome do par de chaves até você reiniciar o assistente. 3. Deixe os valores padrão para Chave e valor da tag. O AWS CodeDeploy usará essa chave e o valor da tag para localizar as instâncias durante as implantações. Se quiser substituir a chave e o valor da tag propostos (por exemplo, se estiver executando esse assistente várias vezes sem encerrar as instâncias do Amazon EC2 criadas anteriormente), sugerimos deixar a chave de tag Name na caixa Chave e digitar um valor de tag diferente na caixa Valor. Para obter informações sobre tags de instância do Amazon EC2, consulte Marcando seus recursos do Amazon EC2. 4. Selecione Iniciar instâncias. Se você escolher Ver mais detalhes no AWS CloudFormation, o console do AWS CloudFormation será aberto em uma guia separada do navegador. Procure por uma pilha que inicie com CodeDeploySampleStack. Quando CREATE_COMPLETE aparecer na coluna Status, suas instâncias do Amazon EC2 foram iniciadas. (Isso pode demorar vários minutos.) 5. Para continuar, escolha Avançar. Etapa 4: nomear seu aplicativo Na caixa Nome do aplicativo, deixe o nome do aplicativo proposto ou, se preferir, digite um nome diferente e escolha Avançar. Etapa 5: selecionar uma revisão Reveja as informações sobre a nossa revisão de aplicativo de amostra e escolha Avançar. Se você quiser examinar o conteúdo da nossa revisão de amostra, escolha Fazer download do pacote de amostra e siga as instruções do seu navegador para fazer download e visualizar o conteúdo. 30

39 Testar uma implantação no local de amostra no AWS CodeDeploy Se você escolheu Ignorar em Etapa 3: configurar instâncias (p. 30), na lista suspensa Tipo de revisão, escolha o tipo de revisão de aplicativo que corresponde ao tipo de instâncias do Amazon EC2 (Amazon Linux ou Windows Server). Etapa 6: criar um grupo de implantação 1. Na caixa Nome do grupo de implantação, deixe o nome do grupo de implantação proposto ou, se preferir, digite um nome diferente. 2. A chave e o valor do par de chave/valor que você especificou na página Configurar instâncias (por exemplo, Name e CodeDeployDemo) devem aparecer. Se você escolheu Ignorar em Etapa 3: configurar instâncias (p. 30), em Adicionar instâncias, substitua os valores das caixas Chave e Valor pela chave e pelo valor do par de chave/valor das suas instâncias do Amazon EC2. Opcionalmente, se as suas instâncias do Amazon EC2 tiverem vários pares de chave/valor, você pode digitá-los na linha em branco. Uma nova linha em branco será exibida para que você possa adicionar outro par de chave/valor. É possível adicionar até 10 pares de chave/valor. Escolha o ícone Remover para remover um par de chave/valor da lista. O AWS CodeDeploy exibe o número de instâncias que correspondem a cada par de chave/ valor. Para ver instâncias no console do Amazon EC2, clique no número. Se estiver usando nosso modelo do AWS CloudFormation para iniciar novas instâncias do Amazon EC2, e o número for maior do que você esperava, escolha Cancelar, inicie o assistente desde o início e, em Etapa 3: configurar instâncias (p. 30), especifique um valor de tag diferente do padrão. (Certifique-se de excluir a pilha do AWS CloudFormation para encerrar as instâncias do Amazon EC2.) Se estiver usando suas próprias instâncias do Amazon EC2, adicione um novo par de chave/ valor de tag às suas instâncias do Amazon EC2 e especifique um par de chave/valor de tag diferente do padrão em Adicionar instâncias. 3. Se tiver um grupo de Auto Scaling para adicionar ao grupo de implantação, escolha Pesquisar por nomes de grupo do Auto Scaling e digite o nome do grupo de Auto Scaling. É possível adicionar até 10 grupos de Auto Scaling. Escolha o ícone Remover para remover um grupo de Auto Scaling da lista. O AWS CodeDeploy exibe o número de instâncias do Amazon EC2 que correspondem a cada nome de grupo de Auto Scaling. Para ver instâncias no console do Amazon EC2, clique no número. 4. Escolha Avançar. Etapa 7: selecionar uma função de serviço Escolha Criar uma função de serviço ou Usar uma função de serviço existente. Se você estiver usando este assistente pela primeira vez, recomendamos que você escolha Criar uma função de serviço, selecione Avançar para aceitar o nome padrão e continue em Etapa 8: escolher uma configuração de implantação (p. 32). Se você tiver tem uma função de serviço, escolha Usar uma função de serviço existente, escolha-a na lista suspensa Nome da função e, em seguida, escolha Avançar. 31

40 Testar uma implantação no local de amostra no AWS CodeDeploy Etapa 8: escolher uma configuração de implantação 1. Para usar uma configuração integrada para esta implementação, escolha Usar uma configuração de implantação padrão. Para criar sua própria configuração para esta implantação, escolha Criar uma configuração de implantação personalizada. 2. Se você escolheu Usar uma configuração de implantação padrão e deseja usar uma configuração diferente da selecionada, ao lado da configuração desejada, escolha Selecionar. Retorne para Avançar e escolha Etapa 9: revisar os detalhes da implantação (p. 32). 3. Se você escolher Criar uma configuração de implantação personalizada: a. Na caixa Nome da configuração de implantação, digite um nome exclusivo para a configuração. b. Use a caixa Número ou Porcentagem para digitar o número ou a porcentagem do total de instâncias do Amazon EC2 que devem estar disponíveis durante a implantação. c. Escolha Avançar. Etapa 9: revisar os detalhes da implantação 1. Se precisar fazer alterações, escolha um dos links Editar. Depois de fazer as alterações, escolha Avançar até retornar à página Detalhes de implantação da revisão e escolha Implantar. 2. Escolha o botão Atualizar ao lado da tabela para obter o status da implantação. Para obter informações sobre a implantação, consulte Exibir Detalhes da Instância (console) (p. 183). 3. Nossa revisão de amostra implanta uma única página da Web em cada instância. Você pode usar seu navegador da Web para verificar se a implantação foi bem-sucedida, acessando para cada instância (por exemplo, A página da Web exibirá uma mensagem de parabéns. Para obter o valor do DNS público, no console do Amazon EC2, escolha a instância do Amazon EC2. Na guia Descrição, procure o valor em DNS público. Limpar recursos de implantação no local de amostra Para evitar cobranças futuras, você deve limpar os recursos usados nesse assistente. Se você usou nosso template do AWS CloudFormation para iniciar instâncias do Amazon EC2, exclua a pilha do AWS CloudFormation. Isso encerrará as instâncias e seus recursos associados. Se você iniciou suas próprias instâncias do Amazon EC2 apenas para esse assistente, deverá encerrálas. Opcionalmente, é possível excluir do console do AWS CodeDeploy os registros de componentes de implantação associados a esse assistente. Para excluir a pilha do AWS CloudFormation 1. Faça login no Console de gerenciamento da AWS e abra o console da AWS CloudFormation em 2. Escolha o botão ao lado da pilha que começa com CodeDeploySampleStack. No menu Ações, escolha Excluir pilha. 3. Quando solicitado, escolha Sim, excluir. As instâncias do Amazon EC2 serão encerradas. A função de serviço e o perfil de instâncias do IAM associados serão excluídos. Para encerrar instâncias do Amazon EC2 1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon EC2 em console.aws.amazon.com/ec2/. 32

41 Testar uma implantação no local de amostra no AWS CodeDeploy 2. No painel de navegação, em Instâncias, escolha Instâncias. 3. Selecione a caixa para cada instância do Amazon EC2 a ser encerrada. 4. No menu Ações, selecione Estado da instância e escolha Encerrar. 5. Quando solicitado, escolha Sim, encerrar. Para excluir registros de componentes de implantação do AWS CodeDeploy 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. Se a página Aplicativos não for exibida, selecione a opção Aplicativos no menu do AWS CodeDeploy. 3. Na página Aplicativos, escolha o aplicativo a ser excluído. 4. Na página Detalhes do aplicativo, em Grupos de implantação, escolha o botão ao lado do grupo de implantação que você deseja excluir. No menu Ações, escolha Excluir. Quando solicitado, digite o nome do grupo de implantação para confirmar que você deseja excluí-lo e, em seguida, escolha Excluir. 5. Na parte inferior da página Application details, escolha Delete application. 6. Quando solicitado, digite o nome do aplicativo e escolha Excluir. Todos os registros sobre o aplicativo e seus grupos de implantação, revisões e implantações associados serão excluídos. 33

42 Integração com outros serviços da AWS Integrações de produtos e serviços ao AWS CodeDeploy Por padrão, o AWS CodeDeploy é integrado a vários serviços da AWS e a produtos e serviços de parceiros. A seguintes informações podem ajudá-lo a configurar o AWS CodeDeploy para integrar com os produtos e os serviços que usa. Integração com outros serviços da AWS (p. 34) Integração com produtos e serviços de parceiros (p. 43) Exemplos de integração da comunidade (p. 50) Integração com outros serviços da AWS O AWS CodeDeploy está integrado com os seguintes serviços da AWS: Amazon CloudWatch O Amazon CloudWatch é serviço de monitoramento para recursos de nuvem da AWS e os aplicativos que você executa na AWS. Você pode usar o Amazon CloudWatch para coletar e rastrear métricas, coletar e monitorar arquivos de log e definir alarmes. O AWS CodeDeploy oferece suporte às seguintes ferramentas do CloudWatch: Alarmes do CloudWatch para monitorar suas implantações e interrompê-las quando suas métricas de monitoramento especificadas excederem ou caírem abaixo dos limites especificados em uma regra de alarme do CloudWatch. Para usar o monitoramento de alarmes, você primeiro deve configurar um alarme no CloudWatch e depois adicioná-lo no AWS CodeDeploy ao aplicativo ou grupo de implantação no qual as implantações devem parar quando o alarme for ativado. Saiba mais: Criando alarmes do CloudWatch Logs 34

43 Integração com outros serviços da AWS Eventos do Amazon CloudWatch para detectar e reagir a alterações no estado de uma instância ou implantação nas suas operações do AWS CodeDeploy. Em seguida, com base em regras que você cria, o Eventos do CloudWatch chama uma ou mais ações de destino quando uma implantação ou uma instância entrar no estado especificado em uma regra. Saiba mais: Monitorando implantações com o Eventos do Amazon CloudWatch (p. 250) Amazon CloudWatch Logs para monitorar os três tipos de logs criados pelo agente do AWS CodeDeploy sem precisar fazer login em cada uma das instâncias. Saiba mais: Visualizar logs do AWS CodeDeploy no console do CloudWatch Logs Auto Scaling O AWS CodeDeploy oferece suporte para Auto Scaling, um serviço Web da AWS que pode iniciar automaticamente instâncias do Amazon EC2 com base em critérios que você especifica (por exemplo, limites excedidos para a utilização especificada da CPU, leituras ou gravações de discos ou tráfego de rede de entrada ou saída durante um intervalo de tempo especificado). Isso permite escalar verticalmente um grupo de instâncias do Amazon EC2 sempre que você precisar delas e, em seguida, usar o AWS CodeDeploy para implantar revisões de aplicativos nas instâncias do Amazon EC2 adicionais automaticamente. O Auto Scaling encerra as instâncias do Amazon EC2 quando elas não são mais necessárias. Saiba mais: Auto Scaling (p. 38) Tutorial: use AWS CodeDeploy para implantar um aplicativo em um grupo de Auto Scaling (p. 90) Nos bastidores: integração entre o AWS CodeDeploy e o Auto Scaling 35

44 Integração com outros serviços da AWS AWS CloudTrail O AWS CodeDeploy é integrado ao AWS CloudTrail, um serviço que captura chamadas de API feitas pelo ou em nome do AWS CodeDeploy na sua conta da AWS e entrega os arquivos de log em um bucket do Amazon S3 que você especifica. O CloudTrail captura chamadas de API do console do AWS CodeDeploy a partir de comandos do AWS CodeDeploy por meio da AWS CLI ou diretamente das APIs do AWS CodeDeploy. Usando as informações coletadas pelo CloudTrail, é possível determinar qual solicitação foi feita ao AWS CodeDeploy, o endereço IP de origem do qual a solicitação foi feita, quem fez a solicitação, quando ela foi feita, etc. Saiba mais: Monitoramento de implantações com o AWS CloudTrail (p. 252) 36

45 Integração com outros serviços da AWS AWS CodePipeline O AWS CodePipeline é um serviço de entrega contínua que você pode usar para modelar, visualizar e automatizar as etapas necessárias para lançar seu software em um processo de entrega contínua. Você pode usar o AWS CodePipeline para definir seu próprio processo de lançamento, para que o serviço crie, teste e implante seu código toda vez que houver uma mudança de código. Por exemplo, você pode ter três grupos de implantação para um aplicativo: Beta, Gamma e Prod. Você pode configurar um pipeline de forma que, cada vez que houver uma mudança no código-fonte, as atualizações sejam implantadas em cada grupo de implantação, uma a uma. Você pode configurar o AWS CodePipeline para usar o AWS CodeDeploy para implantar seu código em instâncias do Amazon EC2, instâncias locais ou ambas. Você pode criar o aplicativo, implantação e grupo de implantação do AWS CodeDeploy para usar em uma ação de implantação em uma etapa antes de criar a pipeline ou no assistente Criar pipeline. Saiba mais: AWS for DevOps Getting Started Guide Saiba como usar o AWS CodePipeline com o AWS CodeDeploy para entregar e implantar o códigofonte continuamente de repositórios do AWS CodeCommit em instâncias do Amazon EC2. Passo-a-passo de pipeline simples (bucket do Amazon S3) Passo-a-passo de pipeline simples (repositório do AWS CodeCommit) Tutorial de pipeline em quatro estágios Elastic Load Balancing O AWS CodeDeploy oferece suporte ao Elastic Load Balancing, um serviço que distribui o tráfego de aplicativos de entrada entre várias instâncias do Amazon EC2. Para implantações do AWS CodeDeploy, os load balancers também impedem que o tráfego seja roteado para instâncias quando elas não estiverem prontas, quanto estiverem sendo implantadas ou não forem mais necessárias como parte de um ambiente. Saiba mais: Integrando o AWS CodeDeploy com o Elastic Load Balancing (p. 40) 37

46 Auto Scaling Tópicos Integrando o AWS CodeDeploy com a Auto Scaling (p. 38) Integrando o AWS CodeDeploy com o Elastic Load Balancing (p. 40) Integrando o AWS CodeDeploy com a Auto Scaling O AWS CodeDeploy oferece suporte para Auto Scaling, um serviço da AWS que pode iniciar instâncias do Amazon EC2 automaticamente de acordo com condições que você define. Essas condições podem incluir limites excedidos em um intervalo de tempo especificado para utilização da CPU, leituras ou gravações de disco ou tráfego de rede de entrada ou saída. A Auto Scaling encerra as instâncias quando elas não são mais necessárias. Para obter mais informações, consulte O que é Auto Scaling?. Quando novas instâncias do Amazon EC2 são iniciadas como parte de um grupo de Auto Scaling, o AWS CodeDeploy pode implantar suas revisões nessas novas instâncias automaticamente. Você também pode coordenar implantações no AWS CodeDeploy com instâncias do Amazon EC2 registradas com balanceadores de carga do Elastic Load Balancing. Para obter mais informações, consulte Integrando o AWS CodeDeploy com o Elastic Load Balancing (p. 40) e Configurar um load balancer no Elastic Load Balancing para implantações do AWS CodeDeploy (p. 208). Lembre-se de que você pode encontrar problemas se associar vários grupos de implantação com um único grupo de Auto Scaling. Se uma implantação falhar, por exemplo, a instância começará a ser desligada, mas as outras implementações que estavam em execução poderão demorar uma hora para atingirem o tempo limite. Para obter mais informações, consulte Evite associar vários grupos de implantação a um único grupo de Auto Scaling (p. 331) e Nos bastidores: integração entre o AWS CodeDeploy e o Auto Scaling. Tópicos Implantando aplicativos AWS CodeDeploy em grupos de Auto Scaling (p. 38) Comportamentos do Auto Scaling com o AWS CodeDeploy (p. 39) Usando uma AMI personalizada com o AWS CodeDeploy e o Auto Scaling (p. 40) Implantando aplicativos AWS CodeDeploy em grupos de Auto Scaling Para implantar uma revisão de aplicativo AWS CodeDeploy em um grupo de Auto Scaling do Amazon EC2: 1. Crie ou localize um perfil de instâncias do IAM que permita que o grupo de Auto Scaling funcione com o Amazon S3. Você também pode usar o AWS CodeDeploy para implantar revisões de repositórios do GitHub em grupos de Auto Scaling. Embora as instâncias do Amazon EC2 ainda exijam um perfil de instâncias do IAM, o perfil não precisa de permissões adicionais para implantar a partir de um repositório GitHub. Para obter mais informações, consulte Etapa 4: criar um perfil de instância do IAM (p. 19). 2. Crie ou use um grupo de Auto Scaling, especificando o perfil de instâncias do IAM. 3. Crie ou localize uma função de serviço que permita ao AWS CodeDeploy criar um grupo de implantação que contenha o grupo de Auto Scaling. 4. Crie um grupo de implantação com o AWS CodeDeploy especificando o nome do grupo de Auto Scaling e a função de serviço. 38

47 Auto Scaling 5. Use o AWS CodeDeploy para implantar sua revisão no grupo de implantação que contém o grupo de Auto Scaling. Para obter mais informações, consulte Tutorial: use AWS CodeDeploy para implantar um aplicativo em um grupo de Auto Scaling (p. 90). Comportamentos do Auto Scaling com o AWS CodeDeploy A ordem de execução de eventos de gancho de ciclo de vida personalizados não pode ser predeterminada Você pode adicionar seus próprios ganchos de ciclo de vida a grupos de Auto Scaling nos quais o AWS CodeDeploy é implantado. No entanto, a ordem em que esses eventos de gancho de ciclo de vida personalizados são executados não pode ser predeterminada. Por exemplo, se você adicionar um gancho de ciclo de vida personalizado chamado de ReadyForSoftwareInstall a um grupo de Auto Scaling, não poderá saber de antemão se ele será executado antes do primeiro ou depois do último evento de ciclo de vida de implantação padrão do AWS CodeDeploy. Para saber como adicionar ganchos personalizados de ciclo de vida a um grupo de Auto Scaling, consulte Adicionando ganchos de ciclo de vida. Eventos de dimensionamento durante uma implantação resultam em um ambiente misto Se um evento de aumento dimensionamento de Auto Scaling ocorrer enquanto uma implantação estiver em andamento, as novas instâncias serão atualizadas com a revisão de aplicativo que foi implantada mais recentemente, e não com a revisão de aplicativo que está sendo implantada atualmente. Se a implantação for bem-sucedida, as instâncias antigas e as instâncias recém-dimensionadas hospedarão diferentes revisões de aplicativos. Para resolver esse problema depois que ele ocorrer, você poderá reimplementar a revisão de aplicativo mais recente nos grupos de implantação afetados. Para evitar esse problema, recomendamos suspender os processos de dimensionamento do Auto Scaling enquanto as implantações estão ocorrendo. Você pode fazer isso através de uma configuração no script common_functions.sh que é usada para balanceamento de carga com o AWS CodeDeploy. Se HANDLE_PROCS=true, os seguintes eventos de Auto Scaling serão suspensos automaticamente durante o processo de implantação: AZRebalance AlarmNotification ScheduledActions ReplaceUnhealthy Important Somente a configuração de implantação CodeDeployDefault.OneAtATime oferece suporte para essa funcionalidade. Se você estiver usando outras configurações de implantação, o grupo de implantação ainda poderá ter revisões de aplicativos diferentes aplicadas às suas instâncias. Para obter mais informações sobre como usar o HANDLE_PROCS=true para evitar problemas de implantação ao usar o Auto Scaling, consulte Aviso importante sobre como lidar com processos de AutoScaling em aws-codedeploy-samples no GitHub. 39

48 Elastic Load Balancing A ordem dos eventos deve ser controlada ao usar scripts cfn-init do AWS CloudFormation cfn-initse você usar cloud-init (ou ) para executar scripts em instâncias Linux recém-provisionadas, suas implantações poderão falhar, a menos que você controle estritamente a ordem de eventos que ocorrerem após a inicialização da instância. Essa ordem deve ser: 1. A instância recém-provisionada é iniciada. 2. Todos os scripts de inicialização cfn-init são executados até a conclusão. 3. O agente do AWS CodeDeploy é iniciado. 4. A última revisão de aplicativo é implantada na instância. Se a ordem dos eventos não for cuidadosamente controlada, o agente do AWS CodeDeploy poderá iniciar uma implantação antes que todos os scripts tenham concluído a execução. Para controlar a ordem dos eventos, use uma destas práticas recomendadas: Instale o agente do AWS CodeDeploy por meio de um script cfn-init, colocando-o depois de todos os outros scripts. Inclua o agente do AWS CodeDeploy em uma AMI personalizada e use um script cfn-init para iniciálo, colocando-o depois de todos os outros scripts. Para obter informações sobre como usar cfn-init, consulte cfn-init no Guia do usuário do AWS CloudFormation. Usando uma AMI personalizada com o AWS CodeDeploy e o Auto Scaling Existem duas opções para especificar a AMI base a ser usada quando novas instâncias do Amazon EC2 são iniciadas em um grupo de Auto Scaling: Você pode especificar uma AMI base personalizada que já tenha o agente do AWS CodeDeploy instalado. Como o agente já está instalado, essa opção inicia novas instâncias do Amazon EC2 com mais rapidez do que a outra opção. No entanto, com ela, são maiores as chances de que implantações iniciais de instâncias do Amazon EC2 venham a falhar, especialmente se o agente do AWS CodeDeploy estiver desatualizado. Se você escolher essa opção, recomendamos atualizar regularmente o agente do AWS CodeDeploy na sua AMI base personalizada. Você pode especificar uma AMI base que não tenha o agente do AWS CodeDeploy instalado e fazer com que o agente seja instalado à medida em que cada nova instância for iniciada em um grupo de Auto Scaling. Embora essa opção inicie novas instâncias do Amazon EC2 mais devagar do que a outra opção, com ela, são maiores as chances de que as implantações iniciais das instâncias sejam bemsucedidas. Essa opção usa a versão mais recente do agente do AWS CodeDeploy. Integrando o AWS CodeDeploy com o Elastic Load Balancing O Elastic Load Balancing fornece dois tipos de load balancers, que podem ser usados em implantações do AWS CodeDeploy: Classic Load Balancers e Balanceador de carga de aplicaçõess. 40

49 Elastic Load Balancing Classic Load Balancer Roteia e carrega equilíbrios na camada de transporte (TCP/SSL) ou na camada do aplicativo (HTTP/ HTTPS). Ele oferece suporte para EC2-Classic ou uma VPC. Balanceador de carga de aplicações Roteia e carrega equilíbrios na camada do aplicativo (HTTP/HTTPS) e é compatível com roteamento baseado em trajeto. Ele pode encaminhar solicitações para portas em cada instância do EC2 ou instância de contêiner na sua nuvem privada virtual (VPC). Para saber mais sobre os load balancers do Elastic Load Balancing, consulte os tópicos a seguir: O que é o Elastic Load Balancing? O que é o Classic Load Balancer? O que é o Balanceador de carga de aplicações? A função de um load balancer em uma implantação do AWS CodeDeploy Durante implantações do AWS CodeDeploy, um load balancer impede que o tráfego da Internet seja roteado para instâncias quando elas não estiverem prontas, quanto estiverem sendo implantadas ou não forem mais necessárias como parte de um ambiente. A função exata desempenhada pelo load balancer, no entanto, depende se ele é usado em uma implantação azul/verde ou em uma implantação no local. O uso de load balancers do Elastic Load Balancing é obrigatório em implantações azuis/verdes e opcional em implantações no local. Implantações azuis/verdes O roteamento do tráfego de instâncias por trás de um balanceador de carga do Elastic Load Balancing é fundamental para implantações azuis/verdes do AWS CodeDeploy. Durante uma implantação azul/verde, o load balancer permite que o tráfego seja roteado às novas instâncias em um grupo de implantação nas quais a revisão de aplicativo mais recente tenha sido implantado (o ambiente de substituição), de acordo com as regras que você especificar e, em seguida, bloqueia o tráfego das instâncias antigas nas quais a revisão de aplicativo anterior estava sendo executada (o ambiente original). Após as instâncias em um ambiente de substituição serem registradas em um load balancer, o registro das instâncias do ambiente original é cancelado e, se você escolher, as instâncias são encerradas. Para obter uma implantação azul/verde, você pode especificar um Classic Load Balancer ou Balanceador de carga de aplicações em seu grupo de implantação. Você usa o console do AWS CodeDeploy ou a CLI da AWS para adicionar o balanceador de carga a um grupo de implantação. Para obter mais informações sobre load balancers em implantações azuis/verdes, consulte os seguintes tópicos: Configurar um load balancer no Elastic Load Balancing para implantações do AWS CodeDeploy (p. 208) Criar um aplicativo para uma implantação azul/verde (console) (p. 197) Criar um grupo de implantação para uma implantação azul/verde (console) (p. 205) 41

50 Elastic Load Balancing Implantações no local Em uma implantação no local, um balanceador de carga impede que o tráfego da Internet seja direcionado para uma instância durante o processo, tornando-a novamente disponível para tráfego assim que essa implantação é concluída. Se o load balancer não for usado durante uma implantação, o tráfego da Internet ainda poderá ser direcionado para uma instância durante o processo de implantação. Como resultado, seus clientes poderão encontrar aplicativos web quebrados, incompletos ou desatualizados. Quando você usa um load balancer do Elastic Load Balancing com uma implantação no local, o registro das instâncias em um grupo de implantação é cancelado de um load balancer, as instâncias são atualizadas com a revisão do aplicativo mais recente e, em seguida, são registradas novamente com o load balancer como parte do mesmo grupo de implantação após a implantação ser bem-sucedida. Para uma implantação no local, você pode especificar um Classic Load Balancer ou Balanceador de carga de aplicações. Você pode especificar o load balancer como parte da configuração do grupo de implantação ou usar um script fornecido pelo AWS CodeDeploy para implantar o load balancer. Para adicionar o load balancer a um grupo de implantação, use o console do AWS CodeDeploy ou a CLI da AWS. Para obter informações sobre como especificar um load balancer em um grupo de implantação para as implantações no local, consulte os seguintes tópicos: Criar um aplicativo para uma implantação no local (console) (p. 195) Criar um grupo de implantação para uma implantação no local (console) (p. 203) Configurar um load balancer no Elastic Load Balancing para implantações do AWS CodeDeploy (p. 208) Para obter informações sobre como especificar um load balancer usando um script para as implantações no local, consulte o seguinte tópico: Use um script para configurar um balanceador de carga para uma implantação no local (p. 42) Use um script para configurar um balanceador de carga para uma implantação no local Use as etapas do procedimento a seguir para usar scripts de ciclo de vida de implantação para configurar o balanceamento de carga para implantações no local. No repositório de Amostras do AWS CodeDeploy no GitHub, fornecemos instruções e amostras que você pode adaptar para usar o AWS CodeDeploy com o Classic Load Balancer e o Balanceador de carga de aplicações. Esses repositórios incluem três scripts de amostra: register_with_elb.sh, deregister_from_elb.sh e common_functions.sh, que fornecem todos os códigos necessários para você poder trabalhar. Basta editar os espaços reservados nesses três scripts e fazer referência a eles no seu arquivo appspec.yml. Para configurar implantações no local no AWS CodeDeploy com instâncias do Amazon EC2 registradas em balanceadores de carga do Elastic Load Balancing, faça o seguinte: 1. Baixe as amostras para o tipo de balanceador de carga que deseja usar para uma implantação no local: Classic Load Balancer Balanceador de carga de aplicações 2. Certifique-se de que cada uma das suas instâncias do Amazon EC2 de destino tenha a AWS CLI instalada. 3. Certifique-se de cada uma das suas instâncias do Amazon EC2 de destino tenha um perfil de instâncias do IAM conectado pelo menos com as permissões elasticloadbalancing:* e autoscaling:*. 42

51 Integração com produtos e serviços de parceiros 4. Inclua no diretório do código-fonte do seu aplicativo os scripts de evento de ciclo de vida de implantação (register_with_elb.sh, deregister_from_elb.sh e common_functions.sh). 5. No appspec.yml para a revisão de aplicativo, forneça instruções para oaws CodeDeploy executar o script register_with_elb.sh durante o evento ApplicationStart e o script deregister_from_elb.sh durante o evento ApplicationStop. 6. Se a instância fizer parte de um grupo de Auto Scaling, você poderá ignorar essa etapa. No scriptcommon_functions.sh: Se estiver usando o Classic Load Balancer, especifique os nomes dos load balancers do Elastic Load Balancing em ELB_LIST="" e faça as alterações necessárias nas outras configurações de implantação no arquivo. Se estiver usando o Balanceador de carga de aplicações, especifique os nomes dos grupos de destino do Elastic Load Balancing em TARGET_GROUP_LIST="" e faça as alterações necessárias nas outras configurações de implantação no arquivo. 7. Forneça o código-fonte do seu aplicativo, o appspec.yml e os scripts de evento de ciclo de vida de implantação em uma revisão de aplicativo e faça o upload da revisão. Implante a revisão nas instâncias do Amazon EC2. Durante a implantação, os scripts de evento de ciclo de vida de implantação cancelarão o registro da instância do Amazon EC2 nos balanceadores de carga, aguardará a drenagem da conexão e depois registrará novamente a instância do Amazon EC2 nos balanceadores de carga após a conclusão da implantação. Integração com produtos e serviços de parceiros O AWS CodeDeploy tem integração interna para os seguintes produtos e serviços de parceiros: Ansible Se você já possui um conjunto de manuais Ansible, mas precisa de algum lugar para executá-los, o template para o Ansible e o AWS CodeDeploy demonstra como alguns ganchos de implantação simples assegurarão que o Ansible esteja disponível na instância de implantação local e executará os manuais. Como alternativa, se você já possui um processo para construir e manter seu inventário, também há um módulo Ansible que pode ser usado para instalar e executar o agente do AWS CodeDeploy. Saiba mais: Ansible e AWS CodeDeploy Atlassian Bamboo e Bitbucket A tarefa do AWS CodeDeploy para Bamboo compacta o diretório que contém um arquivo AppSpec em um arquivo.zip, carrega esse arquivo no Amazon S3 e depois inicia a implantação de acordo com a configuração fornecida no aplicativo AWS CodeDeploy. O suporte do Atlassian Bitbucket para AWS CodeDeploy permite enviar o código a instâncias do Amazon EC2 diretamente da UI do Bitbucket, sob demanda, para qualquer um dos seus grupos de implantação. Isso significa que, depois de atualizar o código no seu repositório do Bitbucket, 43

52 Integração com produtos e serviços de parceiros você não precisa fazer login na sua plataforma de integração contínua (CI) ou em instâncias do Amazon EC2 para executar um processo de implantação manual. Saiba mais: Usando a tarefa do AWS CodeDeploy para Bamboo Anunciando o suporte do Atlassian Bitbucket para o AWS CodeDeploy Chef A AWS fornece duas amostras de template para integração do Chef e do AWS CodeDeploy. A primeiro é um guia do Chef que instalará e iniciará o agente do AWS CodeDeploy. Isso permite que você continue gerenciando sua infraestrutura de host com o Chef enquanto usa o AWS CodeDeploy. O segundo template de amostra demonstra como usar o AWS CodeDeploy para orquestrar a execução de guias e receitas com um chef-solo em cada nó. Saiba mais: Chef e AWS CodeDeploy CircleCI O CircleCI fornece um conjunto de ferramentas de teste e integração contínua e implantação automatizada. Depois de criar uma função do IAM na AWS para uso com o CircleCI e configurar seus parâmetros de implantação no arquivo circle.yml, você poderá usar o CircleCI com o AWS CodeDeploy para criar revisões de aplicativos, carregá-las em um bucket do Amazon S3 e depois iniciar e monitorar suas implantações. Saiba mais: Implementação contínua com o AWS CodeDeploy CloudBees Você pode usar o plugin Jenkins do AWS CodeDeploy, disponível em CloudBees DEV@cloud, como ação pós-compilação. Por exemplo, no final de um pipeline de entrega contínua, você pode usá-lo para implantar uma revisão de aplicativo na sua frota de servidores. Saiba mais: Plugin Jenkins do AWS CodeDeploy agora disponível no DEV@cloud 44

53 Integração com produtos e serviços de parceiros Codeship É possível usar o Codeship para implantar revisões de aplicativos por meio do AWS CodeDeploy. Você pode usar a UI do Codeship para adicionar o AWS CodeDeploy a um pipeline de implantação para uma ramificação. Saiba mais: Implantar no AWS CodeDeploy Integração do AWS CodeDeploy no Codeship GitHub É possível usar o AWS CodeDeploy para implantar revisões de aplicativos de repositórios GitHub. Também é possível disparar uma implantação de um repositório GitHub sempre que o código-fonte nesse repositório é alterado. Saiba mais: Integrando o AWS CodeDeploy com o GitHub (p. 47) Tutorial: usar o AWS CodeDeploy para implantar um aplicativo do GitHub (p. 106) Implantar automaticamente do GitHub usando o AWS CodeDeploy HashiCorp Consul Você pode usar a ferramenta de software aberto HashiCorp Consul para ajudar a garantir a integridade e a estabilidade do seu ambiente de aplicativo ao implantar aplicativos no AWS CodeDeploy. Você pode usar o Consul para registrar aplicativos que serão descobertos durante a implantação, colocar aplicativos e nós no modo de manutenção para omiti-los de implantações e interromper implantações se as instâncias de destino se tornarem não íntegras. Saiba mais: Implantações do AWS CodeDeploy com o HashiCorp Consul Jenkins O plugin Jenkins do AWS CodeDeploy fornece uma etapa pós-compilação para o seu projeto Jenkins. Após uma compilação bem-sucedida, ele compactará o espaço de trabalho, carregará no Amazon S3 e iniciará uma nova implantação. Saiba mais: AWS CodeDeploy Jenkins Plugin Configurando o plug-in Jenkins para AWS CodeDeploy 45

54 Integração com produtos e serviços de parceiros Puppet Labs A AWS fornece modelos de exemplo para o Puppet e o AWS CodeDeploy. O primeiro é um módulo Puppet que instalará e iniciará o agente do AWS CodeDeploy. Isso permite que você continue gerenciando sua infraestrutura de host com o Puppet enquanto usa o AWS CodeDeploy. O segundo template de amostra demonstra como usar o AWS CodeDeploy para orquestrar a execução de módulos e manifestos com um Puppet sem mestre em cada nó. Saiba mais: Puppet e AWS CodeDeploy SaltStack Você pode integrar a infraestrutura SaltStack com o AWS CodeDeploy. É possível usar o módulo do AWS CodeDeploy para instalar e executar o agente do AWS CodeDeploy em seus minions ou, com alguns ganchos de implantação simples, você pode usar o AWS CodeDeploy para orquestrar o funcionamento dos seus Salt States. Saiba mais: SaltStack e AWS CodeDeploy Solano Labs Depois que sua compilação tiver aprovado seus testes no Solano CI, um script será executado para preparar seu aplicativo para lançamento. O comando aws deploy push compactará e enviará seu aplicativo pelo AWS CodeDeploy e, opcionalmente, implantará a revisão de aplicativo em um grupo de implantação e confirmará que ela foi implantada. Você também pode configurar implantações do AWS CodeDeploy automáticas a partir da sua compilação do CI. Saiba mais: Implantações do AWS CodeDeploy a partir de compilações do Solano CI TeamCity Você pode usar o plugin AWS CodeDeploy Runner para implantar aplicativos diretamente do TeamCity. O plug-in adiciona uma etapa de construção TeamCity que prepara e carrega uma revisão de aplicativo em um bucket do Amazon S3, registra essa revisão em um aplicativo AWS CodeDeploy, cria uma implantação do AWS CodeDeploy e, se você escolher, aguarda a conclusão dessa implantação. Saiba mais: AWS CodeDeploy Runner (Download) Plugin AWS CodeDeploy Runner (documentação) 46

55 GitHub Travis CI Você pode configurar o Travis CI para ativar uma implantação no AWS CodeDeploy depois de uma compilação bem-sucedida. Saiba mais: Travis CI e implantações do AWS CodeDeploy Tópicos Integrando o AWS CodeDeploy com o GitHub (p. 47) Integrando o AWS CodeDeploy com o GitHub O AWS CodeDeploy oferece suporte para o GitHub, um serviço de hospedagem e compartilhamento baseado na Web. O AWS CodeDeploy pode implantar revisões de aplicativos armazenadas em repositórios GitHub ou buckets do Amazon S3 em instâncias. Tópicos Introdução de vídeo à integração do AWS CodeDeploy com o GitHub (p. 47) Implantando revisões do AWS CodeDeploy a partir do GitHub (p. 47) Comportamentos do GitHub com o AWS CodeDeploy (p. 48) Introdução de vídeo à integração do AWS CodeDeploy com o GitHub Este curto vídeo (5:20) demonstra como automatizar implantações de aplicativos com o AWS CodeDeploy a partir de seus fluxos de trabalho do GitHub existentes. Introdução de vídeo à integração do AWS CodeDeploy com o GitHub Implantando revisões do AWS CodeDeploy a partir do GitHub Para implantar uma revisão de aplicativo de um repositório GitHub em instâncias: 1. Crie uma revisão compatível com o AWS CodeDeploy e o tipo de instância do Amazon EC2 no qual você fará a implantação. Para criar uma revisão compatível, siga as instruções em Planejar uma revisão para o AWS CodeDeploy (p. 215) e Adicionar um AppSpec File (p. 216). 2. Use uma conta do GitHub para adicionar sua revisão a um repositório GitHub. Para criar uma conta do GitHub, consulte Participar do GitHub. Para criar um repositório GitHub, consulte Criar um repositório. 3. Use a página Criar implantação no console do AWS CodeDeploy ou o comando create-deployment da AWS CLI para implantar sua revisão do seu repositório do GitHub em instâncias de destino configuradas para uso em implantações do AWS CodeDeploy. Se você deseja chamar o comando create-deployment, primeiro deve usar a página Criar implantação do console para dar ao AWS CodeDeploy permissão para interagir com o GitHub em nome da sua conta do GitHub preferencial para o aplicativo especificado. Você só precisa fazer isso uma vez por aplicativo. 47

56 GitHub Para saber como usar a página Criar implantação para implantar a partir de um repositório do GitHub, consulte Criar uma implantação com o AWS CodeDeploy (p. 226). Para saber como chamar o comando create-deployment para implantar a partir de um repositório GitHub, consulte Criar uma implantação (CLI) (p. 231). Para saber como preparar instâncias para uso em implantações do AWS CodeDeploy, consulte Trabalhando com instâncias (p. 139). Para obter mais informações, consulte Tutorial: usar o AWS CodeDeploy para implantar um aplicativo do GitHub (p. 106). Comportamentos do GitHub com o AWS CodeDeploy Tópicos Autenticação do GitHub com aplicativos no AWS CodeDeploy (p. 48) Interação do AWS CodeDeploy com repositórios GitHub particulares e públicos (p. 49) Interação do AWS CodeDeploy com repositórios GitHub gerenciados pela organização (p. 49) Implantar automaticamente do GitHub com o AWS CodeDeploy (p. 49) Autenticação do GitHub com aplicativos no AWS CodeDeploy Depois de dar permissão ao AWS CodeDeploy para interagir com o GitHub, a associação entre essa conta do GitHub e o aplicativo é armazenada no AWS CodeDeploy. É possível vincular o aplicativo a uma conta do GitHub diferente. Você também pode revogar a permissão para o AWS CodeDeploy interagir com o GitHub. Para vincular uma conta do GitHub a um aplicativo no AWS CodeDeploy 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, selecione Implantações. 3. Escolha Criar implantação. Não é necessário criar uma nova implantação. Atualmente, esta é a única maneira de vincular uma conta do GitHub diferente a um aplicativo. 4. Na lista suspensa Aplicativos, escolha o aplicativo que você deseja vincular a uma conta do GitHub diferente. 5. Ao lado de Tipo de repositório, escolha Meu aplicativo está armazenado no GitHub. 6. Em Conectar-se ao GitHub, faça um dos seguintes procedimentos: Para criar uma conexão para aplicativos AWS CodeDeploy com uma conta do GitHub diferente, saia do GitHub em uma guia separada do navegador. Em Conta do GitHub, digite um nome para identificar essa conexão e escolha Conectar-se ao GitHub. A página da Web solicita que você autorize o AWS CodeDeploy a interagir com o GitHub para o seu aplicativo. Continue na etapa 2. Para usar uma conexão já criada, em Conta do GitHub, selecione seu nome e escolha Conectar-se ao GitHub. Continue na etapa 4. 48

57 GitHub Para criar uma conexão com uma conta do GitHub diferente, saia do GitHub em uma guia separada do navegador. Escolha Conectar-se a uma conta do GitHub e escolha Conectar-se ao GitHub. Continue na etapa Se você ainda não entrou no GitHub, siga as instruções na página Fazer login para fazer login com a conta do GitHub à qual deseja vincular o aplicativo. 8. Escolha Autorizar aplicativo. O GitHub dá ao AWS CodeDeploy permissão para interagir com o GitHub em nome da conta do GitHub conectada para o aplicativo selecionado. 9. Se não quiser criar uma implantação, escolha Cancelar. Para revogar permissões para o AWS CodeDeploy interagir com o GitHub 1. Entre no GitHub usando as credenciais da conta do GitHub na qual deseja revogar a permissão do AWS CodeDeploy. 2. Abra a página Aplicativos do GitHub, localize AWS CodeDeploy na lista de aplicativos autorizados e, em seguida, siga o procedimento do GitHub para revogar a autorização para um aplicativo. Interação do AWS CodeDeploy com repositórios GitHub particulares e públicos O AWS CodeDeploy dá suporte à implantação de aplicativos de repositórios GitHub particulares e públicos. Quando você dá permissão ao AWS CodeDeploy para acessar o GitHub em seu nome, o AWS CodeDeploy tem acesso de leitura e gravação a todos os repositórios GitHub particulares aos quais a sua conta do GitHub tem acesso. No entanto, o AWS CodeDeploy somente faz leituras dos repositórios GitHub. Ele não gravará em nenhum dos seus repositórios GitHub particulares. Interação do AWS CodeDeploy com repositórios GitHub gerenciados pela organização Por padrão, os repositórios GitHub gerenciados por uma organização (ao contrário de repositórios particulares ou públicos da sua conta) não concedem acesso a aplicativos de terceiros, incluindo o AWS CodeDeploy. Sua implantação falhará se as restrições de aplicativos de terceiros de uma organização estiverem habilitadas no GitHub e você tentar implantar o código do seu repositório GitHub. Há duas maneiras de resolver esse problema. Como membro da organização, você pode solicitar ao proprietário da organização que aprove o acesso ao AWS CodeDeploy. As etapas para solicitar esse acesso dependem de você já ter autorizado o AWS CodeDeploy para sua conta individual: Se você tiver autorizado o acesso ao AWS CodeDeploy na sua conta, consulte Solicitando aprovação da organização para seus aplicativos autorizados. Se ainda não tiver autorizado o acesso ao AWS CodeDeploy na sua conta, consulte Solicitando aprovação da organização para aplicativos de terceiros. O proprietário da organização pode desabilitar todas as restrições de aplicativos de terceiros para a organização. Para obter informações, consulte Desabilitando restrições de aplicativos de terceiros para sua organização. Para obter mais informações, consulte Sobre restrições de aplicativos de terceiros. Implantar automaticamente do GitHub com o AWS CodeDeploy É possível disparar uma implantação de um repositório GitHub sempre que o código-fonte é alterado. Para obter instruções, consulte Implantar automaticamente do GitHub usando o AWS CodeDeploy. 49

58 Exemplos de integração da comunidade Exemplos de integração da comunidade As seguintes seções fornecem links para publicações no blog, artigos e exemplos fornecidos pela comunidade. Esses links são fornecidos apenas para fins informativos e não devem ser considerados uma lista abrangente ou um endosso do conteúdo dos exemplos. O AWS não é responsável pelo conteúdo ou pela precisão de conteúdo externo. Publicações no blog Automatizando o provisionamento do AWS CodeDeploy no AWS CloudFormation Saiba como provisionar a implantação de um aplicativo no AWS CodeDeploy usando o AWS CloudFormation. Publicado em janeiro de 2016 Integração do AWS Toolkit para Eclipse com o AWS CodeDeploy (Parte 1) Integração do AWS Toolkit para Eclipse com o AWS CodeDeploy (Parte 2) Integração do AWS Toolkit para Eclipse com o AWS CodeDeploy (Parte 3) Saiba como os desenvolvedores Java podem usar o plug-in do AWS CodeDeploy para Eclipse para implantar aplicativos Web na AWS diretamente de ambientes de desenvolvimento Eclipse. Publicado em fevereiro de 2015 Implantar automaticamente do GitHub usando o AWS CodeDeploy Saiba como implantações automáticas do GitHub no AWS CodeDeploy podem ser usadas para criar um pipeline de ponta a ponta, desde o controle do código-fonte até seus ambientes de teste ou produção. Publicado em dezembro de 2014 Vídeos Hospedando aplicativos ASP.NET 5 na AWS com o Docker e o AWS CodeDeploy Saiba como o AWS CodeDeploy pode ser usado para implantar aplicativos ASP.NET 5 em um servidor IIS (Serviços de Informações da Internet) em sistemas operacionais Microsoft Windows. Hospedando aplicativos ASP.NET 5 na AWS com o Docker e o AWS CodeDeploy Publicado em outubro de 2015 Duração: 47:37 Dominando o AWS CodeDeploy com o Jenkins e o Puppet Saiba como usar as ferramentas de software aberto Jenkins e Puppet com o AWS CodeDeploy. Dominando o AWS CodeDeploy com o Jenkins e o Puppet Publicado em maio de 2015 Duração: 49:31 50

59 Tutorial: implantar o WordPress em uma instância não Windows Tutoriais do AWS CodeDeploy Esta seção inclui alguns tutoriais para ajudá-lo a aprender a usar o AWS CodeDeploy. Recomendamos que você comece com Etapa 5: experimentar o assistente de implantação de amostra do AWS CodeDeploy (p. 22) caso ainda não tenha concluído esse tutorial. Ele não requer experiência prévia com o AWS CodeDeploy. Esse tutorial orienta você pelas etapas necessárias para implantar uma das nossas revisões de aplicativos de amostra em instâncias do Amazon EC2. Important Antes de começar, conclua os pré-requisitos em Conceitos básicos (p. 13). Os procedimentos nesses tutoriais fornecem sugestões para a localização na qual armazenar arquivos (por exemplo, c:\temp) e os nomes a serem dados a buckets, subpastas ou arquivos (por exemplo, codedeploydemobucket, HelloWorldApp e CodeDeployDemo-EC2-Trust.json, respectivamente), mas você não é obrigado a usá-los. Certifique-se de substituir os nomes e locais dos seus arquivos enquanto realiza os procedimentos. Tópicos Tutorial: implantar o WordPress em uma instância do Amazon EC2 (Amazon Linux ou Red Hat Enterprise Linux e Linux, macos, or Unix) (p. 51) Tutorial: implantar um aplicativo "Hello, World!" com o AWS CodeDeploy (Windows Server) (p. 68) Tutorial: implantar um aplicativo em uma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux) (p. 84) Tutorial: use AWS CodeDeploy para implantar um aplicativo em um grupo de Auto Scaling (p. 90) Tutorial: usar o AWS CodeDeploy para implantar um aplicativo do GitHub (p. 106) Tutorial: implantar o WordPress em uma instância do Amazon EC2 (Amazon Linux ou Red Hat Enterprise Linux e Linux, macos, or Unix) Neste tutorial, você implantará o WordPress, uma ferramenta de blog de software livre e sistema de gerenciamento de conteúdo baseado em PHP e MySQL, em uma única instância do Amazon EC2 executando o Amazon Linux ou o Red Hat Enterprise Linux (RHEL). 51

60 Etapa 1: iniciar uma instância do Amazon EC2 Não é o que você está procurando? Para praticar a implantação em uma instância do Amazon EC2 que executa o Windows Server, consulte Tutorial: implantar um aplicativo "Hello, World!" com o AWS CodeDeploy (Windows Server) (p. 68). Para praticar a implantação em uma instância local, em vez de uma instância do Amazon EC2, consulte Tutorial: implantar um aplicativo em uma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux) (p. 84). Este tutorial baseia-se nos conceitos introduzidos em Etapa 5: experimentar o assistente de implantação de amostra do AWS CodeDeploy (p. 22). Caso ainda não o tenha concluído, convém começar por ele. As etapas deste tutorial são apresentadas sob a perspectiva de uma máquina de desenvolvimento local executando o Linux, macos, or Unix. Embora você possa concluir a maioria dessas etapas em uma máquina local executando o Windows, precisará adaptar as etapas que fazem referência a comandos, como chmod e wget, a aplicativos, como o sed, e a caminhos de diretório, como /tmp. Antes de começar este tutorial, você deve atender aos pré-requisitos em Conceitos básicos (p. 13). Esses pré-requisitos incluem configurar sua conta de usuário do IAM, instalar ou atualizar a AWS CLI e criar uma função de serviço e um perfil de instâncias do IAM. Tópicos Etapa 1: iniciar uma instância do Amazon EC2 do Amazon Linux ou Red Hat Enterprise Linux (p. 52) Etapa 2: configurar seu conteúdo de origem para implantar na instância do Amazon EC2 do Amazon Linux ou Red Hat Enterprise Linux (p. 53) Etapa 3: carregar seu aplicativo WordPress no Amazon S3 (p. 56) Etapa 4: implantar seu aplicativo WordPress (p. 60) Etapa 5: atualizar e reimplantar o aplicativo WordPress (p. 64) Etapa 6: limpar seu aplicativo WordPress e recursos relacionados (p. 66) Etapa 1: iniciar uma instância do Amazon EC2 do Amazon Linux ou Red Hat Enterprise Linux Para implantar o aplicativo WordPress com o AWS CodeDeploy, você precisará de uma instância do Amazon EC2 executando o Amazon Linux ou o Red Hat Enterprise Linux (RHEL). Siga as instruções em Trabalhando com instâncias (p. 139). Quando você chegar na parte dessas instruções sobre como atribuir uma tag de instância do Amazon EC2 à instância, certifique-se de especificar a chave Name e o valor de tag CodeDeployDemo. (Se você especificar uma chave de tag ou um valor de tag diferente, as instruções em Etapa 4: implantar seu aplicativo (p. 60) poderão produzir resultados inesperados.) Depois de seguir as instruções para iniciar a instância do Amazon EC2, retorne a essa página e continue na próxima seção. Não continue em Criar um aplicativo (p. 194) como próxima etapa. Conectar-se à sua instância do Amazon EC2 do Amazon Linux ou RHEL Depois que a sua nova instância do Amazon EC2 for iniciada, siga essas instruções para praticar a conexão com ela. 1. Use o comando ssh (ou um emulador de terminal compatível com SSH, como o PuTTY) para se conectar à sua instância do Amazon EC2 do Amazon Linux ou RHEL. Você precisará do endereço 52

61 Etapa 2: configurar seu conteúdo de origem DNS público da instância e da chave privada para o par de chaves usado na inicialização da instância do Amazon EC2. Para obter mais informações, consulte Conectar-se à sua instância. Por exemplo, se o endereço DNS público for ec compute-1.amazonaws.com e o par de chaves da sua instância do Amazon EC2 para acesso SSH for codedeploydemo.pem, você poderá digitar: ssh -i /path/to/codedeploydemo.pem ec2-user@ec compute-1.amazonaws.com Substitua /path/to/codedeploydemo.pem pelo caminho para o seu arquivo.pem e substitua o exemplo de endereço DNS pelo endereço da sua instância do Amazon EC2 do Amazon Linux ou RHEL. Se receber um erro de que as permissões do seu arquivo de chave são muito abertas, será necessário restringir suas permissões para dar acesso apenas ao usuário atual (você). Por exemplo, com o comando chmod no Linux, macos, or Unix, digite: chmod 400 /path/to/codedeploydemo.pem 2. Depois de entrar, você verá o banner da AMI da instância do Amazon EC2. Para o Amazon Linux, deve ser algo do tipo: _ ) _ ( / Amazon Linux AMI \ 3. Agora, você pode sair da instância do Amazon EC2 em execução. Warning Não interrompa ou encerre a instância do Amazon EC2. Caso contrário, o AWS CodeDeploy não poderá fazer a implantação. Etapa 2: configurar seu conteúdo de origem para implantar na instância do Amazon EC2 do Amazon Linux ou Red Hat Enterprise Linux Agora é hora de configurar o conteúdo de origem do seu aplicativo, para que você tenha algo para implantar na instância. Tópicos Obter o código-fonte (p. 53) Criar scripts para executar seu aplicativo (p. 55) Adicionar um arquivo de especificação de aplicativo (p. 55) Obter o código-fonte Para este tutorial, você implantará a plataforma de publicação de conteúdo WordPress da sua máquina de desenvolvimento na sua instância do Amazon EC2 de destino. Para obter o código-fonte do WordPress, 53

62 Etapa 2: configurar seu conteúdo de origem você pode usar chamadas internas de linha de comando. Ou, se tiver o Git instalado na sua máquina de desenvolvimento, poderá usá-lo como alternativa. Para estas etapas, partimos do princípio de que você fará download de uma cópia do código-fonte do WordPress no diretório /tmp da sua máquina de desenvolvimento. (É possível escolher qualquer diretório desejado, mas lembre-se de substituir /tmp pela localização escolhida sempre que esse diretório for especificado nas etapas.) Tópicos Para obter uma cópia do código-fonte do WordPress (chamadas internas de linha de comando) (p. 54) Para obter uma cópia do código-fonte do WordPress (Git) (p. 54) Para obter uma cópia do código-fonte do WordPress (chamadas internas de linha de comando) 1. Chame o comando wget para baixar uma cópia do código-fonte do WordPress, como um arquivo.zip, no diretório atual: wget 2. Chame os comandos unzip, mkdir, cp e rm para descompactar o arquivo master.zip no diretório (pasta) /tmp/wordpress_temp, copiar seu conteúdo descompactado para a pasta de destino / tmp/wordpress e excluir a pasta temporária /tmp/wordpress_temp e o arquivo master. Execute os comandos um de cada vez: unzip master -d /tmp/wordpress_temp mkdir -p /tmp/wordpress cp -paf /tmp/wordpress_temp/wordpress-master/* /tmp/wordpress rm -rf /tmp/wordpress_temp rm -f master Isso deixará você com um conjunto limpo de arquivos de código-fonte do WordPress na pasta /tmp/ WordPress. Para obter uma cópia do código-fonte do WordPress (Git) 1. Baixe e instale o Git na sua máquina de desenvolvimento. 2. Na pasta /tmp/wordpress, chame o comando git init. 3. Chame o comando git clone para clonar o repositório público do WordPress, criando sua própria cópia dele na pasta de destino /tmp/wordpress: git clone /tmp/wordpress Isso deixará você com um conjunto limpo de arquivos de código-fonte do WordPress na pasta /tmp/ WordPress. 54

63 Etapa 2: configurar seu conteúdo de origem Criar scripts para executar seu aplicativo Em seguida, você criará uma pasta e scripts no diretório. O AWS CodeDeploy usará esses scripts para configurar e implantar sua revisão de aplicativo na instância do Amazon EC2 de destino. É possível usar qualquer editor de texto para criar os scripts. 1. Crie um diretório de scripts na sua cópia do código-fonte do WordPress: mkdir -p /tmp/wordpress/scripts 2. Crie um arquivo install_dependencies.sh no /tmp/wordpress/scripts. Adicione as seguintes linhas ao arquivo. Esse script install_dependencies.sh instalará Apache, MySQL e PHP. Ele também adicionará suporte para MySQL ao PHP. #!/bin/bash yum groupinstall -y "Web Server" "MySQL Database" "PHP Support" yum install -y php-mysql 3. Crie um arquivo stop_server.sh no /tmp/wordpress/scripts. Adicione as seguintes linhas ao arquivo. Esse script stop_server.sh vai interromper o Apache e o MySQL. #!/bin/bash isexistapp=`pgrep httpd` if [[ -n $isexistapp ]]; then service httpd stop fi isexistapp=`pgrep mysqld` if [[ -n $isexistapp ]]; then service mysqld stop fi 4. Crie um arquivo start_server.sh no /tmp/wordpress/scripts. Adicione as seguintes linhas ao arquivo. Esse script start_server.sh vai iniciar o Apache e o MySQL. #!/bin/bash service httpd start service mysqld start 5. Finalmente, crie um script change_permissions.sh em /tmp/wordpress/scripts. Ele será usado para alterar as permissões de pastas no Apache. #!/bin/bash chmod -R 755 /var/www/html/wordpress 6. Dê todas as permissões executáveis de scripts. Na linha de comando, digite: chmod +x /tmp/wordpress/scripts/* Adicionar um arquivo de especificação de aplicativo Em seguida, você adicionará um arquivo de especificação do aplicativo (arquivo AppSpec), um arquivo formatado em YAML que é usado pelo AWS CodeDeploy para: 55

64 Etapa 3: carregar seu aplicativo no Amazon S3 Mapear os arquivos de origem na sua revisão de aplicativo para os respectivos destinos na instância do Amazon EC2 de destino. Especificar permissões personalizadas para arquivos implantados. Especificar os scripts a serem executados na instância do Amazon EC2 de destino durante a implantação. O arquivo AppSpec deve ser nomeado appspec.yml. Ele deve ser colocado no diretório raiz do códigofonte do aplicativo. Com seu editor de texto, crie um arquivo chamado appspec.yml. Adicione as seguintes linhas ao arquivo: version: 0.0 os: linux files: - source: / destination: /var/www/html/wordpress hooks: BeforeInstall: - location: scripts/install_dependencies.sh timeout: 300 runas: root AfterInstall: - location: scripts/change_permissions.sh timeout: 300 runas: root ApplicationStart: - location: scripts/start_server.sh timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root O AWS CodeDeploy usará esse arquivo AppSpec para copiar todos os arquivos na pasta /tmp/wordpress da máquina de desenvolvimento para a pasta /var/www/html/wordpress na instância do Amazon EC2 de destino. Durante a implantação, o AWS CodeDeploy executará os scripts especificados como root na pasta /var/www/html/wordpress/scripts da instância do Amazon EC2 de destino em eventos específicos durante o ciclo de vida de implantação, como BeforeInstall e AfterInstall. Se algum desses scripts demorar mais de 300 segundos (5 minutos) para ser executado, o AWS CodeDeploy interromperá a implantação e a marcará como falha. Para obter mais informações sobre essas configurações, consulte o Referência ao AppSpec File do AWS CodeDeploy (p. 283). Important Os locais e números de espaços entre cada um dos itens desse arquivo são importantes. Se o espaçamento estiver incorreto, o AWS CodeDeploy gerará um erro que talvez seja difícil de depurar. Para obter mais informações, consulte Espaçamento de AppSpec File (p. 299). Etapa 3: carregar seu aplicativo WordPress no Amazon S3 Agora, você preparará e carregará seu conteúdo original em um local a partir de onde o AWS CodeDeploy possa implantá-lo. As instruções a seguir mostram como provisionar um bucket do Amazon S3, preparar 56

65 Etapa 3: carregar seu aplicativo no Amazon S3 os arquivos da revisão de aplicativo para o bucket, agrupar os arquivos da revisão e, em seguida, enviá-la para esse bucket. Embora não discutido neste tutorial, você pode usar o AWS CodeDeploy para implantar aplicativos de repositórios GitHub em instâncias. Para obter mais informações, consulte Integrando o AWS CodeDeploy com o GitHub (p. 47). Tópicos Provisionar um bucket do Amazon S3 (p. 57) Preparar os arquivos do aplicativo para o bucket (p. 59) Agrupar os arquivos do aplicativo em um único arquivamento e enviar o arquivamento (p. 59) Provisionar um bucket do Amazon S3 Crie um contêiner de armazenamento, ou bucket, no Amazon S3 ou um bucket existente. Certifiquese de que você possa carregar a revisão no bucket e de que as instâncias do Amazon EC2 usadas nas implantações possam baixá-la desse bucket. Você pode usar a AWS CLI, o console do Amazon S3 ou as APIs do Amazon S3 para criar um bucket do Amazon S3. Depois de criar o bucket, certifique-se de dar permissões de acesso a ele e ao seu usuário do IAM. Nomes de buckets devem ser exclusivos no Amazon S3 para todas as contas da AWS. Se não conseguir usar codedeploydemobucket, tente um nome de bucket diferente, como codedeploydemobucket, seguido por um traço e suas iniciais ou algum outro identificador exclusivo. Em seguida, certifique-se de substituir codedeploydemobucket pelo nome do seu bucket sempre que essa identificação aparecer neste tutorial. O bucket do Amazon S3 deve ser criado na mesma região da AWS em que as suas instâncias do Amazon EC2 de destino são iniciadas. Por exemplo, se você criar o bucket em Leste dos EUA (Norte da Virgínia) Região, suas instâncias do Amazon EC2 de destino deverão ser lançadas em Leste dos EUA (Norte da Virgínia) Região. Tópicos Para criar um bucket do Amazon S3 (CLI) (p. 57) Para criar um bucket do Amazon S3 (console) (p. 57) Dar permissões para o bucket do Amazon S3 e seu usuário do IAM (p. 58) Para criar um bucket do Amazon S3 (CLI) Chame o comando mb para criar um bucket do Amazon S3 denominado codedeploydemobucket: aws s3 mb s3://codedeploydemobucket Para criar um bucket do Amazon S3 (console) 1. Abra o console do Amazon S3 em 2. No console do Amazon S3, escolha Criar bucket. 3. Na caixa Nome do bucket, digite um nome para o bucket. 57

66 Etapa 3: carregar seu aplicativo no Amazon S3 4. Na lista Região, escolha a região de destino e escolha Criar. Dar permissões para o bucket do Amazon S3 e seu usuário do IAM Você deve ter permissões para fazer upload do bucket do Amazon S3. Você pode especificar essas permissões com uma política de bucket do Amazon S3. Por exemplo, na política de bucket do Amazon S3 a seguir, o uso do caractere coringa (*) permite que a conta do AWS faça o upload de arquivos para qualquer diretório no bucket do Amazon S3 denominado codedeploydemobucket: { } "Statement": [ { "Action": [ "s3:putobject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ " " ] } } ] Para visualizar sua ID de conta do AWS, consulte Como encontrar seu ID da conta da AWS. O agora é um bom momento para verificar se o bucket do Amazon S3 permitirá solicitações de download de cada instância participante do &EC2. Você pode especificar isso com uma política de bucket do Amazon S3. Por exemplo, na seguinte política de bucket do Amazon S3 o uso de um caractere coringa (*) permitirá que qualquer instância do Amazon EC2 com um perfil de instâncias do IAM anexado contendo o Nome de região da Amazon (ARN) arn:aws:iam::80398example:role/codedeploydemo faça o download de arquivos de qualquer diretório no bucket do Amazon S3 denominado codedeploydemobucket: { } "Statement": [ { "Action": [ "s3:get*", "s3:list*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::80398example:role/codedeploydemo" ] } } ] Para obter informações sobre como gerar e anexar uma política de bucket do Amazon S3, consulte Exemplos de políticas de bucket. Sua conta deve ter permissão para carregar a revisão no bucket do Amazon S3. Uma maneira de especificar isso é por meio de uma política do IAM. A seguinte política de usuário do IAM personalizada permite que seu usuário do IAM carregue revisões em qualquer lugar do bucket do Amazon S3 denominado codedeploydemobucket: 58

67 Etapa 3: carregar seu aplicativo no Amazon S3 { } "Version":" ", "Statement":[ { "Effect":"Allow", "Action":["s3:PutObject"], "Resource":"arn:aws:s3:::codedeploydemobucket/*" } ] Para obter informações sobre como criar e anexar uma política do IAM, consulte Trabalhando com políticas. Preparar os arquivos do aplicativo para o bucket Certifique-se de que os arquivos do aplicativo WordPress, o arquivo AppSpec e os scripts estejam organizados na sua máquina de desenvolvimento de maneira semelhante à seguinte: /tmp/ --WordPress/ -- appspec.yml -- scripts/ -- install_dependencies.sh -- change_permissions.sh -- start_server.sh -- stop_server.sh -- wp-admin/ -- (various files...) -- wp-content/ -- (various files...) -- wp-includes/ -- (various files...) -- index.php -- license.txt -- readme.html -- (various files ending with.php...) Agrupar os arquivos do aplicativo em um único arquivamento e enviar o arquivamento Agrupe os arquivos do aplicativo WordPress e o arquivo AppSpec em um arquivamento (conhecido como uma revisão de aplicativo). Você pode ser cobrado por armazenar objetos em um bucket e por transferir revisões de aplicativos para dentro e fora de um bucket. Para obter mais informações, consulte as Definição de preço do Amazon S3. 1. Na máquina de desenvolvimento, mude para a pasta na qual os arquivos estão armazenados: cd /tmp/wordpress Se você não mudar para essa pasta, o agrupamento de arquivos começará na sua pasta atual. Por exemplo, se a sua pasta atual for /tmp em vez de /tmp/wordpress, o 59

68 Etapa 4: implantar seu aplicativo empacotamento começará com arquivos e subpastas na pasta tmp, o que pode incluir mais do que a subpasta WordPress. 2. Chame o comando create-application para registrar um novo aplicativo denominado WordPress_App: aws deploy create-application --application-name WordPress_App 3. Chame o comando push do AWS CodeDeploy para agrupar os arquivos, carregar as revisões no Amazon S3 e registrar informações no AWS CodeDeploy sobre a revisão enviada, tudo isso em uma única ação. aws deploy push \ --application-name WordPress_App \ --s3-location s3://codedeploydemobucket/wordpressapp.zip \ --ignore-hidden-files Esse comando agrupa os arquivos do diretório atual (excluindo todos os arquivos ocultos) em um único arquivamento denominado WordPressApp.zip, carrega a revisão no bucket codedeploydemobucket e registra informações no AWS CodeDeploy sobre a revisão carregada. Etapa 4: implantar seu aplicativo WordPress Agora, você implantará a revisão de aplicativo WordPress de amostra que carregou no Amazon S3. Você usará a AWS CLI ou o console do AWS CodeDeploy para implantar a revisão e monitorar o progresso da implantação. Depois que a revisão de aplicativo for implementada com êxito, você verificará os resultados. Tópicos Implantar sua revisão de aplicativo com o AWS CodeDeploy (p. 60) Monitorar sua implantação e solucionar problemas relacionados (p. 62) Verificar sua implantação (p. 63) Implantar sua revisão de aplicativo com o AWS CodeDeploy Tópicos Para implantar sua revisão de aplicativo (CLI) (p. 60) Para implantar sua revisão de aplicativo (console) (p. 61) Para implantar sua revisão de aplicativo (CLI) 1. Primeiro, a implantação precisará de um grupo de implantação correspondente. No entanto, antes de criar o grupo de implantação, você precisará de um ARN de função de serviço. Uma função de serviço é uma função do IAM que dá a um serviço permissão para agir em seu nome. Nesse caso, a função de serviço dará permissão ao AWS CodeDeploy para acessar suas instâncias do Amazon EC2 a fim de expandir (ler) suas tags de instância do Amazon EC2. Você já deve ter seguido as instruções em Criar uma função de serviço (CLI) (p. 17) para criar uma função de serviço. Para obter o ARN da função de serviço, consulte Obter o ARN da função de serviço (CLI) (p. 19). 2. Agora que você tem o ARN, chame o comando create-deployment-group para criar um grupo de implantação WordPress_DepGroup, associado ao aplicativo WordPress_App, usando a tag do Amazon EC2 CodeDeployDemo e a configuração de implantação CodeDeployDefault.OneAtATime, com o ARN da função de serviço: 60

69 Etapa 4: implantar seu aplicativo aws deploy create-deployment-group \ --application-name WordPress_App \ --deployment-group-name WordPress_DepGroup \ --deployment-config-name CodeDeployDefault.OneAtATime \ --ec2-tag-filters Key=Name,Value=CodeDeployDemo,Type=KEY_AND_VALUE \ --service-role-arn servicerolearn O comando create-deployment-group fornece suporte para criar os gatilhos que resultam no envio de notificações do Amazon SNS aos assinantes do tópico sobre eventos especificados em implementações e instâncias. O comando também oferece suporte a opções para reverter automaticamente implantações e configurar alertas para interromper implantações quando os limites de monitoramento nos alarmes do Amazon CloudWatch são atingidos. Os comandos para essas ações não estão incluídos na amostra deste tutorial. 3. Agora, chame o comando create-deployment para criar uma implantação associada ao aplicativo WordPress_App, a configuração de implantação CodeDeployDefault.OneAtATime e o grupo de implantação WordPress_DepGroup, usando a revisão de aplicativo WordPressApp.zip no bucket codedeploydemobucket: aws deploy create-deployment \ --application-name WordPress_App \ --deployment-config-name CodeDeployDefault.OneAtATime \ --deployment-group-name WordPress_DepGroup \ --s3-location bucket=codedeploydemobucket,bundletype=zip,key=wordpressapp.zip Para implantar sua revisão de aplicativo (console) 1. Antes de usar o console do AWS CodeDeploy para implantar sua revisão de aplicativo, você precisará de um ARN de função de serviço. Uma função de serviço é uma função do IAM que dá a um serviço permissão para agir em seu nome. Nesse caso, a função de serviço dará permissão ao AWS CodeDeploy para acessar suas instâncias do Amazon EC2 a fim de expandir (ler) suas tags de instância do Amazon EC2. Você já deve ter seguido as instruções em Criar uma função de serviço (console) (p. 15) para criar uma função de serviço. Para obter o ARN da função de serviço, consulte Obter o ARN da função de serviço (console) (p. 18). 2. Agora que você tem o ARN, use o console do AWS CodeDeploy para implantar sua revisão de aplicativo: Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 3. Se a página Applications não for exibida, no menu do AWS CodeDeploy, escolha Applications. 4. Na lista de aplicativos, escolha WordPress_App. 5. Em Deployment groups, escolha Create deployment group. 6. Na caixa Deployment group name, digite WordPress_DepGroup. 7. Em Deployment type, escolha a implantação In-place. 8. Em Add instances, na lista de tags, escolha Amazon EC2 na lista suspensa Tag type. 9. Na caixa Key, digite Nome. 61

70 Etapa 4: implantar seu aplicativo 10. Na caixa Value, digite CodeDeployDemo. Depois de digitar CodeDeployDemo, um 1 deve aparecer abaixo de Instances para confirmar que o AWS CodeDeploy encontrou uma instância do Amazon EC2 correspondente. 11. Na lista suspensa Deployment configuration, escolha CodeDeployDefault.OneAtATime. 12. Na lista suspensa Service role ARN, escolha o ARN da função de serviço e depois escolha Create deployment group. 13. Na página Application details, selecione o botão ao lado do novo grupo de implantação. No menu Actions, selecione Deploy new revision. 14. Na lista suspensa Application, escolha WordPress_App. 15. Na lista suspensa Deployment group, escolha WordPress_DepGroup. 16. Ao lado de Repository type, escolha My application is stored in Amazon S3. Na caixa Revision location, digite a localização da revisão de aplicativo WordPress de amostra que foi carregada anteriormente no Amazon S3. Para obter a localização: 1. Abra o console do Amazon S3 em 2. Na lista de buckets, escolha codedeploydemobucket (ou o nome do bucket no qual você carregou sua revisão de aplicativo). 3. Na lista de objetos, escolha WordPressApp.zip. 4. Escolha a guia Properties. 5. Copie o valor do campo Link para a área de transferência. A aparência pode ser semelhante a esta: 6. Retorne ao console do AWS CodeDeploy e, na caixa Revision location, cole o valor do campo Link. 17. Se for exibida uma mensagem na lista File type especificando que o tipo de arquivo não pôde ser detectado, escolha.zip na lista de tipos de arquivos. 18. (Opcional) Digite um comentário na caixa Deployment description. 19. Na lista suspensa Deployment configuration, escolha CodeDeployDefault.OneAtATime. 20. Escolha Deploy. Informações sobre sua implantação recém-criada aparecerão na página Deployments. Para obter o status atual da implantação, escolha o botão Refresh ao lado da tabela. Monitorar sua implantação e solucionar problemas relacionados Tópicos Para monitorar e solucionar problemas de implantação (CLI) (p. 62) Para monitorar e solucionar problemas de implantação (console) (p. 63) Para monitorar e solucionar problemas de implantação (CLI) 1. Obtenha o ID da implantação chamando o comando list-deployments para o aplicativo WordPress_App e o grupo de implantação WordPress_DepGroup: 62

71 Etapa 4: implantar seu aplicativo aws deploy list-deployments --application-name WordPress_App --deployment-group-name WordPress_DepGroup --query 'deployments' --output text 2. Chame o comando get-deployment com o ID da implantação: aws deploy get-deployment --deployment-id deploymentid --query 'deploymentinfo.status' --output text 3. O comando retornará o status geral da implantação. Se for bem-sucedido, o valor será Succeeded. Se o status geral for Failed, você poderá chamar comandos como list-deployment-instances e getdeployment-instance para solucionar problemas. Para mais opções de solução de problemas, consulte Analisando arquivos de log para investigar falhas de implantação em instâncias (p. 328). Para monitorar e solucionar problemas de implantação (console) Na página Deployments do console do AWS CodeDeploy, você pode monitorar o status da sua implantação na coluna Status. Para obter o status atual da implantação, escolha o botão Refresh acima da tabela. Para obter mais informações sobre a sua implantação, especialmente se o valor da coluna Status tiver outro valor diferente de Succeeded: 1. Na tabela Deployments, escolha a seta ao lado do ID da implantação. Depois que uma implantação falhar, uma mensagem descrevendo o motivo da falha será exibida em Details. 2. Em Instances, escolha View all instances. Mais informações sobre a implantação serão exibidas. Depois que uma implantação falhar, talvez seja possível determinar em quais instâncias do Amazon EC2 e em qual etapa ela falhou. Se Instances não aparecer, escolha o botão Refresh acima da tabela. Depois que a coluna Status mudar de In progress para Created, Instances será exibido. 3. Se quiser realizar outros procedimentos de solução de problemas, use uma técnica como a descrita em Exibir Detalhes da Instância com o AWS CodeDeploy (p. 183). Você também pode analisar os arquivos de log de implantação em uma instância do Amazon EC2. Para obter mais informações, consulte Analisando arquivos de log para investigar falhas de implantação em instâncias (p. 328). Verificar sua implantação Depois que a sua implantação for bem-sucedida, verifique se a sua instalação do WordPress está funcionando. Use o endereço DNS público da instância do Amazon EC2, seguido por /WordPress, para visualizar seu site em um navegador da Web. (Para obter o valor do DNS público, no console do Amazon EC2, escolha a instância do Amazon EC2, escolha a instância & EC2; e, na guia Description, procure o valor de Public DNS.) Por exemplo, se o endereço DNS público da sua instância do Amazon EC2 for ec compute-1.amazonaws.com, você usará a seguinte URL: 63

72 Etapa 5: atualizar e reimplantar seu aplicativo Etapa 5: atualizar e reimplantar o aplicativo WordPress Agora que você implantou com êxito a sua revisão de aplicativo, atualize o código do WordPress na máquina de desenvolvimento e use o AWS CodeDeploy para reimplantar o site. Você deve ser capaz de visualizar as alterações de código na instância do Amazon EC2. Tópicos Configurar o site do WordPress (p. 64) Modificar o site (p. 64) Reimplantar o site (p. 65) Configurar o site do WordPress Para ver os efeitos da mudança de código, termine de configurar o site do WordPress para que você tenha uma instalação totalmente funcional. 1. Digite a URL do seu site no navegador. A URL é o endereço DNS público da instância do Amazon EC2 mais a extensão /WordPress. Para este exemplo, o site do WordPress (e o exemplo de endereço DNS público da instância do Amazon EC2), a URL é ec compute-1.amazonaws.com/wordpress. 2. Se ainda não tiver configurado o site, a página de configuração padrão do WordPress será exibida. Escolha Create a Configuration File. 3. Na página de configuração do banco de dados, digite os seguintes valores para usar o banco de dados MySQL padrão: Nome do banco de dados: test Nome de usuário: root Senha: deixe em branco. Host do banco de dados: localhost Prefixo de tabela: wp_ Escolha Submit para configurar o banco de dados. 4. Continue a configuração do site. Na página Welcome, preencha os valores desejados e escolha Install WordPress. Quando a instalação estiver concluída, você poderá fazer login no seu dashboard. Modificar o site Para modificar o site do WordPress, acesse a pasta do aplicativo na sua máquina de desenvolvimento: cd /tmp/wordpress Para modificar algumas das cores do site, no arquivo wp-content/themes/twentyfifteen/style.css, use um editor de texto ou sed para trocar #fff por # No Linux ou outros sistemas com o GNU sed, use: 64

73 Etapa 5: atualizar e reimplantar seu aplicativo sed -i 's/#fff/#768331/g' wp-content/themes/twentyfifteen/style.css No Mac OS X, Unix ou outros sistemas com o BSD sed, use: sed -i '' 's/#fff/#768331/g' wp-content/themes/twentyfifteen/style.css Reimplantar o site Agora que você modificou o código do site, use o Amazon S3 e o AWS CodeDeploy para reimplantar o site. Agrupe e carregue as alterações no Amazon S3, conforme descrito em Agrupar os arquivos do aplicativo em um único arquivamento e enviar o arquivamento (p. 59). (Ao seguir essas instruções, lembre-se de que não é necessário criar um aplicativo.) Especifique a mesma chave de antes para a nova revisão (WordPressApp.zip). Carregue-a no mesmo bucket do Amazon S3 criado anteriormente (por exemplo, codedeploydemobucket). Use a AWS CLI, o console do AWS CodeDeploy ou as APIs do AWS CodeDeploy para reimplantar o site. Tópicos Para redistribuir o site (CLI) (p. 65) Para reimplantar o site (console) (p. 65) Para redistribuir o site (CLI) Chame o comando create-deployment para criar uma implantação com base na revisão recém-carregada. Use o aplicativo WordPress_App, a configuração de implantação CodeDeployDefault.OneAtATime, o grupo WordPress_DepGroup e a revisão WordPressApp.zip no bucket codedeploydemobucket: aws deploy create-deployment \ --application-name WordPress_App \ --deployment-config-name CodeDeployDefault.OneAtATime \ --deployment-group-name WordPress_DepGroup \ --s3-location bucket=codedeploydemobucket,bundletype=zip,key=wordpressapp.zip Você pode verificar o status da implantação conforme descrito em Monitorar sua implantação e solucionar problemas relacionados (p. 62). Quando o AWS CodeDeploy tiver reimplantado o site, reveja-o no seu navegador da Web para verificar se as cores mudaram. (Talvez seja necessário atualizar o navegador.) Se as cores mudaram, parabéns! Você modificou e reimplantou seu site com sucesso! Para reimplantar o site (console) 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, escolha Deployments. 3. Escolha Create deployment. 4. Na página Create deployment: 65

74 Etapa 6: Limpeza 1. Na lista Application, escolha WordPress_App. Se não for exibida nenhuma entrada, verifique se a região correta está selecionada. Na barra de navegação, no seletor de região, escolha uma das regiões listadas em Região e endpoints, no AWS General Reference. O AWS CodeDeploy apenas oferece suporte a essas regiões. 2. Na lista Deployment group, escolha WordPress_DepGroup. 3. Na área Repository type, escolha My application is stored in Amazon S3 e, em seguida, copie o link do Amazon S3 da sua revisão na caixa Revision location. Para encontrar o valor do link: 1. Em uma guia separada do navegador: Faça login no Console de gerenciamento da AWS e abra o console da Amazon S3 em console.aws.amazon.com/s3/. Navegue até codedeploydemobucket e depois abra-o e escolha sua revisão, WordPressApp.zip. 2. Se o painel Properties não estiver visível no console do Amazon S3, escolha o botão Properties. 3. No painel Properties, copie o valor do campo Link na caixa Revision location do console do AWS CodeDeploy. 4. Se uma mensagem aparecer indicando que o tipo de arquivo não pôde ser detectado, escolha.zip. 5. Deixe a caixa Deployment description em branco. 6. Na lista Deployment configuration, escolha CodeDeployDefault.OneAtATime e depois escolha Deploy. Para atualizar o status da implantação, escolha o botão Refresh acima da tabela. Você pode verificar o status da implantação conforme descrito em Monitorar sua implantação e solucionar problemas relacionados (p. 62). Quando o AWS CodeDeploy tiver reimplantado o site, reveja-o no seu navegador da Web para verificar se as cores mudaram. (Talvez seja necessário atualizar o navegador.) Se as cores mudaram, parabéns! Você modificou e reimplantou seu site com sucesso! Etapa 6: limpar seu aplicativo WordPress e recursos relacionados Agora, você atualizou com sucesso o código do WordPress e reimplantou o site. Para evitar cobranças contínuas pelos recursos criados para este tutorial, você deve excluir o seguinte: Qualquer pilha do AWS CloudFormation (ou encerrar qualquer instância do Amazon EC2, caso você a tenha criado fora do AWS CloudFormation). Qualquer bucket do Amazon S3. O aplicativo WordPress_App no AWS CodeDeploy. É possível usar a AWS CLI, os consoles do AWS CloudFormation, Amazon S3, Amazon EC2 e AWS CodeDeploy ou as APIs da AWS para realizar a limpeza. Tópicos 66

75 Etapa 6: Limpeza Para limpar recursos (CLI) (p. 67) Para limpar recursos (console) (p. 67) E o próximo? (p. 68) Para limpar recursos (CLI) 1. Se tiver usado nosso template do AWS CloudFormation para esse tutorial, chame o comando delete-stack para a pilha CodeDeployDemoStack. Isso encerrará todas as instâncias do Amazon EC2 acompanhantes e excluirá todas as funções do IAM acompanhantes que essa pilha criou: aws cloudformation delete-stack --stack-name CodeDeployDemoStack 2. Para excluir o bucket do Amazon S3, chame o comando rm com a opção --recursive no bucket denominado codedeploydemobucket. Isso excluirá o bucket e todos os seus objetos: aws s3 rm s3://codedeploydemobucket --recursive 3. Para excluir o aplicativo WordPress_App, chame o comando delete-application. Isso também excluirá todos os registros do grupo de implantação associados e os registros de implantação do aplicativo: aws deploy delete-application --application-name WordPress_App Se não tiver usado a pilha do AWS CloudFormation para este tutorial, chame o comando terminateinstances para encerrar qualquer instância do Amazon EC2 criada manualmente. Forneça o ID da instância do Amazon EC2 a ser encerrada: aws ec2 terminate-instances --instance-ids instanceid Para limpar recursos (console) Se você tiver usado nosso template do AWS CloudFormation para este tutorial, exclua a pilha do AWS CloudFormation associada. 1. Faça login no Console de gerenciamento da AWS e abra o console da AWS CloudFormation em 2. Na caixa Filtro, digite o nome da pilha do AWS CloudFormation que você criou anteriormente (por exemplo, CodeDeployDemoStack). 3. Marque a caixa ao lado do nome da pilha. No menu Ações, escolha Excluir pilha. O AWS CloudFormation excluirá a pilha, encerrará todas as instâncias do Amazon EC2 acompanhantes e excluirá todas as funções do IAM acompanhantes. Para encerrar as instâncias do Amazon EC2 que você criou fora de uma pilha do AWS CloudFormation: 1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon EC2 em console.aws.amazon.com/ec2/. 2. Na lista INSTÂNCIAS, escolha Instâncias. 3. Na caixa de pesquisa, digite o nome da instância do Amazon EC2 que você deseja encerrar (por exemplo, CodeDeployDemo) e depois pressione Enter. 4. Escolha o nome da instância do Amazon EC2. 5. No menu Ações, selecione Estado da instância e escolha Encerrar. Quando solicitado, escolha Sim, encerrar. 67

76 Repita essas etapas para cada instância. Para excluir o bucket do Amazon S3: AWS CodeDeploy Guia do usuário Tutorial: implantar um aplicativo HelloWorld em uma instância do Windows Server 1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon S3 em console.aws.amazon.com/s3/. 2. Na lista de buckets, navegue e escolha o nome do bucket do Amazon S3 que você criou anteriormente (por exemplo, codedeploydemobucket). 3. Antes de poder excluir um bucket, você deve excluir seu conteúdo. Selecione todos os arquivos no bucket, como WordPressApp.zip. No menu Ações, escolha Excluir. Quando solicitado a confirmar a exclusão, escolha OK. 4. Depois que o bucket estiver vazio, você poderá excluí-lo. Na lista de buckets, escolha a linha do bucket (mas não o nome do bucket). Escolha Excluir bucket e quando solicitado a confirmar, escolha OK. Para excluir o aplicativo WordPress_App do AWS CodeDeploy: 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, selecione Aplicativos. 3. Na lista de aplicativos, escolha WordPress_App. 4. Na página Detalhes do aplicativo, em Grupos de implantação, escolha o botão ao lado do grupo de implantação. No menu Ações, escolha Excluir. Quando solicitado, digite o nome do grupo de implantação para confirmar que você deseja excluí-lo e, em seguida, escolha Excluir. 5. Na parte inferior da página Application details, escolha Delete application. 6. Quando solicitado, digite o nome do aplicativo para confirmar que você deseja excluí-lo e, em seguida, escolha Excluir. E o próximo? Se você chegou até aqui, parabéns! Você concluiu com êxito uma implantação do AWS CodeDeploy e depois atualizou o código do seu site e o reimplantou. Tutorial: implantar um aplicativo "Hello, World!" com o AWS CodeDeploy (Windows Server) Neste tutorial, você implantará uma única página da Web em uma única instância do Amazon EC2 do Windows Server que executa o IIS (Serviços de Informações da Internet) como seu servidor Web. Essa página da Web exibirá um simples "Hello, World!" mensagem. Não é o que você está procurando? Para praticar a implantação em uma instância do Amazon EC2 do Amazon Linux ou Red Hat Enterprise Linux (RHEL), consulte Tutorial: implantar o WordPress em uma instância do Amazon EC2 (Amazon Linux ou Red Hat Enterprise Linux e Linux, macos, or Unix) (p. 51). 68

77 Etapa 1: iniciar uma instância do Amazon EC2 Para praticar a implantação em uma instância local, consulte Tutorial: implantar um aplicativo em uma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux) (p. 84). Este tutorial baseia-se em conceitos que foram introduzidos no Etapa 5: experimentar o assistente de implantação de amostra do AWS CodeDeploy (p. 22). Caso ainda não o tenha concluído, convém fazer isso primeiro. As etapas deste tutorial são apresentadas sob a perspectiva do Windows. Embora você possa concluir a maioria dessas etapas em uma máquina local executando o Linux, macos, or Unix, será necessário adaptar as etapas que fazem referência a caminhos de diretório baseados no Windows, como c:\temp. Além disso, se você deseja se conectar à instância do Amazon EC2, precisará de um aplicativo cliente que seja capaz de se conectar via protocolo RDP à instância do Amazon EC2 que executa o Windows Server. (O Windows inclui um aplicativo cliente de conexão RDP por padrão.) Antes de iniciar este tutorial, você deve atender aos pré-requisitos em Conceitos básicos (p. 13), que incluem configurar seu usuário do IAM, instalar ou atualizar a AWS CLI e criar uma função de serviço e um perfil de instâncias do IAM. Tópicos Etapa 1: iniciar uma instância do Amazon EC2 do Windows Server (p. 69) Etapa 2: configurar seu conteúdo de origem para implantar na instância do Amazon EC2 do Windows Server (p. 70) Etapa 3: carregar seu aplicativo "Hello, World!" para o Amazon S3 (p. 72) Etapa 4: implantar seu aplicativo "Hello, World!" Aplicativo (p. 76) Etapa 5: atualizar e reimplantar o aplicativo "Hello, World!" Aplicativo (p. 79) Etapa 6: limpar seu aplicativo "Hello, World!" e os recursos relacionados (p. 82) Etapa 1: iniciar uma instância do Amazon EC2 do Windows Server Para implantar o aplicativo "Hello, World!" com o AWS CodeDeploy, você precisará de uma instância do Amazon EC2 executando o Windows Server. Siga as instruções em Trabalhando com instâncias (p. 139). Quando você chegar na parte dessas instruções sobre como atribuir uma tag de instância do Amazon EC2 à instância, certifique-se de especificar a chave Name e o valor de tag CodeDeployDemo. (Se você especificar uma chave de tag ou um valor de tag diferente, as instruções em Etapa 4: implantar seu aplicativo (p. 76) poderão produzir resultados inesperados.) Depois de seguir as instruções para iniciar a instância do Amazon EC2, retorne a essa página e continue na próxima seção. Não continue em Criar um aplicativo (p. 194) como próxima etapa. Conectar-se à sua instância do Amazon EC2 Depois que a sua instância do Amazon EC2 for iniciada, siga essas instruções para praticar a conexão com ela. Nestas instruções, partimos do princípio de que você esteja executando o Windows e o aplicativo cliente de Conexão de Área de Trabalho do Windows. Para obter informações, consulte Estabelecendo uma conexão com a sua instância do Windows usando o RDP. Talvez seja 69

78 Etapa 2: configurar seu conteúdo de origem necessário adaptar essas instruções para outros sistemas operacionais ou outros aplicativos cliente de conexão RDP. 1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon EC2 em console.aws.amazon.com/ec2/. 2. No painel de navegação, em Instances, selecione Instances. 3. Navegue e escolha sua instância do Windows Server na lista. 4. Escolha Connect. 5. Escolha Get Password. 6. Escolha Browse. Navegue e escolha o arquivo de par de chaves da instância do Amazon EC2 associado à instância do Amazon EC2 do Windows Server e depois escolha Open. 7. Escolha Decrypt Password. Anote a senha que é exibida. 8. Escolha Download Remote Desktop File e depois abra o arquivo. 9. Se você for solicitado a se conectar, continue mesmo que o editor da conexão remota não possa ser identificado. 10. Quando solicitado a inserir uma senha, digite a senha que você anotou na etapa 7 e depois continue. (Se o seu aplicativo cliente de conexão RDP solicitar um nome de usuário, digite Administrator.) 11. Se você for solicitado a se conectar, continue mesmo que a identidade do computador remoto não possa ser verificada. 12. Quando você estiver conectado, a área de trabalho da instância do Amazon EC2 que executa o Windows Server será exibida. 13. Agora, você pode sair da instância do Amazon EC2 em execução. Warning Não interrompa ou encerre a instância. Caso contrário, o AWS CodeDeploy não poderá fazer a implantação. Etapa 2: configurar seu conteúdo de origem para implantar na instância do Amazon EC2 do Windows Server Agora é hora de configurar o conteúdo de origem do seu aplicativo, para que você tenha algo que possa implantar na instância do Amazon EC2. Para este tutorial, você implantará uma única página da Web na instância do Amazon EC2 que executa o Windows Server, que executará o IIS (Serviços de Informações da Internet) como seu servidor Web. Essa página da Web exibirá um simples "Hello, World!" mensagem. Tópicos Criar página da Web (p. 70) Crie um script para executar seu aplicativo (p. 71) Adicionar um arquivo de especificação de aplicativo (p. 72) Criar página da Web 1. Crie um subdiretório (subpasta) chamado HelloWorldApp na pasta c:\temp e, em seguida, mude para essa pasta. mkdir c:\temp\helloworldapp cd c:\temp\helloworldapp 70

79 Etapa 2: configurar seu conteúdo de origem Não é necessário usar a localização c:\temp ou o nome da subpasta HelloWorldApp. Se você usar uma localização ou um nome de subpasta diferente, certifique-se de usá-lo ao longo de todo este tutorial. 2. Use um editor de texto para criar um arquivo dentro da pasta. Nomeie o arquivo index.html. notepad index.html 3. Adicione o seguinte código HTML ao arquivo e salve-o em seguida. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " html4/loose.dtd"> <html> <head> <title>hello, World!</title> <style> body { color: #ffffff; background-color: #0188cc; font-family: Arial, sans-serif; font-size:14px; } </style> </head> <body> <div align="center"><h1>hello, World!</h1></div> <div align="center"><h2>you have successfully deployed an application using AWS CodeDeploy</h2></div> <div align="center"> <p>what to do next? Take a look through the <a href=" codedeploy">aws CodeDeploy Documentation</a>.</p> </div> </body> </html> Crie um script para executar seu aplicativo Em seguida, você criará um script que o AWS CodeDeploy usará para configurar o servidor Web na instância do Amazon EC2 de destino. 1. Na mesma subpasta em que o arquivo index.html está salvo, use um editor de texto para criar outro arquivo. Nomeie o arquivo before-install.bat. notepad before-install.bat 2. Adicione o seguinte código script em lotes ao arquivo e salve-o em seguida. REM Install Internet Information Server (IIS). c:\windows\sysnative\windowspowershell\v1.0\powershell.exe -Command Import-Module -Name ServerManager c:\windows\sysnative\windowspowershell\v1.0\powershell.exe -Command Install- WindowsFeature Web-Server 71

80 Etapa 3: carregar seu aplicativo no Amazon S3 Adicionar um arquivo de especificação de aplicativo Em seguida, você adicionará um arquivo de especificação do aplicativo (arquivo AppSpec), além da página da Web e do arquivo de script em lotes. O arquivo AppSpec é um arquivo formatado em YAML usado pelo AWS CodeDeploy para: Mapear os arquivos de origem na sua revisão de aplicativo para os respectivos destinos na instância. Especifique os scripts a serem executados na instância durante a implantação. O arquivo AppSpec deve ser nomeado appspec.yml. Ele deve ser colocado na pasta raiz do código-fonte do aplicativo. 1. Na mesma subpasta em que os arquivos index.html e before-install.bat estão salvos, use um editor de texto para criar outro arquivo. Nomeie o arquivo appspec.yml. notepad appspec.yml 2. Adicione o seguinte código YAML ao arquivo e salve-o em seguida. version: 0.0 os: windows files: - source: \index.html destination: c:\inetpub\wwwroot hooks: BeforeInstall: - location: \before-install.bat timeout: 900 O AWS CodeDeploy usará esse arquivo AppSpec para copiar o arquivo index.html na pasta raiz do código-fonte do aplicativo para a pasta c:\inetpub\wwwroot na instância do Amazon EC2 de destino. Durante a implantação, o AWS CodeDeploy executará o script em lotes before-install.bat na instância do Amazon EC2 de destino durante o evento de ciclo de vida de implantação BeforeInstall. Se esse script demorar mais de 900 segundos (15 minutos) para ser executado, o AWS CodeDeploy interromperá a implantação e marcará a implantação na instância do Amazon EC2 como falha. Para obter mais informações sobre essas configurações, consulte o Referência ao AppSpec File do AWS CodeDeploy (p. 283). Important Os locais e números de espaços entre cada um dos itens desse arquivo são importantes. Se o espaçamento estiver incorreto, o AWS CodeDeploy gerará um erro que talvez seja difícil de depurar. Para obter mais informações, consulte Espaçamento de AppSpec File (p. 299). Etapa 3: carregar seu aplicativo "Hello, World!" para o Amazon S3 Agora, você preparará e carregará seu conteúdo original em um local a partir de onde o AWS CodeDeploy possa implantá-lo. As instruções a seguir mostram como provisionar um bucket do Amazon S3, preparar os arquivos da revisão de aplicativo para o bucket, agrupar os arquivos da revisão e, em seguida, enviá-la para esse bucket. 72

81 Etapa 3: carregar seu aplicativo no Amazon S3 Embora não discutido neste tutorial, você pode usar o AWS CodeDeploy para implantar aplicativos de repositórios GitHub em instâncias. Para obter mais informações, consulte Integrando o AWS CodeDeploy com o GitHub (p. 47). Tópicos Provisionar um bucket do Amazon S3 (p. 73) Preparar os arquivos do aplicativo para o bucket (p. 75) Agrupar os arquivos do aplicativo em um único arquivamento e enviar o arquivamento (p. 75) Provisionar um bucket do Amazon S3 Crie um contêiner de armazenamento, ou bucket, no Amazon S3 ou um bucket existente. Certifiquese de que você possa carregar a revisão no bucket e de que as instâncias do Amazon EC2 usadas nas implantações possam baixá-la desse bucket. Você pode usar a AWS CLI, o console do Amazon S3 ou as APIs do Amazon S3 para criar um bucket do Amazon S3. Depois de criar o bucket, certifique-se de dar permissões de acesso a ele e ao seu usuário do IAM. Nomes de buckets devem ser exclusivos no Amazon S3 para todas as contas da AWS. Se não conseguir usar codedeploydemobucket, tente um nome de bucket diferente, como codedeploydemobucket, seguido por um traço e suas iniciais ou algum outro identificador exclusivo. Em seguida, certifique-se de substituir codedeploydemobucket pelo nome do seu bucket sempre que essa identificação aparecer neste tutorial. O bucket do Amazon S3 deve ser criado na mesma região da AWS na qual suas instâncias do Amazon EC2 de destino são iniciadas. Por exemplo, se você criar o bucket em Leste dos EUA (Norte da Virgínia) Região, suas instâncias do Amazon EC2 de destino deverão ser lançadas em Leste dos EUA (Norte da Virgínia) Região. Tópicos Para criar um bucket do Amazon S3 (CLI) (p. 73) Para criar um bucket do Amazon S3 (console) (p. 73) Dar permissões para o bucket do Amazon S3 e seu usuário do IAM (p. 74) Para criar um bucket do Amazon S3 (CLI) Chame o comando mb para criar um bucket do Amazon S3 denominado codedeploydemobucket: aws s3 mb s3://codedeploydemobucket Para criar um bucket do Amazon S3 (console) 1. Abra o console do Amazon S3 em 2. No console do Amazon S3, escolha Create bucket. 3. Na caixa Bucket name, digite um nome para o bucket. 4. Na lista Region, escolha a região de destino e depois escolha Create. 73

82 Etapa 3: carregar seu aplicativo no Amazon S3 Dar permissões para o bucket do Amazon S3 e seu usuário do IAM Você deve ter permissões para fazer upload do bucket do Amazon S3. Você pode especificar essas permissões com uma política de bucket do Amazon S3. Por exemplo, na política de bucket do Amazon S3 a seguir, o uso do caractere coringa (*) permite que a conta do AWS faça o upload de arquivos para qualquer diretório no bucket do Amazon S3 denominado codedeploydemobucket: { } "Statement": [ { "Action": [ "s3:putobject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ " " ] } } ] Para visualizar sua ID de conta do AWS, consulte Como encontrar seu ID da conta da AWS. O agora é um bom momento para verificar se o bucket do Amazon S3 permitirá solicitações de download de cada instância participante do &EC2. Você pode especificar isso com uma política de bucket do Amazon S3. Por exemplo, na seguinte política de bucket do Amazon S3 o uso de um caractere coringa (*) permitirá que qualquer instância do Amazon EC2 com um perfil de instâncias do IAM anexado contendo o Nome de região da Amazon (ARN) arn:aws:iam::80398example:role/codedeploydemo faça o download de arquivos de qualquer diretório no bucket do Amazon S3 denominado codedeploydemobucket: { } "Statement": [ { "Action": [ "s3:get*", "s3:list*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::80398example:role/codedeploydemo" ] } } ] Para obter informações sobre como gerar e anexar uma política de bucket do Amazon S3, consulte Exemplos de políticas de bucket. Sua conta deve ter permissão para carregar a revisão no bucket do Amazon S3. Uma maneira de especificar isso é por meio de uma política do IAM. A seguinte política do IAM permite que seu usuário do IAM carregue revisões em qualquer lugar do bucket do Amazon S3 denominado codedeploydemobucket: { "Version":" ", 74

83 Etapa 3: carregar seu aplicativo no Amazon S3 } "Statement":[ { "Effect":"Allow", "Action":["s3:PutObject"], "Resource":"arn:aws:s3:::codedeploydemobucket/*" } ] Para obter informações sobre como criar e anexar uma política do IAM, consulte Trabalhando com políticas. Preparar os arquivos do aplicativo para o bucket Certifique-se de que a página da Web, o arquivo AppSpec e o script estejam organizados na sua máquina de desenvolvimento da seguinte maneira: c:\ -- temp\ --HelloWorldApp\ -- appspec.yml -- before-install.bat -- index.html Agrupar os arquivos do aplicativo em um único arquivamento e enviar o arquivamento Agrupe os arquivos em um arquivamento (conhecido como uma revisão de aplicativo). Você pode ser cobrado por armazenar objetos em um bucket e por transferir revisões de aplicativos para dentro e fora de um bucket. Para obter mais informações, consulte as Definição de preço do Amazon S3. 1. Na máquina de desenvolvimento, mude para a pasta na qual os arquivos estão armazenados: cd c:\temp\helloworldapp Se você não mudar para essa pasta, o agrupamento de arquivos começará na sua pasta atual. Por exemplo, se a sua pasta atual for c:\temp em vez de c:\temp\helloworldapp, o agrupamento começará com arquivos e subpastas na pasta c:\temp, o que pode incluir mais do que a subpasta HelloWorldApp. 2. Chame o comando create-application para registrar um novo aplicativo denominado HelloWorld_App no AWS CodeDeploy: aws deploy create-application --application-name HelloWorld_App 3. Chame o comando push do AWS CodeDeploy para agrupar os arquivos, carregar as revisões no Amazon S3 e registrar informações no AWS CodeDeploy sobre a revisão enviada, tudo isso em uma única ação. aws deploy push --application-name HelloWorld_App --s3-location s3:// codedeploydemobucket/helloworld_app.zip --ignore-hidden-files 75

84 Etapa 4: implantar seu aplicativo Esse comando agrupa os arquivos do diretório atual (excluindo todos os arquivos ocultos) em um único arquivamento denominado HelloWorld_App.zip, carrega a revisão no bucket codedeploydemobucket e registra informações no AWS CodeDeploy sobre a revisão carregada. Etapa 4: implantar seu aplicativo "Hello, World!" Aplicativo Agora, você implantará a revisão de aplicativo de amostra "Hello, World!" que foi carregada no Amazon S3. Você usará a AWS CLI ou o console do AWS CodeDeploy para implantar a revisão e monitorar o progresso da implantação. Depois que a revisão de aplicativo for implementada com êxito, você verificará os resultados. Tópicos Implantar sua revisão de aplicativo com o AWS CodeDeploy (p. 76) Monitorar sua implantação e solucionar problemas relacionados (p. 78) Verificar sua implantação (p. 79) Implantar sua revisão de aplicativo com o AWS CodeDeploy Tópicos Para implantar sua revisão de aplicativo (CLI) (p. 76) Para implantar sua revisão de aplicativo (console) (p. 77) Para implantar sua revisão de aplicativo (CLI) 1. Primeiro, a implantação precisará de um grupo de implantação correspondente. No entanto, antes de criar o grupo de implantação, você precisará de um ARN de função de serviço. Uma função de serviço é uma função do IAM que dá a um serviço permissão para agir em seu nome. Nesse caso, a função de serviço dará permissão ao AWS CodeDeploy para acessar suas instâncias do Amazon EC2 a fim de expandir (ler) suas tags de instância do Amazon EC2. Você já deve ter seguido as instruções em Criar uma função de serviço (CLI) (p. 17) para criar uma função de serviço. Para obter o ARN da função de serviço, consulte Obter o ARN da função de serviço (CLI) (p. 19). 2. Agora que você tem o ARN, chame o comando create-deployment-group para criar um grupo de implantação HelloWorld_DepGroup, associado ao aplicativo HelloWorld_App, usando a tag da instância do Amazon EC2 CodeDeployDemo e a configuração de implantação CodeDeployDefault.OneAtATime, com o ARN da função de serviço: aws deploy create-deployment-group --application-name HelloWorld_App --deploymentgroup-name HelloWorld_DepGroup --deployment-config-name CodeDeployDefault.OneAtATime --ec2-tag-filters Key=Name,Value=CodeDeployDemo,Type=KEY_AND_VALUE --service-rolearn servicerolearn O comando create-deployment-group fornece suporte para criar os gatilhos que resultam no envio de notificações do Amazon SNS aos assinantes do tópico sobre eventos especificados em implementações e instâncias. O comando também oferece suporte a opções para reverter automaticamente implantações e configurar alertas para interromper implantações quando os 76

85 Etapa 4: implantar seu aplicativo limites de monitoramento nos alarmes do Amazon CloudWatch são atingidos. Os comandos para essas ações não estão incluídos na amostra deste tutorial. 3. Agora, chame o comando create-deployment para criar uma implantação associada ao aplicativo HelloWorld_App, a configuração de implantação CodeDeployDefault.OneAtATime e o grupo de implantação HelloWorld_DepGroup, usando a revisão de aplicativo HelloWorld_App.zip no bucket codedeploydemobucket: aws deploy create-deployment --application-name HelloWorld_App --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name HelloWorld_DepGroup --s3-location bucket=codedeploydemobucket,bundletype=zip,key=helloworld_app.zip Para implantar sua revisão de aplicativo (console) 1. Antes de usar o console do AWS CodeDeploy para implantar sua revisão de aplicativo, você precisará de um ARN de função de serviço. Uma função de serviço é uma função do IAM que dá a um serviço permissão para agir em seu nome. Nesse caso, a função de serviço dará permissão ao AWS CodeDeploy para acessar suas instâncias do Amazon EC2 a fim de expandir (ler) suas tags de instância do Amazon EC2. Você já deve ter seguido as instruções em Criar uma função de serviço (console) (p. 15) para criar uma função de serviço. Para obter o ARN da função de serviço, consulte Obter o ARN da função de serviço (console) (p. 18). 2. Agora que você tem o ARN, pode usar o console do AWS CodeDeploy para implantar sua revisão de aplicativo. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 3. Se a página Applications não for exibida, no menu do AWS CodeDeploy, escolha Applications. 4. Na lista de aplicativos, escolha HelloWorld_App. 5. Em Deployment groups, escolha Create deployment group. 6. Na caixa Deployment group name, digite HelloWorld_DepGroup. 7. Na lista de tags, escolha Amazon EC2 na lista suspensa Tag type. 8. Na caixa Key, digite Nome. 9. Na caixa Value, digite CodeDeployDemo. Depois de digitar CodeDeployDemo, um 1 deve aparecer abaixo de Instances para confirmar que o AWS CodeDeploy encontrou uma instância do Amazon EC2 correspondente. 10. Na lista suspensa Deployment configuration, escolha CodeDeployDefault.OneAtATime. 11. Na lista suspensa Service role ARN, escolha o ARN da função de serviço e depois escolha Create deployment group. 12. No menu do AWS CodeDeploy, escolha Deployments. 13. Escolha Create deployment. 14. Na lista suspensa Application, escolha HelloWorld_App. 15. Na lista suspensa Deployment group, escolha HelloWorld_DepGroup. 77

86 Etapa 4: implantar seu aplicativo 16. Na área Repository type, escolha My application is stored in Amazon S3 e, na caixa Revision location, digite a localização da revisão de aplicativo de amostra "Hello, World!" que foi carregada anteriormente no Amazon S3. Para obter a localização: 1. Abra o console do Amazon S3 em 2. Na lista de buckets, escolha codedeploydemobucket (ou o nome do bucket no qual você carregou sua revisão de aplicativo). 3. Na lista de objetos, escolha HelloWorld_App.zip. 4. Se o painel Properties não for exibido, escolha o botão Properties. 5. No painel Properties, copie o valor do campo Link para a área de transferência. A aparência pode ser semelhante a esta: 6. Retorne ao console do AWS CodeDeploy e, na caixa Revision Location, cole o valor do campo Link. 17. Se for exibida uma mensagem na lista File type especificando que o tipo de arquivo não pôde ser detectado, escolha.zip na lista de tipos de arquivos. 18. (Opcional) Digite um comentário na caixa Deployment description. 19. Na lista suspensa Deployment configuration, escolha CodeDeployDefault.OneAtATime. 20. Escolha Deploy. Informações sobre sua implantação recém-criada aparecerão na página Deployments. Para atualizar o status atual da implantação, escolha o botão Refresh ao lado da tabela. Monitorar sua implantação e solucionar problemas relacionados Tópicos Para monitorar e solucionar problemas de implantação (CLI) (p. 78) Para monitorar e solucionar problemas de implantação (console) (p. 79) Para monitorar e solucionar problemas de implantação (CLI) 1. Obtenha o ID da implantação chamando o comando list-deployments para o aplicativo HelloWorld_App e o grupo de implantação HelloWorld_DepGroup: aws deploy list-deployments --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --query "deployments" --output text 2. Chame o comando get-deployment com o ID da implantação: aws deploy get-deployment --deployment-id deploymentid --query "deploymentinfo.status" --output text 3. O comando retornará o status geral da implantação. Se for bem-sucedido, o valor será Succeeded. Se o status geral for Failed, você poderá chamar comandos como list-deployment-instances e getdeployment-instance para solucionar problemas. Para mais opções de solução de problemas, consulte Analisando arquivos de log para investigar falhas de implantação em instâncias (p. 328). 78

87 Etapa 5: atualizar e reimplantar seu aplicativo Para monitorar e solucionar problemas de implantação (console) Na página Deployments do console do AWS CodeDeploy, você pode monitorar o status da sua implantação na coluna Status. Para atualizar o status atual da implantação, escolha o botão Refresh ao lado da tabela. Para obter mais informações sobre a sua implantação, especialmente se o valor da coluna Status tiver outro valor diferente de Succeeded: 1. Na tabela Deployments, escolha a seta ao lado do ID da implantação. Depois que uma implantação falhar, uma mensagem descrevendo o motivo da falha será exibida em Details. 2. Em Instances, escolha View all instances. Mais informações sobre a implantação serão exibidas. Depois que uma implantação falhar, talvez seja possível determinar em quais instâncias do Amazon EC2 e em qual etapa ela falhou. Se Instances não aparecer, escolha o botão Refresh acima da tabela. Depois que a coluna Status mudar de In progress para Created, Instances será exibido. 3. Se quiser realizar outros procedimentos de solução de problemas, use uma técnica como Exibir Detalhes da Instância com o AWS CodeDeploy (p. 183). Você também pode analisar os arquivos de log de implantação em uma instância do Amazon EC2. Para obter mais informações, consulte Analisando arquivos de log para investigar falhas de implantação em instâncias (p. 328). Verificar sua implantação Depois que a sua implantação for bem-sucedida, verifique se a sua instalação está funcionando. Use o endereço DNS público da instância do Amazon EC2 para visualizar a página da Web em um navegador da Web. (Para obter o valor do DNS público, no console do Amazon EC2, escolha a instância do Amazon EC2, escolha a instância & EC2; e, na guia Description, procure o valor em Public DNS.) Por exemplo, se o endereço DNS público da sua instância do Amazon EC2 for ec compute-1.amazonaws.com, você usará a seguinte URL: Se o procedimento for bem-sucedido, você verá uma página da Web "Hello, World!". Etapa 5: atualizar e reimplantar o aplicativo "Hello, World!" Aplicativo Agora que você implantou com êxito sua revisão de aplicativo, na máquina de desenvolvimento, faça uma atualização no código da página da Web e use o AWS CodeDeploy para reimplantar o site. Após a redistribuição, você poderá ver as alterações na instância do Amazon EC2. Tópicos Modificar a página da Web (p. 80) Reimplantar o site (p. 80) 79

88 Etapa 5: atualizar e reimplantar seu aplicativo Modificar a página da Web 1. Vá para a subpasta c:\temp\helloworldapp e use um editor de texto para modificar o arquivo index.html: cd c:\temp\helloworldapp notepad index.html 2. Revise o conteúdo do arquivo index.html para alterar a cor de fundo e uma parte do texto na página da Web e, em seguida, salve o arquivo: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " html4/loose.dtd"> <html> <head> <title>hello Again, World!</title> <style> body { color: #ffffff; background-color: #66cc00; font-family: Arial, sans-serif; font-size:14px; } </style> </head> <body> <div align="center"><h1>hello Again, World!</h1></div> <div align="center"><h2>you have successfully deployed a revision of an application using AWS CodeDeploy</h2></div> <div align="center"> <p>what to do next? Take a look through the <a href=" codedeploy">aws CodeDeploy Documentation</a>.</p> </div> </body> </html> Reimplantar o site Agora que você modificou o código, use o Amazon S3 e o AWS CodeDeploy para reimplantar a página da Web. Agrupe e carregue as alterações no Amazon S3, conforme descrito em Agrupar os arquivos do aplicativo em um único arquivamento e enviar o arquivamento (p. 75). (Ao seguir essas instruções, você não precisa criar um novo aplicativo.) Especifique a mesma chave de antes para a revisão (HelloWorld_App.zip). Carregue-a no mesmo bucket do Amazon S3 criado anteriormente (por exemplo, codedeploydemobucket). Use a AWS CLI ou o console do AWS CodeDeploy para reimplantar o site. Tópicos Para redistribuir o site (CLI) (p. 80) Para reimplantar o site (console) (p. 81) Para redistribuir o site (CLI) Chame o comando create-deployment para criar uma implantação com base na revisão carregada, novamente usando o aplicativo HelloWorld_App, a configuração de implantação 80

89 Etapa 5: atualizar e reimplantar seu aplicativo CodeDeployDefault.OneAtATime, o grupo de implantação HelloWorld_DepGroup e a revisão HelloWorld_App.zip no bucket codedeploydemobucket: aws deploy create-deployment --application-name HelloWorld_App --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name HelloWorld_DepGroup --s3-location bucket=codedeploydemobucket,bundletype=zip,key=helloworld_app.zip Você pode verificar o status da nova implantação conforme descrito em Monitorar sua implantação e solucionar problemas relacionados (p. 78). Quando o AWS CodeDeploy tiver redistribuído o site, reveja-o no seu navegador da Web para verificar se a cor de fundo e o texto na página da Web foram alterados. (Talvez seja necessário atualizar o navegador.) Se a cor de fundo e o texto tiverem sido alterados, parabéns! Você modificou e reimplantou seu site! Para reimplantar o site (console) 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, escolha Deployments. 3. Escolha Create deployment. 4. Na página Create deployment: 1. Na lista Application, escolha HelloWorld_App. 2. Na lista Deployment group, escolha HelloWorld_DepGroup. 3. Na área Repository type, escolha My application is stored in Amazon S3 e depois copie o link do Amazon S3 da sua revisão na caixa Revision location. Para encontrar o valor do link: 1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon S3 em console.aws.amazon.com/s3/. Navegue até codedeploydemobucket e depois abra-o e escolha sua revisão, HelloWorld_App.zip, no console do Amazon S3. 2. Se o painel Properties não estiver visível no console do Amazon S3, escolha o botão Properties. 3. No painel Properties, copie o valor do campo Link na caixa Revision location do console do AWS CodeDeploy. 4. Na lista File type, se uma mensagem aparecer indicando que o tipo de arquivo não pôde ser detectado, escolha.zip. 5. Deixe a caixa Deployment description em branco. 6. Na lista Deployment configuration, escolha CodeDeployDefault.OneAtATime e depois escolha Deploy. Escolha o botão Refresh acima da tabela para obter o status sobre a implantação. Você pode verificar o status da implantação conforme descrito em Monitorar sua implantação e solucionar problemas relacionados (p. 78). Quando o AWS CodeDeploy tiver redistribuído o site, reveja-o no seu navegador da Web para verificar se a cor de fundo e o texto na página da Web foram alterados. (Talvez seja necessário 81

90 Etapa 6: Limpeza atualizar o navegador.) Se a cor de fundo e o texto tiverem sido alterados, parabéns! Você modificou e reimplantou seu site! Etapa 6: limpar seu aplicativo "Hello, World!" e os recursos relacionados Agora, você fez uma atualização bem-sucedida no código de "Hello, World!" e reimplantou o site. Para evitar cobranças contínuas por recursos que você criou para concluir este tutorial, convém excluir qualquer pilha do AWS CloudFormation (ou encerrar qualquer instância do Amazon EC2, caso você a tenha criado manualmente fora do AWS CloudFormation). Você também deve excluir qualquer bucket do Amazon S3 criado exclusivamente para esse tutorial, bem como o aplicativo HelloWorld_App no AWS CodeDeploy. É possível usar a AWS CLI, os consoles do AWS CloudFormation, Amazon S3, Amazon EC2 e AWS CodeDeploy ou as APIs da AWS para limpar recursos. Tópicos Para usar recursos de limpeza (CLI) (p. 82) Para limpar recursos (console) (p. 82) E o próximo? (p. 83) Para usar recursos de limpeza (CLI) 1. Se tiver usado a pilha do AWS CloudFormation para esse tutorial, exclua a pilha chamando o comando delete-stack para a pilha CodeDeployDemoStack. Isso encerrará todas as instâncias do Amazon EC2 acompanhantes e excluirá todas as funções do IAM acompanhantes originalmente criadas pela pilha. aws cloudformation delete-stack --stack-name CodeDeployDemoStack 2. Para excluir o bucket do Amazon S3, chame o comando rm com a opção --recursive no bucket denominado codedeploydemobucket. Isso excluirá o bucket e todos os seus objetos. aws s3 rm s3://codedeploydemobucket --recursive 3. Para excluir o aplicativo HelloWorld_App do AWS CodeDeploy, chame o comando delete-application. Isso excluirá todos os registros do grupo de implantação associados e os registros de implantação do aplicativo. aws deploy delete-application --application-name HelloWorld_App 4. Se não tiver usado a pilha do AWS CloudFormation para este tutorial, chame o comando terminateinstances para encerrar as instâncias do Amazon EC2 criadas manualmente. Forneça o ID da instância do Amazon EC2 a ser encerrada. aws ec2 terminate-instances --instance-ids instanceid Para limpar recursos (console) Se você tiver usado nosso template do AWS CloudFormation para este tutorial, exclua a pilha do AWS CloudFormation associada. 82

91 Etapa 6: Limpeza 1. Faça login no Console de gerenciamento da AWS e abra o console da AWS CloudFormation em 2. Na caixa de pesquisa, digite o nome da pilha do AWS CloudFormation (por exemplo, CodeDeployDemoStack). 3. Marque a caixa ao lado do nome da pilha. 4. No menu Ações, escolha Excluir pilha. Isso excluirá a pilha, encerrará todas as instâncias do Amazon EC2 acompanhantes e excluirá todas as funções do IAM acompanhantes. Para encerrar as instâncias do Amazon EC2 que você criou fora de uma pilha do AWS CloudFormation: 1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon EC2 em console.aws.amazon.com/ec2/. 2. Na área Instâncias, escolha Instâncias. 3. Na caixa de pesquisa, digite o nome da instância do Amazon EC2 que você deseja encerrar e pressione Enter. 4. Escolha a instância do Amazon EC2. 5. Escolha Ações, escolha Estado da instância e escolha Encerrar. Quando solicitado, escolha Sim, encerrar. Repita essas etapas para qualquer instância do Amazon EC2 adicional. Para excluir o bucket do Amazon S3: 1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon S3 em console.aws.amazon.com/s3/. 2. Na lista de buckets, navegue e escolha o nome do bucket do Amazon S3 (por exemplo, codedeploydemobucket). 3. Antes de poder excluir um bucket, você deve excluir seu conteúdo. Selecione todos os arquivos no bucket, como HelloWorld_App.zip. No menu Ações, escolha Excluir. Quando solicitado a confirmar a exclusão, escolha OK. 4. Depois que o bucket estiver vazio, você poderá excluí-lo. Na lista de buckets, escolha a linha do bucket (mas não o nome do bucket). Escolha Excluir bucket e quando solicitado a confirmar, escolha OK. Para excluir o aplicativo HelloWorld_App do AWS CodeDeploy: 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, selecione Aplicativos. 3. Na página Detalhes do aplicativo, em Grupos de implantação, escolha o botão ao lado do grupo de implantação. No menu Ações, escolha Excluir. Quando solicitado, digite o nome do grupo de implantação para confirmar que você deseja excluí-lo e, em seguida, escolha Excluir. 4. Na parte inferior da página Application details, escolha Delete application. 5. Quando solicitado, digite o nome do aplicativo para confirmar que você deseja excluí-lo e, em seguida, escolha Excluir. E o próximo? Se você chegou aqui, concluiu com sucesso uma implantação com o AWS CodeDeploy. Parabéns! 83

92 Tutorial: implantar um aplicativo em uma instância local Tutorial: implantar um aplicativo em uma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux) Este tutorial ajuda você a ganhar experiência com o AWS CodeDeploy, orientando-o pelo processo de implantação de uma revisão de aplicativo de amostra em uma única instância local (ou seja, um dispositivo físico que não é uma instância do Amazon EC2) que executa o Windows Server, Ubuntu Server ou o Red Hat Enterprise Linux (RHEL). Para obter informações sobre instâncias locais e como elas funcionam com o AWS CodeDeploy, consulte Trabalhando com instâncias locais para o AWS CodeDeploy (p. 156). Não é o que você está procurando? Para praticar a implantação em uma instância do Amazon EC2 executando o Amazon Linux ou RHEL, consulte Tutorial: implantar o WordPress em uma instância do Amazon EC2 (Amazon Linux ou Red Hat Enterprise Linux e Linux, macos, or Unix) (p. 51). Para praticar a implantação em uma instância do Amazon EC2 executando o Windows Server, consulte Tutorial: implantar um aplicativo "Hello, World!" com o AWS CodeDeploy (Windows Server) (p. 68). Este tutorial baseia-se nos conceitos introduzidos em Testar uma implantação no local de amostra no AWS CodeDeploy (p. 29). Caso ainda não tenha concluído o Assistente de implantação de exemplo para uma implantação no local, convém fazer isso primeiro. Tópicos Pré-requisitos (p. 84) Etapa 1: configurar a instância local (p. 84) Etapa 2: criar uma revisão de aplicativo de amostra (p. 84) Etapa 3: agrupar e carregar sua revisão de aplicativo no Amazon S3 (p. 88) Etapa 4: implantar sua revisão de aplicativo (p. 88) Etapa 5: verificar sua implantação (p. 88) Etapa 6: limpar os recursos (p. 89) Pré-requisitos Antes de iniciar este tutorial, você deve atender aos pré-requisitos em Conceitos básicos (p. 13), que incluem configurar seu usuário do IAM, instalar ou atualizar a AWS CLI e criar uma função de serviço. Não é necessário criar um perfil de instâncias do IAM conforme descrito nos pré-requisitos. Instâncias locais não usam perfis de instâncias do IAM. O dispositivo físico que você configurará como uma instância local deve estar executando um dos sistemas operacionais listados em Sistemas operacionais com suporte com o agente do AWS CodeDeploy (p. 119). Etapa 1: configurar a instância local Para poder implantar na sua instância local, você deve configurá-la. Siga as instruções em Trabalhando com instâncias locais para o AWS CodeDeploy (p. 156) e retorne para esta página. Etapa 2: criar uma revisão de aplicativo de amostra Nesta etapa, você criará uma revisão de aplicativo de amostra para implantação na sua instância local. 84

93 Etapa 2: criar uma revisão de aplicativo de amostra Como é difícil saber quais softwares e recursos já estão instalados (ou podem ser instalados de acordo com as políticas da sua organização) na sua instância local, a revisão de aplicativo de exemplo que oferecemos aqui usa simplesmente scripts em lote (para o Windows Server) ou scripts shell (para o Ubuntu Server e o RHEL) para gravar arquivos de texto em um localização na sua instância local. Um arquivo é gravado para cada um dos vários eventos de ciclo de vida de implantação do AWS CodeDeploy, incluindo Install, AfterInstall, ApplicationStart e ValidateService. Durante o evento de ciclo de vida de implantação BeforeInstall, um script será executado para remover os arquivos antigos gravados durante implementações anteriores desta amostra e criar um localização em sua instância local onde os novos arquivos serão gravados. A implantação dessa revisão de aplicativo de amostra poderá falhar se qualquer uma das seguintes condições for verdadeira: A conta de usuário que inicia o agente do AWS CodeDeploy na instância local não tem permissão para executar scripts. A conta de usuário não tem permissão para criar ou excluir pastas nas localizações listadas nos scripts. A conta de usuário não tem permissão para criar arquivos de texto nas localizações listadas nos scripts. Se você tiver configurado uma instância do Windows Server e quiser implantar uma amostra diferente, convém usar aquela em Etapa 2: configurar seu conteúdo de origem para implantar na instância do Amazon EC2 do Windows Server (p. 70) no tutorial Tutorial: implantar um aplicativo "Hello, World!" com o AWS CodeDeploy (Windows Server) (p. 68). Se você tiver configurado uma instância do RHEL e quiser implantar uma amostra diferente, convém usar aquela em Etapa 2: configurar seu conteúdo de origem para implantar na instância do Amazon EC2 do Amazon Linux ou Red Hat Enterprise Linux (p. 53) no tutorial Tutorial: implantar o WordPress em uma instância do Amazon EC2 (Amazon Linux ou Red Hat Enterprise Linux e Linux, macos, or Unix) (p. 51). Atualmente, não existe uma amostra alternativa para o Ubuntu Server. 1. Na sua máquina de desenvolvimento, crie um subdiretório (subpasta) chamado CodeDeployDemo- OnPrem que armazenará os arquivos da revisão de aplicativo de amostra e, em seguida, mude para essa subpasta. Para este exemplo, partimos do princípio de que você usará c:\temp como a pasta raiz para o Windows Server ou /tmp como a pasta raiz para o Ubuntu Server e o RHEL. Se usar uma pasta diferente, certifique-se de usá-la no lugar das pastas acima neste tutorial: Para Windows: mkdir c:\temp\codedeploydemo-onprem cd c:\temp\codedeploydemo-onprem Para Linux, macos, or Unix: mkdir /tmp/codedeploydemo-onprem cd /tmp/codedeploydemo-onprem 2. Na raiz da subpasta CodeDeployDemo-OnPrem, use um editor de texto para criar os dois seguintes arquivos appspec.yml e install.txt: appspec.yml para Windows Server: version:

94 Etapa 2: criar uma revisão de aplicativo de amostra os: windows files: - source:.\install.txt destination: c:\temp\codedeployexample hooks: BeforeInstall: - location:.\scripts\before-install.bat timeout: 900 AfterInstall: - location:.\scripts\after-install.bat timeout: 900 ApplicationStart: - location:.\scripts\application-start.bat timeout: 900 ValidateService: - location:.\scripts\validate-service.bat timeout: 900 appspec.yml para o Ubuntu Server e o RHEL: version: 0.0 os: linux files: - source:./install.txt destination: /tmp/codedeployexample hooks: BeforeInstall: - location:./scripts/before-install.sh timeout: 900 AfterInstall: - location:./scripts/after-install.sh timeout: 900 ApplicationStart: - location:./scripts/application-start.sh timeout: 900 ValidateService: - location:./scripts/validate-service.sh timeout: 900 Para obter mais informações sobre arquivos AppSpec, consulte Adicionar um AppSpec File (p. 216) e Referência ao AppSpec File do AWS CodeDeploy (p. 283). install.txt: The Install deployment lifecycle event successfully completed. 3. Na raiz da subpasta CodeDeployDemo-OnPrem, crie uma subpasta scripts e, em seguida, mude para ela: Para Windows: mkdir c:\temp\codedeploydemo-onprem\scripts cd c:\temp\codedeploydemo-onprem\scripts Para Linux, macos, or Unix: mkdir -p /tmp/codedeploydemo-onprem/scripts cd /tmp/codedeploydemo-onprem/scripts 86

95 Etapa 2: criar uma revisão de aplicativo de amostra 4. Na raiz da subpasta scripts, use um editor de texto para criar os quatro seguintes arquivos beforeinstall.bat, after-install.bat, application-start.bat e validate-service.bat para Windows Server, ou before-install.sh, after-install.sh, application-start.sh e validate-service.sh para Ubuntu Server e RHEL: Para o Windows Server: before-install.bat: set FOLDER=%HOMEDRIVE%\temp\CodeDeployExample if exist %FOLDER% ( rd /s /q "%FOLDER%" ) mkdir %FOLDER% after-install.bat: cd %HOMEDRIVE%\temp\CodeDeployExample echo The AfterInstall deployment lifecycle event successfully completed. > afterinstall.txt application-start.bat: cd %HOMEDRIVE%\temp\CodeDeployExample echo The ApplicationStart deployment lifecycle event successfully completed. > application-start.txt validate-service.bat: cd %HOMEDRIVE%\temp\CodeDeployExample echo The ValidateService deployment lifecycle event successfully completed. > validateservice.txt Para o Ubuntu Server e o RHEL: before-install.sh: #!/bin/bash export FOLDER=/tmp/CodeDeployExample if [ -d $FOLDER ] then rm -rf $FOLDER fi mkdir -p $FOLDER after-install.sh: #!/bin/bash cd /tmp/codedeployexample 87

96 Etapa 3: agrupar e carregar sua revisão de aplicativo no Amazon S3 echo "The AfterInstall deployment lifecycle event successfully completed." > afterinstall.txt application-start.sh: #!/bin/bash cd /tmp/codedeployexample echo "The ApplicationStart deployment lifecycle event successfully completed." > application-start.txt validate-service.sh: #!/bin/bash cd /tmp/codedeployexample echo "The ValidateService deployment lifecycle event successfully completed." > validate-service.txt unset FOLDER 5. Somente para o Ubuntu Server e o RHEL, certifique-se de que os quatro scripts de shell tenham permissões de execução: chmod +x./scripts/* Etapa 3: agrupar e carregar sua revisão de aplicativo no Amazon S3 Para poder implantar sua revisão de aplicativo, você precisará agrupar os arquivos e depois carregar o pacote de arquivos em um bucket do Amazon S3. Siga as instruções em Criar um aplicativo (p. 194) e Enviar uma revisão do AWS CodeDeploy para o Amazon S3 (p. 220). (Embora você possa dar qualquer nome ao aplicativo e ao grupo de implantação, recomendamos usar CodeDeploy-OnPrem-App para o nome do aplicativo e CodeDeploy-OnPrem-DG para o nome do grupo de implantação.) Depois de concluir essas instruções, retorna para esta página. Como alternativa, você pode carregar o pacote de arquivos em um repositório do GitHub e implantá-lo a partir de lá. Para obter mais informações, consulte Integrando o AWS CodeDeploy com o GitHub (p. 47). Etapa 4: implantar sua revisão de aplicativo Depois de carregar sua revisão de aplicativo em um bucket do Amazon S3, tente implantá-la na sua instância local. Siga as instruções em Criar uma implantação com o AWS CodeDeploy (p. 226) e retorne para esta página. Etapa 5: verificar sua implantação Para verificar se a implantação foi bem-sucedida, siga as instruções em Visualizar detalhes de implantações com o AWS CodeDeploy (p. 233) e retorne para esta página. Se a implantação foi bem-sucedida, você encontrará quatro arquivos de texto na pasta c:\temp \CodeDeployExample (para Windows Server) ou /tmp/codedeployexample (para Ubuntu Server e RHEL). 88

97 Etapa 6: limpar os recursos Se a implantação tiver falhado, siga as etapas de solução de problemas em Exibir Detalhes da Instância com o AWS CodeDeploy (p. 183) e Solução de problemas com a instância (p. 327). Faça as correções necessárias, reagrupe e carregue sua revisão de aplicativo. Em seguida, tente a implantação novamente. Etapa 6: limpar os recursos Para evitar cobranças contínuas pelos recursos criados para este tutorial, exclua o bucket do Amazon S3 caso ele não seja mais utilizado. Você também pode limpar recursos associados, como registros de aplicativo e grupo de implantação no AWS CodeDeploy e na instância local. É possível usar a AWS CLI ou uma combinação dos consoles do AWS CodeDeploy e do Amazon S3 junto com a AWS CLI para limpar recursos. Limpar recursos (CLI) Para excluir o bucket do Amazon S3 Chame o comando rm junto com a opção --recursive para o bucket (por exemplo, codedeploydemobucket). O bucket e todos os objetos dentro dele serão excluídos. aws s3 rm s3://your-bucket-name --recursive Para excluir os registros de aplicativo e grupo de implantação no AWS CodeDeploy Chame o comando delete-application para o aplicativo (por exemplo, CodeDeploy-OnPrem-App). Os registros da implantação e do grupo de implantação serão excluídos. aws deploy delete-application --application-name your-application-name Para cancelar o registro da instância local e excluir o usuário do IAM Chame o comando deregister para a instância local e a região: aws deploy deregister --instance-name your-instance-name --delete-iam-user -- region your-region Se não quiser excluir o usuário do IAM associado a essa instância local, use a opção --nodelete-iam-user como alternativa. Para desinstalar o agente do AWS CodeDeploy e remover o arquivo de configuração da instância local Na instância local, chame o comando uninstall: aws deploy uninstall Você concluiu todas as etapas para limpar os recursos usados para esse tutorial. 89

98 Tutorial: implantar em um grupo de Auto Scaling Limpar recursos (console) Para excluir o bucket do Amazon S3 1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon S3 em console.aws.amazon.com/s3/. 2. Escolha o ícone ao lado do bucket que deseja excluir (por exemplo, codedeploydemobucket), mas não escolha o bucket propriamente dito. 3. Escolha Ações e, em seguida, escolha Excluir. 4. Quando solicitado a excluir o bucket, escolha OK. Para excluir os registros de aplicativo e grupo de implantação no AWS CodeDeploy 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. Se a lista de aplicativos não aparecer, no menu do AWS CodeDeploy, escolha Aplicativos. 3. Escolha o nome do aplicativo que você deseja excluir (por exemplo, CodeDeploy-OnPrem-App). 4. Na parte inferior da página Application details, escolha Delete application. 5. Quando solicitado, digite o nome do aplicativo para confirmar que você deseja excluí-lo e, em seguida, escolha Excluir. Não é possível usar o console do AWS CodeDeploy para cancelar o registro da uma instância local ou desinstalar o agente do AWS CodeDeploy. Siga as instruções em Para cancelar o registro da instância local e excluir o usuário do IAM (p. 89). Tutorial: use AWS CodeDeploy para implantar um aplicativo em um grupo de Auto Scaling Neste tutorial, você usará o AWS CodeDeploy para implantar uma revisão de aplicativo em um grupo de Auto Scaling. Para obter informações sobre a integração da Auto Scaling com o AWS CodeDeploy, consulte Auto Scaling (p. 38). Tópicos Pré-requisitos (p. 91) Etapa 1: criar e configurar o grupo de Auto Scaling (p. 91) Etapa 2: implantar o aplicativo no grupo de Auto Scaling (p. 96) Etapa 3: verificar seus resultados (p. 101) Etapa 4: aumentar o número de instâncias do Amazon EC2 no grupo de Auto Scaling (p. 103) Etapa 5: verificar novamente seus resultados (p. 104) Etapa 6: Limpeza (p. 105) 90

99 Pré-requisitos Pré-requisitos Para este tutorial, partimos do princípio de que você já tenha concluído todas as etapas em Conceitos básicos (p. 13), incluindo a configuração da AWS CLI e a criação de um perfil de instâncias do IAM (CodeDeployDemo-EC2-Instance-Profile) e de uma função de serviço (CodeDeployDemo). Uma função de serviço é um tipo especial de função do IAM que dá a um serviço permissão para agir em seu nome. Se você deseja implantar uma revisão de aplicativo em um grupo de Auto Scaling de instâncias do Amazon EC2 do Ubuntu Server, pode criar e usar a revisão de amostra em Etapa 2: criar uma revisão de aplicativo de amostra (p. 84) no tutorial Tutorial: implantar um aplicativo em uma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux) (p. 84). Caso contrário, será preciso criar e usar uma revisão compatível com o AWS CodeDeploy e uma instância do Ubuntu Server. Também fornecemos revisões de amostra para instâncias do Amazon EC2 do Amazon Linux, Windows Server e Red Hat Enterprise Linux (RHEL). Para criar uma revisão por conta própria, consulte Trabalhando com revisões de aplicativos para o AWS CodeDeploy (p. 215). Etapa 1: criar e configurar o grupo de Auto Scaling Nesta etapa, você criará um grupo de Auto Scaling que contém uma única instância do Amazon EC2 do Amazon Linux, RHEL ou Windows Server. Em uma etapa posterior, você instruirá a Auto Scaling a adicionar mais uma instância do Amazon EC2, e o AWS CodeDeploy implantará sua revisão nessa instância. Tópicos Para criar e configurar o grupo de Auto Scaling (CLI) (p. 91) Para criar e configurar o grupo de Auto Scaling (console) (p. 94) Para criar e configurar o grupo de Auto Scaling (CLI) 1. Chame o comando create-launch-configuration para criar uma configuração de inicialização de Auto Scaling. Antes de chamar esse comando, será preciso o ID de uma AMI que funcione para este tutorial, representado pelo espaço reservado image-id. Também será preciso o nome de um par de chaves de instância do Amazon EC2 para permitir o acesso à instância do Amazon EC2 representada pelo espaço reservado key-name. Finalmente, serão precisas instruções para instalar a versão mais recente do agente do AWS CodeDeploy. AWS CodeDeploy: para obter o ID de uma AMI que funcione com este tutorial: 1. Abra o console Amazon EC2. em 2. No painel de navegação, em Instâncias, escolha Instâncias e, em seguida, escolha Iniciar instância. 3. Na guia Início rápido da página Escolher uma imagem de máquina da Amazon, observe o ID do AMI ao lado de Amazon Linux AMI, Red Hat Enterprise Linux 7.1, Ubuntu Server LTS ou Microsoft Windows Server 2012 R2. Se você tiver uma versão personalizada de um AMI compatível com o AWS CodeDeploy, escolha-o aqui em vez de navegar pela guia Início rápido. Para obter informações sobre como usar uma AMI personalizada com o AWS CodeDeploy e a Auto Scaling, consulte Usando uma AMI personalizada com o AWS CodeDeploy e o Auto Scaling (p. 40). 91

100 Etapa 1: criar e configurar o grupo de Auto Scaling Para o par de chaves da instância do Amazon EC2, use o nome do par de chaves da sua instância do Amazon EC2. Para instalar a versão mais recente do agente do AWS CodeDeploy, na máquina de desenvolvimento, crie um arquivo denominado instance-setup.sh (para uma instância do Amazon EC2 do Amazon Linux, Ubuntu Server ou RHEL) ou instance-setup.txt (para uma instância do Amazon EC2 do Windows Server) com o seguinte conteúdo. Se você tiver uma versão personalizada de uma AMI compatível com o AWS CodeDeploy, não é preciso criar o arquivo instance-setup.sh ou instance-setup.txt. Para instâncias do Amazon EC2 do Amazon Linux e RHEL: #!/bin/bash yum -y update yum install -y ruby cd /home/ec2-user curl -O chmod +x./install./install auto O nome de bucket é o nome do bucket do Amazon S3 que contém os arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Região do Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2. Para obter uma lista de nomes de buckets, consulte???. Para instâncias do Amazon EC2 do Ubuntu Server: #!/bin/bash apt-get -y update apt-get -y install ruby apt-get -y install wget cd /home/ubuntu wget chmod +x./install./install auto O nome de bucket é o nome do bucket do Amazon S3 que contém os arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Região do Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2. Para obter uma lista de nomes de buckets, consulte???. Para instâncias do Amazon EC2 do Windows Server: <powershell> New-Item -Path c:\temp -ItemType "directory" -Force powershell.exe -Command Read-S3Object -BucketName bucket-name/latest -Key codedeployagent.msi -File c:\temp\codedeploy-agent.msi Start-Process -Wait -FilePath c:\temp\codedeploy-agent.msi -WindowStyle Hidden </powershell> O nome de bucket é o nome do bucket do Amazon S3 que contém os arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Região do Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2. Para obter uma lista de nomes de buckets, consulte???. 92

101 Etapa 1: criar e configurar o grupo de Auto Scaling Chame o comando create-launch-configuration. Em máquinas Linux, macos, or Unix locais: Important Não se esqueça de incluir file:// antes do nome de arquivo. Ele é obrigatório nesse comando. aws autoscaling create-launch-configuration \ --launch-configuration-name CodeDeployDemo-AS-Configuration \ --image-id image-id \ --key-name key-name \ --iam-instance-profile CodeDeployDemo-EC2-Instance-Profile \ --instance-type t1.micro \ --user-data file://path/to/instance-setup.sh Em máquinas locais do Windows: Important Não se esqueça de incluir file:// antes do nome de arquivo. Ele é obrigatório nesse comando. aws autoscaling create-launch-configuration --launch-configuration-name CodeDeployDemo- AS-Configuration --image-id image-id --key-name key-name --iam-instance-profile CodeDeployDemo-EC2-Instance-Profile --instance-type t1.micro --user-data file://path/ to/instance-setup.txt Se você tiver uma versão personalizada de uma AMI compatível com o AWS CodeDeploy, omita a opção --user-data no comando anterior. Esses comandos criam uma configuração de inicialização de Auto Scaling denominada CodeDeployDemo-AS-Configuration, com base no ID de imagem especificado, aplicando o perfil de instâncias do IAM e o par de chaves da instância do Amazon EC2 especificados e executando o comando para instalar a versão mais recente do agente do AWS CodeDeploy. Essa configuração de inicialização se baseia no tipo de instância do Amazon EC2 t1.micro. 2. Chame o comando create-auto-scaling-group para criar um grupo de Auto Scaling. Você precisará do nome de uma das Zonas de disponibilidade em uma das regiões listadas em Região e endpoints, no AWS General Reference. Esse nome é representado pelo espaço reservado availability-zone. Para ver uma lista de Zonas de disponibilidade em uma região, chame: aws ec2 describe-availability-zones --region region-name Por exemplo, para ver uma lista de Zonas de disponibilidade na região Oeste dos EUA (Oregon), chame: aws ec2 describe-availability-zones --region us-west-2 Para obter uma lista dos identificadores de nome da região, consulte???. Em máquinas Linux, macos, or Unix locais: 93

102 Etapa 1: criar e configurar o grupo de Auto Scaling aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name CodeDeployDemo-AS-Group \ --launch-configuration-name CodeDeployDemo-AS-Configuration \ --min-size 1 \ --max-size 1 \ --desired-capacity 1 \ --availability-zones availability-zone Em máquinas locais do Windows: aws autoscaling create-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS- Group --launch-configuration-name CodeDeployDemo-AS-Configuration --min-size 1 --maxsize 1 --desired-capacity 1 --availability-zones availability-zone Esses comandos criam um grupo de Auto Scaling chamado CodeDeployDemo-AS-Group com base na configuração de inicialização de Auto Scaling CodeDeployDemo-AS-Configuration. Esse grupo de Auto Scaling tem apenas uma instância do Amazon EC2, e é criado na Zona de disponibilidade especificada. 3. Chame o comando describe-auto-scaling-groups para CodeDeployDemo-AS-Group: aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo- AS-Group --query "AutoScalingGroups[0].Instances[*].[HealthStatus, LifecycleState]" -- output text Não prossiga até que os valores retornados mostrem Healthy e InService. Para criar e configurar o grupo de Auto Scaling (console) 1. Abra o console do Amazon EC2 em 2. Na barra de navegação global, certifique-se de que uma das regiões listadas em Região e endpoints, no documento AWS General Reference, esteja selecionada. Os recursos de Auto Scaling estão vinculados à região que você especifica, e o AWS CodeDeploy tem suporte apenas em regiões selecionadas. 3. Na barra de navegação, em Auto Scaling, selecione Configurações de execução. 4. Escolha Criar configuração de execução. 5. Na guia Início rápido da página Escolher AMI, ao lado de Amazon Linux AMI, Red Hat Enterprise Linux 7.2, Ubuntu Server LTS ou Microsoft Windows Server 2012 R2 Base, escolha Selecionar. Se você tiver uma versão personalizada de uma AMI na qual o agente do AWS CodeDeploy já esteja instalado, escolha-a aqui. Para obter informações sobre como usar uma AMI personalizada com o AWS CodeDeploy e a Auto Scaling, consulte Usando uma AMI personalizada com o AWS CodeDeploy e o Auto Scaling (p. 40). 6. Na página Escolher tipo de instância, deixe a opção padrão e escolha Próximo: configurar os detalhes 7. Na página Configurar detalhes, na caixa Nome, digite CodeDeployDemo-AS-Configuration. Na caixa Função do IAM, escolha o perfil de instâncias do IAM que você criou anteriormente (CodeDeployDemo- EC2-Instance-Profile). Expanda Detalhes avançados e, em Dados do usuário, digite o seguinte. 94

103 Etapa 1: criar e configurar o grupo de Auto Scaling Se você estiver usando uma versão personalizada de uma AMI na qual o agente do AWS CodeDeploy já esteja instalado, ignore essa etapa. Para instâncias do Amazon EC2 do Amazon Linux e RHEL: #!/bin/bash yum -y update yum install -y ruby cd /home/ec2-user curl -O chmod +x./install./install auto O nome de bucket é o nome do bucket do Amazon S3 que contém os arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Região do Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2. Para obter uma lista de nomes de buckets, consulte???. Para instâncias do Amazon EC2 do Ubuntu Server: #!/bin/bash apt-get -y update apt-get -y install ruby apt-get -y install wget cd /home/ubuntu wget chmod +x./install./install auto O nome de bucket é o nome do bucket do Amazon S3 que contém os arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Região do Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2. Para obter uma lista de nomes de buckets, consulte???. Para instâncias do Amazon EC2 do Windows Server: <powershell> New-Item -Path c:\temp -ItemType "directory" -Force powershell.exe -Command Read-S3Object -BucketName bucket-name/latest -Key codedeployagent.msi -File c:\temp\codedeploy-agent.msi Start-Process -Wait -FilePath c:\temp\codedeploy-agent.msi -WindowStyle Hidden </powershell> O nome de bucket é o nome do bucket do Amazon S3 que contém os arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Região do Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2. Para obter uma lista de nomes de buckets, consulte???. Deixe o restante dos padrões escolha Ignorar revisão. 8. Na página Revisão, selecione Criar configuração de execução. Em um ambiente de produção, recomendamos que você restrinja o acesso a instâncias do Amazon EC2. Para obter mais informações, consulte Dicas para proteger sua instância do EC2. 95

104 Etapa 2: implantar o aplicativo no grupo de Auto Scaling 9. Na caixa de diálogo Selecionar um par de chaves existente ou criar um novo par de chaves, selecione Escolher um par de chaves existente. Na lista suspensa Selecione um par de chaves, escolha o par de chaves de instância do Amazon EC2 que você criou ou usou em etapas anteriores. Marque Eu reconheço que possuo acesso ao arquivo de chave privada selecionado (key-file-name.pem) e que, sem esse arquivo, não será possível fazer o login na instância, e então escolha Criar configuração de execução. 10. Escolha Criar um grupo do Auto Scaling usando essa configuração de execução. 11. Na página Configurar detalhes do grupo do Auto Scaling, na caixa Nome do grupo, digite CodeDeployDemo-AS-Group. Em Tamanho do grupo, use o padrão. Na caixa Zona(s) de disponibilidade, escolha uma zona de disponibilidade em uma das regiões listadas em Região e endpoints, no documento AWS General Reference. Deixe o resto dos padrões e escolha Próximo: configurar políticas de escalabilidade. Se Iniciar no EC2-Classic não aparecer na lista Rede e você não conseguir selecionar uma nuvem privada virtual (VPC) padrão, escolha ou crie uma VPC e uma sub-rede. Para obter mais informações, consulte Sua VPC e suas sub-redes. 12. No painel 2. Configure a página de políticas de escalabilidade, deixe Manter este grupo em seu tamanho inicial selecionado e escolha Próximo: configurar notificações. 13. Ignore a etapa de configuração de notificações e escolha Revisão. 14. Selecione Criar grupo do Auto Scaling e, em seguida, Fechar. 15. Na barra de navegação, com a opção Grupos do Auto Scaling selecionada, escolha CodeDeployDemo- AS-Group e a guia Instâncias. Não prossiga até que o valor de InService apareça na coluna Ciclo de vida e o valor de Íntegro apareça na coluna Status de integridade. Etapa 2: implantar o aplicativo no grupo de Auto Scaling Nessa etapa, você implantará a revisão no instância do Amazon EC2 única do grupo de Auto Scaling. Tópicos Para criar a implantação (CLI) (p. 96) Para criar a implantação (console) (p. 98) Para criar a implantação (CLI) 1. Chame o comando create-application para criar um aplicativo chamado SimpleDemoApp: aws deploy create-application --application-name SimpleDemoApp 2. Você já deve ter criado uma função de serviço seguindo as instruções em Etapa 3: criar uma função de serviço (p. 15). A função de serviço dará permissão ao AWS CodeDeploy para acessar suas instâncias do Amazon EC2 a fim de expandir (ler) suas tags. Você precisará do ARN da função de serviço. Para obter o ARN da função de serviço, siga as instruções em Obter o ARN da função de serviço (CLI) (p. 19). 3. Agora que você tem um ARN de função de serviço, chame o comando create-deployment-group para criar um grupo de implantação denominadosimpledemodg, associado ao aplicativo denominado SimpleDemoApp, usando o grupo de Auto Scaling denominado CodeDeployDemo-AS-Group e a configuração de implantação denominada CodeDeployDefault.OneAtATime, com o ARN de função de serviço especificado. 96

105 Etapa 2: implantar o aplicativo no grupo de Auto Scaling O comando create-deployment-group fornece suporte para criar os gatilhos que resultam no envio de notificações do Amazon SNS aos assinantes do tópico sobre eventos especificados em implementações e instâncias. O comando também oferece suporte a opções para reverter automaticamente implantações e configurar alertas para interromper implantações quando os limites de monitoramento nos alarmes do Amazon CloudWatch são atingidos. Os comandos para essas ações não estão incluídos na amostra deste tutorial. Em máquinas Linux, macos, or Unix locais: aws deploy create-deployment-group \ --application-name SimpleDemoApp \ --auto-scaling-groups CodeDeployDemo-AS-Group \ --deployment-group-name SimpleDemoDG \ --deployment-config-name CodeDeployDefault.OneAtATime \ --service-role-arn service-role-arn Em máquinas locais do Windows: aws deploy create-deployment-group --application-name SimpleDemoApp --auto-scalinggroups CodeDeployDemo-AS-Group --deployment-group-name SimpleDemoDG --deploymentconfig-name CodeDeployDefault.OneAtATime --service-role-arn service-role-arn 4. Chame o comando create-deployment para criar uma implantação associada ao aplicativo SimpleDemoApp, a configuração de implantação CodeDeployDefault.OneAtATime, o grupo de implantação SimpleDemoDG, usando a revisão na localização especificada. Para instâncias do Amazon EC2 do Amazon Linux e RHEL, chamadas de máquinas Linux, macos, or Unix locais: aws deploy create-deployment \ --application-name SimpleDemoApp \ --deployment-config-name CodeDeployDefault.OneAtATime \ --deployment-group-name SimpleDemoDG \ --s3-location bucket=bucket-name,bundletype=zip,key=samples/latest/ SampleApp_Linux.zip O nome de bucket é o nome do bucket do Amazon S3 que contém os arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Região do Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2. Para obter uma lista de nomes de buckets, consulte???. Para instâncias do Amazon EC2 do Amazon Linux e RHEL, chamadas de máquinas Windows locais: aws deploy create-deployment --application-name SimpleDemoApp --deployment-configname CodeDeployDefault.OneAtATime --deployment-group-name SimpleDemoDG --s3-location bucket=bucket-name,bundletype=zip,key=samples/latest/sampleapp_linux.zip O nome de bucket é o nome do bucket do Amazon S3 que contém os arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Região do Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2. Para obter uma lista de nomes de buckets, consulte???. Para instâncias do Amazon EC2 do Windows Server, chamadas de máquinas Linux, macos, or Unix locais: 97

106 Etapa 2: implantar o aplicativo no grupo de Auto Scaling aws deploy create-deployment \ --application-name SimpleDemoApp \ --deployment-config-name CodeDeployDefault.OneAtATime \ --deployment-group-name SimpleDemoDG \ --s3-location bucket=bucket-name,bundletype=zip,key=samples/latest/ SampleApp_Windows.zip O nome de bucket é o nome do bucket do Amazon S3 que contém os arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Região do Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2. Para obter uma lista de nomes de buckets, consulte???. Para instâncias do Amazon EC2 do Windows Server, chamadas de máquinas Windows locais: aws deploy create-deployment --application-name SimpleDemoApp --deployment-configname CodeDeployDefault.OneAtATime --deployment-group-name SimpleDemoDG --s3-location bucket=bucket-name,bundletype=zip,key=samples/latest/sampleapp_windows.zip O nome de bucket é o nome do bucket do Amazon S3 que contém os arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Região do Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2. Para obter uma lista de nomes de buckets, consulte???. Atualmente, o AWS CodeDeploy não fornece uma revisão de amostra para implantação em instâncias do Amazon EC2 do Ubuntu Server. Para criar uma revisão por conta própria, consulte Trabalhando com revisões de aplicativos para o AWS CodeDeploy (p. 215). 5. Chame o comando get-deployment para verificar se a implantação foi bem-sucedida. Antes de chamar esse comando, você precisará do ID da implantação, que deve ter sido retornado pela chamada para o comando create-deployment. Se você precisar obter o ID de implantação novamente, chame o comando list-deployments para o aplicativo SimpleDemoApp e o grupo de implantação SimpleDemoDG: aws deploy list-deployments --application-name SimpleDemoApp --deployment-group-name SimpleDemoDG --query "deployments" --output text Agora, chame o comando get-deployment usando o ID da implantação: aws deploy get-deployment --deployment-id deployment-id --query "deploymentinfo.status" --output text Não continue até que o valor retornado seja Succeeded. Para criar a implantação (console) 1. Você já deve ter criado uma função de serviço seguindo as instruções em Etapa 3: criar uma função de serviço (p. 15). A função de serviço dará permissão ao AWS CodeDeploy para acessar suas instâncias a fim de expandir (ler) suas tags. Antes de usar o console do AWS CodeDeploy para implantar sua revisão de aplicativo, você precisará do ARN de função de serviço. Para obter o ARN da função de serviço, siga as instruções em Obter o ARN da função de serviço (console) (p. 18). 2. Agora que você tem o ARN da função de serviço, pode usar o console do AWS CodeDeploy para implantar sua revisão de aplicativo. 98

107 Etapa 2: implantar o aplicativo no grupo de Auto Scaling Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 3. Se a página Aplicativos não for exibida, selecione a opção Aplicativos no menu do AWS CodeDeploy. 4. Selecione Criar aplicativo. 5. Na caixa Nome do aplicativo, digite SimpleDemoApp. 6. Na caixa Nome do grupo de implantação, digite SimpleDemoDG. 7. Em Configuração de ambiente, na guia Grupos do Auto Scaling, digite CodeDeployDemo-AS-Group. 8. Na lista suspensa Configuração de implantação, escolha CodeDeployDefault.OneAtATime. 9. Na lista suspensa ARN da função de serviço, escolha o ARN da função de serviço. 10. Selecione Criar aplicativo. 11. Na página Detalhes do aplicativo, na área Grupos de implantação, ao lado de SimpleDemoDG, escolha a seta para ver os detalhes do grupo de implantação. 12. Selecione o botão ao lado de SimpleDemoDG. No menu Ações, escolha Implantar nova revisão. 13. Na área Tipo de repositório, selecione Meu aplicativo está armazenado no Amazon S3 e, em seguida, na caixa Localização da revisão, digite o local do aplicativo de amostra de seu sistema operacional e região. Para instâncias do Amazon EC2 do Amazon Linux e RHEL: Região Região do Leste dos EUA (Ohio) Leste dos EUA (Norte da Virgínia) Região Região do Oeste dos EUA (Norte da Califórnia) Região Oeste dos EUA (Oregon) Região do Canadá (Central) Região UE (Irlanda) Região da UE (Londres) Local do aplicativo de amostra SampleApp_Linux.zip SampleApp_Linux.zip SampleApp_Linux.zip SampleApp_Linux.zip SampleApp_Linux.zip SampleApp_Linux.zip 99

108 Etapa 2: implantar o aplicativo no grupo de Auto Scaling Região Região UE (Frankfurt) Região Ásia-Pacífico (Tóquio) Região da Ásia-Pacífico (Seul) Região Ásia-Pacífico (Cingapura) Região Ásia-Pacífico (Sydney) Região da Ásia-Pacífico (Mumbai) Região América do Sul (São Paulo) Local do aplicativo de amostra SampleApp_Linux.zip aws-codedeploy-ap-northeast-1/samples/ latest/sampleapp_linux.zip aws-codedeploy-ap-northeast-2/samples/ latest/sampleapp_linux.zip aws-codedeploy-ap-southeast-1/samples/ latest/sampleapp_linux.zip aws-codedeploy-ap-southeast-2/samples/ latest/sampleapp_linux.zip SampleApp_Linux.zip SampleApp_Linux.zip Para instâncias do Amazon EC2 do Windows Server: Região Região do Leste dos EUA (Ohio) Leste dos EUA (Norte da Virgínia) Região Região do Oeste dos EUA (Norte da Califórnia) Região Oeste dos EUA (Oregon) Região do Canadá (Central) Região UE (Irlanda) Local do aplicativo de amostra SampleApp_Windows.zip SampleApp_Windows.zip SampleApp_Windows.zip SampleApp_Windows.zip SampleApp_Windows.zip SampleApp_Windows.zip 100

109 Etapa 3: verificar seus resultados Região Região da UE (Londres) Região UE (Frankfurt) Região Ásia-Pacífico (Tóquio) Região da Ásia-Pacífico (Seul) Região Ásia-Pacífico (Cingapura) Região Ásia-Pacífico (Sydney) Região da Ásia-Pacífico (Mumbai) Região América do Sul (São Paulo) Local do aplicativo de amostra SampleApp_Windows.zip SampleApp_Windows.zip aws-codedeploy-ap-northeast-1/samples/ latest/sampleapp_windows.zip aws-codedeploy-ap-northeast-2/samples/ latest/sampleapp_windows.zip aws-codedeploy-ap-southeast-1/samples/ latest/sampleapp_windows.zip aws-codedeploy-ap-southeast-2/samples/ latest/sampleapp_windows.zip SampleApp_Windows.zip SampleApp_Windows.zip Para instâncias do Amazon EC2 do Ubuntu Server, digite o local da sua revisão de aplicativo personalizada armazenada no Amazon S Deixe a caixa Descrição da implantação em branco. 15. Com CodeDeployDefault.OneAtATime selecionado na lista suspensa Configuração da implantação, escolha Implantar. Para atualizar o status atual da implantação, atualize a página no navegador. Se Falha aparecer no lugar de Bem-sucedido, convém tentar algumas das técnicas em Monitorar sua implantação e solucionar problemas relacionados (p. 62) (usando o nome de aplicativo SimpleDemoApp e o nome do grupo de implantação SimpleDemoDG). Etapa 3: verificar seus resultados Nesta etapa, você verificará se o AWS CodeDeploy instalou a revisão SimpleDemoApp na instância do Amazon EC2 única do grupo de Auto Scaling. Tópicos Para verificar os resultados (CLI) (p. 102) Para verificar os resultados (console) (p. 102) 101

110 Etapa 3: verificar seus resultados Para verificar os resultados (CLI) Primeiro, você precisará do DNS público da instância do Amazon EC2. Use a AWS CLI para obter o DNS público da instância do Amazon EC2 no grupo de Auto Scaling, chamando o comando describe-instances. Antes de chamar esse comando, você precisará do ID da instância do Amazon EC2. Para obter o ID, chame describe-auto-scaling-groups para CodeDeployDemo-AS-Group, como você fez antes: aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS- Group --query "AutoScalingGroups[0].Instances[*].InstanceId" --output text Agora, chame o comando describe-instances: aws ec2 describe-instances --instance-id instance-id --query "Reservations[0].Instances[0].PublicDnsName" --output text O valor retornado é o DNS público da instância do Amazon EC2. Usando um navegador da Web, mostre a revisão de SimpleDemoApp implantada nessa instância do Amazon EC2 usando uma URL como a seguinte: Se você vir a página de parabenização, significa que usou com sucesso o AWS CodeDeploy para implantar uma revisão em uma única instância do Amazon EC2 em um grupo de Auto Scaling! Em seguida, você adicionará uma instância do Amazon EC2 ao grupo de Auto Scaling. Depois que a Auto Scaling adicionar a instância do Amazon EC2, o AWS CodeDeploy implantará sua revisão na nova instância. Para verificar os resultados (console) Primeiro, você precisará do DNS público da instância do Amazon EC2. Abra o console do Amazon EC2 em No painel de navegação do Amazon EC2, em Auto Scaling, escolha grupos de Auto Scaling, e escolha a entrada CodeDeployDemo-AS-Group. Na guia Instâncias, escolha o ID da instância do Amazon EC2 na lista. Na página Instâncias, na guia Descrição, anote o valor DNS público. A aparência será semelhante à seguinte: ec compute-1.amazonaws.com. Usando um navegador da Web, mostre a revisão de SimpleDemoApp implantada nessa instância do Amazon EC2 usando uma URL como a seguinte: Se você vir a página de parabenização, significa que usou com sucesso o AWS CodeDeploy para implantar uma revisão em uma única instância do Amazon EC2 em um grupo de Auto Scaling! 102

111 Etapa 4: aumentar o número de instâncias do Amazon EC2 no grupo de Auto Scaling Em seguida, você adicionará uma instância do Amazon EC2 ao grupo de Auto Scaling. Depois que a Auto Scaling adicionar a instância do Amazon EC2, o AWS CodeDeploy implantará sua revisão na nova instância do Amazon EC2. Etapa 4: aumentar o número de instâncias do Amazon EC2 no grupo de Auto Scaling Nesta etapa, você instruirá o grupo de Auto Scaling para criar uma instância do Amazon EC2 adicional. Depois que a Auto Scaling criar a instância, o AWS CodeDeploy implantará sua revisão nela. Tópicos Para escalar verticalmente o número de instâncias do Amazon EC2 no grupo de Auto Scaling (CLI) (p. 103) Para escalar verticalmente o número de instâncias do Amazon EC2 no grupo de implantação (console) (p. 103) Para escalar verticalmente o número de instâncias do Amazon EC2 no grupo de Auto Scaling (CLI) 1. Chame o comando update-auto-scaling-group para aumentar de uma para duas as instâncias do Amazon EC2 no grupo de Auto Scaling CodeDeployDemo-AS-Group. Em máquinas Linux, macos, or Unix locais: aws autoscaling update-auto-scaling-group \ --auto-scaling-group-name CodeDeployDemo-AS-Group \ --min-size 2 \ --max-size 2 \ --desired-capacity 2 Em máquinas locais do Windows: aws autoscaling update-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS- Group --min-size 2 --max-size 2 --desired-capacity 2 2. Certifique-se de que o grupo de Auto Scaling tenha agora duas instâncias do Amazon EC2. Chame o comando describe-auto-scaling-groups para CodeDeployDemo-AS-Group: aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo- AS-Group --query "AutoScalingGroups[0].Instances[*].[HealthStatus, LifecycleState]" -- output text Não prossiga até que ambos os valores retornados mostrem Healthy e InService. Para escalar verticalmente o número de instâncias do Amazon EC2 no grupo de implantação (console) 1. Na barra de navegação do Amazon EC2, em Auto Scaling, escolha Grupos do Auto Scaling e escolha CodeDeployDemo-AS-Group. 2. Escolha Ações e, em seguida, escolha Editar. 3. Na guia Detalhes, nas caixas Desejado, Mín. e Máx., digite 2 e escolha Salvar. 103

112 Etapa 5: verificar novamente seus resultados 4. Escolha a guia Instâncias. A nova instância do Amazon EC2 aparecerá na lista. (Se a instância não aparecer, talvez seja necessário escolher o botão Atualizar algumas vezes). Não prossiga até que o valor de InService apareça na coluna Ciclo de vida e o valor de Íntegro apareça na coluna Status de integridade. Etapa 5: verificar novamente seus resultados Nesta etapa, você verificará se o AWS CodeDeploy instalou a revisão SimpleDemoApp na nova instância do grupo de Auto Scaling. Tópicos Para verificar os resultados da implantação automática (CLI) (p. 104) Para verificar os resultados da implantação automática (console) (p. 105) Para verificar os resultados da implantação automática (CLI) 1. Antes de chamar o comando get-deployment, você precisará do ID da implantação automática. Para obter o ID, chame o comando list-deployments para o aplicativo SimpleDemoApp e o grupo de implantação SimpleDemoDG: aws deploy list-deployments --application-name SimpleDemoApp --deployment-group-name SimpleDemoDG --query "deployments" --output text Deve haver dois ID de implantação. Use aquele que você ainda não usou em uma chamada para o comando get-deployment: aws deploy get-deployment --deployment-id deployment-id --query "deploymentinfo. [status, creator]" --output text Além do status de implantação, você verá autoscaling na saída do comando. (autoscaling significa que o Auto Scaling criou a implantação.) Não prossiga até que o estado da implantação mostre Succeeded. 2. Antes de chamar o comando describe-instances, você precisará do ID da nova instância do Amazon EC2. Para obter essa ID, chame novamente o comando describe-auto-scaling-groups para CodeDeployDemo-AS-Group:: aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo- AS-Group --query "AutoScalingGroups[0].Instances[*].InstanceId" --output text Agora, chame o comando describe-instances: aws ec2 describe-instances --instance-id instance-id --query "Reservations[0].Instances[0].PublicDnsName" --output text Na saída do comando describe-instances, observe o DNS público da nova instância do Amazon EC2. 3. Usando um navegador da Web, mostre a revisão de SimpleDemoApp implantada nessa instância do Amazon EC2 usando uma URL como a seguinte: 104

113 Etapa 6: Limpeza Se a página de parabenização for exibida, significa que você usou o AWS CodeDeploy para implantar uma revisão em uma instância do Amazon EC2 escalonada em um grupo de Auto Scaling! Para verificar os resultados da implantação automática (console) 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, selecione Implantações. A página Implantações exibe informações sobre a implantação criada pela Auto Scaling. Normalmente, você criaria uma implantação por conta própria, mas a Auto Scaling a criou um em seu nome para implantar sua revisão na nova instância do Amazon EC2. Para atualizar o status atual da implantação, atualize a página no seu navegador. 3. Depois que Bem-sucedida for exibido para o status da implantação, verifique os resultados na instância. Em primeiro lugar, é necessário obter o DNS público da instância: 4. No painel de navegação do Amazon EC2, em Auto Scaling, escolha grupos de Auto Scaling, e escolha a entrada CodeDeployDemo-AS-Group. 5. Na guia Instâncias, escolha o ID da nova instância do Amazon EC2. 6. Na página Instâncias, na guia Descrição, anote o valor DNS público. A aparência será semelhante à seguinte: ec compute-1.amazonaws.com. Mostre a revisão de SimpleDemoApp implantada na instância usando uma URL como a seguinte: Se a página de parabenização for exibida, significa que você usou o AWS CodeDeploy para implantar uma revisão em uma instância do Amazon EC2 escalonada em um grupo de Auto Scaling! Etapa 6: Limpeza Nesta etapa, você excluirá o grupo de Auto Scaling para evitar cobranças contínuas pelos recursos usados durante este tutorial. Opcionalmente, é possível excluir os registros de configuração de Auto Scaling e de componentes da implantação do AWS CodeDeploy. Tópicos Para limpar recursos (CLI) (p. 105) Para limpar recursos (console) (p. 106) Para limpar recursos (CLI) 1. Exclua o grupo de Auto Scaling chamando o comando delete-auto-scaling-group para CodeDeployDemo-AS-Group. Isso também encerrará as instâncias do Amazon EC2. aws autoscaling delete-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS- Group --force-delete 105

114 Tutorial: implantar um aplicativo do GitHub 2. Opcionalmente, exclua a configuração de inicialização de Auto Scaling chamando o comando deletelaunch-configuration para a configuração de inicialização CodeDeployDemo-AS-Configuration: aws autoscaling delete-launch-configuration --launch-configuration-name CodeDeployDemo- AS-Configuration 3. Opcionalmente, exclua o aplicativo do AWS CodeDeploy chamando o comando delete-application para o aplicativo SimpleDemoApp. Isso também excluirá todos os registros associados de implantação, grupo de implantação e revisão. aws deploy delete-application --application-name SimpleDemoApp Para limpar recursos (console) 1. Exclua o grupo de Auto Scaling. Isso também encerrará as instâncias do Amazon EC2. Faça login no Console de gerenciamento da AWS e abra o console da Amazon EC2 em console.aws.amazon.com/ec2/. 2. No painel de navegação do Amazon EC2, em Auto Scaling, escolha grupos de Auto Scaling, e escolha a entrada CodeDeployDemo-AS-Group. 3. Escolha Ações, Excluir e, em seguida, Sim, excluir. 4. Opcionalmente, exclua a configuração de inicialização. Na barra de navegação, em Auto Scaling, escolha Configurações de execução e escolha CodeDeployDemo-AS-Configuration. 5. Escolha Ações, Excluir configuração de execução e, em seguida, Sim, excluir. 6. Opcionalmente, exclua o aplicativo do AWS CodeDeploy. Isso também excluirá todos os registros associados de implantação, grupo de implantação e revisão. Abra o console do AWS CodeDeploy em 7. No menu do AWS CodeDeploy, selecione Aplicativos. 8. Na lista de aplicativos, escolha SimpleDemoApp. 9. Na página Detalhes do aplicativo, escolha Excluir aplicativo. 10. Quando solicitado, digite o nome do aplicativo para confirmar que você deseja excluí-lo e, em seguida, escolha Excluir. Tutorial: usar o AWS CodeDeploy para implantar um aplicativo do GitHub Neste tutorial, você usará o AWS CodeDeploy para implantar uma revisão de aplicativo de amostra do GitHub em uma única instância do Amazon EC2 executando o Amazon Linux, uma única instância do Red Hat Enterprise Linux (RHEL) ou uma única instância do Windows Server. Para obter informações sobre a integração da GitHub com o AWS CodeDeploy, consulte Integrando o AWS CodeDeploy com o GitHub (p. 47). Você também pode usar o AWS CodeDeploy para implantar uma revisão de aplicativo do GitHub em uma instância do Ubuntu Server. Você pode usar a revisão de amostra descrita em Etapa 2: criar uma revisão de aplicativo de amostra (p. 84), em Tutorial: implantar um aplicativo em uma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux) (p. 84), ou pode criar uma revisão compatível com uma instância do Ubuntu Server e 106

115 Pré-requisitos o AWS CodeDeploy. Para criar sua própria revisão, consulte Planejar uma revisão para o AWS CodeDeploy (p. 215) e Adicionar um AppSpec File (p. 216). Tópicos Pré-requisitos (p. 107) Etapa 1: configurar uma conta do GitHub (p. 107) Etapa 2: criar um repositório GitHub (p. 107) Etapa 3: carregar um aplicativo de exemplo no seu repositório GitHub (p. 109) Etapa 4: provisionar uma instância (p. 112) Etapa 5: criar um aplicativo e um grupo de implantação (p. 112) Etapa 6: implantar o aplicativo na instância (p. 113) Etapa 7: monitorar e verificar a implantação (p. 116) Etapa 8: Limpeza (p. 117) Pré-requisitos Antes de começar este tutorial, faça o seguinte: Instale o Git na sua máquina local. Para instalar o Git, consulte Downloads do Git. Conclua as etapas em Conceitos básicos (p. 13), incluindo a instalação e a configuração da AWS CLI. Isso é especialmente importante se você deseja usar a AWS CLI para implantar uma revisão do GitHub na instância. Etapa 1: configurar uma conta do GitHub Você precisará de uma conta do GitHub para criar um repositório GitHub no qual a revisão será armazenada. Se você já possui uma conta do GitHub, avance para Etapa 2: criar um repositório GitHub (p. 107). 1. Acesse 2. Digite um nome de usuário, seu endereço de e uma senha. 3. Escolha Cadastre-se no GitHub e, em seguida, siga as instruções. Etapa 2: criar um repositório GitHub Você precisará de um repositório GitHub para armazenar a revisão. Se você já possui um repositório GitHub, certifique-se de substituir seu nome em CodeDeployGitHubDemo ao longo deste tutorial e depois continue em Etapa 3: carregar um aplicativo de exemplo no seu repositório GitHub (p. 109). 1. Na página inicial do GitHub, siga um destes procedimentos: Em Seus repositórios, escolha Novo repositório. Na barra de navegação, escolha Criar novo (+) e, em seguida, escolha Novo repositório. 2. Na página Create a new repository, faça o seguinte: Na caixa Nome do repositório, digite CodeDeployGitHubDemo. Selecione Public. 107

116 Etapa 2: criar um repositório GitHub Selecionar a opção Público padrão significa que qualquer pessoa pode ver esse repositório. Embora você possa selecionar a opção Privado para limitar quem pode ver e confirmar o repositório, essa opção pode resultar em cobranças adicionais do GitHub. Desmarque a caixa de seleção Inicializar este repositório com um LEIA-ME. Você criará um arquivo README.md manualmente na próxima etapa. Escolha Create repository. 3. Siga as instruções para o seu tipo de máquina local de modo a usar a linha de comando para criar o repositório. Se você habilitou a autenticação de dois fatores no GitHub, certifique-se de inserir seu token de acesso pessoal em vez da sua senha de login do GitHub caso uma senha seja solicitada. Para obter informações, consulte o tópico sobre como fornecer seu código de autenticação de dois fatores. Em máquinas Linux, macos, or Unix locais: 1. No terminal, execute os seguintes comandos, um de cada vez, em que user-name é o nome do usuário do GitHub: mkdir /tmp/codedeploygithubdemo cd /tmp/codedeploygithubdemo touch README.md git init git add README.md git commit -m "My first commit" git remote add origin git push -u origin master 2. Deixe o terminal aberto na localização /tmp/codedeploygithubdemo. Em máquinas locais do Windows: 1. Em um prompt de comando em execução como administrador, execute os seguintes comandos, um por vez: mkdir c:\temp\codedeploygithubdemo cd c:\temp\codedeploygithubdemo 108

117 Etapa 3: carregar um aplicativo de exemplo no seu repositório GitHub notepad README.md 2. No bloco de notas, salve o arquivo README.md. Feche o Bloco de notas. Execute os seguintes comandos, um de cada vez, em que user-name é o nome do usuário do GitHub: git init git add README.md git commit -m "My first commit" git remote add origin git push -u origin master 3. Deixe a solicitação de comando aberta na localização c:\temp\codedeploygithubdemo. Etapa 3: carregar um aplicativo de exemplo no seu repositório GitHub Nesta etapa, você copiará uma revisão de amostra de um bucket do Amazon S3 público para o seu depósito GitHub. (Para simplificar, as revisões de amostra fornecidas para este tutorial são páginas da Web exclusivas.) Se você usar uma das suas revisões em vez da nossa revisão de amostra, sua revisão deverá: Seguir as diretrizes em Planejar uma revisão para o AWS CodeDeploy (p. 215) e Adicionar um AppSpec File (p. 216). Trabalhar com o tipo de instância correspondente. Ser acessível no dashboard do GitHub. Se a sua revisão atender a esses requisitos, avance para Etapa 5: criar um aplicativo e um grupo de implantação (p. 112). Se você estiver implantando em uma instância do Ubuntu Server, precisará carregar no seu repositório GitHub uma revisão compatível com uma instância do Ubuntu Server e o AWS CodeDeploy. Para obter mais informações, consulte Planejar uma revisão para o AWS CodeDeploy (p. 215) e Adicionar um AppSpec File (p. 216). Tópicos Enviar uma revisão de amostra de uma máquina Linux, macos, or Unix local (p. 109) Enviar uma revisão de amostra de uma máquina Windows local (p. 111) Enviar uma revisão de amostra de uma máquina Linux, macos, or Unix local Com seu terminal ainda aberto, por exemplo, na localização /tmp/codedeploygithubdemo, execute os seguintes comandos, um de cada vez: 109

118 Etapa 3: carregar um aplicativo de exemplo no seu repositório GitHub Se você planeja implantar em uma instância do Windows Server, substitua SampleApp_Windows.zip por SampleApp_Linux.zip nos comandos. (Amazon S3 copy command) unzip SampleApp_Linux.zip rm SampleApp_Linux.zip git add. git commit -m "Added sample app" git push Em que (comando de cópia do Amazon S3) é um dos seguintes: aws s3 cp s3://aws-codedeploy-us-east-2/samples/latest/sampleapp_linux.zip. --region useast-2 para a região Leste dos EUA (Ohio) aws s3 cp s3://aws-codedeploy-us-east-1/samples/latest/sampleapp_linux.zip. --region useast-1 para a região Leste dos EUA (Norte da Virgínia) aws s3 cp s3://aws-codedeploy-us-west-1/samples/latest/sampleapp_linux.zip. --region uswest-1 para o Região do Oeste dos EUA (Norte da Califórnia) aws s3 cp s3://aws-codedeploy-us-west-2/samples/latest/sampleapp_linux.zip. --region uswest-2 para a região Oeste dos EUA (Oregon) aws s3 cp s3://aws-codedeploy-ca-central-1/samples/latest/sampleapp_linux.zip. --region ca-central-1 para o Região do Canadá (Central) aws s3 cp s3://aws-codedeploy-eu-west-1/samples/latest/sampleapp_linux.zip. --region euwest-1 para a região UE (Irlanda) aws s3 cp s3://aws-codedeploy-eu-west-2/samples/latest/sampleapp_linux.zip. --region euwest-2 para a região UE (Londres) aws s3 cp s3://aws-codedeploy-eu-central-1/samples/latest/sampleapp_linux.zip. --region eu-central-1 para o Região UE (Frankfurt) aws s3 cp s3://aws-codedeploy-ap-northeast-1/samples/latest/sampleapp_linux.zip. -- region ap-northeast-1 para a região Ásia-Pacífico (Tóquio) aws s3 cp s3://aws-codedeploy-ap-northeast-2/samples/latest/sampleapp_linux.zip. -- region ap-northeast-2 para a região Ásia-Pacífico (Seul) aws s3 cp s3://aws-codedeploy-ap-southeast-1/samples/latest/sampleapp_linux.zip. -- region ap-southeast-1 para o Região Ásia-Pacífico (Cingapura) aws s3 cp s3://aws-codedeploy-ap-southeast-2/samples/latest/sampleapp_linux.zip. -- region ap-southeast-2 para a região Ásia-Pacífico (Sydney) aws s3 cp s3://aws-codedeploy-ap-south-1/samples/latest/sampleapp_linux.zip. --region ap-south-1 para a região Ásia Pacífico (Mumbai) aws s3 cp s3://aws-codedeploy-sa-east-1/samples/latest/sampleapp_linux.zip. --region saeast-1 para o Região América do Sul (São Paulo) 110

119 Etapa 3: carregar um aplicativo de exemplo no seu repositório GitHub Enviar uma revisão de amostra de uma máquina Windows local Com sua solicitação de comando ainda aberta, por exemplo, na localização c:\temp \CodeDeployGitHubDemo, execute os seguintes comandos, um de cada vez: Se você planeja implantar em uma instância do Amazon Linux ou RHEL, substitua SampleApp_Linux.zip por SampleApp_Windows.zip nos comandos. (Amazon S3 copy command) Descompacte o conteúdo do arquivo ZIP the diretamente no diretório local (por exemplo c:\temp \CodeDeployGitHubDemo), e não em um novo subdiretório. git add. git commit -m "Added sample app" git push Em que (comando de cópia do Amazon S3) é um dos seguintes: aws s3 cp s3://aws-codedeploy-us-east-2/samples/latest/sampleapp_windows.zip. --region us-east-2 para a região Leste dos EUA (Ohio) aws s3 cp s3://aws-codedeploy-us-east-1/samples/latest/sampleapp_windows.zip. --region us-east-1 para a região Leste dos EUA (Norte da Virgínia) aws s3 cp s3://aws-codedeploy-us-west-1/samples/latest/sampleapp_windows.zip. --region us-west-1 para o Região do Oeste dos EUA (Norte da Califórnia) aws s3 cp s3://aws-codedeploy-us-west-2/samples/latest/sampleapp_windows.zip. --region us-west-2 para a região Oeste dos EUA (Oregon) aws s3 cp s3://aws-codedeploy-ca-central-1/samples/latest/sampleapp_windows.zip. -- region ca-central-1 para o Região do Canadá (Central) aws s3 cp s3://aws-codedeploy-eu-west-1/samples/latest/sampleapp_windows.zip. --region eu-west-1 para a região UE (Irlanda) aws s3 cp s3://aws-codedeploy-eu-west-2/samples/latest/sampleapp_windows.zip. --region eu-west-2 para a região UE (Londres) aws s3 cp s3://aws-codedeploy-eu-central-1/samples/latest/sampleapp_windows.zip. -- region eu-central-1 para o Região UE (Frankfurt) aws s3 cp s3://aws-codedeploy-ap-northeast-1/samples/latest/sampleapp_windows.zip. -- region ap-northeast-1 para a região Ásia-Pacífico (Tóquio) aws s3 cp s3://aws-codedeploy-ap-northeast-2/samples/latest/sampleapp_windows.zip. -- region ap-northeast-2 para a região Ásia-Pacífico (Seul) aws s3 cp s3://aws-codedeploy-ap-southeast-1/samples/latest/sampleapp_windows.zip. -- region ap-southeast-1 para o Região Ásia-Pacífico (Cingapura) aws s3 cp s3://aws-codedeploy-ap-southeast-2/samples/latest/sampleapp_windows.zip. -- region ap-southeast-2 para a região Ásia-Pacífico (Sydney) aws s3 cp s3://aws-codedeploy-ap-south-1/samples/latest/sampleapp_windows.zip. --region ap-south-1 para a região Ásia Pacífico (Mumbai) aws s3 cp s3://aws-codedeploy-sa-east-1/samples/latest/sampleapp_windows.zip. --region sa-east-1 para o Região América do Sul (São Paulo) 111

120 Etapa 4: provisionar uma instância Para enviar sua própria revisão a uma instância do Ubuntu Server, copie-a no seu repositório local e depois chame o seguinte: git add. git commit -m "Added Ubuntu app" git push Etapa 4: provisionar uma instância Nesta etapa, você criará ou configurará a instância na qual implantará o aplicativo de amostra. Você pode implantar em uma instância do Amazon EC2 ou em uma instância local que esteja executando um dos sistemas operacionais com suporte pelo AWS CodeDeploy. Para obter informações, consulte Sistemas operacionais com suporte com o agente do AWS CodeDeploy (p. 119). (Se você já tiver uma instância configurada para uso em implantações do AWS CodeDeploy, pule para a próxima etapa.) Para criar ou configurar uma instância, consulte Trabalhando com instâncias (p. 142) e, em seguida, volte para esta página. Para criar rapidamente uma nova instância para este tutorial, recomendamos o uso do console do Amazon EC2. Consulte Iniciar uma instância do Amazon EC2 (console) (p. 142). Para verificar se o agente do AWS CodeDeploy está em execução na instância, consulte Verificar se o agente do AWS CodeDeploy está em execução (p. 125). Depois de ter iniciado ou configurado a instância com sucesso e verificado se o agente do AWS CodeDeploy está em execução, vá para a próxima etapa. Etapa 5: criar um aplicativo e um grupo de implantação Nesta etapa, você usará o console do AWS CodeDeploy ou a AWS CLI para criar um aplicativo e um grupo de implantação a serem usados para implantar a revisão de amostra no seu repositório GitHub. Criar um aplicativo e um grupo de implantação (console) 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. Na página Aplicativos, escolha Criar aplicativo. Se você ainda não tiver criado nenhum aplicativo, e a página inicial do AWS CodeDeploy for exibida, escolha Comece a usar agora, conclua uma implantação usando o Assistente de implantação de exemplo e retorne a este tópico. 3. Na caixa Nome do aplicativo, digite CodeDeployGitHubDemo-App. 4. Na caixa Nome do grupo de implantação, digite CodeDeployGitHubDemo-DepGrp. 5. Em Tipo de implantação, escolha Deployment local. 112

121 Etapa 6: implantar o aplicativo na instância 6. Em Configuração do ambiente, dependendo do tipo de instância que você estiver usando, escolha a guia Instâncias do Amazon EC2 ou a guia Instâncias locais. Nas caixas Chave e Valor, digite a chave de tag da instância e o valor que foi aplicado à instância como parte de Etapa 4: provisionar uma instância (p. 112). 7. Na lista suspensa ARN da função de serviço, escolha o ARN da sua função de serviço. (Siga as instruções em Obter o ARN da função de serviço (console) (p. 18) se precisar encontrar o ARN da sua função de serviço.) 8. Para a Criar aplicativo e continue na próxima etapa. Criar um aplicativo e um grupo de implantação (CLI) 1. Chame o comando create-application para criar um aplicativo no AWS CodeDeploy denominado CodeDeployGitHubDemo-App: aws deploy create-application --application-name CodeDeployGitHubDemo-App 2. Chame o comando create-deployment-group para criar um grupo de implantação chamado CodeDeployGitHubDemo-DepGrp: Se você estiver implantando em uma instância do Amazon EC2, ec2-tag-key será a chave de tag de instância do Amazon EC2 que foi aplicada à sua instância do Amazon EC2 como parte de Etapa 4: provisionar uma instância (p. 112). Se você estiver implantando em uma instância do Amazon EC2, ec2-tag-value será o valor da tag de instância do Amazon EC2 que foi aplicado à sua instância do Amazon EC2 como parte de Etapa 4: provisionar uma instância (p. 112). Se você estiver implantando em uma instância local, on-premises-tag-key será a chave de tag de instância local que foi aplicada à sua instância local como parte de Etapa 4: provisionar uma instância (p. 112). Se você estiver implantando em uma instância local, on-premises-tag-value será o valor de tag de instância local que foi aplicado à sua instância local como parte de Etapa 4: provisionar uma instância (p. 112). service-role-arn é um ARN de função de serviço. (Siga as instruções em Obter o ARN da função de serviço (CLI) (p. 19) para localizar o ARN da função de serviço.) aws deploy create-deployment-group --application-name CodeDeployGitHubDemo-App -- ec2-tag-filters Key=ec2-tag-key,Type=KEY_AND_VALUE,Value=ec2-tag-value --on-premisestag-filters Key=on-premises-tag-key,Type=KEY_AND_VALUE,Value=on-premises-tag-value -- deployment-group-name CodeDeployGitHubDemo-DepGrp --service-role-arn service-role-arn O comando create-deployment-group fornece suporte para criar os gatilhos que resultam no envio de notificações do Amazon SNS aos assinantes do tópico sobre eventos especificados em implementações e instâncias. O comando também oferece suporte a opções para reverter automaticamente implantações e configurar alertas para interromper implantações quando os limites de monitoramento nos alarmes do Amazon CloudWatch são atingidos. Os comandos para essas ações não estão incluídos na amostra deste tutorial. Etapa 6: implantar o aplicativo na instância Nesta etapa, você usará o console do AWS CodeDeploy ou a AWS CLI para implantar a revisão de amostra do seu repositório GitHub na sua instância. 113

122 Etapa 6: implantar o aplicativo na instância Para implantar a revisão (console) 1. Na página Detalhes do aplicativo, em Grupos de implantação, escolha o botão ao lado de CodeDeployGitHubDemo-DepGrp. 2. No menu Ações, escolha Implantar nova revisão. 3. Na página Criar implantação, na área Tipo de repositório, escolha Meu aplicativo está armazenado no GitHub. 4. Em Conectar-se ao GitHub, faça um dos seguintes procedimentos: Para criar uma conexão para aplicativos AWS CodeDeploy com uma conta do GitHub diferente, saia do GitHub em uma guia separada do navegador. Em Conta do GitHub, digite um nome para identificar essa conexão e escolha Conectar-se ao GitHub. A página da Web solicita que você autorize o AWS CodeDeploy a interagir com o GitHub para o aplicativo CodeDeployGitHubDemo-App. Continue na etapa 5. Para usar uma conexão já criada, em Conta do GitHub, selecione seu nome e escolha Conectar-se ao GitHub. Continue na etapa 7. Para criar uma conexão com uma conta do GitHub diferente, saia do GitHub em uma guia separada do navegador. Escolha Conectar-se a uma conta do GitHub e escolha Conectar-se ao GitHub. Continue na etapa Siga as instruções na página Fazer login para entrar com a sua conta do GitHub. 6. Na página para Autorizar aplicativo, escolha Autorizar aplicativo. 7. Na página Criar implantação do AWS CodeDeploy, na caixa Nome do repositório, digite o nome de usuário do GitHub que você usou para fazer login, seguido por uma barra (/) e pelo nome do repositório no qual você enviou sua revisão de aplicativo (por exemplo, my-github-user-name/ CodeDeployGitHubDemo). Caso não tenha certeza do valor que deve ser digitado ou se quiser especificar um repositório diferente: 1. Em uma guia separada do navegador da Web, acesse o dashboard do GitHub. 2. Em Seus repositórios, passe o ponteiro do mouse sobre o nome do repositório de destino. Será exibida uma dica de ferramenta que mostra o nome do usuário ou da organização do GitHub, seguido por um caractere de barra (/) e depois pelo nome do repositório. Digite esse valor exibido na caixa Nome do repositório. Se o nome do repositório de destino não for exibido em Seus repositórios, use a caixa Pesquisar no GitHub para localizar o nome do repositório de destino e o usuário ou organização correspondente do GitHub. 8. Na caixa ID de confirmação, digite o ID da confirmação associada ao envio da sua revisão de aplicativo ao GitHub. Caso não tenha certeza do valor que deve ser digitado: 1. Em uma guia separada do navegador da Web, acesse o dashboard do GitHub. 2. Na caixa Seus repositórios, escolha CodeDeployGitHubDemo. 3. Na lista de confirmações, localize e copie o ID de confirmação associado ao envio da sua revisão de aplicativo para o GitHub. Em geral, esse ID tem 40 caracteres de comprimento e é formado por letras e números. (Não use a versão mais curta do ID de confirmação, que é normalmente os 10 primeiros caracteres da versão mais longa.) 4. Cole o ID de confirmação na caixa ID de confirmação. 9. Escolha Implantar e continue até a próxima etapa. 114

123 Etapa 6: implantar o aplicativo na instância Para implantar a revisão (CLI) Antes que você possa chamar qualquer comando da AWS CLI que interaja com o GitHub (como o comando create-deployment, que será chamado em seguida), é necessário dar permissão para o AWS CodeDeploy usar sua conta de usuário do GitHub para interagir com o GitHub para o aplicativo CodeDeployGitHubDemo-App. Atualmente, você deve usar o console do AWS CodeDeploy para fazer isso. 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, selecione Implantações. 3. Escolha Criar implantação. Você não criará uma nova implantação. No momento, essa é a única maneira de dar permissão ao AWS CodeDeploy para interagir com o GitHub em nome da sua conta de usuário do GitHub. 4. Na lista suspensa Aplicativos, escolha CodeDeployGitHubDemo-App. 5. Na lista suspensa Grupo de implantação, escolha CodeDeployGitHubDemo-DepGrp. 6. Na área Tipo de repositório, escolha Meu aplicativo está armazenado no GitHub. 7. Em Conectar-se ao GitHub, faça um dos seguintes procedimentos: Para criar uma conexão para aplicativos AWS CodeDeploy com uma conta do GitHub diferente, saia do GitHub em uma guia separada do navegador. Em Conta do GitHub, digite um nome para identificar essa conexão e escolha Conectar-se ao GitHub. A página da Web solicita que você autorize o AWS CodeDeploy a interagir com o GitHub para o aplicativo CodeDeployGitHubDemo-App. Continue na etapa 8. Para usar uma conexão já criada, em Conta do GitHub, selecione seu nome e escolha Conectar-se ao GitHub. Continue na etapa 10. Para criar uma conexão com uma conta do GitHub diferente, saia do GitHub em uma guia separada do navegador. Escolha Conectar-se a uma conta do GitHub e escolha Conectar-se ao GitHub. Continue na etapa Siga as instruções na página Fazer login para entrar com seu nome de usuário/ e sua senha do GitHub. 9. Na página para Autorizar aplicativo, escolha Autorizar aplicativo. 10. Na página Criar implantação do AWS CodeDeploy, escolha Cancelar. 11. Chame o comando create-deployment para implantar a revisão do seu repositório GitHub na instância, em que: repository é o nome da sua conta do GitHub, seguido por uma barra (/) e depois pelo nome do seu repositório (CodeDeployGitHubDemo), por exemplo, MyGitHubUserName/CodeDeployGitHubDemo. Caso não tenha certeza do valor que deve ser usado ou se quiser especificar um repositório diferente: 1. Em uma guia separada do navegador da Web, acesse o dashboard do GitHub. 2. Em Seus repositórios, passe o ponteiro do mouse sobre o nome do repositório de destino. Será exibida uma dica de ferramenta que mostra o nome do usuário ou da organização do GitHub, seguido por uma barra (/) e depois pelo nome do repositório. Este é o valor a ser usado. 115

124 Etapa 7: monitorar e verificar a implantação Se o nome do repositório de destino não aparecer em Seus repositórios, use a caixa Pesquisar no GitHub para localizar o nome do repositório de destino e o usuário ou organização correspondente do GitHub. commit-id é a confirmação associada à versão da revisão de aplicativo que você enviou ao seu repositório (por exemplo, f835159a...528eb76f). Caso não tenha certeza do valor que deve ser usado: 1. Em uma guia separada do navegador da Web, acesse o dashboard do GitHub. 2. Na caixa Seus repositórios, escolha CodeDeployGitHubDemo. 3. Na lista de confirmações, localize o ID de confirmação associado ao envio da sua revisão de aplicativo para o GitHub. Em geral, esse ID tem 40 caracteres de comprimento e é formado por letras e números. (Não use a versão mais curta do ID de confirmação, que é normalmente os 10 primeiros caracteres da versão mais longa.) Use esse valor. Se estiver trabalhando em uma máquina Linux, macos, or Unix local: aws deploy create-deployment \ --application-name CodeDeployGitHubDemo-App \ --deployment-config-name CodeDeployDefault.OneAtATime \ --deployment-group-name CodeDeployGitHubDemo-DepGrp \ --description "My GitHub deployment demo" \ --github-location repository=repository,commitid=commit-id Se estiver trabalhando em uma máquina Windows local: aws deploy create-deployment --application-name CodeDeployGitHubDemo-App -- deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name CodeDeployGitHubDemo-DepGrp --description "My GitHub deployment demo" --githublocation repository=repository,commitid=commit-id Etapa 7: monitorar e verificar a implantação Nesta etapa, você usará o console do AWS CodeDeploy ou a AWS CLI para verificar o sucesso da implantação. Você usará seu navegador da Web para visualizar a página da Web que foi implantada na instância que você criou ou configurou. Se estiver implantando em uma instância do Ubuntu Server, use sua própria estratégia de teste para determinar se a revisão implantada funciona conforme esperado na instância e depois continue na próxima etapa. Para monitorar e verificar a implantação (console) 1. Se a página Implantações não for exibida, no menu do AWS CodeDeploy, escolha Implantações. 2. Na lista de implantações, procure a linha com um valor de Aplicativo de CodeDeployGitHubDemo-App e um valor de Grupo de implantação de CodeDeployGitHubDemo-DepGrp. Se Bem-sucedido ou Falha não aparecer na coluna Status, aperte o botão Atualizar periodicamente. 3. Se Falha aparecer na coluna Status, siga as instruções em Exibir Detalhes da Instância (console) (p. 183) para solucionar problemas com a implantação. 116

125 Etapa 8: Limpeza 4. Se Bem-sucedido aparecer na coluna Status, você poderá verificar a implantação no seu navegador da Web. Nossa revisão de amostra implanta uma única página da Web na instância. Se estiver implantando em uma instância do Amazon EC2, no seu navegador da Web, acesse para a instância (por exemplo, 5. Se conseguir ver a página da Web, parabéns! Agora que você usou com sucesso o AWS CodeDeploy para implantar uma revisão do GitHub, será possível avançar até Etapa 8: Limpeza (p. 117). Para monitorar e verificar a implantação (CLI) 1. Chame o comando list-deployments para obter o ID de implantação para o aplicativo denominado CodeDeployGitHubDemo-App e o grupo de implantação denominado CodeDeployGitHubDemo-DepGrp: aws deploy list-deployments --application-name CodeDeployGitHubDemo-App --deploymentgroup-name CodeDeployGitHubDemo-DepGrp --query "deployments" --output text 2. Chame o comando get-deployment, fornecendo o ID da implantação na saída do comando listdeployments: aws deploy get-deployment --deployment-id deployment-id --query "deploymentinfo. [status, creator]" --output text 3. Se Falha for retornado, siga as instruções em Exibir Detalhes da Instância (console) (p. 183) para solucionar a implantação. 4. Se Bem-sucedido for retornado, você poderá tentar verificar a implantação no seu navegador da Web. Nossa revisão de amostra é uma única página da Web implantada na instância. Se você estiver implantando em uma instância do Amazon EC2, poderá visualizar essa página no seu navegador da Web acessando para a instância do Amazon EC2 (por exemplo, ec compute-1.amazonaws.com). 5. Se conseguir ver a página da Web, parabéns! Você usou com sucesso o AWS CodeDeploy para implantar a partir do seu repositório GitHub. Etapa 8: Limpeza Para evitar cobranças adicionais pelos recursos usados durante esse tutorial, você deve encerrar a instância do Amazon EC2 e seus recursos associados. Opcionalmente, você pode excluir os registros de componentes de implantação do AWS CodeDeploy associados a esse tutorial. Caso tenha usado um repositório GitHub apenas para este tutorial, você também pode excluí-lo agora. Para excluir uma pilha do AWS CloudFormation (se tiver usado o template do AWS CloudFormation para criar uma instância do Amazon EC2) 1. Faça login no Console de gerenciamento da AWS e abra o console da AWS CloudFormation em 2. Na coluna Nome da pilha, marque a caixa ao lado da pilha que começa com CodeDeploySampleStack. 3. Escolha Delete Stack. 4. Quando solicitado, escolha Sim, excluir. A instância do Amazon EC2 e a função de serviço e o perfil de instâncias do IAM associados serão excluídos. 117

126 Etapa 8: Limpeza Para cancelar o registro manualmente e limpar uma instância local (caso você tenha provisionado uma instância local) 1. Use a AWS CLI para chamar o comando deregister para a instância local representada aqui por yourinstance-name e a região associada por your-region: aws deploy deregister --instance-name your-instance-name --delete-iam-user -- region your-region 2. Na instância local, chame o comando uninstall: aws deploy uninstall Para encerrar manualmente uma instância do Amazon EC2 (caso você tenha iniciado manualmente uma instância do Amazon EC2) 1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon EC2 em console.aws.amazon.com/ec2/. 2. No painel de navegação, em Instâncias, escolha Instâncias. 3. Marque a caixa ao lado da instância do Amazon EC2 que você deseja encerrar. No menu Ações, selecione Estado da instância e escolha Encerrar. 4. Quando solicitado, escolha Sim, encerrar. Para excluir os registros de componentes da implantação do AWS CodeDeploy 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. Se a página Aplicativos não for exibida, selecione a opção Aplicativos no menu do AWS CodeDeploy. 3. Escolha CodeDeployGitHubDemo-App. 4. Na página Detalhes do aplicativo, em Grupos de implantação, escolha o botão ao lado do grupo de implantação. No menu Ações, escolha Excluir. Quando solicitado, digite o nome do grupo de implantação para confirmar que você deseja excluí-lo e, em seguida, escolha Excluir. 5. Na parte inferior da página Application details, escolha Delete application. 6. Quando solicitado, digite o nome do aplicativo para confirmar que você deseja excluí-lo e, em seguida, escolha Excluir. Para excluir seu repositório GitHub Consulte o tópico sobre como excluir um repositório na Ajuda do GitHub. 118

127 Sistemas operacionais com suporte com o agente do AWS CodeDeploy Trabalhando com o agente do AWS CodeDeploy O agente do AWS CodeDeploy é um pacote de software que, quando instalado e configurado em uma instância, permite que esta seja usada em implantações do AWS CodeDeploy. Um arquivo de configuração é colocado na instância quando o agente é instalado. Este arquivo é usado para especificar como o agente funciona. Esse arquivo de configuração especifica caminhos do diretório e outras configurações AWS CodeDeploy usar à medida que este interage com a instância. É possível alterar algumas das opções de configuração no arquivo. Para obter informações sobre como trabalhar com o arquivo de configuração do agente do AWS CodeDeploy, consulte Referência de configuração do agente do AWS CodeDeploy (p. 302). Para obter mais informações sobre como trabalhar com o agente do AWS CodeDeploy, como etapas para instalar, atualizar e verificar versões, consulte Gerenciando operações do agente do AWS CodeDeploy (p. 125). Tópicos Sistemas operacionais com suporte com o agente do AWS CodeDeploy (p. 119) Protocolo de comunicação e porta do agente do AWS CodeDeploy (p. 120) Suporte da SDK da AWS para Ruby (aws-sdk-core) para o agente do AWS CodeDeploy (p. 120) Versões com suporte do agente do AWS CodeDeploy (p. 120) Limpeza de revisões de aplicativo e arquivos de log (p. 124) Gerenciando operações do agente do AWS CodeDeploy (p. 125) Sistemas operacionais com suporte com o agente do AWS CodeDeploy Sistemas operacionais Amazon EC2 AMI com suporte O agente do AWS CodeDeploy foi testado nos seguintes sistemas operacionais Amazon EC2 AMI: Amazon Linux , , , , , Ubuntu Server LTS e LTS 119

128 Sistemas operacionais locais com suporte Microsoft Windows Server 2016, 2012 R2, e 2008 R2 Red Hat Enterprise Linux (RHEL) 7.x O agente do AWS CodeDeploy está disponível como software livre para você adaptá-los às suas necessidades. Ele pode ser usado com outros sistemas operacionais Amazon EC2 AMI. Para obter mais informações, acesse o repositório do Agente do AWS CodeDeploy no GitHub. Sistemas operacionais locais com suporte O agente do AWS CodeDeploy foi testado nos seguintes sistemas operacionais locais: Ubuntu Server LTS Microsoft Windows Server 2016, 2012 R2, e 2008 R2 Red Hat Enterprise Linux (RHEL) 7.x O agente do AWS CodeDeploy está disponível como software livre para você adaptá-los às suas necessidades. Ele pode ser usado com outros sistemas operacionais de instâncias locais. Para obter mais informações, acesse o repositório do Agente do AWS CodeDeploy no GitHub. Protocolo de comunicação e porta do agente do AWS CodeDeploy O agente do AWS CodeDeploy comunica a saída usando HTTPS via porta 443. Suporte da SDK da AWS para Ruby (aws-sdk-core) para o agente do AWS CodeDeploy As versões do agente do AWS CodeDeploy anteriores a são compatíveis apenas com a versão e anteriores do AWS SDK para Ruby (aws-sdk-core 2.1.2). Se você estiver usando uma versão do agente do AWS CodeDeploy anterior a , recomendamos atualizar para a versão mais recente. Para obter informações, consulte o seguinte: Determinar a versão do agente do AWS CodeDeploy (p. 127) Instalar ou reinstalar o agente do AWS CodeDeploy (p. 128) A versão mais recente da SDK do AWS para Ruby compatível com o agente do AWS CodeDeploy é awssdk-core 2.3. Versões com suporte do agente do AWS CodeDeploy Suas instâncias devem estar executando uma versão com suporte do agente do AWS CodeDeploy. A versão atual mínima com suporte é Se você estiver executando uma versão anterior, as implantações nas suas instâncias poderão falhar. 120

129 Versões com suporte do agente do AWS CodeDeploy A tabela a seguir lista as versões atualmente com suporte do agente do AWS CodeDeploy, bem como os recursos e aprimoramentos incluídos em cada versão. Versão Data de lançamento Detalhes de maio de 2017 Recurso: introdução de um novo suporte para manipular o conteúdo em um local de destino que não faz parte da revisão de aplicativo da implantação bem-sucedida mais recente. As opções de implantação de conteúdo existente agora incluem manter o conteúdo, substituir o conteúdo ou marcar a implantação como falha. Melhoria: o agente do AWS CodeDeploy agora é compatível com a versão do AWS SDK para Ruby (aws-sdk-core 2.9.2) de março de 2017 Melhoria: introdução do suporte para o agente do AWS CodeDeploy no Região China (Pequim) (cn-north-1). Melhoria: o Puppet pode ser executado em instâncias do Windows Server quando invocado por um gancho de evento de ciclo de vida. Melhoria: a manipulação de operações untar foi aprimorada de janeiro de 2017 Melhoria: revisão de muitas mensagens de erro para incluir causas mais específicas de falhas de implantação. Melhoria: correção de um problema que impediu o agente do AWS CodeDeploy de identificar a revisão de aplicativo correta para implantar durante algumas implantações. Melhoria: reversão do uso de pushd e popd antes e depois da operação untar de novembro de 2016 Melhoria: o agente do AWS CodeDeploy agora é compatível com a versão do AWS SDK para Ruby (aws-sdk-core ). 121

130 Versões com suporte do agente do AWS CodeDeploy Versão Data de lançamento Detalhes de outubro de 2016 O agente do AWS CodeDeploy para instâncias do Amazon Linux, RHEL e Ubuntu Server foi atualizado com a seguinte alteração. Para instâncias do Windows Server, a versão mais recente continua a ser Melhoria: o agente agora pode determinar qual versão do Ruby está instalada em uma instância, para que ele possa invocar o script codedeploy-agent usando essa versão de agosto de 2016 Melhoria: remoção das alterações introduzidas pela versão devido a problemas com suporte de shell. Essa versão do agente é funcionalmente equivalente à versão , lançada em 11 de julho de de agosto de 2016 O agente do AWS CodeDeploy para instâncias do Amazon Linux, RHEL e Ubuntu Server foi atualizado com as seguintes alterações. Para instâncias do Windows Server, a versão mais recente continua a ser Recurso: inclusão de suporte para invocar o agente do AWS CodeDeploy usando o shell bash em sistemas operacionais nos quais systemd init system está em uso. Melhoria: suporte habilitado para todas as versões do Ruby 2.x no agente do AWS CodeDeploy e no atualizador do agente do AWS CodeDeploy. Agentes do AWS CodeDeploy atualizados não dependem mais somente do Ruby 2.0. (O Ruby 2.0 ainda é necessário para as versões deb e rpm do instalador do agente do AWS CodeDeploy.) 122

131 Versões com suporte do agente do AWS CodeDeploy Versão Data de lançamento Detalhes de julho de 2016 Melhoria: suporte corrigido para executar o agente do AWS CodeDeploy com perfis de usuário diferentes de root. A variável denominada USER foi substituída por CODEDEPLOY_USER para evitar conflitos com variáveis ambientais de junho de 2016 Recurso: suporte introduzido para executar o agente do AWS CodeDeploy com perfis de usuário diferentes de root. Melhoria: suporte corrigido para especificar o número de revisões de aplicativo que você deseja que o agente do AWS CodeDeploy arquive para um grupo de implantação. Melhoria: o agente do AWS CodeDeploy agora é compatível com a versão 2.3 do AWS SDK para Ruby (aws-sdk-core 2.3). Melhoria: problemas corrigidos com a codificação UTF-8 durante implantações. Melhoria: melhor precisão ao identificar nomes de processos de março de 2016 Recurso: suporte adicionado para proxies de instalação. Melhoria: atualização do script de instalação para não baixar o agente do AWS CodeDeploy se a versão mais recente já estiver instalada de fevereiro de 2016 Recurso: suporte introduzido para especificar o número de revisões de aplicativo que você deseja que o agente do AWS CodeDeploy arquive para um grupo de implantação de janeiro de 2016 Melhoria: o agente do AWS CodeDeploy agora é compatível com a versão 2.2 do AWS SDK para Ruby (aws-sdk-core 2.2). Ainda há suporte para a versão

132 Limpeza de revisões de aplicativo e arquivos de log Versão Data de lançamento Detalhes de novembro de 2015 Recurso: suporte introduzido para o algoritmo hash SHA-256. Important Após 17 de outubro de 2016, todas as instalações do agente do AWS CodeDeploy devem ser atualizadas pelo menos para a versão , ou as implantações falharão. Para obter mais informações, consulte A implantação falha com a mensagem "Validation of PKCS7 signed message failed" (p. 320). Recurso: suporte para controle de versão introduzido em arquivos.version. Recurso: o ID do grupo de implantação foi disponibilizado com o uso de uma variável de ambiente. Melhoria: suporte adicionado para o monitoramento de logs do agente do AWS CodeDeploy com o uso do Amazon CloudWatch Logs. Para obter informações relacionadas, consulte o seguinte: Determinar a versão do agente do AWS CodeDeploy (p. 127) Instalar ou reinstalar o agente do AWS CodeDeploy (p. 128) Para obter um histórico versões do agente do AWS CodeDeploy, consulte o Repositório de versões no GitHub. Limpeza de revisões de aplicativo e arquivos de log O agente do AWS CodeDeploy arquiva revisões e arquivos de log em instâncias. O agente do AWS CodeDeploy limpa esses artefatos para conservar espaço em disco. Logs de implantação de revisão de aplicativo: você pode usar a opção :max_revisions: no arquivo de configuração do agente para especificar o número de revisões de aplicativo a serem arquivadas, inserindo qualquer número inteiro positivo. O AWS CodeDeploy também arquiva os arquivos de log dessas revisões. 124

133 Gerenciando operações do agente do AWS CodeDeploy Todos os outros são excluídos, com exceção do arquivo de log da última implantação bem-sucedida. Esse arquivo de log sempre será mantido, mesmo que o número de implantações com falha exceda o número de revisões mantidas. Se nenhum valor for especificado, o AWS CodeDeploy manterá as cinco revisões mais recentes, além da revisão atualmente implantada. Logs do AWS CodeDeploy: para instâncias do Amazon Linux, Ubuntu Server e RHEL, o agente do AWS CodeDeploy faz o rodízio dos arquivos de log na pasta /var/log/aws/codedeploy-agent. O rodízio do arquivo de log é feito às 00:00:00 (horário da instância) todos os dias. Arquivos de log são excluídos após sete dias. O padrão de nomeação para arquivos de log em rodízio é codedeploy-agent.yyyymmdd.log. Tópicos Gerenciando operações do agente do AWS CodeDeploy (p. 125) Gerenciando operações do agente do AWS CodeDeploy As instruções nesta seção mostram como instalar, desinstalar, reinstalar ou atualizar o agente do AWS CodeDeploy e como verificar se o agente do AWS CodeDeploy está em execução. Tópicos Verificar se o agente do AWS CodeDeploy está em execução (p. 125) Determinar a versão do agente do AWS CodeDeploy (p. 127) Instalar ou reinstalar o agente do AWS CodeDeploy (p. 128) Atualizar o agente do AWS CodeDeploy (p. 133) Desinstalar o agente do AWS CodeDeploy (p. 138) Verificar se o agente do AWS CodeDeploy está em execução Esta seção descreve comandos a serem executados se você suspeitar de que o agente do AWS CodeDeploy parou de ser executado em uma instância. Tópicos Verificar se o agente do AWS CodeDeploy para Amazon Linux ou RHEL está em execução (p. 125) Verificar se o agente do AWS CodeDeploy para Ubuntu Server está em execução (p. 126) Verificar se o agente do AWS CodeDeploy para Windows Server está em execução (p. 126) Verificar se o agente do AWS CodeDeploy para Amazon Linux ou RHEL está em execução Para ver se o agente do AWS CodeDeploy está instalado e em execução, entre na instância e execute o seguinte comando: sudo service codedeploy-agent status Se o comando retornar um erro, o agente do AWS CodeDeploy não está instalado. Instale-o conforme descrito em Instalar ou reinstalar o agente do AWS CodeDeploy para Amazon Linux ou RHEL (p. 128). 125

134 Verificar se o agente do AWS CodeDeploy está em execução Se o agente do AWS CodeDeploy estiver instalado e em execução, você verá uma mensagem semelhante a The AWS CodeDeploy agent is running. Se você vir uma mensagem como error: No AWS CodeDeploy agent running, inicie o serviço e execute os dois comandos a seguir, um de cada vez: sudo service codedeploy-agent start sudo service codedeploy-agent status Verificar se o agente do AWS CodeDeploy para Ubuntu Server está em execução Para ver se o agente do AWS CodeDeploy está instalado e em execução, entre na instância e execute o seguinte comando: sudo service codedeploy-agent status Se o comando retornar um erro, o agente do AWS CodeDeploy não está instalado. Instale-o conforme descrito em Instalar ou reinstalar o agente do AWS CodeDeploy para o Ubuntu Server (p. 129). Se o agente do AWS CodeDeploy estiver instalado e em execução, você verá uma mensagem semelhante a The AWS CodeDeploy agent is running. Se você vir uma mensagem como error: No AWS CodeDeploy agent running, inicie o serviço e execute os dois comandos a seguir, um de cada vez: sudo service codedeploy-agent start sudo service codedeploy-agent status Verificar se o agente do AWS CodeDeploy para Windows Server está em execução Para ver se o agente do AWS CodeDeploy está instalado e em execução, entre na instância e execute o seguinte comando: powershell.exe -Command Get-Service -Name codedeployagent Você deve ver saída semelhante a: Status Name DisplayName Running codedeployagent Serviço de agente de host do CodeDeploy Se o comando retornar um erro, o agente do AWS CodeDeploy não está instalado. Instale-o conforme descrito em Instalar ou reinstalar o agente do AWS CodeDeploy para o Windows Server (p. 130). Se Status mostrar algo diferente de Running, inicie o serviço com o seguinte comando: powershell.exe -Command Start-Service -Name codedeployagent 126

135 Determinar a versão do agente do AWS CodeDeploy É possível reiniciar o serviço com o seguinte comando: powershell.exe -Command Restart-Service -Name codedeployagent É possível interromper o serviço com o seguinte comando: powershell.exe -Command Stop-Service -Name codedeployagent Determinar a versão do agente do AWS CodeDeploy Você pode determinar a versão do agente do AWS CodeDeploy em execução na sua instância de duas maneiras. Primeiro, começando com a versão do agente do AWS CodeDeploy, é possível visualizar o número da versão em um arquivo.version na instância. A tabela a seguir mostra a localização e a string da versão de exemplo de cada um dos sistemas operacionais com suporte. Sistema operacional Local do arquivo Exemplo da string agent_version Amazon Linux e Red Hat Enterprise Linux (RHEL) Ubuntu Server Windows Server /opt/codedeployagent/.version /opt/codedeployagent/.version C:\ProgramData\Amazon \CodeDeploy\.version OFFICIAL_ _rpm OFFICIAL_ _deb OFFICIAL_ _msi Em segundo lugar, é possível executar um comando em uma instância para determinar a versão do agente do AWS CodeDeploy. Tópicos Determinar a versão no Amazon Linux ou RHEL (p. 127) Determinar a versão no Ubuntu Server (p. 127) Determinar a versão no Windows Server (p. 127) Determinar a versão no Amazon Linux ou RHEL Entre na instância e execute o seguinte comando: sudo yum info codedeploy-agent Determinar a versão no Ubuntu Server Entre na instância e execute o seguinte comando: sudo dpkg -s codedeploy-agent Determinar a versão no Windows Server Entre na instância e execute o seguinte comando: 127

136 Instalar ou reinstalar o agente do AWS CodeDeploy sc qdescription codedeployagent Instalar ou reinstalar o agente do AWS CodeDeploy Se você suspeitar de que o agente do AWS CodeDeploy está ausente ou não está funcionando, pode executar comandos em uma instância para instalá-lo ou reinstalá-lo. Important Um perfil de instância do IAM com permissão para acessar o bucket do Amazon S3 que contém os arquivos de instalação do agente para sua região deve ser anexado a cada instância do Amazon EC2. Sem as permissões fornecidas pelo perfil de instância do IAM, a instância não poderá fazer download dos arquivos de instalação do agente do AWS CodeDeploy. Para obter informações, consulte Etapa 4: criar um perfil de instância do IAM (p. 19) e Configurar uma instância do Amazon EC2 para trabalhar com o AWS CodeDeploy (p. 153). Tópicos Instalar ou reinstalar o agente do AWS CodeDeploy para Amazon Linux ou RHEL (p. 128) Instalar ou reinstalar o agente do AWS CodeDeploy para o Ubuntu Server (p. 129) Instalar ou reinstalar o agente do AWS CodeDeploy para o Windows Server (p. 130) Instalar ou reinstalar o agente do AWS CodeDeploy para Amazon Linux ou RHEL Entre na instância e execute os seguintes comandos, um por vez. No quarto comando, /home/ec2-user representa o nome de usuário padrão para uma instância do Amazon EC2 do Amazon Linux ou RHEL. Se a sua instância foi criada usando um AMI personalizado, o proprietário do AMI pode ter especificado um nome de usuário padrão diferente. sudo yum update sudo yum install ruby sudo yum install wget cd /home/ec2-user wget chmod +x./install sudo./install auto O nome de bucket é o nome do bucket do Amazon S3 que contém os arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Região do Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2. Para obter uma lista de nomes de buckets, consulte???. 128

137 Instalar ou reinstalar o agente do AWS CodeDeploy Para verificar se o serviço está em execução, execute o seguinte comando: sudo service codedeploy-agent status Se o agente do AWS CodeDeploy estiver instalado e em execução, você verá uma mensagem semelhante a The AWS CodeDeploy agent is running. Se você vir uma mensagem como error: No AWS CodeDeploy agent running, inicie o serviço e execute os dois comandos a seguir, um de cada vez: sudo service codedeploy-agent start sudo service codedeploy-agent status Instalar ou reinstalar o agente do AWS CodeDeploy para o Ubuntu Server Entre na instância e execute os seguintes comandos, um por vez. No quinto comando, /home/ubuntu representa o nome de usuário padrão para uma instância do Ubuntu Server. Se a sua instância foi criada usando um AMI personalizado, o proprietário do AMI pode ter especificado um nome de usuário padrão diferente. sudo apt-get update No Ubuntu Server 14.04: sudo apt-get install ruby2.0 No Ubuntu Server 16.04: sudo apt-get install ruby sudo apt-get install wget cd /home/ubuntu wget chmod +x./install sudo./install auto O nome de bucket é o nome do bucket do Amazon S3 que contém os arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Região do Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2. Para obter uma lista de nomes de buckets, consulte???. 129

138 Instalar ou reinstalar o agente do AWS CodeDeploy Para verificar se o serviço está em execução, execute o seguinte comando: sudo service codedeploy-agent status Se o agente do AWS CodeDeploy estiver instalado e em execução, você verá uma mensagem semelhante a The AWS CodeDeploy agent is running. Se você vir uma mensagem como error: No AWS CodeDeploy agent running, inicie o serviço e execute os dois comandos a seguir, um de cada vez: sudo service codedeploy-agent start sudo service codedeploy-agent status Instalar ou reinstalar o agente do AWS CodeDeploy para o Windows Server Nas instâncias do Windows Server, você pode usar um dos seguintes métodos para fazer download e instalar o agente do AWS CodeDeploy: Execute uma série de comandos do Windows PowerShell Escolha um link de download direto Execute um comando de cópia do Amazon S3 Em instâncias novas e existentes, recomendamos instalar o atualizador do agente do AWS CodeDeploy para o Windows Server. O atualizador verifica periodicamente se existem novas versões do agente e faz a instalação quando uma nova versão está disponível. Em novas instâncias, é possível instalar o atualizador em vez do agente, e a versão atual do agente será instalada imediatamente depois o atualizador. Para obter mais informações, consulte Atualizar o agente do AWS CodeDeploy no Windows Server (p. 134). Tópicos Usar Windows Powershell (p. 130) Usar um link direto (p. 131) Usar um comando de cópia do Amazon S3 (p. 132) Usar Windows Powershell Entre na instância e execute os seguintes comandos no Windows PowerShell, um por vez: Set-ExecutionPolicy RemoteSigned Import-Module AWSPowerShell New-Item Path "c:\temp" ItemType "directory" -Force powershell.exe -Command Read-S3Object -BucketName bucket-name -Key latest/codedeployagent.msi -File c:\temp\codedeploy-agent.msi 130

139 Instalar ou reinstalar o agente do AWS CodeDeploy c:\temp\codedeploy-agent.msi /quiet /l c:\temp\host-agent-install-log.txt O nome de bucket é o nome do bucket do Amazon S3 que contém os arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Região do Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2. Para obter uma lista de nomes de buckets, consulte???. Para verificar se o serviço está em execução, execute o seguinte comando: powershell.exe -Command Get-Service -Name codedeployagent Se o agente do AWS CodeDeploy estiver instalado e em execução, após a chamada do comando Get- Service, você verá uma saída semelhante à seguinte: Status Name DisplayName Running codedeployagent Serviço de agente de host do CodeDeploy Usar um link direto Se as configurações de segurança do navegador na instância do Windows Server concederem as permissões (por exemplo, para você poderá usar um link direto da região para fazer download do agente do AWS CodeDeploy e, em seguida, executar o instalador manualmente. Nome da região Leste dos EUA (Ohio) Leste dos EUA (Norte da Virgínia) Oeste dos EUA (Norte da Califórnia) Oeste dos EUA (Oregon) Canadá (Central) UE (Irlanda) UE (Londres) UE (Frankfurt) Link para fazer download codedeploy-agent.msi codedeploy-agent.msi 131

140 Instalar ou reinstalar o agente do AWS CodeDeploy Nome da região Ásia-Pacífico (Tóquio) Ásia-Pacífico (Seul) Ásia-Pacífico (Cingapura) Ásia-Pacífico (Sydney) Ásia Pacífico (Mumbai) América do Sul (São Paulo) Link para fazer download codedeploy-agent.msi codedeploy-agent.msi codedeploy-agent.msi codedeploy-agent.msi Usar um comando de cópia do Amazon S3 Se a AWS CLI for instalada na instância, é possível usar o comando cp do Amazon S3 para fazer download do agente do AWS CodeDeploy e, em seguida, executar o instalador manualmente. Para obter informações, consulte Instalar a AWS Command Line Interface no Microsoft Windows. Nome da região Leste dos EUA (Ohio) Comando de cópia do Amazon S3 aws s3 cp s3://aws-codedeploy-us-east-2/ latest/codedeploy-agent.msi codedeployagent.msi Leste dos EUA (Norte da Virgínia) aws s3 cp s3://aws-codedeploy-us-east-1/ latest/codedeploy-agent.msi codedeployagent.msi Oeste dos EUA (Norte da Califórnia) aws s3 cp s3://aws-codedeploy-us-west-1/ latest/codedeploy-agent.msi codedeployagent.msi Oeste dos EUA (Oregon) aws s3 cp s3://aws-codedeploy-us-west-2/ latest/codedeploy-agent.msi codedeployagent.msi Canadá (Central) aws s3 cp s3://aws-codedeploy-ca-central-1/ latest/codedeploy-agent.msi codedeployagent.msi 132

141 Atualizar o agente do AWS CodeDeploy Nome da região UE (Irlanda) Comando de cópia do Amazon S3 aws s3 cp s3://aws-codedeploy-eu-west-1/ latest/codedeploy-agent.msi codedeployagent.msi UE (Londres) aws s3 cp s3://aws-codedeploy-eu-west-2/ latest/codedeploy-agent.msi codedeployagent.msi UE (Frankfurt) aws s3 cp s3://aws-codedeploy-eu-central-1/ latest/codedeploy-agent.msi codedeployagent.msi Ásia-Pacífico (Tóquio) aws s3 cp s3://aws-codedeploy-apnortheast-1/latest/codedeploy-agent.msi codedeploy-agent.msi Ásia-Pacífico (Seul) aws s3 cp s3://aws-codedeploy-apnortheast-2/latest/codedeploy-agent.msi codedeploy-agent.msi Ásia-Pacífico (Cingapura) aws s3 cp s3://aws-codedeploy-apsoutheast-1/latest/codedeploy-agent.msi codedeploy-agent.msi Ásia-Pacífico (Sydney) aws s3 cp s3://aws-codedeploy-apsoutheast-2/latest/codedeploy-agent.msi codedeploy-agent.msi Ásia Pacífico (Mumbai) aws s3 cp s3://aws-codedeploy-ap-south-1/ latest/codedeploy-agent.msi codedeployagent.msi América do Sul (São Paulo) aws s3 cp s3://aws-codedeploy-sa-east-1/ latest/codedeploy-agent.msi codedeployagent.msi Atualizar o agente do AWS CodeDeploy Para os sistemas operacionais Amazon Linux, RHEL e Ubuntu Server, o agente do AWS CodeDeploy é atualizado automaticamente quando uma nova versão é lançada. Para o Windows Server, você pode instalar o atualizador do agente do AWS CodeDeploy para agente do Windows Server depois ou no lugar do agente do AWS CodeDeploy. O agente será atualizado sempre que uma nova versão for detectada. Você também pode forçar atualizações em todos os sistemas operacionais com suporte, executando um comando em uma instância. Tópicos Atualizar o agente do AWS CodeDeploy no Amazon Linux ou RHEL (p. 134) 133

142 Atualizar o agente do AWS CodeDeploy Atualizar o agente do AWS CodeDeploy no Ubuntu Server (p. 134) Atualizar o agente do AWS CodeDeploy no Windows Server (p. 134) Atualizar o agente do AWS CodeDeploy no Amazon Linux ou RHEL Após a instalação do agente (codedeploy-agent.noarch.rpm) do AWS CodeDeploy em uma instância, ele será atualizado automaticamente em até 24 horas depois do lançamento de uma nova versão. O tempo de atualização não pode ser facilmente cancelado ou reprogramado. Se uma implantação estiver em andamento durante a atualização, o evento de ciclo de vida de implantação atual terminará primeiro. Após a conclusão da atualização, a implantação será retomada com o próximo evento de ciclo de vida de implantação. Se quiser forçar uma atualização do agente do AWS CodeDeploy, entre na instância e execute o seguinte comando: sudo /opt/codedeploy-agent/bin/install auto Atualizar o agente do AWS CodeDeploy no Ubuntu Server Após a instalação do agente (codedeploy-agent_all.deb) do AWS CodeDeploy em uma instância, ele será atualizado automaticamente em até 24 horas depois do lançamento de uma nova versão. O tempo de atualização não pode ser facilmente cancelado ou reprogramado. Se uma implantação estiver em andamento durante a atualização, o evento de ciclo de vida de implantação atual terminará primeiro. Após a conclusão da atualização, a implantação será retomada com o próximo evento de ciclo de vida de implantação. Se quiser forçar uma atualização do agente do AWS CodeDeploy, entre na instância e execute o seguinte comando: sudo /opt/codedeploy-agent/bin/install auto Atualizar o agente do AWS CodeDeploy no Windows Server Para habilitar atualizações automáticas do agente do AWS CodeDeploy sempre que uma nova versão for lançada, instale o atualizador do agente do AWS CodeDeploy para Windows Server em instâncias novas ou existentes. O atualizador verificará periodicamente se há novas versões. Quando uma nova versão for detectada, o atualizador desinstalará a versão atual do agente, se instalada, antes de instalar a versão mais recente. Se uma implantação já estiver em andamento quando o atualizador detectar uma nova versão, a implantação continuará até ser concluída. No entanto, se uma implantação tentar começar durante o processo de atualização, ela falhará. Se quiser forçar uma atualização do agente do AWS CodeDeploy, siga as instruções em Instalar ou reinstalar o agente do AWS CodeDeploy para o Windows Server (p. 130). Nas instâncias do Windows Server, você pode fazer download e instalar o atualizador do agente do AWS CodeDeploy ao executar uma série de comandos do Windows PowerShell, usando um link de download direto ou executando um comando de cópia do Amazon S3. Tópicos Usar Windows Powershell (p. 135) Usar um link direto (p. 135) Usar um comando de cópia do Amazon S3 (p. 136) 134

143 Atualizar o agente do AWS CodeDeploy Usar Windows Powershell Entre na instância e execute os seguintes comandos no Windows PowerShell, um por vez: Set-ExecutionPolicy RemoteSigned Import-Module AWSPowerShell New-Item Path "c:\temp" ItemType "directory" -Force powershell.exe -Command Read-S3Object -BucketName bucket-name -Key latest/codedeploy-agentupdater.msi -File c:\temp\codedeploy-agent-updater.msi c:\temp\codedeploy-agent-updater.msi /quiet /l c:\temp\host-agent-updater-log.txt powershell.exe -Command Get-Service -Name codedeployagent O nome de bucket é o nome do bucket do Amazon S3 que contém os arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Região do Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2. Para obter uma lista de nomes de buckets, consulte???. Se precisar solucionar um erro no processo de atualização, digite o seguinte comando para abrir o arquivo de log do atualizador do agente do AWS CodeDeploy: notepad C:\ProgramData\Amazon\CodeDeployUpdater\log\codedeploy-agent.updater.log Usar um link direto Se as configurações de segurança do navegador na instância do Windows Server concederem as permissões necessárias (por exemplo, para você pode usar um link direto inserindo o seguinte na barra de endereço do seu navegador para fazer download do agente do AWS CodeDeploy e, em seguida, executar o instalador manualmente. Nome da região Leste dos EUA (Ohio) Leste dos EUA (Norte da Virgínia) Oeste dos EUA (Norte da Califórnia) Oeste dos EUA (Oregon) Canadá (Central) Link para fazer download codedeploy-agent-updater.msi 135

144 Atualizar o agente do AWS CodeDeploy Nome da região UE (Irlanda) UE (Londres) UE (Frankfurt) Ásia-Pacífico (Tóquio) Ásia-Pacífico (Seul) Ásia-Pacífico (Cingapura) Ásia-Pacífico (Sydney) Ásia Pacífico (Mumbai) América do Sul (São Paulo) Link para fazer download codedeploy-agent-updater.msi codedeploy-agent-updater.msi codedeploy-agent-updater.msi codedeploy-agent-updater.msi codedeploy-agent-updater.msi Usar um comando de cópia do Amazon S3 Se a AWS CLI for instalada na instância, é possível usar o comando cp do Amazon S3 para fazer download do atualizador de agente do AWS CodeDeploy e, em seguida, executar o instalador manualmente. Para obter informações, consulte Instalar a AWS Command Line Interface no Microsoft Windows. Nome da região Leste dos EUA (Ohio) Comando de cópia do Amazon S3 aws s3 cp s3://aws-codedeploy-us-east-2/ latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi Leste dos EUA (Norte da Virgínia) aws s3 cp s3://aws-codedeploy-us-east-1/ latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi 136

145 Atualizar o agente do AWS CodeDeploy Nome da região Oeste dos EUA (Norte da Califórnia) Comando de cópia do Amazon S3 aws s3 cp s3://aws-codedeploy-us-west-1/ latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi Oeste dos EUA (Oregon) aws s3 cp s3://aws-codedeploy-us-west-2/ latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi Canadá (Central) aws s3 cp s3://aws-codedeploy-ca-central-1/ latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi UE (Irlanda) aws s3 cp s3://aws-codedeploy-eu-west-1/ latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi UE (Londres) aws s3 cp s3://aws-codedeploy-eu-west-2/ latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi UE (Frankfurt) aws s3 cp s3://aws-codedeploy-eu-central-1/ latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi Ásia-Pacífico (Tóquio) aws s3 cp s3://aws-codedeploy-apnortheast-1/latest/codedeploy-agentupdater.msi codedeploy-agent-updater.msi Ásia-Pacífico (Seul) aws s3 cp s3://aws-codedeploy-apnortheast-2/latest/codedeploy-agentupdater.msi codedeploy-agent-updater.msi Ásia-Pacífico (Cingapura) aws s3 cp s3://aws-codedeploy-apsoutheast-1/latest/codedeploy-agentupdater.msi codedeploy-agent-updater.msi Ásia-Pacífico (Sydney) aws s3 cp s3://aws-codedeploy-apsoutheast-2/latest/codedeploy-agentupdater.msi codedeploy-agent-updater.msi Ásia Pacífico (Mumbai) aws s3 cp s3://aws-codedeploy-ap-south-1/ latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi América do Sul (São Paulo) aws s3 cp s3://aws-codedeploy-sa-east-1/ latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi 137

146 Desinstalar o agente do AWS CodeDeploy Desinstalar o agente do AWS CodeDeploy É possível remover o agente do AWS CodeDeploy de instâncias quando ele não é mais necessário ou quando você deseja realizar uma nova instalação. Desinstalar o agente do AWS CodeDeploy do Amazon Linux ou RHEL Para desinstalar o agente do AWS CodeDeploy, entre na instância e execute o seguinte comando: sudo yum erase codedeploy-agent Desinstalar o agente do AWS CodeDeploy do Ubuntu Server Para desinstalar o agente do AWS CodeDeploy, entre na instância e execute o seguinte comando: sudo dpkg --purge codedeploy-agent Desinstalar o agente do AWS CodeDeploy do Windows Server Para desinstalar o agente do AWS CodeDeploy, entre na instância e execute os três comandos a seguir, um de cada vez: wmic product where name="codedeploy Host Agent" call uninstall /nointeractive exit Como alternativa, faça login na instância e, no Painel de controle, abra Programas e recursos, escolha CodeDeploy Host Agent e, em seguida, escolha Desinstalar. 138

147 Comparando instâncias do Amazon EC2 com instâncias locais Trabalhando com instâncias para o AWS CodeDeploy O AWS CodeDeploy oferece suporte a implantações em instâncias que executam o Amazon Linux, o Ubuntu Server, o Red Hat Enterprise Linux (RHEL) e o Windows Server. É possível usar o AWS CodeDeploy para implantar tanto instâncias do Amazon EC2 quanto instâncias locais. Uma instância local é qualquer dispositivo físico que não seja uma instância do Amazon EC2 e que possa executar o agente do AWS CodeDeploy e se conectar a endpoints de serviços da AWS. Você pode usar o AWS CodeDeploy para implementar de forma simultânea um aplicativo em instâncias do Amazon EC2 em execução na nuvem e em PCs de desktop em execução no seu escritório ou nos servidores do seu próprio data center. Comparando instâncias do Amazon EC2 com instâncias locais A tabela a seguir compara instâncias do Amazon EC2 e instâncias locais: Subject Instâncias do Amazon EC2 Instâncias locais Requer que você instale e execute uma versão do agente do AWS CodeDeploy compatível com o sistema operacional executado na instância. Requer que a instância seja capaz de se conectar ao serviço do AWS CodeDeploy. Requer que um perfil de instâncias do IAM seja anexado à instância. O perfil de instâncias do IAM deve ter permissão para participar de implantações do Sim Sim Sim Sim Sim Não 139

148 Tarefas de instâncias para o AWS CodeDeploy Subject Instâncias do Amazon EC2 Instâncias locais AWS CodeDeploy. Para obter mais informações, consulte Etapa 4: criar um perfil de instância do IAM (p. 19). Requer que você siga um destes procedimentos para autenticar e registrar instâncias: Criar um usuário do IAM para cada instância e armazenar as credenciais de conta desse usuário em texto sem formatação na instância. Criar uma função do IAM que possa ser assumida por um usuário do IAM em cada instância para recuperar credenciais temporárias periodicamente atualizadas que são geradas pelo AWS Security Token Service. Requer que você registre cada instância no AWS CodeDeploy antes de poder implantar nela. Requer que você marque cada instância antes que o AWS CodeDeploy possa implantar nela. Pode participar de cenários de Auto Scaling e do Elastic Load Balancing como parte de implantação do AWS CodeDeploy. Pode ser implantado a partir de buckets do Amazon S3 e repositórios GitHub. Pode dar suporte a gatilhos que solicitam o envio de notificações por SMS ou quando eventos específicos ocorrerem em implementações ou instâncias. Está sujeito a cobrança por implantações associadas. Não Não Sim Sim Sim Sim Não Sim Sim Sim Não Sim Sim Sim Tarefas de instâncias para o AWS CodeDeploy Para iniciar ou configurar instâncias para uso em implantações, escolha uma das seguintes instruções: 140

149 Trabalhando com instâncias do Amazon EC2 Quero iniciar uma nova instância do Amazon EC2 para Amazon Linux ou Windows Server. Para iniciar a instância do Amazon EC2 com o mínimo de esforço, consulte Criar uma instância do Amazon EC2 para o AWS CodeDeploy (template do AWS CloudFormation) (p. 147). Para iniciar a instância do Amazon EC2 principalmente por sua conta, consulte Criar uma instância do Amazon EC2 (AWS CLI ou console do Amazon EC2) (p. 142). Quero iniciar uma nova instância do Amazon EC2 para Ubuntu Server ou RHEL. Quero configurar uma instância do Amazon EC2 para Amazon Linux, Windows Server, Ubuntu Server ou RHEL. Quero configurar uma instância local para Windows Server, Ubuntu Server ou RHEL (dispositivos físicos que não são instâncias do Amazon EC2). Quero que o AWS CodeDeploy o provisione uma frota de substituição de instâncias durante uma implantação azul/verde. Consulte Criar uma instância do Amazon EC2 (AWS CLI ou console do Amazon EC2) (p. 142). Consulte Configurar uma instância do Amazon EC2 para trabalhar com o AWS CodeDeploy (p. 153). Consulte Trabalhando com instâncias locais para o AWS CodeDeploy (p. 156). Consulte Trabalhando com implantações (p. 225). Para preparar instâncias do Amazon EC2 em grupos de Auto Scaling, você deve seguir algumas etapas adicionais. Para obter mais informações, consulte Auto Scaling (p. 38). Tópicos Trabalhando com instâncias do Amazon EC2 para o AWS CodeDeploy (p. 141) Trabalhando com instâncias locais para o AWS CodeDeploy (p. 156) Exibir Detalhes da Instância com o AWS CodeDeploy (p. 183) Integridade da instância do AWS CodeDeploy (p. 184) Trabalhando com instâncias do Amazon EC2 para o AWS CodeDeploy Uma instância do Amazon EC2 é um ambiente de computação virtual que você cria e configura usando o serviço Amazon Elastic Compute Cloud. O Amazon EC2 fornece capacidade de computação escalável na nuvem da Amazon Web Services (AWS). Você pode usar o Amazon EC2 para iniciar quantos servidores virtuais forem necessários para as suas implantações do AWS CodeDeploy. Para obter mais informações sobre o Amazon EC2, consulte o documento Guia de conceitos básicos do &EC2. As instruções nesta seção mostram como criar e configurar instâncias do Amazon EC2 para uso nas suas implantações do AWS CodeDeploy. Tópicos Criar uma instância do Amazon EC2 para o AWS CodeDeploy (AWS CLI ou console do Amazon EC2) (p. 142) 141

150 Criar uma instância do Amazon EC2 (AWS CLI ou console do Amazon EC2) Criar uma instância do Amazon EC2 para o AWS CodeDeploy (template do AWS CloudFormation) (p. 147) Configurar uma instância do Amazon EC2 para trabalhar com o AWS CodeDeploy (p. 153) Criar uma instância do Amazon EC2 para o AWS CodeDeploy (AWS CLI ou console do Amazon EC2) Essas instruções mostram como iniciar uma nova instância do Amazon EC2 configurada para uso em implantações do AWS CodeDeploy. Você pode usar nosso template do AWS CloudFormation para iniciar uma instância do Amazon EC2 executando o Amazon Linux ou o Windows Server que já esteja configurada para uso em implantações do AWS CodeDeploy. Não fornecemos um template do AWS CloudFormation para instâncias do Amazon EC2 executando o Ubuntu Server ou o Red Hat Enterprise Linux (RHEL). Para alternativas ao uso do template, consulte Trabalhando com instâncias (p. 139). Você pode usar o console do Amazon EC2, a AWS CLI ou APIs do Amazon EC2 para iniciar uma instância do Amazon EC2. Para criar uma instância do Amazon EC2 para implantações do AWS CodeDeploy na região Região China (Pequim), consulte o tópico sobre como criar uma instância do Amazon EC2 para o AWS CodeDeploy, no documento AWS CodeDeploy User Guide for the Região China (Pequim). Iniciar uma instância do Amazon EC2 (console) Se você ainda não fez isso, siga as instruções em Conceitos básicos (p. 13) para instalar e configurar a AWS CLI e criar um perfil de instâncias do IAM. 1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon EC2 em console.aws.amazon.com/ec2/. 2. No painel de navegação, escolha Instances e, em seguida, escolha Launch Instance. 3. Na página Step 1: Choose an Amazon Machine Image (AMI), na guia Quick Start, localize o sistema operacional e a versão que você deseja usar e depois escolha Select. 4. Na página Step 2: Choose an Instance Type, escolha qualquer tipo de instância do Amazon EC2 disponível e depois escolha Next: Configure Instance Details. 5. Na página Step 3: Configure Instance Details, na lista IAM role, escolha o perfil de instâncias do IAM que você criou em Etapa 4: criar um perfil de instância do IAM (p. 19). Se nem um Launch into EC2-Classic, nem uma nuvem virtual privada (VPC) padrão aparecer na lista Network, e você não puder selecionar um tipo de instância do Amazon EC2 diferente que ofereça suporte para inicialização no EC2-Classic, será necessário escolher uma VPC e uma sub-rede da Amazon, ou escolher Create new VPC e/ou Create new subnet. Para obter mais informações, consulte Sua VPC e suas sub-redes. 6. Ampliar Advanced Details. 7. Ao lado de User data, com a opção As text selecionada, digite o seguinte para instalar o agente do AWS CodeDeploy conforme a instância do Amazon EC2 for iniciada. Amazon Linux e RHEL Estes são os dados do usuário para o Amazon Linux e o RHEL: 142

151 Criar uma instância do Amazon EC2 (AWS CLI ou console do Amazon EC2) #!/bin/bash yum -y update yum install -y ruby cd /home/ec2-user curl -O chmod +x./install./install auto Ubuntu Server Estes são os dados do usuário para o Ubuntu Server: Important Se você estiver instalando o agente do AWS CodeDeploy no Ubuntu Server 14.04, altere a terceira linha para o seguinte: apt-get -y install ruby2.0 #!/bin/bash apt-get -y update apt-get -y install ruby apt-get -y install wget cd /home/ubuntu wget chmod +x./install./install auto Windows Server Estes são os dados do usuário para o Windows Server: <powershell> New-Item -Path c:\temp -ItemType "directory" -Force powershell.exe -Command Read-S3Object -BucketName bucket-name/latest -Key codedeployagent.msi -File c:\temp\codedeploy-agent.msi Start-Process -Wait -FilePath c:\temp\codedeploy-agent.msi -WindowStyle Hidden </powershell> 8. Deixe o resto dos itens dessa página inalterados e escolha Next: Add Storage. 9. Deixe a página Step 4: Add Storage inalterada e escolha Next: Add Tags. 10. Na página Step 5: Add Tags, com Name exibido na caixa Key, digite CodeDeployDemo na caixa Value e depois escolha Next: Configure Security Group. Important O conteúdo das caixas Key e Value fazem distinção entre maiúsculas e minúsculas. 11. Na página Step 6: Configure Security Group, deixe a opção Create a new security group selecionada. Uma função SSH padrão será configurada para instâncias do Amazon EC2 executando o Amazon Linux, o Ubuntu Server ou o RHEL. Uma função do RDP padrão será configurada para instâncias do Amazon EC2 executando o Windows Server. 12. Se quiser abrir a porta HTTP, escolha o botão Add Rule e, na lista suspensa Type, escolha HTTP. Aceite o valor Source padrão de Anywhere /0 e depois escolha Review and Launch. Em um ambiente de produção, recomendamos restringir o acesso às portas SSH, RDP e HTTP, em vez de especificar Anywhere /0. O AWS CodeDeploy não exige acesso sem 143

152 Criar uma instância do Amazon EC2 (AWS CLI ou console do Amazon EC2) restrições a portas nem acesso HTTP. Para obter mais informações, consulte Dicas para proteger sua instância do Amazon EC2. Se uma caixa de diálogo Boot from General Purpose (SSD) aparecer, siga as instruções e depois escolha Next. 13. Deixe a página Step 7: Review Instance Launch inalterada e escolha Launch. 14. Na caixa de diálogo Select an existing key pair or create a new key pair, escolha Choose an existing key pair ou Create a new key pair. Se já tiver configurado um par de chaves de instância do Amazon EC2, você pode escolhê-lo aqui. Caso ainda não possua um par de chaves de instância do Amazon EC2, escolha Create a new key pair e dê a ele um nome reconhecível. Escolha Download Key Pair para baixar o um de chaves de instância do Amazon EC2 no seu computador. Important Você deve ter um par de chaves se deseja acessar sua instância do Amazon EC2 com o SSH ou o RDP. 15. Escolha Launch Instances. 16. Escolha o ID da sua instância do Amazon EC2. Não continue até que a instância tenha sido iniciada e aprovada em todas as verificações. Para verificar se o agente do AWS CodeDeploy está em execução na instância, consulte Verificar se o agente do AWS CodeDeploy está em execução (p. 125) e depois retorne a esta página. Depois que você fizer isso, a instância do Amazon EC2 estará pronta para uso em implantações do AWS CodeDeploy. Iniciar uma instância do Amazon EC2 (CLI) Se você ainda não fez isso, siga as instruções em Conceitos básicos (p. 13) para instalar e configurar a AWS CLI e criar um perfil de instâncias do IAM. 1. Se estiver criando uma instância do Amazon EC2 que executa o Windows Server, chame os comandos create-security-group e authorize-security-group-ingress para criar um grupo de segurança que permita acesso ao RDP (que não é permitido por padrão) e, como alternativa, acesso ao HTTP. Por exemplo: aws ec2 create-security-group --group-name CodeDeployDemo-Windows-Security-Group -- description "For launching Windows Server images for use with AWS CodeDeploy" aws ec2 authorize-security-group-ingress --group-name CodeDeployDemo-Windows-Security- Group --to-port ip-protocol tcp --cidr-ip /0 --from-port 3389 aws ec2 authorize-security-group-ingress --group-name CodeDeployDemo-Windows-Security- Group --to-port 80 --ip-protocol tcp --cidr-ip /0 --from-port 80 Para fins de demonstração, esses comandos criam um grupo de segurança que permite acesso irrestrito para o RDP por meio da porta 3389 e, alternativamente, para o HTTP por meio da porta 80. Como prática recomendada, recomendamos restringir o acesso às portas RDP e HTTP. O AWS CodeDeploy não exige acesso sem restrições a portas nem acesso HTTP. Para obter mais informações, consulte Dicas para proteger sua instância do Amazon EC2. 2. Na sua máquina de desenvolvimento, crie um arquivo denominado instance-setup.sh (para instâncias do Amazon EC2 que executam o Amazon Linux, Ubuntu Server, or RHEL) ou instancesetup.txt (para instâncias do Amazon EC2 que executam o Windows Server) que inclua o seguinte conteúdo. 144

153 Criar uma instância do Amazon EC2 (AWS CLI ou console do Amazon EC2) À medida que a instância do Amazon EC2 for iniciada, esse script baixará o agente do AWS CodeDeploy da localização do Amazon S3 especificada e depois o instalará na instância. Amazon Linux e RHEL Este é o conteúdo de instance-setup.sh para o Amazon Linux e o RHEL: #!/bin/bash yum -y update yum install -y ruby cd /home/ec2-user curl -O chmod +x./install./install auto Ubuntu Server Este é o conteúdo de instance-setup.sh para o Ubuntu Server: Important Se você estiver instalando o agente do AWS CodeDeploy no Ubuntu Server 14.04, altere a terceira linha do arquivo para o seguinte: apt-get -y install ruby2.0 #!/bin/bash apt-get -y update apt-get -y install ruby apt-get -y install wget cd /home/ubuntu wget chmod +x./install./install auto Windows Server Este é o conteúdo de instance-setup.txt para o Windows Server: <powershell> New-Item -Path c:\temp -ItemType "directory" -Force powershell.exe -Command Read-S3Object -BucketName bucket-name/latest -Key codedeployagent.msi -File c:\temp\codedeploy-agent.msi Start-Process -Wait -FilePath c:\temp\codedeploy-agent.msi -WindowStyle Hidden </powershell> 3. No mesmo diretório no qual você criou o arquivo instance-setup.sh ou instance-setup.txt, você chamará o comando run-instances para criar e iniciar a instância do Amazon EC2. Antes de chamar esse comando, você precisará coletar o seguinte: O ID de uma Imagem de Máquina da Amazon (AMI) (ami-id) que você usará para a instância. Para obter o ID, consulte Encontrando uma AMI adequada. O nome do tipo de instância do Amazon EC2 (instance-type) que você criará, como t1.micro. Para ver uma lista, consulte Tipos de instâncias do Amazon EC2. O nome de um par de chaves de instância do Amazon EC2 (key-name) para habilitar o acesso SSH a uma instância do Amazon EC2 que executa o Amazon Linux, Ubuntu Server ou RHEL ou o acesso RDP a uma instância do Amazon EC2 que executa o Windows Server. 145

154 Criar uma instância do Amazon EC2 (AWS CLI ou console do Amazon EC2) Important Digite apenas o nome do par de chaves, e não sua extensão de arquivo. Para encontrar um nome de par de chaves, abra o console do Amazon EC2 em console.aws.amazon.com/ec2. No painel de navegação, em Network & Security, escolha Key Pairs e anote o nome do par de chaves na lista. Para gerar um par de chaves, consulte Criando seu par de chaves com o Amazon EC2. Certifiquese de criar o par de chaves em uma das regiões listadas em Região e endpoints, no documento AWS General Reference. Caso contrário, você não poderá usar o par de chaves de instância do Amazon EC2 com o AWS CodeDeploy. Para chamar o comando run-instances para iniciar uma instância do Amazon EC2 que executa o Amazon Linux, Ubuntu Server ou RHEL e anexar um perfil de instâncias do IAM criado em Etapa 4: criar um perfil de instância do IAM (p. 19). Por exemplo: Important Não se esqueça de incluir file:// antes do nome de arquivo. Ele é obrigatório nesse comando. aws ec2 run-instances \ --image-id ami-id \ --key-name key-name \ --user-data file://instance-setup.sh \ --count 1 \ --instance-type instance-type \ --iam-instance-profile Name=CodeDeployDemo-EC2-Instance-Profile Esse comando cria um grupo de segurança padrão para a instância do Amazon EC2 que permite acesso a várias portas, incluindo acesso irrestrito para SSH por meio da porta 22 e, alternativamente, acesso para HTTP por meio da porta 80. Como prática recomendada, recomendamos restringir o acesso apenas às portas HTTP. O AWS CodeDeploy não exige acesso sem restrições a portas nem acesso à porta HTTP. Para obter mais informações, consulte Dicas para proteger sua instância do Amazon EC2. Para chamar o comando run-instances para iniciar uma instância do Amazon EC2 que executa o Windows Server e anexar um perfil de instâncias do IAM criado em Etapa 4: criar um perfil de instância do IAM (p. 19). Por exemplo: Important Não se esqueça de incluir file:// antes do nome de arquivo. Ele é obrigatório nesse comando. aws ec2 run-instances --image-id ami-id --key-name key-name --user-data file:// instance-setup.txt --count 1 --instance-type instance-type --iam-instance-profile Name=CodeDeployDemo-EC2-Instance-Profile --security-groups CodeDeployDemo-Windows- Security-Group Esses comandos iniciam uma única instância do Amazon EC2 com o par de chaves, a AMI e o tipo de instância especificados, com o perfil de instâncias do IAM especificado, e executam o script especificado durante a inicialização. 146

155 Criar uma instância do Amazon EC2 (modelo do AWS CloudFormation) 4. Observe o valor de InstanceID na saída. Se você esquecer esse valor, poderá obtê-lo mais tarde chamando o comando describe-instances para o par de chaves de instância do Amazon EC2. aws ec2 describe-instances --filters "Name=key-name,Values=keyName" --query "Reservations[*].Instances[*].[InstanceId]" --output text Use o ID de instância para chamar o comando create-tags, que marca a instância do Amazon EC2 de forma que o AWS CodeDeploy possa encontrá-la mais tarde durante uma implantação. No exemplo a seguir, a tag se chama CodeDeployDemo, mas você pode especificar qualquer tag de instância do Amazon EC2 que desejar. aws ec2 create-tags --resources instance-id --tags Key=Name,Value=CodeDeployDemo Para verificar se a instância do Amazon EC2 foi iniciada e aprovada em todas as verificações, use o ID de instância para chamar o comando describe-instance-status. aws ec2 describe-instance-status --instance-ids instance-id --query "InstanceStatuses[*].InstanceStatus.[Status]" --output text Se a instância tiver sido iniciada e aprovada em todas as verificações, ok aparecerá na saída: Para verificar se o agente do AWS CodeDeploy está em execução na instância, consulte Verificar se o agente do AWS CodeDeploy está em execução (p. 125) e depois retorne a esta página. Depois que você fizer isso, a instância do Amazon EC2 estará pronta para uso em implantações do AWS CodeDeploy. Criar uma instância do Amazon EC2 para o AWS CodeDeploy (template do AWS CloudFormation) Você pode usar nosso template do AWS CloudFormation para iniciar rapidamente uma instância do Amazon EC2 executando o Amazon Linux ou o Windows Server. É possível usar a AWS CLI, o console do AWS CodeDeploy ou as APIs da AWS para iniciar a instância com o modelo. Além de iniciar a instância, o template faz o seguinte: Instrui o AWS CloudFormation a dar permissão à instância para participar de implantações do AWS CodeDeploy. Marca a instância, para que o AWS CodeDeploy possa encontrá-la mais tarde durante uma implantação. Instala e executa o agente do AWS CodeDeploy na instância. Você não precisa usar nosso AWS CloudFormation para configurar uma instância do Amazon EC2. Para conhecer alternativas, consulte Trabalhando com instâncias (p. 139). Não fornecemos um template do AWS CloudFormation para instâncias do Amazon EC2 executando o Ubuntu Server ou o Red Hat Enterprise Linux (RHEL). Important Se você usar o modelo do AWS CloudFormation para executar instâncias do Amazon EC2, o usuário do IAM que está chamando deve ter acesso aos serviços e ações do AWS CloudFormation e do AWS dos quais o AWS CloudFormation depende. Se você não acompanhou as etapas em Etapa 1: provisionar um usuário do IAM (p. 13) para provisionar o usuário do IAM responsável pela chamada, você deve pelo menos anexar a seguinte política: { 147

156 Criar uma instância do Amazon EC2 (modelo do AWS CloudFormation) } "Version": " ", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*", "codedeploy:*", "ec2:*", "iam:addroletoinstanceprofile", "iam:createinstanceprofile", "iam:createrole", "iam:deleteinstanceprofile", "iam:deleterole", "iam:deleterolepolicy", "iam:getrole", "iam:passrole", "iam:putrolepolicy", "iam:removerolefrominstanceprofile" ], "Resource": "*" } ] Tópicos Iniciar uma instância do Amazon EC2 com o template do AWS CloudFormation (console) (p. 148) Iniciar uma instância do Amazon EC2 com o template do AWS CloudFormation (AWS CLI) (p. 150) Iniciar uma instância do Amazon EC2 com o template do AWS CloudFormation (console) Antes de começar, você precisa ter um par de chaves de instância para habilitar o acesso SSH à instância do Amazon EC2 que executa o Amazon Linux ou para habilitar o acesso RDP à instância que executa o Windows Server. Digite apenas o nome do par de chaves, e não sua extensão de arquivo. Para encontrar um nome de par de chaves, abra o console do Amazon EC2 em console.aws.amazon.com/ec2. No painel de navegação, em Rede e segurança, escolha Par de chaves e anote o nome do par de chaves na lista. Para gerar um novo par de chaves, consulte Criando seu par de chaves com o Amazon EC2. Certifiquese de que o par de chaves seja criado em uma das regiões listadas em Região e endpoints, no documento AWS General Reference. Caso contrário, você não poderá usar o par de chaves de instância com o AWS CodeDeploy. 1. Faça login no Console de gerenciamento da AWS e abra o console da AWS CloudFormation em Important Entre no Console de gerenciamento da AWS com a mesma conta usada em Conceitos básicos (p. 13). Na barra de navegação, no seletor de região, escolha uma das regiões listadas em Região e endpoints, no documento AWS General Reference. O AWS CodeDeploy apenas oferece suporte a essas regiões. 2. Selecione Criar Stack. 3. Em Escolher um modelo, escolha Especificar um URL do modelo do Amazon S3. Na caixa, digite o local do modelo do AWS CloudFormation para sua região e, em seguida, escolha Avançar. 148

157 Criar uma instância do Amazon EC2 (modelo do AWS CloudFormation) Region Região do Leste dos EUA (Ohio) Leste dos EUA (Norte da Virgínia) Região Região do Oeste dos EUA (Norte da Califórnia) Região Oeste dos EUA (Oregon) Região do Canadá (Central) Região UE (Irlanda) Região da UE (Londres) Região UE (Frankfurt) Região Ásia-Pacífico (Tóquio) Região da Ásia-Pacífico (Seul) Região Ásia-Pacífico (Cingapura) Região Ásia-Pacífico (Sydney) Região da Ásia-Pacífico (Mumbai) Região América do Sul (São Paulo) Location of AWS CloudFormation template CodeDeploy_SampleCF_Template.json CodeDeploy_SampleCF_Template.json CodeDeploy_SampleCF_Template.json CodeDeploy_SampleCF_Template.json CodeDeploy_SampleCF_Template.json CodeDeploy_SampleCF_Template.json CodeDeploy_SampleCF_Template.json CodeDeploy_SampleCF_Template.json aws-codedeploy-ap-northeast-1/templates/ latest/codedeploy_samplecf_template.json aws-codedeploy-ap-northeast-2/templates/ latest/codedeploy_samplecf_template.json aws-codedeploy-ap-southeast-1/templates/ latest/codedeploy_samplecf_template.json aws-codedeploy-ap-southeast-2/templates/ latest/codedeploy_samplecf_template.json CodeDeploy_SampleCF_Template.json CodeDeploy_SampleCF_Template.json 4. Na caixa Nome da pilha, digite um nome para a pilha (por exemplo, CodeDeployDemoStack). 149

158 Criar uma instância do Amazon EC2 (modelo do AWS CloudFormation) 5. Em Parâmetros, digite o seguinte e escolha Avançar. Para InstanceCount, digite o número de instâncias que você deseja iniciar. (Recomendamos deixar o padrão de 1.) Para InstanceType, digite o tipo de instância que você deseja iniciar (ou deixe o padrão de t1.micro). Para KeyPairName, digite o nome da chave da instância. Para a caixa OperatingSystem, digite Windows para iniciar instâncias executando o Windows Server (ou deixe o padrão de Linux). Para SSHLocation, digite o intervalo de endereços IP a ser usado para se conectar à instância com o SSH ou o RDP (ou deixe o padrão de /0). Important O padrão de /0 é fornecido apenas para fins de demonstração. O AWS CodeDeploy não exige que as instâncias do Amazon EC2 tenham acesso irrestrito a portas. Como prática recomendada, recomendamos restringir o acesso às portas SSH (e HTTP). Para obter mais informações, consulte Dicas para proteger sua instância do Amazon EC2. Para TagKey, digite a chave de tag de instância que o AWS CodeDeploy usará para identificar as instâncias durante a implantação (ou deixe o padrão de Nome). Para TagValue, digite o valor de tag de instância que o AWS CodeDeploy usará para identificar as instâncias durante a implantação (ou deixe o padrão de CodeDeployDemo). 6. Na página Opções, deixe as caixas de opções em branco e escolha Avançar. Important Tags do AWS CloudFormation são diferentes de tags do AWS CodeDeploy. O AWS CloudFormation usa tags para simplificar a administração da sua infraestrutura. O AWS CodeDeploy usa tags para identificar instâncias do Amazon EC2. Você especificou tags do AWS CodeDeploy na página Especificar parâmetros. 7. Na página Revisão, em Capacidades, marque a caixa Reconheço que o AWS CloudFormation possa criar recursos do IAM e, em seguida, selecione Criar. Depois que o AWS CloudFormation tiver criado a pilha e iniciado as instâncias do Amazon EC2, no console do AWS CloudFormation, CREATE_COMPLETE aparecerá na coluna Status. Esse processo pode levar alguns minutos. Para verificar se o agente do AWS CodeDeploy está em execução nas instâncias do Amazon EC2, consulte Gerenciando operações do agente do AWS CodeDeploy (p. 125) e depois continue em Criar um aplicativo (p. 194). Iniciar uma instância do Amazon EC2 com o template do AWS CloudFormation (AWS CLI) Siga as instruções em Conceitos básicos (p. 13) para instalar e configurar a AWS CLI para uso com o AWS CodeDeploy. Antes de chamar o comando create-stack, você precisa ter um par de chaves de instância do Amazon EC2 para habilitar o acesso SSH à instância do Amazon EC2 que executa o Amazon Linux ou para habilitar o acesso RDP à instância do Amazon EC2 que executa o Windows Server. Digite apenas o nome do par de chaves, e não sua extensão de arquivo. Para encontrar um nome de par de chaves, abra o console do Amazon EC2 em console.aws.amazon.com/ec2. No painel de navegação, em Rede e segurança, escolha Par de chaves e anote o nome do par de chaves na lista. 150

159 Criar uma instância do Amazon EC2 (modelo do AWS CloudFormation) Para gerar um par de chaves, consulte Criando seu par de chaves com o Amazon EC2. Certifique-se de que o par de chaves seja criado em uma das regiões listadas em Região e endpoints, no documento AWS General Reference. Caso contrário, você não poderá usar o par de chaves de instância com o AWS CodeDeploy. 1. Use o nosso template do AWS CloudFormation em uma chamada para o comando create-stack. Essa pilha iniciará uma nova instância do Amazon EC2 com o agente do AWS CodeDeploy instalado. Para iniciar uma instância do Amazon EC2 executando o Amazon Linux: aws cloudformation create-stack \ --stack-name CodeDeployDemoStack \ --template-url templateurl \ --parameters ParameterKey=InstanceCount,ParameterValue=1 ParameterKey=InstanceType,ParameterValue=t1.micro \ ParameterKey=KeyPairName,ParameterValue=keyName ParameterKey=OperatingSystem,ParameterValue=Linux \ ParameterKey=SSHLocation,ParameterValue= /0 ParameterKey=TagKey,ParameterValue=Name \ ParameterKey=TagValue,ParameterValue=CodeDeployDemo \ --capabilities CAPABILITY_IAM Para iniciar uma instância do Amazon EC2 executando o Windows Server: aws cloudformation create-stack --stack-name CodeDeployDemoStack --templateurl template-url --parameters ParameterKey=InstanceCount,ParameterValue=1 ParameterKey=InstanceType,ParameterValue=t1.micro ParameterKey=KeyPairName,ParameterValue=keyName ParameterKey=OperatingSystem,ParameterValue=Windows ParameterKey=SSHLocation,ParameterValue= /0 ParameterKey=TagKey,ParameterValue=Name ParameterKey=TagValue,ParameterValue=CodeDeployDemo --capabilities CAPABILITY_IAM template-url é o local do modelo do AWS CloudFormation para sua região: Region Região do Leste dos EUA (Ohio) Leste dos EUA (Norte da Virgínia) Região Região do Oeste dos EUA (Norte da Califórnia) Região Oeste dos EUA (Oregon) Região do Canadá (Central) Location of AWS CloudFormation template CodeDeploy_SampleCF_Template.json CodeDeploy_SampleCF_Template.json CodeDeploy_SampleCF_Template.json CodeDeploy_SampleCF_Template.json CodeDeploy_SampleCF_Template.json 151

160 Criar uma instância do Amazon EC2 (modelo do AWS CloudFormation) Region Região UE (Irlanda) Região da UE (Londres) Região UE (Frankfurt) Região Ásia-Pacífico (Tóquio) Região da Ásia-Pacífico (Seul) Região Ásia-Pacífico (Cingapura) Região Ásia-Pacífico (Sydney) Região da Ásia-Pacífico (Mumbai) Região América do Sul (São Paulo) Location of AWS CloudFormation template CodeDeploy_SampleCF_Template.json CodeDeploy_SampleCF_Template.json CodeDeploy_SampleCF_Template.json aws-codedeploy-ap-northeast-1/templates/ latest/codedeploy_samplecf_template.json aws-codedeploy-ap-northeast-2/templates/ latest/codedeploy_samplecf_template.json aws-codedeploy-ap-southeast-1/templates/ latest/codedeploy_samplecf_template.json aws-codedeploy-ap-southeast-2/templates/ latest/codedeploy_samplecf_template.json CodeDeploy_SampleCF_Template.json CodeDeploy_SampleCF_Template.json Esse comando cria uma pilha do AWS CloudFormation denominada CodeDeployDemoStack, usando o template do AWS CloudFormation no bucket do Amazon S3 especificado. A instância do Amazon EC2 se baseia no tipo de instância t1.micro, mas você pode usar qualquer tipo. Ela é marcada com o valor CodeDeployDemo, mas você pode marcá-la com qualquer valor. Ela tem o par de chaves de instância especificado aplicado. 2. Chame o comando describe-stacks para verificar se a pilha do AWS CloudFormation denominada CodeDeployDemoStack foi criada com sucesso: aws cloudformation describe-stacks --stack-name CodeDeployDemoStack --query "Stacks[0].StackStatus" --output text Não prossiga até que o valor CREATE_COMPLETE seja retornado. Para verificar se o agente do AWS CodeDeploy está em execução na instância do Amazon EC2, consulte Gerenciando operações do agente do AWS CodeDeploy (p. 125) e depois continue em Criar um aplicativo (p. 194). 152

161 Configurar uma instância do Amazon EC2 Configurar uma instância do Amazon EC2 para trabalhar com o AWS CodeDeploy Estas instruções mostram como configurar uma instância do Amazon EC2 executando o Amazon Linux, o Ubuntu Server, o Red Hat Enterprise Linux (RHEL) ou o Windows Server para uso em implantações do AWS CodeDeploy. Se você não tiver uma instância do Amazon EC2, poderá usar o template do AWS CloudFormation para iniciar uma executando o Amazon Linux ou o Windows Server. Não fornecemos um template para o Ubuntu Server ou o RHEL. Para realizar as etapas neste tópico: Um perfil de instâncias do IAM com permissões para participar de implantações do AWS CodeDeploy deve estar conectado à sua instância. Para obter informações sobre como anexar um perfil de instâncias do IAM ao criar uma instância do Amazon EC2, consulte Criar uma instância do Amazon EC2 (AWS CLI ou console do Amazon EC2) (p. 142) e Criar uma instância do Amazon EC2 para o AWS CodeDeploy (template do AWS CloudFormation) (p. 147). Para obter informações sobre como anexar um perfil de instâncias do IAM a uma instância do Amazon EC2 existente, consulte Anexando uma função do IAM a uma instância. Sua instância do Amazon EC2 deve ser marcada. O agente do AWS CodeDeploy deve ser instalado e executado na instância do Amazon EC2. Se o agente não estiver em execução, as implantações parecerão paralisadas em um estado pendente. Etapa 1: verificar se um perfil de instâncias do IAM está anexado à sua instância do Amazon EC2 1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon EC2 em console.aws.amazon.com/ec2/. 2. No painel de navegação, em Instâncias, escolha Instâncias. 3. Navegue e escolha sua instância do Amazon EC2 na lista. 4. No painel de detalhes, na guia Descrição, observe o valor no campo Função do IAM e, então, prossiga para a próxima seção. Se o campo estiver vazio, você poderá anexar um perfil de instâncias do IAM à instância. Para obter informações, consulte Anexar uma função do IAM a uma instância. Etapa 2: verificar se o perfil de instâncias do IAM tem as permissões de acesso corretas 1. Abra o console do IAM em 2. No painel de navegação, selecione Roles. 3. Navegue até o nome da função do IAM anotado na etapa 4 da seção anterior e escolha-o em seguida. 153

162 Configurar uma instância do Amazon EC2 Se quiser usar a função de serviço gerada pelo template do AWS CloudFormation em vez de uma criada seguindo as instruções em Etapa 3: criar uma função de serviço (p. 15), observe o seguinte: Em algumas versões do nosso template do AWS CloudFormation, o nome para exibição do perfil de instâncias do IAM gerado e anexado às instâncias do Amazon EC2 não é igual ao nome para exibição no console do IAM. Por exemplo, o perfil de instâncias do IAM pode ter um nome para exibição de CodeDeploySampleStack-expnyi6- InstanceRoleInstanceProfile-IK8J8A9123EX, enquanto o perfil de instâncias do IAM no console do IAM pode ter um nome para exibição de CodeDeploySampleStack-expnyi6- InstanceRole-C5P33V1L64EX. Para ajudá-lo a identificar o perfil de instâncias no console do IAM, você verá que o prefixo de CodeDeploySampleStack-expnyi6-InstanceRole é o mesmo para ambos. Para obter informações sobre por que esses nomes para exibição podem ser diferentes, consulte Perfis de instâncias. 4. Selecione a guia Relacionamentos de confiança. Se não houver uma entrada em Entidades de confiança em que esteja escrito Provedor(es) de identidade ec2.amazonaws.com, não será possível usar essa instância do Amazon EC2. Pare e crie uma instância do Amazon EC2 usando as informações em Trabalhando com instâncias (p. 139). Se houver uma entrada indicando Provedor(es) de identidade ec2.amazonaws.com, e você for armazenar seus aplicativos somente em repositórios GitHub, pule para Etapa 3: marcar a instância do Amazon EC2 (p. 155). Se houver uma entrada indicando Provedor(es) de identidade ec2.amazonaws.com, e você for armazenar seus aplicativos somente em buckets do Amazon S3, escolha a guia Permissões. 5. Se houver uma política na área Políticas gerenciadas, escolha o nome da política e escolha Editar. Se houver uma política em Políticas em linha, em Ações, escolha Editar política. 6. Se você for armazenar seus aplicativos em buckets do Amazon S3 na caixa Documento da política, certifique-se de que "s3:get*" e "s3:list*" estejam na lista de ações especificadas. Essa lista pode ser semelhante a: {"Statement":[{"Resource":"*","Action":[... Some actions may already be listed here... "s3:get*","s3:list*"... Some more actions may already be listed here... ],"Effect":"Allow"}]} Ou ser algo neste estilo: { } "Version": " ", "Statement": [ { "Action": [... Some actions may already be listed here... "s3:get*", "s3:list*"... Some more actions may already be listed here... ],... } ] 154

163 Configurar uma instância do Amazon EC2 Se "s3:get*" e "s3:list*" não estiverem na lista de ações especificadas, escolha Editar para adicioná-las e escolha Salvar. (Se nem "s3:get*", nem "s3:list*" for ou a última ação na lista, certifique-se de adicionar uma vírgula após a ação, para que o documento de política seja validado.) Recomendamos que você restrinja essa política somente aos buckets do Amazon S3 que a sua instância do Amazon EC2 precisa acessar. Certifique-se de dar acesso aos buckets do Amazon S3 que contêm o agente do AWS CodeDeploy. Caso contrário, um erro poderá ocorrer quando o agente do AWS CodeDeploy for instalado ou atualizado nas instâncias. Para conceder acesso ao perfil da instância do IAM a somente alguns buckets do kit de recursos do AWS CodeDeploy no Amazon S3, use a política a seguir, mas remova as linhas de bucket às quais você deseja impedir o acesso: { } "Version": " ", "Statement": [ { "Effect": "Allow", "Action": [ "s3:get*", "s3:list*" ], "Resource": [ "arn:aws:s3:::codedeploydemobucket/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] Etapa 3: marcar a instância do Amazon EC2 Para obter instruções sobre como marcar a instância do Amazon EC2 para que o AWS CodeDeploy possa encontrá-la durante uma implantação, consulte Trabalhando com tags no console e depois retorne a esta página. Você pode marcar a instância do Amazon EC2 com qualquer chave e valor desejado. Certifiquese de especificar essa chave e esse valor quando fizer a implantação. 155

164 Trabalhando com instâncias locais Etapa 4: instalar o agente AWS CodeDeploy na instância do Amazon EC2 Para obter instruções sobre como instalar o agente do AWS CodeDeploy na instância do Amazon EC2 e verificar se ele está em execução, consulte Gerenciando operações do agente do AWS CodeDeploy (p. 125) e depois continue em Criar um aplicativo (p. 194). Trabalhando com instâncias locais para o AWS CodeDeploy Uma instância local é qualquer dispositivo físico que não seja uma instância do Amazon EC2 e que possa executar o agente do AWS CodeDeploy e se conectar a endpoints de serviços da AWS. A implantação de uma revisão de aplicativo AWS CodeDeploy em uma instância local envolve duas etapas principais: Etapa 1 Configure cada instância local, registre-a no AWS CodeDeploy e marque-a em seguida. Etapa 2: implantar revisões de aplicativos na instância local. Para fazer testes com a criação e implantação de uma revisão de aplicativo de amostra em uma instância local corretamente configurada e registrada, consulte Tutorial: implantar um aplicativo em uma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux) (p. 84). Para obter informações sobre instâncias locais e como elas funcionam com o AWS CodeDeploy, consulte Trabalhando com instâncias locais para o AWS CodeDeploy (p. 156). Se não quiser mais que uma instância local seja usada em implementações, basta remover as tags de instâncias locais dos grupos de implantação. Para uma abordagem mais robusta, remova as tags de instâncias locais da instância. Você também pode cancelar explicitamente o registro de uma instância local para que ela não possa mais ser usada em nenhuma implantação. Para obter mais informações, consulte Gerenciando operações de instâncias locais no AWS CodeDeploy (p. 178). As instruções nesta seção mostram como configurar uma instância local e, em seguida, registrá-la e marcá-la com o AWS CodeDeploy para que ela possa ser usada em implantações. Esta seção também descreve como usar o AWS CodeDeploy para obter informações sobre instâncias locais e cancelar o registro de uma instância local caso você não tenha mais planos para fazer uma implantação nela. Tópicos Pré-requisitos para configurar uma instância local (p. 156) Registrar uma instância local no AWS CodeDeploy (p. 157) Gerenciando operações de instâncias locais no AWS CodeDeploy (p. 178) Pré-requisitos para configurar uma instância local Os seguintes pré-requisitos devem ser atendidos para que você possa registrar uma instância local. Important Se você estiver usando o comando register-on-premises-instance e credenciais temporárias periodicamente atualizadas geradas com o AWS Security Token Service (AWS STS), existem 156

165 Registrar uma instância local outros pré-requisitos. Para obter mais informações, consulte Pré-requisitos de registro do ARN de sessão do IAM (p. 172). Requisitos do dispositivo O dispositivo que você deseja preparar, registrar e marcar como instância local no AWS CodeDeploy deve estar executando um sistema operacional com suporte. Para ver uma lista, consulte Sistemas operacionais com suporte com o agente do AWS CodeDeploy (p. 119). Se o seu sistema operacional não tiver suporte, o agente do AWS CodeDeploy estará disponível como software livre para você adaptá-lo às suas necessidades. Para obter mais informações, consulte o repositório do Agente do AWS CodeDeploy no GitHub. Comunicação de saída A instância local deve poder se conectar a endpoints de serviços da AWS públicos para se comunicar com o AWS CodeDeploy. O agente do AWS CodeDeploy comunica a saída usando HTTPS via porta 443. Controle administrativo A conta local ou de rede usada na instância local para configurar essa instância deve ser capaz de ser executada como sudo ou root (para o Ubuntu Server) ou como administrador (para o Windows Server). Permissões do IAM A identidade do IAM que você usa para registrar a instância local deve receber permissões para concluir o registro (e cancelar o registro da instância local, conforme necessário). Além da política descrita em Conceitos básicos (p. 13), certifique-se que a identidade do IAM responsável pela chamada também tenha a seguinte política adicional anexada: { } "Version": " ", "Statement": [ { "Effect": "Allow", "Action": [ "iam:createaccesskey", "iam:createuser", "iam:deleteaccesskey", "iam:deleteuser", "iam:deleteuserpolicy", "iam:listaccesskeys", "iam:listuserpolicies", "iam:putuserpolicy", "iam:getuser" ], "Resource": "*" } ] Registrar uma instância local no AWS CodeDeploy Para registrar uma instância local, você deve usar uma identidade do IAM para autenticar suas solicitações. É possível escolher entre as seguintes opções para o método de identidade e registro do IAM utilizado: 157

166 Registrar uma instância local Use um ARN de usuário do IAM para autenticar solicitações. Use o comando register para o processo de registro mais automatizado. Ideal para registrar uma única instância local. Para obter mais informações, consulte Usar o comando register (ARN de usuário do IAM) para registrar uma instância local (p. 158). Use o comando register-on-premises-instance para configurar manualmente a maioria das opções de registro. Adequado para registrar um pequeno número de instâncias locais. Para obter mais informações, consulte Usar o comando register-on-premises-instance (ARN de Usuário do IAM) para registrar uma instância local (p. 162). Use um ARN de função do IAM para autenticar solicitações. Use o comando register-on-premises-instance e credenciais temporárias periodicamente atualizadas geradas com o AWS Security Token Service (AWS STS) para configurar manualmente a maioria das opções de registro. Ideal para registrar um grande número de instâncias locais. Para obter mais informações, consulte Usar o comando register-on-premises-instance (ARN de sessão do IAM) para registrar uma instância local (p. 171). Tópicos Usar o comando register (ARN de usuário do IAM) para registrar uma instância local (p. 158) Usar o comando register-on-premises-instance (ARN de Usuário do IAM) para registrar uma instância local (p. 162) Usar o comando register-on-premises-instance (ARN de sessão do IAM) para registrar uma instância local (p. 171) Usar o comando register (ARN de usuário do IAM) para registrar uma instância local Esta seção descreve como configurar uma instância local e registrá-la e marcá-la com o AWS CodeDeploy com o mínimo de esforço. O comando register é mais útil quando você está trabalhando com frotas únicas ou pequenas de instâncias locais. Você pode usar o comando register somente quando está usando um ARN de usuário do IAM para autenticar uma instância. Você não pode usar o comando register com um ARN de sessão do IAM para autenticação. Quando você usa o comando register, pode deixar o AWS CodeDeploy fazer o seguinte: Crie um usuário do IAM no AWS Identity and Access Management para a instância local se você não especificar uma com o comando. Salve as credenciais do usuário do IAM em um arquivo de configuração de instância local. Registre a instância local no AWS CodeDeploy. Adicione tags à instância local se você as especificar como parte do comando. O comando register-on-premises-instance é uma alternativa ao comando register. Você usa o comando register-on-premises-instance se deseja configurar uma instância local e registrá-la e marcá-la no AWS CodeDeploy principalmente por sua conta. O comando register-on-premisesinstance também oferece a opção de usar um ARN de sessão do IAM para registrar instâncias em vez de um ARN de usuário do IAM. Essa abordagem proporciona uma grande vantagem quando você tem grandes frotas de instâncias locais. Especificamente, é possível usar um único ARN de sessão do IAM para autenticar várias instâncias em vez de ter que criar um usuário do IAM para cada instância local, uma a uma. Para obter mais informações, consulte Usar o comando registeron-premises-instance (ARN de Usuário do IAM) para registrar uma instância local (p. 162) e Usar o comando register-on-premises-instance (ARN de sessão do IAM) para registrar uma instância local (p. 171). 158

167 Registrar uma instância local Tópicos Etapa 1: instalar e configurar a AWS CLI na instância local (p. 159) Etapa 2: chamar o comando register (p. 160) Etapa 3: chamar o comando install (p. 161) Etapa 4: implantar revisões de aplicativos na instância local (p. 162) Etapa 5: acompanhar implantações na instância local (p. 162) Etapa 1: instalar e configurar a AWS CLI na instância local 1. Instale a AWS CLI na instância local. Siga as instruções no tópico sobre como começar a configurar com a Interface da Linha de Comando da AWS, no documento AWS Command Line Interface User Guide. Os comandos do AWS CodeDeploy para trabalhar com instâncias locais tornaram-se disponíveis na AWS CLI versão e posteriores. Se a AWS CLI já estiver instalada, chame aws --version para verificar sua versão. 2. Configure a AWS CLI na instância local. Siga as instruções no tópico sobre como configurar com a Interface da Linha de Comando da AWS, no documento AWS Command Line Interface User Guide. Important À medida que você configurar a AWS CLI (por exemplo, chamando o comando aws configure), certifique-se de especificar o ID de chave secreta e a chave de acesso secreta de um usuário do IAM que tenha pelo menos as seguintes permissões de acesso da AWS, além das permissões especificadas em Pré-requisitos para configurar uma instância local (p. 156). Isso permite baixar e instalar o agente do AWS CodeDeploy na instância local. As permissões de acesso podem parecer semelhantes a estas: { "Version": " ", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:*", "iam:createaccesskey", "iam:createuser", "iam:deleteaccesskey", "iam:deleteuser", "iam:deleteuserpolicy", "iam:listaccesskeys", "iam:listuserpolicies", "iam:putuserpolicy", "iam:getuser", "tag:gettags", "tag:getresources" ], "Resource" : "*" }, { "Effect" : "Allow", "Action" : [ "s3:get*", "s3:list*" ], "Resource" : [ "arn:aws:s3:::aws-codedeploy-us-east-2/*", 159

168 Registrar uma instância local } ] } ] "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" Etapa 2: chamar o comando register Para esta etapa, estamos supondo que você esteja registrando a instância local a partir dela mesma. Você também pode registrar uma instância local a partir de um dispositivo ou instância à parte que tenha a AWS CLI instalada e configurada conforme descrito na etapa anterior. Use a AWS CLI para chamar o comando register, especificando: Um nome que identifique de forma exclusiva a instância local para o AWS CodeDeploy (com a opção -- instance-name). Important Para ajudar a identificar a instância local, especialmente para fins de depuração, recomendamos que você use um nome que seja mapeado para algumas características exclusivas da instância local (por exemplo, o número de série ou algum identificador de ativo interno exclusivo, se aplicável). Se você especificar um endereço MAC para um nome, lembre-se de que endereços MAC contêm caracteres não permitidos pelo AWS CodeDeploy, como o caractere de dois pontos (:). Para obter uma lista de caracteres permitidos, consulte Limites (p. 312). Opcionalmente, o ARN de um usuário do IAM existente que você deseja associar a essa instância local (com a opção --iam-user-arn). Para obter o ARN de um usuário do IAM, chame o comando get-user ou escolha o nome do usuário do IAM na seção Usuários do console do IAM e localize o valor ARN do usuário na seção Resumo. Se essa opção não for especificada, o AWS CodeDeploy criará um usuário do IAM em seu nome na sua conta da AWS e o associará à instância local. Important Se você especificar a opção --iam-user-arn, também deverá criar manualmente o arquivo de configuração da instância local, conforme descrito em Etapa 4: adicionar um arquivo de configuração à instância local (p. 167). É possível associar apenas um usuário do IAM a apenas uma instância local. Tentar associar um único usuário do IAM com várias instâncias locais pode resultar em erros, implantações com falhas nessas instâncias locais ou implementações em instâncias locais que estão presas em um estado pendente perpétuo. Opcionalmente, um conjunto de tags de instância local (com a opção --tags) que o AWS CodeDeploy usará para identificar o conjunto de instâncias do Amazon EC2 nas quais implantar. Especifique cada tag com Key=tag-key,Value=tag-value (por exemplo, Key=Name,Value=Beta Key=Name,Value=WestRegion). Se essa opção não for especificada, nenhuma tag será registrada. Para registrar tags mais tarde, chame o comando add-tags-to-on-premises-instances. 160

169 Registrar uma instância local Opcionalmente, a região da AWS na qual a instância local será registrada no AWS CodeDeploy (com a opção --region). Esta deve ser uma das regiões com suporte listadas em Região e endpoints, no documento AWS General Reference (por exemplo, us-west-2). Se essa opção não for especificada, a região da AWS padrão associada ao usuário do IAM responsável pela chamada será usada. Por exemplo: aws deploy register --instance-name AssetTag EX --iam-user-arn arn:aws:iam::80398example:user/codedeployuser-onprem --tags Key=Name,Value=CodeDeployDemo- OnPrem --region us-west-2 O comando register faz o seguinte: 1. Se nenhum usuário do IAM existente for especificado, cria um usuário do IAM, anexa as permissões necessárias a ele e gera uma chave secreta e uma chave de acesso secreta correspondentes. A instância local usará esse usuário do IAM e suas permissões e credenciais para se autenticar e interagir com o AWS CodeDeploy. 2. Registra a instância local no AWS CodeDeploy. 3. Se especificado, associa no AWS CodeDeploy as tags que são especificadas com a opção --tags ao nome da instância local registrada. 4. Se um usuário do IAM tiver sido criado, também criará o arquivo de configuração necessário no mesmo diretório do qual o comando register foi chamado. Se esse comando encontrar erros, será exibida uma mensagem de erro descrevendo como você pode concluir manualmente as etapas restantes. Caso contrário, será exibida uma mensagem de sucesso, descrevendo como chamar o comando install, conforme listado na próxima etapa. Etapa 3: chamar o comando install Na instância local, use a AWS CLI para chamar o comando install, especificando: O caminho para o arquivo de configuração (com a opção --config-file). Opcionalmente, seja para substituir o arquivo de configuração já existente na instância local (com a opção --override-config). Se não for especificado, o arquivo de configuração existente não será substituído. Opcionalmente, a região da AWS na qual a instância local será registrada no AWS CodeDeploy (com a opção --region). Esta deve ser uma das regiões com suporte listadas em Região e endpoints, no documento AWS General Reference (por exemplo, us-west-2). Se essa opção não for especificada, a região da AWS padrão associada ao usuário do IAM responsável pela chamada será usada. Opcionalmente, uma localização personalizada da qual instalar o agente do AWS CodeDeploy (com a opção --agent-installer). Essa opção é útil para instalar uma versão personalizada do agente do AWS CodeDeploy para a qual o AWS CodeDeploy não oferece suporte oficialmente (como uma versão personalizada com base no repositório do agente do AWS CodeDeploy no GitHub). O valor deve ser o caminho para um bucket do Amazon S3 que contém: Um script de instalação do agente do AWS CodeDeploy (para sistemas operacionais Linux ou Unix, semelhante ao arquivo de instalação no repositório do agente do AWS CodeDeploy no GitHub). Um arquivo de pacote de instalador do agente do AWS CodeDeploy (.msi) (para sistemas operacionais Windows). Se essa opção não for especificada, o AWS CodeDeploy fará sua melhor tentativa de instalar a partir de sua própria localização uma versão oficialmente com suporte do agente do AWS CodeDeploy que seja compatível com o sistema operacional na instância local. Por exemplo: 161

170 Registrar uma instância local aws deploy install --override-config --config-file /tmp/codedeploy.onpremises.yml --region us-west-2 --agent-installer s3://aws-codedeploy-us-west-2/latest/codedeploy-agent.msi O comando install faz o seguinte: 1. Verifica se a instância local é uma instância do Amazon EC2. Se for, uma mensagem de erro será exibida. 2. Copia o arquivo de configuração de instâncias locais da localização especificada na instância para a localização na qual o agente do AWS CodeDeploy espera encontrá-lo, desde que o arquivo ainda não esteja nesse localização. Para Ubuntu Server e Red Hat Enterprise Linux (RHEL), trata-se do /etc/codedeploy-agent/ conf/codedeploy.onpremises.yml. Para Windows Server, trata-se do C:\ProgramData\Amazon\CodeDeploy\conf.onpremises.yml. Se a opção --override-config tiver sido especificada, criará ou substituirá o arquivo. 3. Instala o agente do AWS CodeDeploy na instância local e depois o inicia. Etapa 4: implantar revisões de aplicativos na instância local Agora, você está pronto para implantar revisões de aplicativo na instância local registrada e marcada. Você implementa revisões de aplicativos em instâncias locais de uma maneira semelhante à implantação de revisões de aplicativos em instâncias do Amazon EC2. Para obter instruções, consulte Criar uma implantação com o AWS CodeDeploy (p. 226). Essas instruções contêm um link para pré-requisitos, que incluem: criar um aplicativo, criar um grupo de implantação e preparar uma revisão de aplicativo. Se você precisa de uma simples revisão de aplicativo de amostra para implantar, poderá criar aquela descrito em Etapa 2: criar uma revisão de aplicativo de amostra (p. 84), no Tutorial: implantar um aplicativo em uma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux) (p. 84). Important Se você reutilizar uma função de serviço do AWS CodeDeploy existente como parte da criação de um grupo de implantação direcionado a instâncias locais, deverá incluir Tag:get* na parte Action da instrução de política dessa função de serviço. Para obter mais informações, consulte Etapa 3: criar uma função de serviço (p. 15). Etapa 5: acompanhar implantações na instância local Depois de implantar uma revisão de aplicativo em instâncias locais registradas e marcadas, você poderá controlar o progresso da implantação. Você controla as implantações em instâncias locais de uma maneira semelhante ao controle de implantações em instâncias do Amazon EC2. Para obter instruções, consulte Visualizar detalhes de implantações com o AWS CodeDeploy (p. 233). Para obter mais opções, consulte Gerenciando operações de instâncias locais no AWS CodeDeploy (p. 178). Usar o comando register-on-premises-instance (ARN de Usuário do IAM) para registrar uma instância local Siga essas instruções para configurar uma instância local e registrá-la e marcá-la no AWS CodeDeploy principalmente por conta própria, usando credenciais estáticas de usuário do IAM para autenticação. Tópicos 162

171 Registrar uma instância local Etapa 1: criar um usuário do IAM para a instância local (p. 163) Etapa 2: atribuir permissões ao usuário do IAM (p. 163) Etapa 3: obter as credenciais do usuário do IAM (p. 165) Etapa 4: adicionar um arquivo de configuração à instância local (p. 167) Etapa 5: instalar e configurar a AWS CLI (p. 168) Etapa 6: definir a variável de ambiente AWS_REGION (somente para o Ubuntu Server e o RHEL) (p. 169) Etapa 7: instalar o agente do AWS CodeDeploy (p. 169) Etapa 8: registrar a instância local no AWS CodeDeploy (p. 169) Etapa 9: marcar a instância local (p. 170) Etapa 10: implantar revisões de aplicativos na instância local (p. 171) Etapa 11: acompanhar implantações na instância local (p. 171) Etapa 1: criar um usuário do IAM para a instância local Crie um usuário do IAM que a instância local usará para autenticar e interagir com o AWS CodeDeploy. Important Você deve criar um usuário do IAM separado para cada instância local participante. Se você tentar reutilizar um usuário do IAM individual para várias instâncias locais, talvez você não consiga registrar ou marcar essas instâncias locais com sucesso no AWS CodeDeploy. As implementações nessas instâncias locais podem estar presas em um estado pendente perpétuo ou podem falhar completamente. Recomendamos atribuir ao usuário do IAM um nome que identifique sua finalidade, como CodeDeployUser-OnPrem. É possível usar a AWS CLI ou o console do IAM para criar um usuário do IAM. Para obter informações, consulte Criando um usuário do IAM na sua conta da AWS. Important Se você usar a AWS CLI ou o console do IAM para criar um novo usuário do IAM, anote o ARN fornecido para esse usuário. Você precisará dessas informações mais tarde em Etapa 4: adicionar um arquivo de configuração à instância local (p. 167) e Etapa 8: registrar a instância local no AWS CodeDeploy (p. 169). Etapa 2: atribuir permissões ao usuário do IAM Se a instância local for implantar revisões de aplicativos de buckets do Amazon S3, você deverá atribuir ao usuário do IAM as permissões apropriadas para interagir com esses buckets. É possível usar a AWS CLI ou o console do IAM para atribuir permissões. Se estiver implantando revisões de aplicativos apenas de repositórios GitHub, ignore essa etapa e vá diretamente para Etapa 3: obter as credenciais do usuário do IAM (p. 165). (Você ainda precisará de informações sobre o usuário do IAM criado em Etapa 1: criar um usuário do IAM para a instância local (p. 163). Essas informações serão usadas em etapas posteriores.) Para atribuir permissões (CLI) 1. Crie um arquivo com o seguinte conteúdo de política na instância do Amazon EC2 ou no dispositivo que você está usando para chamar a AWS CLI. Chame o arquivo de algo como CodeDeploy-OnPrem- Permissions.json e salve-o em seguida. { 163

172 Registrar uma instância local } "Version": " ", "Statement": [ { "Action": [ "s3:get*", "s3:list*" ], "Effect": "Allow", "Resource": "*" } ] Recomendamos que você restrinja essa política somente para os buckets do Amazon S3 que a sua instância local precisa acessar. Se você restringir essa política, certifique-se também de dar acesso aos buckets do Amazon S3 que contêm o agente do AWS CodeDeploy. Caso contrário, um erro poderá ocorrer sempre que o agente do AWS CodeDeploy for instalado ou atualizado na instância local associada. Por exemplo: { } "Version": " ", "Statement": [ { "Effect": "Allow", "Action": [ "s3:get*", "s3:list*" ], "Resource": [ "arn:aws:s3:::codedeploydemobucket/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] 2. Chame o comando put-user-policy, especificando o nome do usuário do IAM (com a opção --username), um nome para a política (com a opção --policy-name) e o caminho para o documento de política recém-criado (com a opção --policy-document). Por exemplo, supondo que o arquivo CodeDeploy-OnPrem-Permissions.json esteja no mesmo diretório (pasta) do qual você está chamando esse comando: Important Não se esqueça de incluir file:// antes do nome de arquivo. Ele é obrigatório nesse comando. 164

173 Registrar uma instância local aws iam put-user-policy --user-name CodeDeployUser-OnPrem --policy-name CodeDeploy- OnPrem-Permissions --policy-document file://codedeploy-onprem-permissions.json Para atribuir permissões (console) 1. Abra o console do IAM em 2. No painel de navegação, escolha Policies e, em seguida, Create Policy. (Se aparecer um botão Get Started, selecione-o e, em seguida, Create Policy.) 3. Próximo a Create Your Own Policy, escolha Select. 4. Na caixa Nome da política, digite um nome para essa política (por exemplo, CodeDeploy-OnPrem- Permissions). 5. Na caixa Documento da política, digite ou cole a seguinte expressão de permissões, que possibilita ao AWS CodeDeploy implantar revisões de aplicativos de qualquer bucket do Amazon S3 especificado na política na instância local em nome da conta de usuário do IAM: { } "Version": " ", "Statement": [ { "Action": [ "s3:get*", "s3:list*" ], "Effect": "Allow", "Resource": "*" } ] 6. Selecione Create Policy. 7. No painel de navegação, escolha Usuários. 8. Na lista de usuários, navegue até o nome do usuário do IAM que você criou em Etapa 1: criar um usuário do IAM para a instância local (p. 163) e escolha-o em seguida. 9. Na guia Permissões, em Políticas gerenciadas, escolha Anexar política. 10. Selecione a política denominada CodeDeploy-OnPrem-Permissions e escolha Anexar política. Etapa 3: obter as credenciais do usuário do IAM Obtenha o ID de chave secreta e a chave de acesso secreta para o usuário do IAM. Você precisará deles para Etapa 4: adicionar um arquivo de configuração à instância local (p. 167). É possível usar a AWS CLI ou o console do IAM para obter o ID de chave secreta e a chave de acesso secreta. Se você já tem o ID de chave secreta e a chave de acesso secreta, pula etapa e vá diretamente para Etapa 4: adicionar um arquivo de configuração à instância local (p. 167). Para obter as credenciais (CLI) 1. Chame o comando list-access-keys, especificando o nome do usuário do IAM (com a opção --username) e consultando apenas os IDs de chave de acesso (com as opções --query e --output). Por exemplo: 165

174 Registrar uma instância local aws iam list-access-keys --user-name CodeDeployUser-OnPrem --query "AccessKeyMetadata[*].AccessKeyId" --output text 2. Se nenhuma chave aparecer na saída ou se informações sobre apenas uma chave aparecerem na saída, chame o comando create-access-key, especificando o nome do usuário do IAM (com a opção --user-name): aws iam create-access-key --user-name CodeDeployUser-OnPrem Na saída da chamada para o comando create-access-key, observe o valor dos campos AccessKeyId e SecretAccessKey. Você precisará dessas informações em Etapa 4: adicionar um arquivo de configuração à instância local (p. 167). Important Esta será a única vez que você terá acesso a essa chave de acesso secreta. Se você esquecer ou perder o acesso a essa chave de acesso secreta, precisará gerar uma nova, seguindo as etapas em Etapa 3: obter as credenciais do usuário do IAM (p. 165). 3. Se duas chaves de acesso já estiverem listadas, você deverá excluir uma delas, chamando o comando delete-access-key, especificando o nome do usuário do IAM (com a opção --user-name) e a ID da chave de acesso a ser excluída (com a opção --access-key-id). Em seguida, chame o comando create-access-key, conforme descrito anteriormente nessa etapa. Aqui está um exemplo de como chamar o comando delete-access-key: aws iam delete-access-key --user-name CodeDeployUser-OnPrem --access-key-id access-key- ID Important Se você chamar o comando delete-access-key para excluir uma dessas chaves de acesso, e uma instância local já estiver usando essa chave de acesso conforme descrito em Etapa 4: adicionar um arquivo de configuração à instância local (p. 167), você precisará seguir novamente as instruções em Etapa 4: adicionar um arquivo de configuração à instância local (p. 167) para especificar um ID de chave de acesso diferente e a chave de acesso secreta associada a esse usuário do IAM. Caso contrário, quaisquer implementações nessa instância local poderão ficar presas em um estado pendente perpétuo ou falhar completamente. Para obter as credenciais (console) Abra o console do IAM em 2. Se a lista de usuários não for exibida, no painel de navegação, escolha Usuários. 3. Na lista de usuários, navegue até o nome do usuário do IAM que você criou em Etapa 1: criar um usuário do IAM para a instância local (p. 163) e escolha-o em seguida. 2. Na guia Credenciais de segurança, se nenhuma chave ou apenas uma chave for listada, escolha Criar chave de acesso. Se duas chaves de acesso estiverem listadas, você deverá excluir uma delas. Escolha Excluir ao lado de uma das chaves de acesso e, em seguida, escolha Criar chave de acesso. Important Se você escolher Excluir ao lado de uma dessas chaves de acesso, e uma instância local já estiver usando essa chave de acesso conforme descrito em Etapa 4: adicionar um arquivo de configuração à instância local (p. 167), você precisará seguir novamente as instruções em 166

175 Registrar uma instância local Etapa 4: adicionar um arquivo de configuração à instância local (p. 167) para especificar um ID de chave de acesso diferente e a chave de acesso secreta associada a esse usuário do IAM. Caso contrário, as implementações nessa instância local poderão ficar presas em um estado pendente perpétuo ou falhar completamente. 3. Escolha Mostrar e anote o ID de chave de acesso e a chave de acesso secreta. Você precisará dessas informações para a próxima etapa. Como alternativa, você pode escolher Fazer download do arquivo.csv para salvar uma cópia do ID de chave de acesso e da chave de acesso secreta. Important A menos que você anote ou baixe as credenciais, este será seu único acesso a essa chave de acesso secreta. Se você esquecer ou perder o acesso a essa chave de acesso secreta, precisará gerar uma nova, seguindo as etapas em Etapa 3: obter as credenciais do usuário do IAM (p. 165). 4. Escolha Fechar para retornar à página Usuários > Nome de usuário do IAM. Etapa 4: adicionar um arquivo de configuração à instância local Adicione um arquivo de configuração à instância local usando permissões raiz ou de administrador. Esse arquivo de configuração será usado para declarar as credenciais do usuário do IAM e a região da AWS de destino a ser usada para o AWS CodeDeploy. O arquivo deve ser adicionado a um local específico na instância local. O arquivo deve incluir o ARN do usuário do IAM, o ID de chave secreta, a chave de acesso secreta e a região da AWS de destino. O arquivo deve seguir um formato específico. 1. Crie um arquivo chamado codedeploy.onpremises.yml (para uma instância local do Ubuntu Server ou RHEL) ou conf.onpremises.yml (para uma instância local do Windows Server) na seguinte localização da instância local: Para o Ubuntu Server: /etc/codedeploy-agent/conf Para o Windows Server: C:\ProgramData\Amazon\CodeDeploy 2. Use um editor de texto para adicionar as seguintes informações ao arquivo codedeploy.onpremises.yml ou conf.onpremises.yml recém-criado: --- aws_access_key_id: secret-key-id aws_secret_access_key: secret-access-key iam_user_arn: iam-user-arn region: supported-region Onde: secret-key-id é o ID de chave secreta do usuário do IAM correspondente que você anotou em Etapa 1: criar um usuário do IAM para a instância local (p. 163) ou Etapa 3: obter as credenciais do usuário do IAM (p. 165). secret-access-key é a chave de acesso secreta do usuário do IAM correspondente que você anotou em Etapa 1: criar um usuário do IAM para a instância local (p. 163) ou Etapa 3: obter as credenciais do usuário do IAM (p. 165). iam-user-arn é o ARN do usuário do IAM anotado anteriormente em Etapa 1: criar um usuário do IAM para a instância local (p. 163). supported-region é o identificador de uma região com suporte pelo AWS CodeDeploy, na qual seus aplicativos AWS CodeDeploy, grupos de implantação e revisões de aplicativo estão localizados (por exemplo, us-west-2). Para obter uma lista de regiões, consulte Região e endpoints, no documento AWS General Reference. 167

176 Registrar uma instância local Important Se você escolheu Excluir ao lado de uma das chaves de acesso em Etapa 3: obter as credenciais do usuário do IAM (p. 165) e sua instância local já estiver usando o ID da chave de acesso e a chave de acesso secreta associados, será necessário seguir as instruções em Etapa 4: adicionar um arquivo de configuração à instância local (p. 167) para especificar um ID de chave de acesso e uma chave de acesso secreta diferentes associados a esse usuário do IAM. Caso contrário, quaisquer implementações na sua instância local poderão ficar presas em um estado pendente perpétuo ou falhar completamente. Etapa 5: instalar e configurar a AWS CLI Instale e configure a AWS CLI na instância local. (A AWS CLI será usada em Etapa 7: instalar o agente do AWS CodeDeploy (p. 169) para baixar e instalar o agente do AWS CodeDeploy na instância local.) 1. Para instalar a AWS CLI na instância local, siga as instruções no tópico sobre como começar a configurar com a Interface da Linha de Comando da AWS, no documento AWS Command Line Interface User Guide. Os comandos do AWS CodeDeploy para trabalhar com instâncias locais tornaram-se disponíveis na versão da AWS CLI. Se tiver uma versão da AWS CLI já instalada, você poderá verificar sua versão chamando aws --version. 2. Para configurar a AWS CLI na instância local, siga as instruções no tópico sobre como configurar com a Interface da Linha de Comando da AWS, no documento AWS Command Line Interface User Guide. Important À medida que você configurar a AWS CLI (por exemplo, chamando o comando aws configure), certifique-se de especificar o ID de chave secreta e a chave de acesso secreta de um usuário do IAM que tenha pelo menos as seguintes permissões de acesso da AWS, além das permissões de acesso especificadas no Pré-requisitos para configurar uma instância local (p. 156). Isso permite baixar e instalar o agente do AWS CodeDeploy na instância local: { "Version": " ", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:*" ], "Resource" : "*" }, { "Effect" : "Allow", "Action" : [ "s3:get*", "s3:list*" ], "Resource" : [ "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", 168

177 Registrar uma instância local } ] } ] "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" Essas permissões de acesso podem ser atribuídas ao usuário do IAM que você criou em Etapa 1: criar um usuário do IAM para a instância local (p. 163) ou a um usuário do IAM diferente. Para atribuir essas permissões a um usuário do IAM, siga as instruções em Etapa 1: criar um usuário do IAM para a instância local (p. 163), usando essas permissões de acesso em vez das especificadas nesta etapa. Etapa 6: definir a variável de ambiente AWS_REGION (somente para o Ubuntu Server e o RHEL) Se não estiver executando o Ubuntu Server ou o RHEL na sua instância local, ignore esta etapa e vá diretamente para Etapa 7: instalar o agente do AWS CodeDeploy (p. 169). Instale o agente do AWS CodeDeploy em uma instância local do Ubuntu Server ou RHEL e permita que essa instância atualize o agente do AWS CodeDeploy sempre que uma nova versão se tornar disponível. Isso é feito configurando a variável de ambiente AWS_REGION na instância como o identificador de uma das regiões com suporte pelo AWS CodeDeploy. Recomendamos que você defina o valor como a região na qual seus aplicativos AWS CodeDeploy, grupos de implantação e revisões de aplicativo estão localizados (por exemplo, us-west-2). Para obter uma lista de regiões, consulte Região e endpoints, no documento AWS General Reference. Para definir a variável de ambiente, chame o seguinte usando o terminal: export AWS_REGION=supported-region Em que supported-region é o identificador da região (por exemplo, us-west-2). Etapa 7: instalar o agente do AWS CodeDeploy Instale o agente do AWS CodeDeploy na instância local: Para uma instância local do Ubuntu Server, siga as instruções em Instalar ou reinstalar o agente do AWS CodeDeploy para o Ubuntu Server (p. 129) e depois retorne a esta página. Para uma instância local do RHEL, siga as instruções em Instalar ou reinstalar o agente do AWS CodeDeploy para Amazon Linux ou RHEL (p. 128) e depois retorne a esta página. Para uma instância local do Windows Server, siga as instruções em Instalar ou reinstalar o agente do AWS CodeDeploy para o Windows Server (p. 130) e depois retorne a esta página. Etapa 8: registrar a instância local no AWS CodeDeploy As instruções nesta etapa supõem que você esteja registrando a instância local a partir dela mesma. Você pode registrar uma instância local a partir de um dispositivo ou instância à parte que tenha a AWS CLI instalada e configurada, conforme descrito em Etapa 5: instalar e configurar a AWS CLI (p. 168). 169

178 Registrar uma instância local Use a AWS CLI para registrar a instância local no AWS CodeDeploy, para que ela possa ser usada em implantações. 1. Antes de poder usar a AWS CLI, você precisará do ARN do usuário do IAM criado em Etapa 1: criar um usuário do IAM para a instância local (p. 163). Se você ainda não possui o ARN do usuário, chame o comando get-user, especificando o nome do usuário do IAM (com a opção --user-name) e consultando o ARN do usuário (com as opções --query e --output): aws iam get-user --user-name CodeDeployUser-OnPrem --query "User.Arn" --output text 2. Chame o comando register-on-premises-instance, especificando o seguinte: Um nome que identifique de forma exclusiva a instância local (com a opção --instance-name). Important Para ajudar a identificar a instância local, especialmente para fins de depuração, recomendamos que você especifique um nome que seja mapeado para alguma característica exclusiva da instância local (por exemplo, o número de série ou um identificador interno de ativo, se aplicável). Se você especificar um endereço MAC como um nome, lembre-se de que endereços MAC contêm caracteres não permitidos pelo AWS CodeDeploy, como o caractere de dois pontos (:). Para obter uma lista de caracteres permitidos, consulte Limites (p. 312). O ARN do usuário do IAM que você criou em Etapa 1: criar um usuário do IAM para a instância local (p. 163) (com a opção --iam-user-arn). Por exemplo: aws deploy register-on-premises-instance --instance-name AssetTag EX --iamuser-arn arn:aws:iam::80398example:user/codedeployuser-onprem Etapa 9: marcar a instância local Você pode usar a AWS CLI ou o console do AWS CodeDeploy para marcar a instância local. (O AWS CodeDeploy usa tags de instância local para identificar os destinos de implantação durante uma implantação.) Para marcar a instância local (CLI) Chame o comando add-tags-to-on-premises-instances, especificando o seguinte: O nome que identifica de forma exclusiva a instância local (com a opção --instance-names). O nome da chave da tag de instância local e o valor da tag que você deseja usar (com a opção --tags). Você deve especificar um nome e um valor. O AWS CodeDeploy não permite tags de instâncias locais que possuam apenas valores. Por exemplo: aws deploy add-tags-to-on-premises-instances --instance-names AssetTag EX -- tags Key=Name,Value=CodeDeployDemo-OnPrem Para marcar a instância local (console) 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. 170

179 Registrar uma instância local Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy escolha Instâncias locais. 3. Na lista de instâncias locais, escolha a seta ao lado da instância local que você deseja marcar. 4. Na lista de tags, selecione ou digite a chave e o valor da tag desejada. Depois que você digitar a chave e o valor da tag, outra linha será exibida. Isso pode ser repetido para até 10 tags. Para remover uma tag, escolha o ícone Excluir ( ). 5. Depois de adicionar as tags, escolha Atualizar tags. Etapa 10: implantar revisões de aplicativos na instância local Agora, você está pronto para implantar revisões de aplicativo na instância local registrada e marcada. Você implementa revisões de aplicativos em instâncias locais de uma maneira semelhante à implantação de revisões de aplicativos em instâncias do Amazon EC2. Para obter instruções, consulte Criar uma implantação com o AWS CodeDeploy (p. 226). Essas instruções incluem um link para pré-requisitos, que incluem: criar um aplicativo, criar um grupo de implantação e preparar uma revisão de aplicativo. Se você precisa de uma simples revisão de aplicativo de amostra para implantar, poderá criar aquela descrito em Etapa 2: criar uma revisão de aplicativo de amostra (p. 84), no Tutorial: implantar um aplicativo em uma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux) (p. 84). Important Se você reutilizar uma função de serviço do AWS CodeDeploy como parte da criação de um grupo de implantação direcionado a instâncias locais, deverá incluir Tag:get* na parte Action da instrução de política dessa função de serviço. Para obter mais informações, consulte Etapa 3: criar uma função de serviço (p. 15). Etapa 11: acompanhar implantações na instância local Depois de implantar uma revisão de aplicativo em instâncias locais registradas e marcadas, você poderá controlar o progresso da implantação. Você controla as implantações em instâncias locais de uma maneira semelhante ao controle de implantações em instâncias do Amazon EC2. Para obter instruções, consulte Visualizar detalhes de implantações com o AWS CodeDeploy (p. 233). Usar o comando register-on-premises-instance (ARN de sessão do IAM) para registrar uma instância local Para obter o controle máximo sobre a autenticação e o registro das suas instâncias locais, você pode usar o comando register-on-premises-instance e credenciais temporárias periodicamente atualizadas geradas com o AWS Security Token Service (AWS STS). Uma função do IAM estática para a instância pressupõe a função dessas credenciais atualizadas do AWS STS para executar operações de implantação do AWS CodeDeploy. Esse método é mais útil quando você precisa registrar um grande número de instâncias. Ele permite que você automatize o processo de registro no AWS CodeDeploy. Você pode usar seu próprio sistema de identidade e autenticação para autenticar instâncias locais e distribuir credenciais de sessão do IAM do serviço para as instâncias, para uso com o AWS CodeDeploy. 171

180 Registrar uma instância local Como alternativa, você pode usar um usuário do IAM compartilhado, distribuído em todas as instâncias locais, para chamar a API AssumeRole do AWS STS de modo a recuperar credenciais de sessão para instâncias locais. Esse método é menos seguro e não é recomendado para ambientes de produção ou críticos. Use as informações nos tópicos a seguir para configurar uma instância local usando credenciais de segurança temporárias geradas com o AWS STS. Tópicos Pré-requisitos de registro do ARN de sessão do IAM (p. 172) Etapa 1: criar a função do IAM que as instâncias locais assumirão (p. 173) Etapa 2: gerar credenciais temporárias para uma instância individual usando o AWS STS (p. 174) Etapa 3: adicionar um arquivo de configuração à instância local (p. 175) Etapa 4: preparar uma instância local para implantações do AWS CodeDeploy (p. 175) Etapa 5: registrar a instância local no AWS CodeDeploy (p. 176) Etapa 6: marcar a instância local (p. 177) Etapa 7: implantar revisões de aplicativos na instância local (p. 178) Etapa 8: acompanhar implantações na instância local (p. 178) Pré-requisitos de registro do ARN de sessão do IAM Além dos pré-requisitos listados em Pré-requisitos para configurar uma instância local (p. 156), os seguintes requisitos adicionais devem ser atendidos: Permissões do IAM A identidade do IAM que você usa para registrar uma instância local deve receber permissões para realizar operações do AWS CodeDeploy. Verifique se a política gerenciada AWSCodeDeployFullAccess está anexada à identidade do IAM. Para obter informações, consulte Políticas gerenciadas da AWS no Guia do usuário do IAM. Sistema para atualizar credenciais temporárias Se você usar um ARN de sessão do IAM para registrar instâncias locais, deverá ter um sistema em vigor para atualizar periodicamente as credenciais temporárias. As credenciais temporárias expiram depois de uma hora ou antes quando um período mais curto é especificado no momento em que as credenciais são geradas. Existem dois métodos para atualizar as credenciais: Método 1: use o sistema de identidade e autenticação instalado na sua rede corporativa com um script CRON que faça uma sondagem periódica do sistema de identidade e autenticação e que copie as credenciais da última sessão para a instância. Isso permite que você integre sua estrutura de identidade e autenticação à AWS sem precisar fazer alterações no agente do AWS CodeDeploy ou no serviço para dar suporte aos tipos de autenticação utilizados na sua organização. Método 2: execute periodicamente um trabalho CRON na instância para chamar o ação AssumeRole do AWS STS e grave as credenciais da sessão em um arquivo que o agente do AWS CodeDeploy possa acessar. Esse método ainda requer um usuário do IAM e a cópia de credenciais na instância local, mas você pode reutilizar o mesmo usuário do IAM e as mesmas credenciais por toda a sua frota de instâncias locais. Para obter informações sobre como criar e trabalhar com credenciais do AWS STS, consulte AWS Security Token Service API Reference e o tópico sobre como usar credenciais de segurança temporárias para solicitar acesso a recursos da AWS. 172

181 Registrar uma instância local Etapa 1: criar a função do IAM que as instâncias locais assumirão É possível usar a CLI da AWS ou o console do IAM para criar uma função do IAM que será usada pelas instâncias locais para autenticação e interação no AWS CodeDeploy. Você só precisa criar uma função do IAM. Cada uma das suas instâncias locais pode assumir essa função para recuperar as credenciais de segurança temporárias que fornecem as permissões concedidas a essa função. A função que você criar exigirá as seguintes permissões para acessar os arquivos necessários para instalar o agente do AWS CodeDeploy: { } "Version": " ", "Statement": [ { "Action": [ "s3:get*", "s3:list*" ], "Effect": "Allow", "Resource": "*" } ] Recomendamos que você restrinja essa política somente para os buckets do Amazon S3 que a sua instância local precisa acessar. Se você restringir essa política, certifique-se de dar acesso aos buckets do Amazon S3 que contêm o agente do AWS CodeDeploy. Caso contrário, um erro poderá ocorrer sempre que o agente do AWS CodeDeploy for instalado ou atualizado na instância local. Para obter informações sobre como controlar o acesso a buckets do Amazon S3, consulte o tópico sobre como gerenciar permissões de acesso aos seus recursos do Amazon S3. Para criar a função do IAM 1. Chame o comando create-role usando a opção --role-name para especificar um nome para a função do IAM (por exemplo, CodeDeployInstanceRole) e a opção --assume-role-policy-document para fornecer as permissões. Ao criar a função do IAM para essa instância, você pode dar a ela o nome CodeDeployInstanceRole e incluir as permissões necessárias em um arquivo chamado CodeDeployRolePolicy.json: aws iam create-role --role-name CodeDeployInstanceRole --assume-role-policy-document file://codedeployrolepolicy.json 2. Na saída da chamada para o comando create-role, anote o valor do campo ARN. Por exemplo: arn:aws:iam:: :role/codedeployinstancerole Você precisará do ARN da função quando usar a API AssumeRole do AWS STS para gerar credenciais de curto prazo para cada instância. Para obter mais informações sobre como criar funções do IAM, consulte o tópico sobre como criar uma função para delegar permissões a um serviço da AWS, no documento Guia do usuário do IAM. Para obter informações sobre como atribuir permissões a uma função existente, consulte put-rolepolicy, no documento AWS Command Line Interface Reference. 173

182 Registrar uma instância local Etapa 2: gerar credenciais temporárias para uma instância individual usando o AWS STS Antes de gerar as credenciais temporárias que serão usadas para registrar uma instância local, você deve criar ou escolher a identidade do IAM (usuário ou função) para a qual você gerará essas credenciais temporárias. A permissão sts:assumerole deve ser incluída nas configurações de política para essa identidade do IAM. Para obter informações sobre como conceder permissões sts:assumerole a uma identidade do IAM, consulte Criando uma função para delegar permissões a um serviço da AWS e AssumeRole. Existem duas maneiras de gerar as credenciais temporárias: Use o comando assum-role com a CLI da AWS. Por exemplo: aws sts assume-role --role-arn arn:aws:iam::12345account:role/role-arn --role-sessionname session-name Onde: 12345ACCOUNT é o número de conta de 12 dígitos da sua organização. role-arn é o ARN da função a ser assumida, que você gerou em Etapa 1: criar a função do IAM que as instâncias locais assumirão (p. 173). session-name é o nome que você deseja dar à sessão de função que está criando agora. Se você usar um script CRON que faz sondagens periódicas no sistema de identidade e autenticação e copia as credenciais da sessão mais recente para a instância (método 1 de atualização de credenciais temporárias, descrito em Pré-requisitos de registro do ARN de sessão do IAM (p. 172)), existe a opção de usar qualquer SDK da AWS com suporte para chamar AssumeRole. Use uma ferramenta fornecida pela AWS. A ferramenta aws-codedeploy-session-helper gera credenciais do AWS STS e as grava em um arquivo que você coloca na instância. Essa ferramenta é mais adequada para o método 2 de atualização de credenciais temporárias, descrito em Pré-requisitos de registro do ARN de sessão do IAM (p. 172). Nesse método, a ferramenta aws-codedeploy-session-helper é colocada em cada instância e executa o comando usando as permissões de um usuário do IAM. Cada instância usa as mesmas credenciais do usuário do IAM em conjunto com essa ferramenta. Para obter mais informações, consulte o repositório GitHub de aws-codedeploy-session-helper. Depois de ter criado as credenciais de sessão do IAM, coloque-as em qualquer parte da instância local. Na próxima etapa, você configurará o agente do AWS CodeDeploy para acessar as credenciais nesse local. Antes de continuar, verifique se o sistema que você usará para atualizar periodicamente as credenciais temporárias está em vigor. Se as credenciais temporárias não forem atualizadas, as implantações na instância local falharão. Para obter mais informações, consulte "Sistema para atualizar credenciais temporárias", em Pré-requisitos de registro do ARN de sessão do IAM (p. 172). 174

183 Registrar uma instância local Etapa 3: adicionar um arquivo de configuração à instância local Adicione um arquivo de configuração à instância local usando permissões raiz ou de administrador. Esse arquivo de configuração é usado para declarar as credenciais do IAM e a região da AWS de destino a ser usada para o AWS CodeDeploy. O arquivo deve ser adicionado a um local específico na instância local. Ele deve incluir o ARN da sessão temporária do IAM, seu ID de chave secreta e a chave de acesso secreta, bem como a região da AWS de destino. Para adicionar um arquivo de configuração 1. Crie um arquivo chamado codedeploy.onpremises.yml (para uma instância local do Ubuntu Server ou RHEL) ou conf.onpremises.yml (para uma instância local do Windows Server) na seguinte localização da instância local: Para o Ubuntu Server: /etc/codedeploy-agent/conf Para o Windows Server: C:\ProgramData\Amazon\CodeDeploy 2. Use um editor de texto para adicionar as seguintes informações ao arquivo codedeploy.onpremises.yml ou conf.onpremises.yml recém-criado: --- iam_session_arn: iam-session-arn aws_credentials_file: credentials-file region: supported-region Onde: iam-session-arn é o ARN da chave secreta da sessão do IAM que você anotou em Etapa 2: gerar credenciais temporárias para uma instância individual usando o AWS STS (p. 174). credentials-file é o local do arquivo de credenciais para o ARN da sessão temporária ARN, anotado em Etapa 2: gerar credenciais temporárias para uma instância individual usando o AWS STS (p. 174). supported-region é uma das regiões para as quais o AWS CodeDeploy oferece suporte, conforme listado em Região e endpoints, no documento AWS General Reference. Etapa 4: preparar uma instância local para implantações do AWS CodeDeploy Instalar e configurar a CLI da AWS Instale e configure a CLI da AWS na instância local. (A CLI da AWS será usada para baixar e instalar o agente do AWS CodeDeploy na instância local.) 1. Para instalar a AWS CLI na instância local, siga as instruções no tópico sobre como começar a configurar com a Interface da Linha de Comando da AWS, no documento AWS Command Line Interface User Guide. Os comandos do AWS CodeDeploy para trabalhar com instâncias locais tornaram-se disponíveis na versão da AWS CLI. Se tiver uma versão da AWS CLI já instalada, você poderá verificar sua versão chamando aws --version. 2. Para configurar a AWS CLI na instância local, siga as instruções no tópico sobre como configurar com a Interface da Linha de Comando da AWS, no documento AWS Command Line Interface User Guide. Important À medida que você configurar a AWS CLI (por exemplo, chamando o comando aws configure), certifique-se de especificar o ID de chave secreta e a chave de acesso secreta de um usuário 175

184 Registrar uma instância local do IAM que tenha pelo menos acesso às permissões descritas em Pré-requisitos de registro do ARN de sessão do IAM (p. 172). Definir a variável de ambiente AWS_REGION (somente para o Ubuntu Server e o RHEL) Se não estiver executando o Ubuntu Server ou o RHEL na sua instância local, ignore esta etapa e vá diretamente para "Instalar o agente do AWS CodeDeploy". Instale o agente do AWS CodeDeploy em uma instância local do Ubuntu Server ou RHEL e permita que a instância atualize o agente do AWS CodeDeploy sempre que uma nova versão se tornar disponível. Isso é feito configurando a variável de ambiente AWS_REGION na instância como o identificador de uma das regiões com suporte pelo AWS CodeDeploy. Recomendamos que você defina o valor como a região na qual seus aplicativos AWS CodeDeploy, grupos de implantação e revisões de aplicativo estão localizados (por exemplo, us-west-2). Para obter uma lista de regiões, consulte Região e endpoints, no documento AWS General Reference. Para definir a variável de ambiente, chame o seguinte usando o terminal: export AWS_REGION=supported-region Em que supported-region é o identificador da região (por exemplo, us-west-2). Instalar o agente do AWS CodeDeploy Para uma instância local do Ubuntu Server, siga as instruções em Instalar ou reinstalar o agente do AWS CodeDeploy para o Ubuntu Server (p. 129) e depois retorne a esta página. Para uma instância local do RHEL, siga as instruções em Instalar ou reinstalar o agente do AWS CodeDeploy para Amazon Linux ou RHEL (p. 128) e depois retorne a esta página. Para uma instância local do Windows Server, siga as instruções em Instalar ou reinstalar o agente do AWS CodeDeploy para o Windows Server (p. 130) e depois retorne a esta página. Etapa 5: registrar a instância local no AWS CodeDeploy As instruções nesta etapa supõem que você esteja registrando a instância local a partir dela mesma. Você pode registrar uma instância local a partir de um dispositivo ou instância à parte que tenha a AWS CLI instalada e configurada. Use a AWS CLI para registrar a instância local no AWS CodeDeploy, para que ela possa ser usada em implantações. Antes de poder usar a AWS CLI, você precisará do ARN das credenciais de sessão temporária criadas em Etapa 3: adicionar um arquivo de configuração à instância local (p. 175). Por exemplo, para uma instância identificada como AssetTag EX: arn:sts:iam:: :assumed-role/codedeployinstancerole/assettag ex Chame o comando register-on-premises-instance, especificando o seguinte: Um nome que identifique de forma exclusiva a instância local (com a opção --instance-name). Important Para ajudar a identificar a instância local, especialmente para fins de depuração, recomendamos que você especifique um nome que seja mapeado para alguma característica exclusiva da instância local (por exemplo, o nome da sessão das credenciais do STS e o número de série ou um identificador interno de ativo, se aplicável). Se você especificar um endereço MAC como um nome, lembre-se de que endereços MAC contêm caracteres não 176

185 Registrar uma instância local permitidos pelo AWS CodeDeploy, como o caractere de dois pontos (:). Para obter uma lista de caracteres permitidos, consulte Limites (p. 312). O ARN da sessão do IAM que você configurou para autenticar várias instâncias locais em Etapa 1: criar a função do IAM que as instâncias locais assumirão (p. 173). Por exemplo: aws deploy register-on-premises-instance --instance-name name-of-instance --iam-session-arn arn:aws:sts::account-id:assumed-role/role-to-assume/session-name Onde: name-of-instance é o nome usado para identificar a instância local, como AssetTag EX. account-id é o ID da conta de 12 dígitos da sua organização, como role-to-assume é o nome da função do IAM que você criou para a instância, como CodeDeployInstanceRole. session-name é o nome da função de sessão que você especificou em Etapa 2: gerar credenciais temporárias para uma instância individual usando o AWS STS (p. 174). Etapa 6: marcar a instância local Você pode usar a AWS CLI ou o console do AWS CodeDeploy para marcar a instância local. (O AWS CodeDeploy usa tags de instância local para identificar os destinos de implantação durante uma implantação.) Para marcar a instância local (CLI) Chame o comando add-tags-to-on-premises-instances, especificando o seguinte: O nome que identifica de forma exclusiva a instância local (com a opção --instance-names). O nome da chave da tag de instância local e o valor da tag que você deseja usar (com a opção --tags). Você deve especificar um nome e um valor. O AWS CodeDeploy não permite tags de instâncias locais que possuam apenas valores. Por exemplo: aws deploy add-tags-to-on-premises-instances --instance-names AssetTag EX -- tags Key=Name,Value=CodeDeployDemo-OnPrem Para marcar a instância local (console) 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy escolha Instâncias locais. 3. Na lista de instâncias locais, escolha a seta ao lado da instância local que você deseja marcar. 4. Na lista de tags, selecione ou digite a chave e o valor da tag desejada. Depois que você digitar a chave e o valor da tag, outra linha será exibida. Isso pode ser repetido para até 10 tags. Para remover uma tag, escolha o ícone Excluir ( ). 177

186 Gerenciando operações de instâncias locais 5. Depois de adicionar as tags, escolha Atualizar tags. Etapa 7: implantar revisões de aplicativos na instância local Agora, você está pronto para implantar revisões de aplicativo na instância local registrada e marcada. Você implementa revisões de aplicativos em instâncias locais de uma maneira semelhante à implantação de revisões de aplicativos em instâncias do Amazon EC2. Para obter instruções, consulte Criar uma implantação com o AWS CodeDeploy (p. 226). Essas instruções incluem um link para pré-requisitos, que incluem: criar um aplicativo, criar um grupo de implantação e preparar uma revisão de aplicativo. Se você precisa de uma simples revisão de aplicativo de amostra para implantar, poderá criar aquela descrito em Etapa 2: criar uma revisão de aplicativo de amostra (p. 84), no Tutorial: implantar um aplicativo em uma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux) (p. 84). Important Se você reutilizar uma função de serviço do AWS CodeDeploy como parte da criação de um grupo de implantação direcionado a instâncias locais, deverá incluir Tag:get* na parte Action da instrução de política dessa função de serviço. Para obter mais informações, consulte Etapa 3: criar uma função de serviço (p. 15). Etapa 8: acompanhar implantações na instância local Depois de implantar uma revisão de aplicativo em instâncias locais registradas e marcadas, você poderá controlar o progresso da implantação. Você controla as implantações em instâncias locais de uma maneira semelhante ao controle de implantações em instâncias do Amazon EC2. Para obter instruções, consulte Visualizar detalhes de implantações com o AWS CodeDeploy (p. 233). Gerenciando operações de instâncias locais no AWS CodeDeploy Siga as instruções nesta seção para gerenciar as operações nas suas instâncias locais depois de registrálas no AWS CodeDeploy, como obter mais informações, remover tags e desinstalar e cancelar o registro de instâncias locais. Tópicos Obter informações sobre uma única instância local (p. 178) Obter informações sobre várias instâncias locais (p. 179) Remova manualmente tags de instância local de uma instância local (p. 180) Desinstalar automaticamente o agente do AWS CodeDeploy e remover o arquivo de configuração de uma instância local (p. 181) Cancelar automaticamente o registro de uma instância local (p. 182) Cancelar manualmente o registro de uma instância local (p. 183) Obter informações sobre uma única instância local Você pode obter informações sobre uma única instância local, seguindo as instruções em Visualizar detalhes de implantações com o AWS CodeDeploy (p. 233). É possível usar a AWS CLI ou o console do AWS CodeDeploy para obter mais informações sobre uma única instância local. 178

187 Gerenciando operações de instâncias locais Para obter informações sobre uma única instância local (CLI) Chame o comando get-on-premises-instance, especificando o nome que identifica exclusivamente a instância local (com a opção --instance-name): aws deploy get-on-premises-instance --instance-name AssetTag EX Para obter informações sobre uma única instância local (console) 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy escolha Instâncias locais. 3. Na lista de instâncias locais, escolha a seta ao lado da instância local. Os detalhes sobre a instância local são exibidos. Obter informações sobre várias instâncias locais Você pode obter informações sobre instâncias locais seguindo as instruções em Visualizar detalhes de implantações com o AWS CodeDeploy (p. 233). É possível usar a AWS CLI ou o console do AWS CodeDeploy para obter mais informações sobre instâncias locais. Para obter informações sobre várias instâncias locais (CLI) 1. Para obter uma lista de nomes de instâncias locais, chame o comando list-on-premises-instances, especificando: Seja para obter informações sobre todas as instâncias locais com ou sem registro (com a opção --registration-status e Registered ou Deregistered, respectivamente). Se você omitir isso, nomes de instâncias com ou sem registro serão retornados. Seja para obter informações apenas sobre instâncias locais marcadas com tags de instância local específicas (com a opção --tag-filters). Para cada tag de instância local, especifique Key, Value e Type (que sempre deve ser KEY_AND_VALUE). Separe várias marcas de instância local com espaços entre cada tripleto Key, Value e Type. Por exemplo: aws deploy list-on-premises-instances --registration-status Registered --tag-filters Key=Name,Value=CodeDeployDemo-OnPrem,Type=KEY_AND_VALUE Key=Name,Value=CodeDeployDemo- OnPrem-Beta,Type=KEY_AND_VALUE 2. Para obter informações mais detalhadas, chame o comando batch-get-on-premises-instances, com os nomes das instâncias locais (com a opção --instance-names): aws deploy batch-get-on-premises-instances --instance-names AssetTag EX AssetTag EX 179

188 Gerenciando operações de instâncias locais Para obter informações sobre várias instâncias locais (console) 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy escolha Instâncias locais. Informações sobre as instâncias locais são exibidas. Remova manualmente tags de instância local de uma instância local Normalmente, você remove uma tag de instância local de uma instância local quando essa tag não está mais sendo usada ou quando você deseja remover a instância local de qualquer grupo de implantação que dependa dessa tag. É possível a AWS CLI ou o console do AWS CodeDeploy para remover tags de instância local de instâncias locais. Você não precisa remover as tags de instância local de uma instância local antes de cancelar o registro de instância. A remoção manual de tags de instância local de uma instância local não cancela o registro dessa instância. O processo também não desinstala o agente do AWS CodeDeploy da instância. Ele não remove o arquivo de configuração da instância. Ele não exclui o usuário do IAM associado à instância. Para cancelar automaticamente o registro da instância local, consulte Cancelar automaticamente o registro de uma instância local (p. 182). Para cancelar manualmente o registro da instância local, consulte Cancelar manualmente o registro de uma instância local (p. 183). Para desinstalar automaticamente o agente do AWS CodeDeploy e remover o arquivo de configuração da instância local, consulte Desinstalar automaticamente o agente do AWS CodeDeploy e remover o arquivo de configuração de uma instância local (p. 181). Para desinstalar manualmente apenas o agente do AWS CodeDeploy da instância local, consulte Gerenciando operações do agente do AWS CodeDeploy (p. 125). Para excluir manualmente o usuário do IAM associado; consulte Excluindo um usuário do IAM da sua conta da AWS. Para remover tags de instância local de uma instância no local (CLI) Chame o comando remove-tags-from-on-premises-instances, especificando: Os nomes que identificam de forma exclusiva a instância local (com a opção --instance-names). Os nomes e valores das tags que você deseja remover (com a opção --tags). Por exemplo: aws deploy remove-tags-from-on-premises-instances --instance-names AssetTag EX --tags Key=Name,Value=CodeDeployDemo-OnPrem 180

189 Gerenciando operações de instâncias locais Para remover tags de instância local de uma instância no local (console) 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy escolha Instâncias locais. 3. Na lista de instâncias locais, escolha a seta ao lado da instância local da qual você deseja remover tags. 4. Na área Tags, escolha o ícone Excluir ( 5. Depois de excluir as tags, escolha Atualizar tags. ) ao lado de cada tag que você deseja remover. Desinstalar automaticamente o agente do AWS CodeDeploy e remover o arquivo de configuração de uma instância local Normalmente, você desinstala o agente do AWS CodeDeploy e remove o arquivo de configuração de uma instância local quando não planeja mais fazer uma implantação nessa instância. O processo de desinstalar automaticamente o agente do AWS CodeDeploy e remover o arquivo de configuração de uma instância local não cancela o registro de uma instância local. Ele não desassocia nenhuma tag de instância local associada à instância local. Ele não exclui o usuário do IAM associado à instância local. Para cancelar automaticamente o registro da instância local, consulte Cancelar automaticamente o registro de uma instância local (p. 182). Para cancelar manualmente o registro da instância local, consulte Cancelar manualmente o registro de uma instância local (p. 183). Para desassociar manualmente qualquer tag de instância local associada, consulte Remova manualmente tags de instância local de uma instância local (p. 180). Para desinstalar manualmente o agente do AWS CodeDeploy da instância local, consulte Gerenciando operações do agente do AWS CodeDeploy (p. 125). Para excluir manualmente o usuário do IAM associado; consulte Excluindo um usuário do IAM da sua conta da AWS. Na instância local, use a AWS CLI para chamar o comando uninstall. Por exemplo: aws deploy uninstall O comando uninstall faz o seguinte: 1. Interrompe a execução do agente do AWS CodeDeploy na instância local. 2. Desinstala o agente do AWS CodeDeploy da instância local. 3. Remove o arquivo de configuração da instância local. (Para Ubuntu Server e RHEL, trata-se do / etc/codedeploy-agent/conf/codedeploy.onpremises.yml. Para Windows Server, trata-se do C: \ProgramData\Amazon\CodeDeploy\conf.onpremises.yml.) 181

190 Gerenciando operações de instâncias locais Cancelar automaticamente o registro de uma instância local Normalmente, você cancela o registro de uma instância local quando não planeja mais implantá-la. Quando você cancela o registro de uma instância local, mesmo que essa instância local possa fazer parte das tags de instância local de um grupo de implantação, ela não é incluída em nenhuma implantação. Você pode usa a AWS CLI para cancelar manualmente o registro de instâncias locais. Não é possível usar o console do AWS CodeDeploy para cancelar o registro de uma instância local. Além disso, cancelar o registro de uma instância local não desassocia tags de instância local que estejam associadas à instância local. O processo também não desinstala o agente do AWS CodeDeploy da instância local. Ele não remove o arquivo de configuração da instância local. Para usar o console do AWS CodeDeploy para realizar algumas (mas não todas) as atividades desta seção, consulte a seção sobre o console do AWS CodeDeploy do Cancelar manualmente o registro de uma instância local (p. 183). Para desassociar manualmente qualquer tag de instância local associada, consulte Remova manualmente tags de instância local de uma instância local (p. 180). Para desinstalar automaticamente o agente do AWS CodeDeploy e remover o arquivo de configuração da instância local, consulte Desinstalar automaticamente o agente do AWS CodeDeploy e remover o arquivo de configuração de uma instância local (p. 181). Para desinstalar manualmente apenas o agente do AWS CodeDeploy da instância local, consulte Gerenciando operações do agente do AWS CodeDeploy (p. 125). Use a AWS CLI para chamar o comando deregister, especificando: O nome que identifica de forma exclusiva a instância local no AWS CodeDeploy (com a opção -- instance-name). Opcionalmente, para excluir ou não o usuário do IAM associado à instância local (com a opção padrão --delete-iam-user). Se não quiser excluir o usuário do IAM associado à instância local, especifique a opção --no-delete-iam-user. Opcionalmente, a região da AWS na qual a instância local foi registrada no AWS CodeDeploy (com a opção --region). Esta deve ser uma das regiões com suporte listadas em Região e endpoints, no documento AWS General Reference (por exemplo, us-west-2). Se essa opção não for especificada, a região da AWS padrão associada ao usuário do IAM responsável pela chamada será usada. Por exemplo: aws deploy deregister --instance-name AssetTag EX --delete-iam-user --region uswest-2 O comando deregister faz o seguinte: 1. Cancela o registro da instância local no AWS CodeDeploy. 2. Se especificado, exclui o usuário do IAM associado à instância local. Depois de cancelar o registro de uma instância local, você não poderá criar uma instância local de substituição com o mesmo nome ou o mesmo usuário do IAM associado até que o AWS CodeDeploy exclua seus registros sobre a instância local com registro cancelado. Isso geralmente leva cerca de 24 horas. Se esse comando encontrar erros, será exibida uma mensagem de erro descrevendo como você pode concluir manualmente as etapas restantes. Caso contrário, será exibida uma mensagem de sucesso, descrevendo como chamar o comando uninstall. 182

191 Exibir Detalhes da Instância Cancelar manualmente o registro de uma instância local Normalmente, você cancela o registro de uma instância local quando não planeja mais implantá-la. Você usa a AWS CLI para cancelar manualmente as instâncias locais. O cancelamento automático do registro de uma instância local não desinstala o agente do AWS CodeDeploy. Ele não remove o arquivo de configuração da instância. Ele não exclui o usuário do IAM associado à instância. Ele não remove tags associadas à instância. Para desinstalar automaticamente o agente do AWS CodeDeploy e remover o arquivo de configuração da instância local, consulte Desinstalar automaticamente o agente do AWS CodeDeploy e remover o arquivo de configuração de uma instância local (p. 181). Para desinstalar manualmente apenas o agente do AWS CodeDeploy, consulte Gerenciando operações do agente do AWS CodeDeploy (p. 125). Para excluir manualmente o usuário do IAM associado; consulte Excluindo um usuário do IAM da sua conta da AWS. Para remover manualmente apenas as tags de instância local associadas, consulte Remova manualmente tags de instância local de uma instância local (p. 180). Chame o comando deregister-on-premises-instance, especificando o nome que identifica exclusivamente a instância local (com a opção --instance-name): aws deploy deregister-on-premises-instance --instance-name AssetTag EX Depois de cancelar o registro de uma instância local, você não poderá criar uma instância de substituição com o mesmo nome ou o mesmo usuário do IAM associado até que o AWS CodeDeploy exclua seus registros sobre a instância local com registro cancelado. Isso geralmente leva cerca de 24 horas. Exibir Detalhes da Instância com o AWS CodeDeploy Você pode usar o console do AWS CodeDeploy, a AWS CLI ou as APIs do AWS CodeDeploy para visualizar detalhes sobre instâncias usadas em uma implantação. Para obter informações sobre como usar ações de API do AWS CodeDeploy para visualizar instâncias, consulte GetDeploymentInstance, ListDeploymentInstances e ListOnPremisesInstances. Tópicos Exibir Detalhes da Instância (console) (p. 183) Exibir Detalhes da Instância (CLI) (p. 184) Exibir Detalhes da Instância (console) Para visualizar os detalhes da instância: 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. 183

192 Exibir Detalhes da Instância (CLI) Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, selecione Implantações. Se não for exibida nenhuma entrada, verifique se a região correta está selecionada. Na barra de navegação, no seletor de região, escolha uma das regiões listadas em Região e endpoints, no AWS General Reference. O AWS CodeDeploy apenas oferece suporte a essas regiões. 3. Para visualizar os detalhes da implantação, escolha a seta ao lado do ID de implantação que corresponde à instância. 4. Em Instâncias, escolha Exibir todas as instâncias. 5. Para ver informações sobre eventos de ciclo de vida de implantação individuais para uma instância, na página de detalhes da implantação, na coluna Eventos, escolha Exibir eventos. Se Falha for exibido para qualquer um dos eventos de ciclo de vida, na página de detalhes da instância, escolha Exibir logs, Exibir no EC2 ou ambos. Você pode encontrar dicas de solução de problemas em Solução de problemas com a instância (p. 327). 6. Se quiser ver mais informações sobre uma instância do Amazon EC2, mas Exibir no EC2 não estiver disponível na página de detalhes da instância, retorne à página de detalhes da implantação e, na coluna ID do instância, escolha o ID da instância do Amazon EC2. Exibir Detalhes da Instância (CLI) Para usar a AWS CLI para visualizar detalhes da instância, chame o comando get-deployment-instance ou list-deployment-instances. Para visualizar detalhes sobre uma única instância, chame o comando get-deployment-instance, especificando: O ID de implantação exclusivo. Para obter o ID de implantação, chame o comando list-deployments. O ID de instância exclusivo. Para obter o ID de instância, chame o comando list-deployment-instances. Para ver uma lista de IDs para instâncias usadas em uma implantação, chame o comando list-deploymentinstances, especificando: O ID de implantação exclusivo. Para obter o ID de implantação, chame o comando list-deployments. Opcionalmente, se você deseja incluir apenas IDs de instâncias específicos por seu status de implantação. (Se não for especificado, todos os IDs de instância correspondentes serão listados, independentemente do status de implantação.) Integridade da instância do AWS CodeDeploy O AWS CodeDeploy monitora o status da integridade das instâncias em um grupo de implantação. Ele reprovará as implantações se o número de instâncias íntegras cair abaixo do número mínimo de instâncias íntegras que foram especificadas para o grupo de implantação durante uma implantação. Por exemplo, se 85% das instâncias precisarem permanecer íntegras durante uma implantação e o grupo de implantação contiver 10 instâncias, a implantação geral falhará se a implementação em uma única instância falhar. Isso ocorre porque, quando uma instância é desconectada para que a última revisão de aplicativo possa ser 184

193 Estado de integridade instalada, a contagem de instâncias íntegras disponíveis já cai para 90%. Uma instância com falha mais outra instância offline significaria que apenas 80% das instâncias estão íntegras e disponíveis. O AWS CodeDeploy reprovará a implantação geral. O número mínimo necessário de instâncias íntegras é definido como parte de uma configuração de implantação. Important Durante uma implantação azul/verde, a configuração de implantação e o valor mínimo de hosts íntegros se aplicam a instâncias no ambiente de substituição, e não ao ambiente original. No entanto, quando as instâncias no ambiente original forem canceladas do balanceador de carga, a implantação geral será marcada como falha se o registro de até mesmo uma única instância original não for cancelado com sucesso. O AWS CodeDeploy fornece três configurações de implantação padrão que têm valores mínimos de host íntegros comumente utilizados: Nome da configuração de implantação padrão Valor mínimo de hosts íntegros predefinido CodeDeployDefault.OneAtATime 99% CodeDeployDefault.HalfAtATime 50% CodeDeployDefault.AllAtOnce 0 Você encontrará mais informações sobre configurações de implantação padrão em Trabalhando com configurações de implantação no AWS CodeDeploy (p. 189). Você pode criar configurações de implantação personalizadas no AWS CodeDeploy para definir seus próprios valores mínimos de hosts íntegros. Você pode definir esses valores como números inteiros ou porcentagens usando as seguintes operações: Como minimum-healthy-hosts, quando você usa o comando create-deployment-config na CLI da AWS. Como Value no tipo de dados MinimumHealthyHosts na API do AWS CodeDeploy. Como MinimumHealthyHosts, quando você usa AWS::CodeDeploy::DeploymentConfig no template do AWS CloudFormation. Tópicos Estado de integridade (p. 185) Instâncias e implantações mínimas íntegras (p. 186) Estado de integridade O AWS CodeDeploy atribui dois valores de estado de integridade a cada instância: integridade da revisão e integridade da instância. Integridade da revisão A integridade da revisão se baseia na revisão de aplicativo atualmente instalada na instância. Ela tem os seguintes valores de status: Current: a revisão instalada na instância corresponde à revisão da última implantação bem-sucedida do grupo de implantação. Old: a revisão instalada na instância corresponde a uma versão mais antiga do aplicativo. 185

194 Instâncias e implantações mínimas íntegras Unknown: a revisão de aplicativo não foi instalada com sucesso na instância. Integridade da instância A integridade da instância se baseia em se as implementações em uma foram ou não bem-sucedidas. Ela tem os seguintes valores: Healthy: a última implantação na instância foi bem-sucedida. Unhealthy: a tentativa de implantar uma revisão na instância falhou, ou uma revisão ainda não foi implantada na instância. O AWS CodeDeploy usa a integridade da revisão e a integridade da instância para agendar a implantação nas instâncias do grupo de implantação, na seguinte ordem: 1. Integridade de instância - não íntegra. 2. Integridade da revisão - desconhecida. 3. Integridade da revisão - antiga. 4. Integridade da revisão - atual. Se a implantação geral for bem-sucedida, a revisão será atualizada e os valores do status da integridade do grupo de implantação são atualizados para refletir a implantação mais recente. Todas as instâncias atuais que tiveram uma implantação bem-sucedida permanecerão atuais. Caso contrário, elas se tornarão desconhecidas. Todas as instâncias antigas ou desconhecidas que tiveram uma implantação bem-sucedida se tornarão atuais. Caso contrário, eles permanecerão antigas ou desconhecidas. Todas as instâncias íntegras que tiveram uma implantação bem-sucedida permanecerão íntegras. Caso contrário, elas se tornarão não íntegras. Todas as instâncias não íntegras que tiveram uma implantação bem-sucedida se tornarão íntegras. Caso contrário, eles permanecerão não íntegras. Se a implantação geral falhar ou for interrompida: Cada instância na qual o AWS CodeDeploy tentou implantar a revisão de aplicativo terá sua integridade de instância definida como íntegra ou não íntegra, dependendo de a tentativa de implantação dessa instância ter sido bem-sucedida ou falhado. Cada instância em que o AWS CodeDeploy não tentou implantar a revisão de aplicativo manterá seu valor de integridade de instância atual. A revisão do grupo de implantação permanecerá a mesma. Instâncias e implantações mínimas íntegras O AWS CodeDeploy permite que você especifique um número mínimo de instâncias íntegras para a implantação, para duas finalidades principais: Para determinar se a implantação geral foi bem-sucedida ou falhou. A implantação será bem-sucedida se a revisão de aplicativo tiver sido implantada com sucesso pelo menos no número mínimo de instâncias íntegras. Para determinar o número de instâncias que devem ser íntegras durante uma implantação para permitir que essa implantação continue. Você pode especificar o número mínimo de instâncias íntegras para o seu grupo de implantação como um número de instâncias ou como uma porcentagem do número total de instâncias. Se você especificar 186

195 Instâncias e implantações mínimas íntegras uma porcentagem, no início da implantação, o AWS CodeDeploy a converterá no número equivalente de instâncias, arredondando todas as instâncias fracionárias. O AWS CodeDeploy rastreia o status da integridade das instâncias do grupo de implantação durante o processo de implantação e usa o número mínimo especificado de instâncias íntegras da implantação para determinar se deve continuar a implantação. O princípio básico é que uma implantação nunca deve fazer com que o número de instâncias íntegras caia abaixo do número mínimo que você especificou. A única exceção a essa regra é quando um grupo de implantação tem inicialmente menos do que o número mínimo especificado de instâncias íntegras. Nesse caso, o processo de implantação não reduz ainda mais o número de instâncias íntegras. O AWS CodeDeploy tentará implantar em todas as instâncias de um grupo de implantação, mesmo naquelas que estão atualmente em um estado interrompido. No cálculo do mínimo de hosts íntegros, uma instância interrompida tem o mesmo impacto que uma instância com falha. Para resolver falhas de implantação devido a muitas instâncias interrompidas, reinicie instâncias ou altere suas tags para excluí-las do grupo de implantação. O AWS CodeDeploy inicia o processo de implantação, tentando implantar a revisão de aplicativo nas instâncias não íntegras do grupo de implantação. Para cada implantação bem-sucedida, o AWS CodeDeploy altera o status da integridade da instância para íntegra e a adiciona às instâncias íntegras do grupo de implantação. Em seguida, o AWS CodeDeploy compara o número atual de instâncias íntegras com o número mínimo especificado de instâncias íntegras. Se o número de instâncias íntegras for menor que ou igual ao número mínimo especificado de instâncias íntegras, o AWS CodeDeploy cancelará a implantação para garantir que o número de instâncias íntegras não diminua com mais implantações. Se o número de instâncias íntegras for maior que o número mínimo especificado de instâncias íntegras em pelo menos um, o AWS CodeDeploy implantará a revisão de aplicativo no conjunto original de instâncias íntegras. Se uma implantação em uma instância íntegra falhar, o AWS CodeDeploy mudará o status da integridade dessa instância para não íntegra. À medida que a implantação avançar, o AWS CodeDeploy atualizará o número atual de instâncias saudáveis e o comparará com o número mínimo especificado de instâncias íntegras. Se o número de instâncias íntegras cair até o número mínimo especificado em qualquer ponto do processo de implantação, o AWS CodeDeploy interromperá a implantação. Essa prática impede a possibilidade de falha da próxima implantação, diminuindo o número de instâncias íntegrasabaixo do mínimo especificado. Certifique-se de que o número mínimo de instâncias íntegras que você especificar seja menor que o número total de instâncias no grupo de implantação. Se você especificar um valor percentual, lembre-se de que ele será arredondado. Caso contrário, quando a implantação for iniciada, o número de instâncias íntegras já será menor que ou igual ao número mínimo especificado de instâncias íntegras, e o AWS CodeDeploy reprovará imediatamente a implantação geral. O AWS CodeDeploy também usa o número mínimo especificado de instâncias íntegras e o número real de instâncias íntegras para determinar se e como implantar a revisão de aplicativo em várias instâncias. Por padrão, o AWS CodeDeploy implanta a revisão de aplicativo no maior número possível de instâncias sem correr o risco de que o número de instâncias íntegras caia abaixo do número mínimo especificado de instâncias íntegras. Por exemplo: Se o seu grupo de implantação tiver 10 instâncias, e você definir o número mínimo de instâncias íntegras como 9, o AWS CodeDeploy implantará em uma instância de cada vez. Se o seu grupo de implantação tiver 10 instâncias, e você definir o número mínimo de instâncias íntegras como 0, o AWS CodeDeploy implantará em todas as instâncias ao mesmo tempo. 187

196 Instâncias e implantações mínimas íntegras Exemplos Os exemplos a seguir supõem um grupo de implantação com 10 instâncias. Instâncias mínimas íntegras: 95% O AWS CodeDeploy arredonda o número mínimo de instâncias íntegras para 10, o que equivale ao número de instâncias íntegras. A implantação global falhará imediatamente sem implantar a revisão em uma instância. Instâncias mínimas íntegras: 9 O AWS CodeDeploy implanta a revisão em uma instância de cada vez. Se alguma dessas implementações falhar, o AWS CodeDeploy reprovará imediatamente a implantação geral. A exceção a essa regra é que, se a última instância falhar, a implantação ainda será bem-sucedida. Instâncias mínimas íntegras: 8 O AWS CodeDeploy implanta a revisão em duas instâncias de cada vez. Se duas dessas implementações falharem, o AWS CodeDeploy reprovará imediatamente a implantação geral. A exceção a essa regra é que, se a última instância for a segunda a falhar, a implantação ainda será bem-sucedida. Instâncias mínimas íntegras: 0 O AWS CodeDeploy implanta a revisão no grupo de implantação inteiro ao mesmo tempo. O grupo de implantação não pode ter menos de 0 instâncias íntegras e, portanto, a implantação geral não pode falhar. Instâncias mínimas íntegras: 9 Primeiro, o AWS CodeDeploy implanta a revisão na instância não íntegra. Se qualquer implantação falhar, o número de instâncias íntegras será igual ao número mínimo de instâncias íntegras e, portanto, a implantação geral falhará imediatamente. A exceção a essa regra é que, se a última instância falhar, a implantação ainda será bem-sucedida. Se qualquer implantação for bem-sucedida, o grupo de implantação agora terá 10 instâncias íntegras. O implantação continuará a implantação, uma instância por vez, até que qualquer implantação falhe ou até que a implantação geral seja concluída. A exceção a essa regra é que, se a última instância falhar, a implantação ainda será bem-sucedida. 188

197 Configurações de implantação predefinidas Trabalhando com configurações de implantação no AWS CodeDeploy Uma configuração de implantação é um conjunto de regras de implantação e condições de sucesso e falha de implementação que é usado pelo AWS CodeDeploy durante uma implantação. A configuração de implantação especifica, por meio do uso de um valor mínimo de hosts saudáveis, o número ou a porcentagem de instâncias que devem permanecer disponíveis a qualquer momento durante uma implantação. É possível usar uma das três configurações de implantação predefinidas fornecidas pela AWS ou criar uma configuração de implantação personalizada. Se você não especificar uma configuração de implantação, o AWS CodeDeploy usará a configuração de implantação CodeDeployDefault.OneAtATime. Para obter mais informações sobre como o AWS CodeDeploy monitora e avalia a integridade da instância durante uma implantação, consulte Integridade da instância do AWS CodeDeploy (p. 184). Para visualizar uma lista de configurações de implantação já registradas na sua conta da AWS, consulte Visualizar detalhes de configurações de implantação (p. 192). Configurações de implantação predefinidas no AWS A tabela a seguir lista as configurações de implantação predefinidas. Configuração de implantação CodeDeployDefault.AllAtOnce Descrição Implantações no local: Tenta implantar uma revisão de aplicativo em quantas instâncias for possível de uma só vez. O status da implantação geral será exibido como Succeeded se a revisão do aplicativo for implantada em uma ou mais das instâncias. O status da implantação geral será exibido como Failed se a revisão de aplicativo não for implementada em nenhuma das instâncias. Usando um exemplo de nove instâncias, CodeDeployDefault.AllAtOnce tentará implantar 189

198 Configurações de implantação predefinidas Configuração de implantação Descrição em todas as nove instâncias ao mesmo tempo. A implantação global será bem-sucedida se a implantação até mesmo em uma única instância for bem-sucedida e falhará somente se as implementações nas nove instâncias falharem. Implantações azuis/verdes: Implantação no ambiente de substituição: segue as mesmas regras de implantação que CodeDeployDefault.AllAtOnce para implantações no local. Redirecionamento do tráfego: direciona o tráfego para todas as instâncias no ambiente de substituição ao mesmo tempo. Será bemsucedido se o tráfego for redirecionado com êxito para pelo menos uma instância. Falhará se o redirecionamento para todas as instâncias falhar. CodeDeployDefault.HalfAtATime Implantações no local: Implementa em até metade das instâncias de cada vez (com frações arredondadas para baixo). A implantação geral será bem-sucedida se a revisão de aplicativo for implantada em pelo menos metade das instâncias (com frações arredondadas). Caso contrário, a implantação falhará. No exemplo de nove instâncias, ele implantará até quatro instâncias de cada vez. A implantação geral será bem-sucedida se a for feita com êxito em cinco ou mais instâncias. Caso contrário, a implantação falhará. Implantações azuis/verdes: Implantação no ambiente de substituição: segue as mesmas regras de implantação que CodeDeployDefault.HalfAtATime para implantações no local. Redirecionamento do tráfego: direciona o tráfego para metade das instâncias no ambiente de substituição de cada vez. Será bem-sucedido se o redirecionamento para pelo menos metade das instâncias for bem-sucedido. Caso contrário, falhará. 190

199 Configurações de implantação predefinidas Configuração de implantação CodeDeployDefault.OneAtATime Descrição Implantações no local: Implanta a revisão de aplicativo em apenas uma instância de cada vez. Para grupos de implantação que contêm mais de uma instância: A implantação geral será bem-sucedida se a revisão de aplicativo for implantada em todas as instâncias. A exceção a essa regra é que, se a implantação na última instância falhar, a implantação geral ainda será bem-sucedida. Isso ocorre porque o AWS CodeDeploy permite que apenas uma instância de cada vez seja colocada offline com a configuração CodeDeployDefault.OneAtATime. A implantação geral falhará se a revisão de aplicativo não conseguir ser implantada em qualquer outra instância que não seja a última. Em um exemplo usando nove instâncias, ele implantará em uma instância de cada vez. A implantação geral será bem-sucedida se puder ser feita nas oito primeiras instâncias com sucesso e falhará se não puder ser feita em qualquer uma das oito primeiras instâncias. Para grupos de implantação que contêm apenas uma instância, a implantação geral apenas será bem-sucedida se a implantação na instância única for bem-sucedida. Implantações azuis/verdes: Implantação no ambiente de substituição: segue as mesmas regras de implantação que CodeDeployDefault.OneAtATime para implantações no local. Redirecionamento do tráfego: direciona o tráfego para uma instância no ambiente de substituição de cada vez. Será bem-sucedido se o tráfego for redirecionado com êxito para todas as instâncias de substituição. Falhará após a primeira falha de redirecionamento. A exceção a essa regra é que, se não for possível registrar a última instância, a implantação geral ainda será bem-sucedida. Tópicos Criar uma configuração de implantação com o AWS CodeDeploy (p. 192) Visualizar: detalhes de configurações de implantação com o AWS CodeDeploy (p. 192) Excluir uma configuração de implantação com o AWS CodeDeploy (p. 193) 191

200 Criar uma configuração de implantação Criar uma configuração de implantação com o AWS CodeDeploy É possível usar a AWS CLI, as APIs do AWS CodeDeploy ou um template do AWS CloudFormation para criar configurações de implantação personalizadas. No console do AWS CodeDeploy, você pode usar o Assistente de implantação de exemplo de uma implantação no local para criar uma configuração de implantação personalizada. Para obter informações sobre como usar um template do AWS CloudFormation para criar uma configuração de implantação, consulte Referência de templates do AWS CloudFormation para o AWS CodeDeploy (p. 305). Para usar a AWS CLI para criar uma configuração de implantação, chame o comando create-deploymentconfig, especificando: Um nome que identifique de forma exclusiva a configuração de implantação. Esse nome deve ser exclusivo em todas as configurações de implantação que você criar com o AWS CodeDeploy associado à sua conta da AWS. O número mínimo ou porcentagem de instâncias íntegras que devem estar disponíveis a qualquer momento durante a implantação. Para obter mais informações, consulte Integridade da instância do AWS CodeDeploy (p. 184). O exemplo a seguir cria uma configuração de implantação denominada ThreeQuartersHealthy, que exige que 75% das instâncias de destino permaneçam íntegras durante uma implantação: aws deploy create-deployment-config --deployment-config-name ThreeQuartersHealthy -- minimum-healthy-hosts type=fleet_percent,value=75 Visualizar: detalhes de configurações de implantação com o AWS CodeDeploy Você pode usar o console do AWS CodeDeploy, a AWS CLI ou as APIs do AWS CodeDeploy para visualizar detalhes sobre configurações de implantação associadas à sua conta da AWS. Para obter descrições das configurações de implantação do AWS CodeDeploy predefinidas, consulte Configurações de implantação predefinidas no AWS (p. 189). Tópicos Visualizar detalhes de configurações de implantação (console) (p. 192) Visualizar configuração de implantação (CLI) (p. 193) Visualizar detalhes de configurações de implantação (console) Para usar o console do AWS CodeDeploy para visualizar uma lista de nomes de configuração de implantação: 192

201 Visualizar configuração de implantação (CLI) 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, escolha Deployment configurations para ver uma lista de nomes e critérios de configuração de implantação para cada configuração de implantação. Se não for exibida nenhuma entrada, verifique se a região correta está selecionada. Na barra de navegação, no seletor de região, escolha uma das regiões listadas em Região e endpoints, no AWS General Reference. O AWS CodeDeploy apenas oferece suporte a essas regiões. Visualizar configuração de implantação (CLI) Para usar a AWS CLI para visualizar detalhes de configurações de implantação, chame o comando getdeployment-config ou list-deployment-configs. Para ver detalhes sobre uma única configuração de implantação, chame o comando get-deploymentconfig, especificando o nome exclusivo da configuração de implantação. Para visualizar detalhes sobre várias configurações de implantação, chame o comando list-deployments. Excluir uma configuração de implantação com o AWS CodeDeploy Você pode usar a AWS CLI ou as APIs do AWS CodeDeploy para excluir configurações de implantação personalizadas associadas à sua conta da AWS. Não é possível excluir configurações de implantação internas, como CodeDeployDefault.AllAtOnce, CodeDeployDefault.HalfAtATime e CodeDeployDefault.OneAtATime. Warning Não é possível excluir uma configuração de implantação personalizada que ainda esteja em uso. Se você excluir uma configuração de implantação personalizada não utilizada, não poderá mais associá-la a novas implantações e a novos grupos de implantação. Esta ação não pode ser desfeita. Para usar a AWS CLI para excluir uma configuração de implantação, chame o comando deletedeployment-config, especificando o nome da configuração de implantação. Para visualizar uma lista de nomes de configuração de implantação, chame o comando list-deployment-configs. O exemplo a seguir exclui uma configuração de implantação denominada ThreeQuartersHealthy. aws deploy delete-deployment-config --deployment-config-name ThreeQuartersHealthy 193

202 Criar um aplicativo Trabalhando com aplicativos no AWS CodeDeploy Depois de configurar instâncias, mas antes de poder implantar uma revisão, você deve criar um aplicativo no AWS CodeDeploy. Um aplicativo é simplesmente um nome ou contêiner usado pelo AWS CodeDeploy para garantir que a revisão, a configuração de implantação e o grupo de implantação corretos sejam referenciados durante uma implantação. Use as informações a seguir para as próximas etapas: Ainda não criei instâncias. Consulte Trabalhando com instâncias (p. 139) e depois retorne a esta página. Ainda não criei um aplicativo. Consulte Criar um aplicativo (p. 194) Já criei um aplicativo, mas não criei um grupo de implantação. Já criei um aplicativo e um grupo de implantação, mas não criei uma revisão de aplicativo. Já criei um aplicativo e um grupo de implantação e já carreguei minha revisão de aplicativo. Estou pronto para implantar. Consulte Criar um grupo de implantação com o AWS CodeDeploy (p. 203). Consulte Trabalhando com revisões de aplicativos para o AWS CodeDeploy (p. 215). Consulte Criar uma implantação com o AWS CodeDeploy (p. 226). Tópicos Criar um aplicativo com o AWS CodeDeploy (p. 194) Visualizar detalhes de aplicativos com o AWS CodeDeploy (p. 200) Renomear um aplicativo do AWS CodeDeploy (p. 200) Excluir um aplicativo no AWS CodeDeploy (p. 201) Criar um aplicativo com o AWS CodeDeploy Um aplicativo é simplesmente um nome ou contêiner usado pelo AWS CodeDeploy para garantir que a revisão, a configuração de implantação e o grupo de implantação corretos sejam referenciados durante uma implantação. Você pode usar o console do AWS CodeDeploy, a AWS CLI, as APIs do AWS CodeDeploy ou um template do AWS CloudFormation para criar aplicativos. 194

203 Criar um aplicativo para uma implantação no local (console) Seu código, ou revisão de aplicativo, é instalado em instâncias por meio de um processo chamado de implantação. O AWS CodeDeploy oferece suporte a dois tipos de implantações: Implantação no local: Implementação azul/verde: Ao usar o console do AWS CodeDeploy para criar um aplicativo, você configura seu primeiro grupo de implantação ao mesmo tempo. Ao usar a AWS CLI para criar um aplicativo, você cria seu primeiro grupo de implantação em uma etapa separada. Para visualizar uma lista de aplicativos já registrados na sua conta da AWS, consulte Visualizar detalhes de aplicativos (p. 200). Para obter informações sobre como usar um template do AWS CloudFormation para criar um aplicativo, consulte Referência de templates do AWS CloudFormation para o AWS CodeDeploy (p. 305). Tópicos Criar um aplicativo para uma implantação no local (console) (p. 195) Criar um aplicativo para uma implantação azul/verde (console) (p. 197) Criar um aplicativo (CLI) (p. 199) Criar um aplicativo para uma implantação no local (console) Para usar o console do AWS CodeDeploy para criar um aplicativo para uma implantação no local: Caution Não siga essas etapas se: Você não preparou suas instâncias para uso em implantações do AWS CodeDeploy. Para configurar suas instâncias, siga as instruções em Trabalhando com instâncias (p. 139) e depois siga as etapas neste tópico. Você deseja criar um aplicativo que usa uma configuração de implantação personalizada, mas ainda não criou essa configuração de implantação. Siga as instruções em Criar uma configuração de implantação com o AWS CodeDeploy (p. 192) e depois siga as etapas neste tópico. Você não possui uma função de serviço que concede ao AWS CodeDeploy os níveis mínimos necessários de confiança e permissões. Para criar e configurar uma função de serviço com as permissões necessárias, siga as instruções em Etapa 3: criar uma função de serviço (p. 15) e depois volte para as etapas deste tópico. Você deseja selecionar um balanceador de carga Clássico no Elastic Load Balancing para a implantação local, mas ainda não o criou. 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. Se a home page do AWS CodeDeploy for exibida, escolha Get Started Now. 195

204 Criar um aplicativo para uma implantação no local (console) 3. Escolha Create application. 4. Na caixa Application name, digite um nome para o aplicativo. (Em uma conta da AWS, um nome de aplicativo AWS CodeDeploy pode ser usado apenas uma vez por região. É possível reutilizar um nome de aplicativo em diferentes regiões.) 5. Na caixa Deployment group name, digite um nome que descreva o grupo de implantação. Se quiser usar as mesmas configurações usadas em outro grupo de implantação (incluindo o nome do grupo de implantação, tags e/ou nomes de grupos do Auto Scaling, bem como a configuração de implantação), especifique essas configurações nessa página. Embora esse novo grupo de implantação e o grupo de implantação existente tenham o mesmo nome, o AWS CodeDeploy os tratará como grupos de implantação separados, porque cada um deles está associado a aplicativos separados. 6. Escolha In-place deployment. 7. Na tabela Search by tags, escolha uma das seguintes opções: Amazon EC2 ou On-premises instance: nos campos Key e Value, digite os valores do par de chave/ valor que você usou para marcar as instâncias. Você pode marcar até 10 pares de chave/valor. Você pode usar caracteres curinga no campo Value para identificar todas as instâncias marcadas em determinados padrões, como instâncias do Amazon EC2, centros de custo e nomes de grupos semelhantes e assim por diante. Por exemplo, se você selecionar Name no campo Key e digitar GRP- *a no campo Value, o AWS CodeDeploy identificará todas as instâncias que se enquadram nesse padrão, como GRP-1a, GRP-2a e GRP-XYZ-a. O campo Value diferencia maiúsculas de minúsculas. Para remover um par de chave/valor da lista, escolha o ícone Remover. Auto Scaling group: escolha o nome de um grupo do Auto Scaling no qual implantar sua revisão de aplicativo. Quando novas instâncias do Amazon EC2 são iniciadas como parte de um grupo de Auto Scaling, o AWS CodeDeploy pode implantar suas revisões nessas novas instâncias automaticamente. É possível adicionar até 10 grupos do Auto Scaling a um grupo de implantação. À medida que o AWS CodeDeploy encontrar instâncias que correspondam a cada par de chave/valor ou nome de grupo do Auto Scaling especificado, ele exibirá o número de instâncias correspondentes. Para ver mais informações sobre as instâncias, clique no número. 8. (Opcional) Em Load balancer, escolha o balanceador de carga clássico que gerenciará o tráfego para as instâncias durante os processos de implantação. Cada instância terá seu registro cancelado no balanceador de carga, para evitar que o tráfego seja direcionado a ele durante a implantação, voltando a ser registrada assim que a implantação estiver concluída. 9. Na lista Deployment configuration, escolha uma configuração de implantação para controlar a taxa em que as instâncias são implantadas, por exemplo, uma de cada vez ou todas ao mesmo tempo. Para obter mais informações sobre configurações de implantação, consulte Trabalhando com configurações de implantação no AWS CodeDeploy (p. 189) 10.(Opcional) Em Advanced, configure as opções que você deseja incluir na implantação, como gatilhos de notificações do Amazon SNS, alarmes do Amazon CloudWatch ou reversões automáticas. Para obter informações sobre como especificar opções avançadas em grupos de implantação, consulte Configurar opções avançadas para um grupo de implantação (p. 212). 11.Na caixa Service role ARN, escolha um Nome de Recurso Amazon (ARN) para uma função de serviço que conceda ao AWS CodeDeploy pelo menos os níveis de confiança e permissões descritos em Etapa 3: criar uma função de serviço (p. 15). Para obter o ARN da função de serviço, consulte Obter o ARN da função de serviço (console) (p. 18). 12.Escolha Create application. 196

205 Criar um aplicativo para uma implantação azul/verde (console) A próxima etapa é preparar uma revisão a ser implantada no aplicativo e grupo de implantação. Para obter instruções, consulte Trabalhando com revisões de aplicativos para o AWS CodeDeploy (p. 215). Criar um aplicativo para uma implantação azul/verde (console) Para usar o console do AWS CodeDeploy para criar um aplicativo para uma implantação azul/verde: Warning Não siga essas etapas se: Você não tem instâncias instaladas com o agente do AWS CodeDeploy que deseja substituir durante o processo de implantação azul/verde. Para configurar suas instâncias, siga as instruções em Trabalhando com instâncias (p. 139) e depois siga as etapas neste tópico. Você deseja criar um aplicativo que usa uma configuração de implantação personalizada, mas ainda não criou essa configuração de implantação. Siga as instruções em Criar uma configuração de implantação com o AWS CodeDeploy (p. 192) e depois siga as etapas neste tópico. Você não possui uma função de serviço que concede ao AWS CodeDeploy pelo menos os níveis de confiança e permissões descritos em Etapa 3: criar uma função de serviço (p. 15). Para criar e configurar uma função de serviço, siga as instruções em Etapa 3: criar uma função de serviço (p. 15) e depois siga as etapas neste tópico. Você não criou um balanceador de carga Clássico no Elastic Load Balancing para o registro das instâncias no seu ambiente de substituição. Para obter mais informações, consulte Configurar um load balancer no Elastic Load Balancing para implantações do AWS CodeDeploy (p. 208). 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. Se a home page do AWS CodeDeploy for exibida, escolha Get Started Now. 3. Escolha Create application. 4. Na caixa Application name, digite um nome para o aplicativo. (Em uma conta da AWS, um nome de aplicativo AWS CodeDeploy pode ser usado apenas uma vez por região. É possível reutilizar um nome de aplicativo em diferentes regiões.) 5. Na caixa Deployment group name, digite um nome que descreva o grupo de implantação. Se quiser usar as mesmas configurações usadas em outro grupo de implantação (incluindo o nome do grupo de implantação, tags e/ou nomes de grupos do Auto Scaling, bem como a configuração de implantação), especifique essas configurações nessa página. Embora esse novo grupo de implantação e o grupo de implantação existente tenham o mesmo nome, o AWS CodeDeploy os trata como grupos de implantação separados, porque cada um deles está associado a aplicativos separados. 6. Escolha Blue/green deployment. 7. Em Environment configuration, escolha o método que você deseja usar para fornecer instâncias ao seu ambiente de substituição: Automatically copy Auto Scaling group: o AWS CodeDeploy criará um grupo do Auto Scaling copiando uma opção que você especificar. 197

206 Criar um aplicativo para uma implantação azul/verde (console) Manually provision instances: você apenas especificará as instâncias para o seu ambiente de substituição depois de criar uma implantação. Você deve criar as instâncias antes de iniciar a implantação. Em vez disso, aqui, você especificará as instâncias que deseja substituir. 8. Dependendo da sua escolha na etapa 7, siga um destes procedimentos: Se tiver escolhido Automatically copy Auto Scaling group: em Auto Scaling group, escolha o nome do grupo do Auto Scaling que você deseja usar como template para o grupo do Auto Scaling que será criado para as instâncias no seu ambiente de substituição. O número de instâncias atualmente íntegras no grupo do Auto Scaling que você selecionar será criado no seu ambiente de substituição. Se tiver escolhido Manually provision instances: em Choose the EC2 instances or Auto Scaling groups where the current application revision is deployed, insira valores de tags do Amazon EC2 ou nomes de grupo do Auto Scaling para identificar as instâncias no ambiente original (ou seja, as instâncias que você deseja substituir ou que estão executando a revisão de aplicativo atual). 9. Em Load balancer, escolha o balanceador de carga clássico que será usado no registro das instâncias no seu ambiente de substituição durante o processo de implantação. As instâncias no seu ambiente original podem estar registradas no balanceador de carga que você escolher, embora isso não seja obrigatório. 10.Em Deployment settings, reveja as opções padrão para o redirecionamento do tráfego ao ambiente de substituição, qual configuração de implantação usar para a implantação e como as instâncias no ambiente original são tratadas após a implantação. Se quiser alterar as configurações, continue na etapa 11. Caso contrário, vá para a etapa Para alterar as configurações de implantação da implantação azul/verde, escolha Edit deployment settings, atualize qualquer uma das seguintes configurações e escolha Submit. Configuração Traffic rerouting Deployment configuration Opções Reroute traffic immediately: assim que as instâncias no ambiente de substituição forem provisionadas e receberem a instalação da última revisão de aplicativo, elas serão registradas no balanceador de carga automaticamente, fazendo com que o tráfego seja redirecionado para elas. O registro das instâncias no ambiente original será então cancelado. I will choose whether to reroute traffic: as instâncias no ambiente de substituição apenas serão registradas no balanceador de carga se você redirecionar manualmente o tráfego. Se o tempo de espera especificado passar sem que o tráfego seja redirecionado, o status da implantação será alterado para parado. Escolha em que taxa as instâncias no ambiente de substituição são registradas no balanceador de carga, por exemplo, uma de cada vez ou todos ao mesmo tempo. Depois que o tráfego for direcionado com sucesso ao ambiente de substituição, o registro de todas as instâncias no 198

207 Criar um aplicativo (CLI) Configuração Opções ambiente original será cancelado de uma só vez, independentemente da configuração de implantação selecionada. Para obter mais informações, consulte Trabalhando com configurações de implantação no AWS CodeDeploy (p. 189). Original instances Terminate the original instances in the deployment group: quando o tráfego tiver sido redirecionado ao ambiente de substituição, as instâncias cujo registro foi cancelado do balanceador de carga serão encerradas após o período de espera especificado. Keep the original instances in the deployment group running: quando o tráfego tiver sido redirecionado ao ambiente de substituição, as instâncias cujo registro foi cancelado do balanceador de carga continuarão em execução. 12.(Opcional) Em Advanced, configure qualquer opção que você deseja incluir na implantação, como gatilhos de notificações do Amazon SNS, alarmes do Amazon CloudWatch ou reversões automáticas. Para obter informações sobre como especificar opções avançadas em grupos de implantação, consulte Configurar opções avançadas para um grupo de implantação (p. 212). 13.Na caixa Service role ARN, escolha um Nome de Recurso Amazon (ARN) para uma função de serviço que conceda ao AWS CodeDeploy pelo menos os níveis de confiança e permissões descritos em Etapa 3: criar uma função de serviço (p. 15). Para obter o ARN da função de serviço, consulte Obter o ARN da função de serviço (console) (p. 18). 14.Escolha Create application. A próxima etapa é preparar uma revisão a ser implantada no aplicativo e grupo de implantação. Para obter instruções, consulte Trabalhando com revisões de aplicativos para o AWS CodeDeploy (p. 215). Criar um aplicativo (CLI) Para usar a AWS CLI para criar um aplicativo, chame o comando create-application, especificando um nome que represente exclusivamente o aplicativo. (Em uma conta da AWS, um nome de aplicativo AWS CodeDeploy pode ser usado apenas uma vez por região. É possível reutilizar um nome de aplicativo em diferentes regiões.) Depois de usar a AWS CLI para criar um aplicativo, a próxima etapa é criar um grupo de implantação, que especifica as instâncias nas quais implantar revisões. Para obter instruções, consulte Criar um grupo de implantação com o AWS CodeDeploy (p. 203). Depois de criar o grupo de implantação, a próxima etapa é preparar uma revisão a ser implantada no aplicativo e grupo de implantação. Para obter instruções, consulte Trabalhando com revisões de aplicativos para o AWS CodeDeploy (p. 215). 199

208 Visualizar detalhes de aplicativos Visualizar detalhes de aplicativos com o AWS CodeDeploy Você pode usar o console do AWS CodeDeploy, a AWS CLI ou as APIs do AWS CodeDeploy para visualizar detalhes sobre todos os aplicativos associados à sua conta da AWS. Tópicos Visualizar detalhes de aplicativos (console) (p. 200) Visualizar detalhes de aplicativos (CLI) (p. 200) Visualizar detalhes de aplicativos (console) Para usar o console do AWS CodeDeploy para visualizar os detalhes de aplicativos: 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, escolha Applications. Se não for exibida nenhuma entrada, verifique se a região correta está selecionada. Na barra de navegação, no seletor de região, escolha uma das regiões listadas em Região e endpoints, no AWS General Reference. O AWS CodeDeploy apenas oferece suporte a essas regiões. 3. Para visualizar detalhes de aplicativos adicionais, escolha o nome do aplicativo na lista. Visualizar detalhes de aplicativos (CLI) Para usar a AWS CLI com o objetivo de visualizar detalhes de aplicativos, chame o comando getapplication, batch-get-application ou list-applications. Para visualizar detalhes sobre um único aplicativo, chame o comando get-application, especificando o nome do aplicativo. Para visualizar detalhes sobre vários aplicativos, chame o comando batch-get-applications, especificando vários nomes de aplicativos. Para ver uma lista de nomes de aplicativos, chame o comando list-applications. Renomear um aplicativo do AWS CodeDeploy É possível usar a AWS CLI ou as APIs do AWS CodeDeploy para alterar o nome de um aplicativo. Para ver uma lista de nomes de aplicativos, use a AWS CLI para chamar o comando list-applications. Para obter informações sobre como usar a AWS CLI para alterar um nome de aplicativo, consulte updateapplication. 200

209 Excluir um aplicativo Para obter informações sobre como usar as APIs do AWS CodeDeploy para alterar um nome de aplicativo, consulte API_UpdateApplication. Excluir um aplicativo no AWS CodeDeploy É possível usar o console do AWS CodeDeploy, a AWS CLI ou uma ação de API do AWS CodeDeploy para excluir aplicativos. Para obter informações sobre como usar a ação de API do AWS CodeDeploy, consulte DeleteApplication. Warning A exclusão de um aplicativo remove informações sobre ele do sistema do AWS CodeDeploy, incluindo todas as informações relacionadas ao grupo de implantação e os detalhes da implantação. Isso não remove revisões de aplicativo relacionadas das instâncias nas quais elas possam estar instaladas, nem as exclui dos buckets do Amazon S3 nas quais elas possam estar armazenadas. A exclusão também não encerra instâncias do Amazon EC2 nem cancela o registro de instâncias locais. Esta ação não pode ser desfeita. Tópicos Excluir um aplicativo (console) (p. 201) Excluir um aplicativo (AWS CLI) (p. 201) Excluir um aplicativo (console) Para usar o console do AWS CodeDeploy para excluir um aplicativo: 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. Se a página Applications não aparecer, no menu do AWS CodeDeploy, escolha Applications. 3. Na lista de aplicativos, escolha o nome daquele que você deseja excluir. 4. Na página Application details, em Deployment groups, escolha o botão ao lado do grupo de implantação. No menu Actions, selecione Delete. Quando solicitado, digite o nome do grupo de implantação para confirmar que você deseja excluí-lo e, em seguida, escolha Delete. Repita o processo para qualquer grupo de implantação adicional. 5. Na parte inferior da página Application details, escolha Delete application. 6. Quando solicitado, digite o nome do aplicativo para confirmar que você deseja excluí-lo e, em seguida, escolha Delete. Excluir um aplicativo (AWS CLI) Para usar a AWS CLI para excluir um aplicativo, chame o comando delete-application, especificando o nome do aplicativo. Para ver uma lista de nomes de aplicativos, chame o comando list-applications. 201

210 Trabalhando com grupos de implantação no AWS CodeDeploy Um grupo de implantação é um conjunto de instâncias individuais direcionadas para uma implantação. Um grupo de implantação contém instâncias individualmente marcadas e/ou instâncias do Amazon EC2 em grupos do Auto Scaling. Em uma implantação no local, as instâncias no grupo de implantação são atualizadas com a última revisão de aplicativo. Em uma implantação azul/verde, o tráfego é redirecionado de um conjunto de instâncias para outro por meio do cancelamento do registro das instâncias originais de um balanceador de carga e do registro de um conjunto de instâncias de substituição que geralmente possui a última revisão de aplicativo já instalada. É possível associar mais de um grupo de implantação a um aplicativo no AWS CodeDeploy. Isso permite implantar uma revisão de aplicativo em diferentes conjuntos de instâncias em momentos diferentes. Por exemplo, é possível usar um grupo de implantação para implantar uma revisão de aplicativo em um conjunto de instâncias marcadas Test nas quais você garante a qualidade do código. Em seguida, você implanta a mesma revisão de aplicativo em um grupo de implantação com instâncias marcadas Staging para verificação adicional. Finalmente, quando estiver pronto para lançar o aplicativo mais recente aos clientes, você implantará em um grupo de implantação que inclua instâncias marcadas Production. Ao usar o console do AWS CodeDeploy para criar um aplicativo, você configura seu primeiro grupo de implantação ao mesmo tempo. Ao usar a AWS CLI para criar um aplicativo, você cria seu primeiro grupo de implantação em uma etapa separada. Para ver uma lista de grupos de implantação já associados à sua conta da AWS, consulte Visualizar detalhes do grupo de implantação com o AWS CodeDeploy (p. 209). Para obter informações sobre tags de instâncias do Amazon EC2, consulte Trabalhando com tags usando o console. Para obter informações sobre instâncias locais, consulte Trabalhando com instâncias locais para o AWS CodeDeploy (p. 156). Para obter informações sobre o Auto Scaling, consulte Auto Scaling (p. 38). Tópicos Criar um grupo de implantação com o AWS CodeDeploy (p. 203) Visualizar detalhes do grupo de implantação com o AWS CodeDeploy (p. 209) Alterar configurações do grupo de implantação com o AWS CodeDeploy (p. 210) Configurar opções avançadas para um grupo de implantação (p. 212) 202

211 Criar um grupo de implantação Excluir um grupo de implantação com o AWS CodeDeploy (p. 213) Criar um grupo de implantação com o AWS CodeDeploy Você pode usar o console do AWS CodeDeploy, a AWS CLI, as APIs do AWS CodeDeploy ou um template do AWS CloudFormation para criar grupos de implantação. Para obter informações sobre como usar um template do AWS CloudFormation para criar um grupo de implantação, consulte Referência de templates do AWS CloudFormation para o AWS CodeDeploy (p. 305). Ao usar o console do AWS CodeDeploy para criar um aplicativo, você configura seu primeiro grupo de implantação ao mesmo tempo. Ao usar a AWS CLI para criar um aplicativo, você cria seu primeiro grupo de implantação em uma etapa separada. Como parte da criação de um grupo de implantação, você deve especificar uma função de serviço. Para obter mais informações, consulte Etapa 3: criar uma função de serviço (p. 15). Tópicos Criar um grupo de implantação para uma implantação no local (console) (p. 203) Criar um grupo de implantação para uma implantação azul/verde (console) (p. 205) Configurar um load balancer no Elastic Load Balancing para implantações do AWS CodeDeploy (p. 208) Criar um grupo de implantação (CLI) (p. 208) Criar um grupo de implantação para uma implantação no local (console) Para usar o console do AWS CodeDeploy para criar um grupo de implantação para uma implantação no local: Warning Não siga essas etapas se: Você não preparou suas instâncias para serem usadas na primeira implantação do AWS CodeDeploy de um aplicativo. Para configurar suas instâncias, siga as instruções em Trabalhando com instâncias (p. 139) e depois siga as etapas neste tópico. Você deseja criar um grupo de implantação que usa uma configuração de implantação personalizada, mas ainda não criou essa configuração de implantação. Siga as instruções em Criar uma configuração de implantação com o AWS CodeDeploy (p. 192) e depois siga as etapas neste tópico. Você não possui uma função de serviço que concede ao AWS CodeDeploy pelo menos os níveis de confiança e permissões descritos em Etapa 3: criar uma função de serviço (p. 15). Para criar e configurar uma função de serviço, siga as instruções em Etapa 3: criar uma função de serviço (p. 15) e depois siga as etapas neste tópico. Você deseja selecionar um Classic Load Balancer no Elastic Load Balancing para a implantação local, mas ainda não o criou. 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. 203

212 Criar um grupo de implantação para uma implantação no local (console) Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, selecione Aplicativos. 3. Na página Aplicativos, escolha o nome do aplicativo para o qual você deseja criar um grupo de implantação. 4. Escolha Criar grupo de implantação. 5. Na caixa Nome do grupo de implantação, digite um nome que descreva o grupo de implantação. Se quiser usar as mesmas configurações usadas em outro grupo de implantação (incluindo o nome do grupo de implantação, tags e/ou nomes de grupos do Auto Scaling, bem como a configuração de implantação), especifique essas configurações nessa página. Embora esse novo grupo de implantação e o grupo de implantação existente tenham o mesmo nome, o AWS CodeDeploy os tratará como grupos de implantação separados, porque cada um deles está associado a aplicativos separados. 6. Selecione Implantação no local. 7. Em Configuração do ambiente, escolha entre o seguinte: Na guia Grupos do Auto Scaling: escolha o nome de um grupo do Auto Scaling no qual implantar sua revisão do aplicativo. Quando novas instâncias do Amazon EC2 são iniciadas como parte de um grupo de Auto Scaling, o AWS CodeDeploy pode implantar suas revisões nessas novas instâncias automaticamente. É possível adicionar até 10 grupos do Auto Scaling a um grupo de implantação. Na guia Instâncias do Amazon EC2 ou Instâncias locais: nos campos Chave e Valor, digite os valores do par de chave/valor que você usou para marcar as instâncias. É possível marcar até 10 pares de chave/valor em um único grupo de tags. Você pode usar caracteres curinga no campo Valor para identificar todas as instâncias marcadas em determinados padrões, como instâncias do Amazon EC2, centros de custo e nomes de grupos semelhantes e assim por diante. Por exemplo, se você selecionar Nome no campo Chave e digitar GRP-*a no campo Valor, o AWS CodeDeploy identificará todas as instâncias que se enquadram nesse padrão, como GRP-1a, GRP-2a e GRP-XYZ-a. O campo Valor diferencia maiúsculas de minúsculas. Para remover um par de chave/valor da lista, escolha o ícone Remover. À medida que o AWS CodeDeploy encontrar instâncias que correspondam a cada par de chave/valor ou nome de grupo do Auto Scaling especificado, ele exibirá o número de instâncias correspondentes. Para ver mais informações sobre as instâncias, clique no número. Se você deseja refinar os critérios para a implantação de instâncias, escolha Adicionar grupo de tags para criar um grupo de tags. É possível criar até três grupos de tags com até 10 pares chave/ valor de cada. Quando você usa grupos de várias tags em um grupo de implantação, apenas as instâncias que são identificadas por todos os grupos de tags são incluídas no grupo de implantação. Isso significa que uma instância deve corresponder pelo menos a uma das tags em cada um dos grupos a serem incluídos no grupo de implantação. Para obter mais informações sobre como usar grupos de tags para refinar o grupo de implantação, consulte???. 8. (Opcional) Em Load balancer, escolha Ativar balanceamento de carga e, em seguida, escolha um Classic Load Balancer ou Balanceador de carga de aplicações existente para gerenciar o tráfego para as instâncias durante os processos de implantação. O registro de cada instância é cancelado do load balancer (Classic Load Balancers) ou grupo de destino (Balanceador de carga de aplicaçõess) para impedir que o tráfego seja roteado para ele durante a implantação. Ela é registrada novamente mediante a conclusão da implementação. 204

213 Criar um grupo de implantação para uma implantação azul/verde (console) Para obter mais informações sobre load balancers para implantações do AWS CodeDeploy, consulte Integrando o AWS CodeDeploy com o Elastic Load Balancing (p. 40). 9. Na lista Configuração da implantação, escolha uma configuração de implantação para controlar a taxa em que as instâncias são implantadas, por exemplo, uma de cada vez ou todas ao mesmo tempo. Para obter mais informações sobre configurações de implantação, consulte Trabalhando com configurações de implantação no AWS CodeDeploy (p. 189). 10.(Opcional) Em Avançado, configure as opções que você deseja incluir na implantação, como acionadores de notificações do Amazon SNS, alarmes do Amazon CloudWatch ou reversões automáticas. Para obter mais informações, consulte Configurar opções avançadas para um grupo de implantação (p. 212). 11.Na caixa ARN da função de serviço, escolha um nome de recurso da Amazon (ARN) para uma função de serviço que conceda ao AWS CodeDeploy pelo menos os níveis de confiança e permissões descritos em Etapa 3: criar uma função de serviço (p. 15). Para obter o ARN da função de serviço, consulte Obter o ARN da função de serviço (console) (p. 18). 12.Escolha Criar grupo de implantação. Criar um grupo de implantação para uma implantação azul/verde (console) Para usar o console do AWS CodeDeploy para criar um grupo de implantação para uma implantação azul/ verde: Warning Não siga essas etapas se: Você não tem instâncias instaladas com o agente do AWS CodeDeploy que deseja substituir durante o processo de implantação azul/verde. Para configurar suas instâncias, siga as instruções em Trabalhando com instâncias (p. 139) e depois siga as etapas neste tópico. Você deseja criar um aplicativo que usa uma configuração de implantação personalizada, mas ainda não criou essa configuração de implantação. Siga as instruções em Criar uma configuração de implantação com o AWS CodeDeploy (p. 192) e depois siga as etapas neste tópico. Você não possui uma função de serviço que concede ao AWS CodeDeploy pelo menos os níveis de confiança e permissões descritos em Etapa 3: criar uma função de serviço (p. 15). Para criar e configurar uma função de serviço, siga as instruções em Etapa 3: criar uma função de serviço (p. 15) e depois siga as etapas neste tópico. Você não criou um Classic Load Balancer no Elastic Load Balancing para o registro das instâncias no seu ambiente de substituição. Para obter mais informações, consulte Configurar um load balancer no Elastic Load Balancing para implantações do AWS CodeDeploy (p. 208). 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, selecione Aplicativos. 205

214 Criar um grupo de implantação para uma implantação azul/verde (console) 3. Na página Aplicativos, escolha o nome do aplicativo para o qual você deseja criar um grupo de implantação. 4. Escolha Criar grupo de implantação. 5. Na caixa Nome do grupo de implantação, digite um nome que descreva o grupo de implantação. Se quiser usar as mesmas configurações usadas em outro grupo de implantação, especifique as configurações nessa página. As configurações que você possa eventualmente reutilizar incluem, por exemplo, o nome do grupo de implantação, tags, nomes de grupo do Auto Scaling ou configuração de implantação. Embora o novo grupo de implantação e o existente tenham o mesmo nome, o AWS CodeDeploy os tratará como grupos de implantação separados, porque cada um deles está associado a aplicativos separados. 6. Escolha Implantação azul/verde. 7. Em Configuração de ambiente, escolha o método que você deseja usar para fornecer instâncias ao seu ambiente de substituição: Copiar grupo do Auto Scaling automaticamente: o AWS CodeDeploy cria um grupo do Auto Scaling copiando o especificado por você. Fornecer instâncias manualmente: você apenas especificará as instâncias para o seu ambiente de substituição depois de criar uma implantação. Você deve criar as instâncias antes de iniciar a implantação. Em vez disso, aqui, você especifica as instâncias que deseja substituir. 8. Dependendo da sua escolha na etapa 7, siga um destes procedimentos: Se tiver escolhido Copiar grupo do Auto Scaling automaticamente: em Grupo do Auto Scaling, escolha o nome do grupo do Auto Scaling que você deseja usar como modelo para o grupo do Auto Scaling que será criado para as instâncias no seu ambiente de substituição. O número de instâncias atualmente íntegras no grupo do Auto Scaling que você selecionar será criado no seu ambiente de substituição. Se você optar por Fornecer instâncias manualmente: em Escolher as instâncias do EC2 ou os grupos do Auto Scaling onde a revisão do aplicativo atual será implantada, insira os valores de tag do Amazon EC2 ou nomes de grupos do Auto Scaling para identificar as instâncias em seu ambiente original (ou seja, as instâncias que você deseja substituir ou que estão executando a revisão do aplicativo atual). 9. Em Load balancer, escolha o Classic Load Balancer ou o Balanceador de carga de aplicações para usar no registro das instâncias no seu ambiente de substituição durante o processo de implantação. As instâncias no seu ambiente original podem estar registradas no balanceador de carga que você escolher, embora isso não seja obrigatório. Para obter mais informações sobre load balancers para implantações do AWS CodeDeploy, consulte Integrando o AWS CodeDeploy com o Elastic Load Balancing (p. 40). 10.Em Configurações de implantação, reveja as opções padrão para o redirecionamento do tráfego ao ambiente de substituição, qual configuração de implantação usar para a implantação e como as instâncias no ambiente original serão tratadas após a implantação. Se quiser alterar as configurações, continue na etapa 11. Caso contrário, vá para a etapa Para alterar as configurações de implantação da implantação azul/verde, escolha Editar configurações de implantação, atualize qualquer uma das seguintes configurações e escolha Enviar. Configuração Redirecionamento de tráfego Opções Rotear novamente o tráfego imediatamente: assim que as instâncias no ambiente de substituição forem provisionadas e receberem 206

215 Criar um grupo de implantação para uma implantação azul/verde (console) Configuração Configuração de implantação Opções a instalação da revisão mais recente do aplicativo, elas serão registradas no load balancer automaticamente, fazendo com que o tráfego seja roteado novamente para elas. O registro das instâncias no ambiente original será então cancelado. Decidirei sobre rotear novamente o tráfego: as instâncias no ambiente de substituição apenas serão registradas no load balancer se você rotear novamente o tráfego manualmente. Se o tempo de espera especificado passar sem que o tráfego seja redirecionado, o status da implantação será alterado para parado. Escolha em que taxa as instâncias no ambiente de substituição são registradas no balanceador de carga, por exemplo, uma de cada vez ou todos ao mesmo tempo. Depois que o tráfego for direcionado com sucesso ao ambiente de substituição, o registro de todas as instâncias no ambiente original será cancelado de uma só vez, independentemente da configuração de implantação selecionada. Para obter mais informações, consulte Trabalhando com configurações de implantação no AWS CodeDeploy (p. 189). Instâncias originais Encerrar as instâncias originais no grupo de implantação: quando o tráfego tiver sido roteado novamente ao ambiente de substituição, as instâncias cujo registro foi cancelado do load balancer serão encerradas após o período de espera especificado. Manter as instâncias originais executando no grupo de implantação: quando o tráfego tiver sido roteado novamente ao ambiente de substituição, as instâncias cujo registro foi cancelado do load balancer continuarão a ser executadas. 12.(Opcional) Em Avançado, configure opções que você deseja incluir na implantação, como acionadores de notificações do Amazon SNS, alarmes do Amazon CloudWatch ou reversões automáticas. Para obter informações sobre como especificar opções avançadas em grupos de implantação, consulte Configurar opções avançadas para um grupo de implantação (p. 212). 13.Na caixa ARN da função de serviço, marque um nome de recurso da Amazon (ARN) para uma função de serviço que conceda ao AWS CodeDeploy pelo menos os níveis de confiança e permissões descritos em Etapa 3: criar uma função de serviço (p. 15). Para obter o ARN da função de serviço, consulte Obter o ARN da função de serviço (console) (p. 18). 14.Escolha Criar grupo de implantação. 207

216 Configurar um load balancer no Elastic Load Balancing para implantações do AWS CodeDeploy Configurar um load balancer no Elastic Load Balancing para implantações do AWS CodeDeploy Antes de executar qualquer implantação azul/verde, ou uma implantação local para a qual você deseja especificar um load balancer opcional no grupo de implantação, é necessário ter criado um Classic Load Balancer ou Balanceador de carga de aplicações no Elastic Load Balancing. Para balanceador de carga, você usa esse balanceador de carga para registrar as instâncias que compõem seu ambiente de substituição. As instâncias no seu ambiente original podem, opcionalmente, ser registradas nesse mesmo balanceador de carga. Para configurar um Classic Load Balancer, siga as instruções em Tutorial: criar um Classic Load Balancer no Guia do Classic Load Balancer. Observe o seguinte: Na Etapa 2: definir o balanceador de carga, em Criar LB interno, escolha o mesmo VPC que você selecionou quando criou suas instâncias. Na Etapa 5: registrar instâncias do EC2 no seu balanceador de carga, selecione as instâncias que estão atualmente no seu grupo de implantação (implantações no local) ou que você tenha designado para estar no seu ambiente original (implantações azul/verde). Na Etapa 7: criar e verificar seu balanceador de carga, anote o endereço DNS do seu balanceador de carga. Por exemplo, se você chamou seu balanceador de carga de my-load-balancer, o endereço DNS apareceria em um formato como my-load-balancer us-east-2.elb.amazonaws.com. Para configurar um Balanceador de carga de aplicações, siga as instruções em um dos seguintes tópicos: Criar um Balanceador de carga de aplicações Tutorial: crie um Balanceador de carga de aplicações usando a AWS CLI Criar um grupo de implantação (CLI) Para usar a AWS CLI para criar um grupo de implantação, chame o comando create-deployment-group, especificando: O nome do aplicativo. Para ver uma lista de nomes de aplicativos, chame o comando list-applications. Um nome para o grupo de implantação. Esse nome deve ser exclusivo para cada aplicativo associado ao grupo de implantação. Informações sobre as tags, grupos de tags ou os nomes de grupo do Auto Scaling que identificam as instâncias a serem incluídas no grupo de implantação. O identificador do Nome de Recurso Amazon (ARN) da função de serviço que permite ao AWS CodeDeploy agir em nome da sua conta da AWS durante a interação com outros serviços da AWS. Para obter o ARN da função de serviço, consulte Obter o ARN da função de serviço (CLI) (p. 19). Para obter mais informações sobre funções de serviço, consulte Termos e conceitos de funções, no Guia do usuário do IAM. Informações sobre o tipo de implantação, seja no local ou azul/verde, a ser associado ao grupo de implantação. (Opcional) O nome de uma configuração de implantação existente. Para ver uma lista de configurações de implantação, consulte Visualizar detalhes de configurações de implantação (p. 192). Se não for especificado, o AWS CodeDeploy usará uma configuração de implantação padrão. (Opcional) Comandos para criar um gatilho que envia notificações sobre eventos de implantação e instância para aqueles que estão inscritos em um tópico do Amazon Simple Notification Service. Para 208

217 Visualizar detalhes do grupo de implantação obter mais informações, consulte Monitorando implantações com notificações de eventos do Amazon SNS (p. 254). (Opcional) Comandos para adicionar alarmes do CloudWatch existentes ao grupo de implantação que serão ativados se uma métrica especificada em um alarme cair abaixo de um limite definido ou exceder esse limite. (Opcional) Comandos para uma implantação reverter para a última revisão em bom estado conhecida quando uma implantação falhar ou quando um alarme do CloudWatch for ativado. Para implantações no local: (Opcional) O nome do Classic Load Balancer ou Balanceador de carga de aplicações no Elastic Load Balancing que gerencia o tráfego para as instâncias durante os processos de implantação. Para implantações azuis/verdes: Configuração do processo de implantação azul/verde: Como novas instâncias no ambiente de substituição são provisionadas. Se o tráfego deve ser redirecionado ao ambiente de substituição imediatamente ou se é necessário aguardar um período especificado para o tráfego ser redirecionado manualmente. Se as instâncias no ambiente original devem ser encerradas. O nome do Classic Load Balancer ou Balanceador de carga de aplicações no Elastic Load Balancing para ser usado para instâncias registradas no ambiente de substituição. Visualizar detalhes do grupo de implantação com o AWS CodeDeploy Você pode usar o console do AWS CodeDeploy, a AWS CLI ou as APIs do AWS CodeDeploy para visualizar detalhes sobre todos os grupos de implantação associados a um aplicativo. Tópicos Visualizar detalhes do grupo de implantação (console) (p. 209) Visualizar detalhes do grupo de implantação (CLI) (p. 210) Visualizar detalhes do grupo de implantação (console) Para usar o console do AWS CodeDeploy para visualizar os detalhes do grupo de implantação: 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. Se a página Aplicativos não for exibida, selecione a opção Aplicativos no menu do AWS CodeDeploy. 3. Na página Aplicativos, escolha o nome do aplicativo associado ao grupo de implantação. Se não for exibida nenhuma entrada, verifique se a região correta está selecionada. Na barra de navegação, no seletor de região, escolha uma das regiões listadas em Região e endpoints, no AWS General Reference. O AWS CodeDeploy apenas oferece suporte a essas regiões. 4. Para visualizar detalhes sobre um grupo de implantação individual, em Grupos de implantação, escolha a seta ao lado do grupo de implantação. 209

218 Visualizar detalhes do grupo de implantação (CLI) Visualizar detalhes do grupo de implantação (CLI) Para usar a AWS CLI para visualizar detalhes do grupo de implantação, chame o comando getdeployment-group ou list-deployment-groups. Para visualizar detalhes sobre um único grupo de implantação, chame o comando get-deployment-group, especificando: O nome do aplicativo associado ao grupo de implantação. Para obter o nome do aplicativo, chame o comando list-applications. O nome do grupo de implantação. Para obter o nome do grupo de implantação, chame comando listdeployment-groups. Para ver uma lista de nomes de grupos de implantação, chame o comando list-deployment-groups, especificando o nome do aplicativo associado aos grupos de implantação. Para obter o nome do aplicativo, chame o comando list-applications. Alterar configurações do grupo de implantação com o AWS CodeDeploy Você pode usar o console do AWS CodeDeploy, a AWS CLI ou as APIs do AWS CodeDeploy para alterar as configurações de um grupo de implantação. Warning Não use essas etapas se quiser que o grupo de implantação use um grupo de implantação personalizado ainda não criado. Em vez disso, siga as instruções em Criar uma configuração de implantação com o AWS CodeDeploy (p. 192) e, em seguida, volte para esse tópico. Não use essas etapas se quiser que o grupo de implantação use uma função de serviço diferente ainda não criada. A função de serviço deve conceder ao AWS CodeDeploy pelo menos as permissões descritas em Etapa 3: criar uma função de serviço (p. 15). Para criar e configurar uma função de serviço com as permissões corretas, siga as instruções em Etapa 3: criar uma função de serviço (p. 15) e depois volte para este tópico. Tópicos Alterar configurações do grupo de implantação (console) (p. 210) Alterar configurações do grupo de implantação (CLI) (p. 211) Alterar configurações do grupo de implantação (console) Para usar o console do AWS CodeDeploy para alterar as configurações do grupo de implantação: 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, escolha Applications. 210

219 Alterar configurações do grupo de implantação (CLI) 3. Na lista de aplicativos, escolha o aplicativo associado ao grupo de implantação que você deseja alterar. Se não for exibida nenhuma entrada, verifique se a região correta está selecionada. Na barra de navegação, no seletor de região, escolha uma das regiões listadas em Região e endpoints, no AWS General Reference. O AWS CodeDeploy apenas oferece suporte a essas regiões. 4. Na página Application details, em Deployment groups, escolha o botão ao lado do grupo de implantação que você deseja alterar. 5. No menu Actions, selecione Edit. 6. Revise qualquer uma das opções do grupo de implantação que você deseja alterar. Para obter informações sobre componentes do grupo de implantação, consulte Criar um grupo de implantação com o AWS CodeDeploy (p. 203). 7. Se quiser implantar a última revisão bem-sucedida no grupo de implantação, selecione a caixa Deploy changes made to deployment group name e escolha Save. Quando solicitado, escolha Deploy. O AWS CodeDeploy atualiza as informações do grupo de implantação, inicia uma implantação da última revisão bem-sucedida no grupo de implantação com base nas alterações especificadas e exibe a página Deployments. A caixa de seleção Deploy changes made to deployment group name aparecerá somente se houver uma última implantação bem-sucedida nesse grupo de implantação. 8. Se quiser atualizar as informações do grupo de implantação com as suas alterações, mas não quiser implantar nenhum aplicativo no grupo de implantação neste momento, desmarque a caixa Deploy changes made to deployment group name e escolha Save. O AWS CodeDeploy atualizará as informações do grupo de implantação, mas não implantará nenhum aplicativo nele. Alterar configurações do grupo de implantação (CLI) Para usar a AWS CLI para alterar as configurações do grupo de implantação, chame o comando updatedeployment-group, especificando: O nome do aplicativo. Para ver uma lista de nomes de aplicativos, chame o comando list-applications. O nome do grupo de implantação atual. Para ver uma lista de nomes de grupos de implantação, chame o comando list-deployment-groups. (Opcional) Um nome de grupo de implantação diferente. (Opcional) Tags de substituição que identifiquem de forma exclusiva as instâncias a serem incluídas no grupo de implantação. (Opcional) Um Nome de Recurso Amazon (ARN) diferente que corresponda a uma função de serviço que permite ao AWS CodeDeploy agir em nome da sua conta da AWS ao interagir com outros serviços da AWS relacionados. Para obter o ARN da função de serviço, consulte Obter o ARN da função de serviço (CLI) (p. 19). Para obter mais informações sobre funções de serviço, consulte Termos e conceitos de funções, no Guia do usuário do IAM. (Opcional) Os nomes dos grupos do Auto Scaling de substituição a serem adicionados ao grupo de implantação. (Opcional) O nome da configuração de implantação. Para ver uma lista de configurações de implantação, consulte Visualizar detalhes de configurações de implantação (p. 192). (Se não for especificado, o AWS CodeDeploy usará uma configuração de implantação padrão específica.) (Opcional) Comandos para criar ou atualizar um gatilho que publica em um tópico no Amazon Simple Notification Service, para que os assinantes desse tópico recebam notificações sobre eventos de implantação e instância nesse grupo de implantação. Para obter mais informações, consulte Monitorando implantações com notificações de eventos do Amazon SNS (p. 254). 211

220 Configurar opções avançadas para um grupo de implantação (Opcional) Comandos para adicionar um ou mais alarmes do CloudWatch existentes ao grupo de implantação, que serão ativados se uma métrica especificada em um alarme cair abaixo de um limite definido ou exceder esse limite. (Opcional) Comandos para uma implantação reverter para a última revisão em bom estado conhecida quando uma implantação falhar ou quando um alarme do CloudWatch for ativado. Configurar opções avançadas para um grupo de implantação Ao criar ou atualizar um grupo de implantação, você pode configurar uma série de opções para fornecer mais controle e supervisão sobre as implementações desse grupo de implantação. Use as informações nessa página para ajudá-lo a configurar opções avançadas ao trabalhar com grupos de implantação nos seguintes tópicos: Criar um aplicativo (p. 194) Criar um grupo de implantação com o AWS CodeDeploy (p. 203) Alterar configurações do grupo de implantação (p. 210) Gatilhos de notificações do Amazon SNS: você pode adicionar gatilhos a um grupo de implantação do AWS CodeDeploy para receber notificações sobre eventos relacionados a implantações ou instâncias nesse grupo de implantação. Essas notificações são enviadas aos destinatários inscritos em um tópico do Amazon SNS que você incluiu como parte da ação do gatilho. Você já deve ter configurado o tópico do Amazon SNS para o qual esse gatilho apontará, e o AWS CodeDeploy deve ter permissão para publicar no tópico a partir desse grupo de implantação. Se você ainda não tiver concluído essas etapas de configuração, poderá adicionar gatilhos ao grupo de implantação mais tarde. Se quiser criar um gatilho agora para receber notificações sobre eventos de implantação e de instância no grupo de implantação desse aplicativo, escolha Criar gatilho. Para obter mais informações, consulte Monitorando implantações com notificações de eventos do Amazon SNS (p. 254). Alarmes do Amazon CloudWatch: você pode criar um alarme do CloudWatch para uma instância ou um grupo do Auto Scaling que esteja usando nas suas operações do AWS CodeDeploy. Um alarme observa uma única métrica ao longo de um período especificado por você e realiza uma ou mais ações com base no valor da métrica relativo a um determinado limite ao longo de vários períodos. É possível configurar uma implantação para que ela pare quando um alarme do Amazon CloudWatch detectar que uma métrica caiu abaixo de um limite definido ou excedeu esse limite. Você já deve ter criado o alarme no CloudWatch para poder adicioná-lo a um grupo de implantação. 1. Para adicionar monitoramento de alarmes ao grupo de implantação, escolha Adicionar alarme. 2. Em Nome do alarme, digite o nome de um alarme do CloudWatch que você já configurou para monitorar essa implantação. Você deve inserir o alarme do CloudWatch exatamente como ele foi criado no CloudWatch. Para ver uma lista de alarmes, abra o console do CloudWatch em e escolha ALARME. Opções adicionais: 212

221 Excluir um grupo de implantação Se quiser que as implantações prossigam sem levarem em conta os alarmes que você adicionou, escolha Ignorar configuração de alarme. Essa opção é útil quando você deseja desativar temporariamente o monitoramento de alarmes para um grupo de implantação sem precisar adicionar os mesmos alarmes novamente mais tarde. (Opcional) Se quiser que as implantações continuem no caso de o AWS CodeDeploy não conseguir recuperar o status do alarme do Amazon CloudWatch, escolha Continuar implantações mesmo se o status do alarme estiver indisponível. Essa opção corresponde a ignorepollalarmfailure no objeto AlarmConfiguration da API do AWS CodeDeploy. Para obter mais informações, consulte Monitorando implantações com alarmes do CloudWatch no AWS CodeDeploy (p. 248). Reversões automáticas: você pode configurar um grupo de implantação ou uma implantação para reversão automática quando uma implantação falhar ou quando um limite de monitoramento especificado for atendido. Nesse caso, a última versão conhecida em bom estado de uma revisão de aplicativo é implantada. Você pode definir configurações opcionais para um grupo de implantação ao usar o console para criar um aplicativo, criar um grupo de implantação ou atualizar um grupo de implantação. Ao criar uma nova implantação, você também pode optar por substituir a configuração de reversão automática que foi especificada para o grupo de implantação. É possível habilitar implantações para que elas sejam revertidas para a revisão em bom estado mais recente conhecida quando algo der errado, escolhendo uma das seguintes opções, ou ambas: Reverter quando uma implantação falhar. O AWS CodeDeploy redistribuirá a última revisão em bom estado conhecida como uma nova implantação. Reverter quando limites de alarme forem atendidos. Se você tiver adicionado um alarme a esse aplicativo na etapa anterior, o AWS CodeDeploy reimplantará a última revisão em bom estado conhecida quando um ou mais dos alarmes especificados estiverem ativados. Para ignorar temporariamente uma configuração de reversão, escolha Desabilitar reversões. Essa opção é útil quando você deseja desabilitar temporariamente as reversões automáticas sem precisar definir a mesma configuração novamente mais tarde. Para obter mais informações, consulte Reimplantar e reverter uma implantação (p. 238). Excluir um grupo de implantação com o AWS CodeDeploy Você pode usar o console do AWS CodeDeploy, a AWS CLI ou as APIs do AWS CodeDeploy para excluir grupos de implantação associados à sua conta da AWS. Warning Se você excluir um grupo de implantação, todos os detalhes associados a ele também serão excluídos do AWS CodeDeploy. As instâncias utilizadas no grupo de implantação permanecerão inalteradas. Esta ação não pode ser desfeita. Tópicos 213

222 Excluir um grupo de implantação (console) Excluir um grupo de implantação (console) (p. 214) Excluir um grupo de implantação (CLI) (p. 214) Excluir um grupo de implantação (console) Para usar o console do AWS CodeDeploy para excluir um grupo de implantação: 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, selecione Aplicativos. 3. Na lista de aplicativos, escolha o nome do aplicativo associado ao grupo de implantação. 4. Na página Detalhes do aplicativo, em Grupos de implantação, escolha o botão ao lado do grupo de implantação que você deseja excluir. 5. No menu Ações, escolha Excluir. 6. Quando solicitado, digite o nome do grupo de implantação para confirmar que você deseja excluí-lo e, em seguida, escolha Excluir. Excluir um grupo de implantação (CLI) Para usar a AWS CLI para excluir um grupo de implantação, chame o comando delete-deployment-group, especificando: O nome do aplicativo associado ao grupo de implantação. Para ver uma lista de nomes de aplicativos, chame o comando list-applications. O nome do grupo de implantação associado ao aplicativo. Para ver uma lista de nomes de grupos de implantação, chame o comando list-deployment-groups. 214

223 Planejar uma revisão Trabalhando com revisões de aplicativos para o AWS CodeDeploy No AWS CodeDeploy, uma revisão contém uma versão dos arquivos de origem que o AWS CodeDeploy implantará nas suas instâncias ou dos scripts que ele executará nas suas instâncias. Você planeja a revisão, adiciona um arquivo AppSpec à revisão e depois a envia para o Amazon S3 ou o GitHub. Depois de enviar a revisão, você poderá implantá-la. Tópicos Planejar uma revisão para o AWS CodeDeploy (p. 215) Adicionar um arquivo de especificações de aplicativo a uma revisão para o AWS CodeDeploy (p. 216) Escolher um tipo de repositório do AWS CodeDeploy (p. 218) Enviar uma revisão do AWS CodeDeploy para o Amazon S3 (p. 220) Visualizar detalhes de revisões de aplicativo com o AWS CodeDeploy (p. 221) Registrar uma revisão de aplicativo no Amazon S3 com o AWS CodeDeploy (p. 223) Planejar uma revisão para o AWS CodeDeploy Um bom planejamento facilita muito mais a implantação de revisões em instâncias. Comece criando um diretório raiz vazio (pasta) na máquina de desenvolvimento. Este é o local onde você armazenará os arquivos de origem (como arquivos de texto e binários, executáveis, pacotes e assim por diante) a serem implantados nas instâncias ou os scripts a serem executados nessas instâncias. Por exemplo, na pasta raiz /tmp/ no Linux, macos, or Unix ou na pasta raiz c:\temp no Windows: /tmp/ or c:\temp (root folder) --content (subfolder) --mytextfile.txt 215

224 Adicionar um AppSpec File --mysourcefile.rb --myexecutablefile.exe --myinstallerfile.msi --mypackage.rpm --myimagefile.png --scripts (subfolder) --myshellscript.sh --mybatchscript.bat --mypowershellscript.ps1 --appspec.yml A pasta raiz também deve incluir um arquivo de especificação do aplicativo (arquivo AppSpec), conforme mostrado aqui. Para obter mais informações, consulte Adicionar um AppSpec File (p. 216). Adicionar um arquivo de especificações de aplicativo a uma revisão para o AWS CodeDeploy Sem um arquivo AppSpec, o AWS CodeDeploy não pode mapear os arquivos de origem na sua revisão do aplicativo para os respectivos destinos ou executar scripts em vários estágios da implantação. Cada revisão deve conter somente um arquivo AppSpec. Para adicionar um arquivo AppSpec a uma revisão: 1. Copie o template para um editor de texto. 2. Modifique o template conforme necessário. 3. Use um validador YAML para verificar a validade do seu arquivo AppSpec. 4. Salve o arquivo como appspec.yml no diretório raiz da revisão. 5. Execute um dos comandos a seguir para verificar se você inseriu seu arquivo AppSpec no diretório raiz: Para Linux, macos, or Unix: find /path/to/root/directory -name appspec.yml Não haverá saída se o arquivo AppSpec não for encontrado lá. Para Windows: dir path\to\root\directory\appspec.yml Um erro File Not Found será exibido se o arquivo AppSpec não estiver armazenado lá. 6. Envie a revisão para o Amazon S3 ou o GitHub. Para obter instruções, consulte Enviar uma revisão do AWS CodeDeploy para o Amazon S3 (p. 220). Template de arquivo AppSpec com instruções # This is an appspec.yml template file for use with AWS CodeDeploy. # The lines in this template starting with the hashtag symbol are # instructional comments and can be safely left in the file or 216

225 Template de arquivo AppSpec com instruções # ignored. # For help completing this file, see the "AppSpec File Reference" in the # "AWS CodeDeploy User Guide" at # version: 0.0 # Specify "os: linux" if this revision targets Amazon Linux, # Red Hat Enterprise Linux (RHEL), or Ubuntu Server # instances. # Specify "os: windows" if this revision targets Windows Server instances. # (You cannot specify both "os: linux" and "os: windows".) os: linux # os: windows # During the Install deployment lifecycle event (which occurs between the # BeforeInstall and AfterInstall events), copy the specified files # in "source" starting from the root of the revision's file bundle # to "destination" on the Amazon EC2 instance. # Specify multiple "source" and "destination" pairs if you want to copy # from multiple sources or to multiple destinations. # If you are not copying any files to the Amazon EC2 instance, then remove the # "files" section altogether. A blank or incomplete "files" section # may cause associated deployments to fail. files: - source: destination: - source: destination: # For deployments to Amazon Linux, Ubuntu Server, or RHEL instances, # you can specify a "permissions" # section here that describes special permissions to apply to the files # in the "files" section as they are being copied over to # the Amazon EC2 instance. # For more information, see the documentation. # If you are deploying to Windows Server instances, # then remove the # "permissions" section altogether. A blank or incomplete "permissions" # section may cause associated deployments to fail. permissions: - object: pattern: except: owner: group: mode: acls: - context: user: type: range: type: - # If you are not running any commands on the Amazon EC2 instance, then remove # the "hooks" section altogether. A blank or incomplete "hooks" section # may cause associated deployments to fail. hooks: # For each deployment lifecycle event, specify multiple "location" entries # if you want to run multiple scripts during that event. # You can specify "timeout" as the number of seconds to wait until failing the deployment # if the specified scripts do not run within the specified time limit for the # specified event. For example, 900 seconds is 15 minutes. If not specified, # the default is 1800 seconds (30 minutes). # that the maximum amount of time that all scripts must finish executing # for each individual deployment lifecycle event is 3600 seconds (1 hour). # Otherwise, the deployment will stop and AWS CodeDeploy will consider the deployment # to have failed to the Amazon EC2 instance. Make sure that the total number of seconds # that are specified in "timeout" for all scripts in each individual deployment 217

226 Escolher um tipo de repositório # lifecycle event does not exceed a combined 3600 seconds (1 hour). # For deployments to Amazon Linux, Ubuntu Server, or RHEL instances, # you can specify "runas" in an event to # run as the specified user. For more information, see the documentation. # If you are deploying to Windows Server instances, # remove "runas" altogether. # If you do not want to run any commands during a particular deployment # lifecycle event, remove that event declaration altogether. Blank or # incomplete event declarations may cause associated deployments to fail. # During the ApplicationStop deployment lifecycle event, run the commands # in the script specified in "location" starting from the root of the # revision's file bundle. ApplicationStop: - location: timeout: runas: - location: timeout: runas: # During the BeforeInstall deployment lifecycle event, run the commands # in the script specified in "location". BeforeInstall: - location: timeout: runas: - location: timeout: runas: # During the AfterInstall deployment lifecycle event, run the commands # in the script specified in "location". AfterInstall: - location: timeout: runas: - location: timeout: runas: # During the ApplicationInstall deployment lifecycle event, run the commands # in the script specified in "location". ApplicationStart: - location: timeout: runas: - location: timeout: runas: # During the ValidateService deployment lifecycle event, run the commands # in the script specified in "location". ValidateService: - location: timeout: runas: - location: timeout: runas: Escolher um tipo de repositório do AWS CodeDeploy Para implantar seu código de aplicativo em uma ou mais instâncias, esse código deve ser agrupado em um arquivamento e colocado em um local onde o AWS CodeDeploy possa acessá-lo durante o processo 218

227 Escolher um tipo de repositório de implantação. Esse local de armazenamento é chamado de repositório. Como parte do processo de implantação, você agrupa seu conteúdo implantável e um arquivo AppSpec em um arquivamento e, em seguida, carrega esse arquivamento em um dos tipos de repositório com suporte pelo AWS CodeDeploy. No momento, o AWS CodeDeploy oferece suporte aos seguintes tipos de repositório: Amazon S3 O Amazon Simple Storage Service (Amazon S3) é a solução da AWS para o armazenamento seguro e escalável de objetos. O Amazon S3 armazena dados como objetos em buckets. Um objeto é composto de um arquivo e, opcionalmente, quaisquer metadados que descrevam esse arquivo. Para armazenar um objeto no Amazon S3, você carrega o arquivo que deseja armazenar no bucket. Ao carregar um arquivo, você pode definir permissões e metadados no objeto. Saiba mais: Criar um bucket no Amazon S3 Enviar uma revisão do AWS CodeDeploy para o Amazon S3 (p. 220) Implantar automaticamente do Amazon S3 usando o AWS CodeDeploy GitHub Você pode armazenar suas revisões de aplicativo em repositórios do GitHub. É possível disparar uma implantação de um repositório GitHub sempre que o código-fonte nesse repositório for alterado. Saiba mais: Integrando o AWS CodeDeploy com o GitHub (p. 47) Tutorial: usar o AWS CodeDeploy para implantar um aplicativo do GitHub (p. 106) Implantar automaticamente do GitHub usando o AWS CodeDeploy Bitbucket Você pode enviar código para instâncias do Amazon EC2 diretamente da interface do usuário do Bitbucket a qualquer um dos seus grupos de implantação, sem precisar entrar na sua plataforma de integração contínua (CI), ou em instâncias do Amazon EC2 para executar um processo de implantação manual. O Bitbucket primeiro envia o código a um bucket do Amazon S3 que você tenha especificado e, a partir desse ponto, implanta o código. No entanto, após a conclusão da configuração inicial para dar suporte a esse processo, o código enviado do Bitbucket é implantado automaticamente nas suas instâncias sem etapas intermediárias. Saiba mais: 219

228 Enviar uma revisão Suporte do Atlassian Bitbucket para o AWS CodeDeploy Enviar uma revisão do AWS CodeDeploy para o Amazon S3 Depois de planejar sua revisão, conforme descrito em Planejar uma revisão para o AWS CodeDeploy (p. 215), e adicionar um arquivo AppSpec a ela, conforme descrito em Adicionar um AppSpec File (p. 216), você está pronto para empacotar os arquivos componentes e enviar essa revisão ao Amazon S3. Depois de enviar a revisão, você pode usar o AWS CodeDeploy para implantar a revisão do Amazon S3 nas instâncias. O AWS CodeDeploy também pode ser usado para implantar revisões que foram enviadas ao GitHub. Para obter mais informações, consulte a documentação do GitHub. Supomos que você já tenha seguido as instruções em Conceitos básicos (p. 13) para configurar a AWS CLI. Isso é especialmente importante para chamar o comando push descrito mais adiante. Certifique-se de ter um bucket do Amazon S3. Siga as instruções em Criar um bucket. O bucket do Amazon S3 de destino deve ser criado ou deve existir na mesma região que as instâncias de destino. Por exemplo, se quiser implantar uma revisão em algumas instâncias de Leste dos EUA (Norte da Virgínia) Região e em outras instâncias de Região Oeste dos EUA (Oregon), será necessário ter um bucket em Leste dos EUA (Norte da Virgínia) Região com uma cópia da revisão e outro bucket em Região Oeste dos EUA (Oregon) com outra cópia da mesma revisão. Nesse cenário, você precisaria criar duas implementações separadas: uma em Leste dos EUA (Norte da Virgínia) Região e outra em Região Oeste dos EUA (Oregon), mesmo que a revisão seja igual em ambas as regiões e buckets. Você deve ter permissões para fazer upload do bucket do Amazon S3. Você pode especificar essas permissões com uma política de bucket do Amazon S3. Por exemplo, na política de bucket do Amazon S3 a seguir, o uso do caractere coringa (*) permite que a conta do AWS faça o upload de arquivos para qualquer diretório no bucket do Amazon S3 denominado codedeploydemobucket: { } "Statement": [ { "Action": [ "s3:putobject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ " " ] } } ] Para visualizar sua ID de conta do AWS, consulte Como encontrar seu ID da conta da AWS. Para saber mais sobre como gerar e anexar uma política de bucket do Amazon S3, consulte Exemplos de políticas de bucket. 220

229 Visualizar detalhes de revisões de aplicativo O usuário do IAM que está chamando o comando push deve ter, no mínimo, permissões para fazer upload da revisão para cada bucket do Amazon S3 de destino. Por exemplo, a seguinte política permite que seu usuário do IAM faça upload de revisões em qualquer lugar do bucket do Amazon S3 denominado codedeploydemobucket: { } "Version": " ", "Statement": [ { "Effect": "Allow", "Action": [ "s3:putobject" ], "Resource": "arn:aws:s3:::codedeploydemobucket/*" } ] Para saber mais sobre como criar e anexar uma política do IAM, consulte Trabalhando com políticas. Para agrupar e enviar a revisão em um único comando, na linha de comando, mude para o diretório (pasta) raiz da revisão e, em seguida, chame o comando push. Por exemplo, para agrupar os arquivos componentes em uma revisão a partir do diretório atual, associado ao aplicativo WordPress_App, para um bucket do Amazon S3 codedeploydemobucket, com um nome de revisão WordPressApp.zip, chame o comando push da seguinte maneira: No Linux, macos, or Unix: aws deploy push \ --application-name WordPress_App \ --description "This is a revision for the application WordPress_App" \ --ignore-hidden-files \ --s3-location s3://codedeploydemobucket/wordpressapp.zip \ --source. No Windows: aws deploy push --application-name WordPress_App --description "This is a revision for the application WordPress_App" --ignore-hidden-files --s3-location s3://codedeploydemobucket/ WordPressApp.zip --source. Após o envio bem-sucedido, você poderá usar a AWS CLI ou o console do AWS CodeDeploy para implantar a revisão do Amazon S3 nas instâncias. Para obter instruções, consulte Criar uma implantação com o AWS CodeDeploy (p. 226). Visualizar detalhes de revisões de aplicativo com o AWS CodeDeploy Você pode usar o console do AWS CodeDeploy, a AWS CLI ou as APIs do AWS CodeDeploy para visualizar detalhes sobre todas as revisões de aplicativo que estão registradas na sua conta da AWS para um aplicativo especificado. Para obter informações sobre como registrar uma revisão, consulte Registrar uma revisão de aplicativo (p. 223). 221

230 Visualizar detalhes de revisões de aplicativo (console) Tópicos Visualizar detalhes de revisões de aplicativo (console) (p. 222) Visualizar detalhes de revisões de aplicativo (CLI) (p. 222) Visualizar detalhes de revisões de aplicativo (console) Para visualizar detalhes de revisões de aplicativo: 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, escolha Applications. 3. Na página Applications, escolha o nome do aplicativo cujos detalhes de revisão você deseja visualizar. Se não for exibida nenhuma entrada, verifique se a região correta está selecionada. Na barra de navegação, no seletor de região, escolha uma das regiões listadas em Região e endpoints, no AWS General Reference. O AWS CodeDeploy apenas oferece suporte a essas regiões. 4. Na página Application details, em Revisions, reveja a lista de revisões registradas para o aplicativo. Escolha a seta ao lado de uma revisão para obter mais detalhes. Visualizar detalhes de revisões de aplicativo (CLI) Para usar a AWS CLI com o objetivo de visualizar uma revisão de aplicativo, chame o comando getapplication-revision ou list-application-revisions. Para visualizar detalhes sobre uma única revisão de aplicativo, chame o comando get-application-revision, especificando: O nome do aplicativo. Para obter o nome do aplicativo, chame o comando list-applications. Para uma revisão armazenada no GitHub, o nome do repositório GitHub e o ID da confirmação que faz referência à revisão de aplicativo que foi enviada ao repositório. Para uma revisão armazenada no Amazon S3, o nome do bucket do Amazon S3 contendo a revisão, o nome e o tipo de arquivo do arquivamento carregado e, opcionalmente, o identificador de versão do Amazon S3 e a ETag desse arquivamento. Se o identificador de versão e/ou a ETag tiverem sido especificados durante uma chamada para register-application-revision, eles deverão ser especificados aqui. Para visualizar detalhes sobre várias revisões de aplicativo, chame o comando list-application-revisions, especificando: O nome do aplicativo. Para obter o nome do aplicativo, chame o comando list-applications. Opcionalmente, para visualizar detalhes apenas de revisões de aplicativo do Amazon S3, o nome do bucket do Amazon S3 contendo as revisões. Opcionalmente, para visualizar detalhes apenas de revisões de aplicativo do Amazon S3, uma string de prefixo para limitar a pesquisa a revisões de aplicativo do Amazon S3. (Se não for especificado, o AWS CodeDeploy listará todas as revisões de aplicativo do Amazon S3 correspondentes.) 222

231 Registrar uma revisão de aplicativo Opcionalmente, seja para listar detalhes de revisão com base em se cada revisão é a revisão de destino de um grupo de implantação. (Se não for especificado, o AWS CodeDeploy listará todas as revisões correspondentes.) Opcionalmente, o nome da coluna e a ordem com base na qual classificar a lista de detalhes da revisão. (Se não for especificado, o AWS CodeDeploy listará os resultados em uma ordem arbitrária.) É possível listar todas as revisões ou apenas aquelas armazenadas no Amazon S3. Não é possível listar apenas as revisões armazenadas no GitHub. Registrar uma revisão de aplicativo no Amazon S3 com o AWS CodeDeploy Se você já tiver chamado o comando push para enviar uma revisão de aplicativo ao Amazon S3, não precisará registrar a revisão. No entanto, se você carregar uma revisão n Amazon S3 por outro meio e quiser que ela apareça no console do AWS CodeDeploy ou através da AWS CLI, siga estas etapas para registrar a revisão primeiro. Se você tiver enviado uma revisão de aplicativo para um repositório GitHub e quiser que ela apareça no console do AWS CodeDeploy ou através da AWS CLI, também deverá seguir essas etapas. É possível usar apenas a AWS CLI ou as APIs do AWS CodeDeploy para registrar revisões de aplicativos no Amazon S3 ou no GitHub. Tópicos Registrar uma revisão no Amazon S3 com o AWS CodeDeploy (CLI) (p. 223) Registrar uma revisão no GitHub com o AWS CodeDeploy (CLI) (p. 224) Registrar uma revisão no Amazon S3 com o AWS CodeDeploy (CLI) 1. Carregue a revisão no Amazon S3. 2. Chame o comando register-application-revision, especificando o seguinte: O nome do aplicativo. Para ver uma lista de nomes de aplicativos, chame o comando listapplications. Informações sobre a revisão a ser registrada: O nome do bucket do Amazon S3 que contém a revisão. O nome e o tipo de arquivo da revisão carregada. Não há suporte para os formatos de arquivo tar e tar compactado (.tar and.tar.gz) nas instâncias do Windows Server. (Opcional) O identificador de versão do Amazon S3 da revisão. (Se o identificador de versão não for especificado, o AWS CodeDeploy usará a versão mais recente.) (Opcional) A ETag da revisão. (Se a ETag não for especificada, o AWS CodeDeploy ignorará a validação do objeto.) (Opcional) Qualquer descrição que você queira associar à revisão. 223

232 Registrar uma revisão no GitHub com o AWS CodeDeploy (CLI) As informações sobre uma revisão no Amazon S3 podem ser especificadas na linha de comando, usando essa sintaxe como parte da chamada de register-application-revision. (version e etag são opcionais.) --s3-location bucket=string,key=string,bundletype=tar tgz zip,version=string,etag=string Registrar uma revisão no GitHub com o AWS CodeDeploy (CLI) 1. Carregue a revisão no seu repositório GitHub. 2. Chame o comando register-application-revision, especificando o seguinte: O nome do aplicativo. Para ver uma lista de nomes de aplicativos, chame o comando listapplications. Informações sobre a revisão a ser registrada: O nome do usuário ou grupo do GitHub atribuído ao repositório que contém a revisão, seguido por uma barra (/) e o nome do repositório. O ID da confirmação que faz referência à revisão no repositório. (Opcional) Qualquer descrição que você queira associar à revisão. As informações sobre uma revisão no GitHub podem ser especificadas na linha de comando, usando essa sintaxe como parte da chamada de register-application-revision: --github-location repository=string,commitid=string 224

233 Trabalhando com implantações no AWS CodeDeploy No AWS CodeDeploy, uma implantação é o processo, e os componentes envolvidos nesse processo, de instalar conteúdo em uma ou mais instâncias. Esse conteúdo pode consistir em código, arquivos da Web e configuração, executáveis, pacotes, scripts e assim por diante. O AWS CodeDeploy implanta conteúdo armazenado em um repositório de fontes, de acordo com as regras de configuração que você especifica. O AWS CodeDeploy fornece duas opções de tipo de implantação: implantações no local e implantações azuis/verdes. 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 optar por usar um balanceador de carga de forma que cada registro de instância é cancelado durante sua implantação e, em seguida, restaurada para o serviço após a conclusão da implantação. Para obter mais informações sobre implantações no local, consulte Visão geral de uma implantação no local (p. 2). Implantação azul/verde: 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 de substituição) seguindo estas etapas: As instâncias são provisionadas para o ambiente de substituição. A revisão mais recente de aplicativo é instalada em instâncias de substituição. Um tempo de espera opcional ocorre para atividades como testes de aplicativos e a verificação de sistema. 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. As instâncias no ambiente original serão canceladas e podem ser interrompidas ou mantidas em execução para outros usos. Para obter mais informações sobre implantações azul/verde, consulte Visão geral de uma implantação azul/verde (p. 4). Para obter informações sobre como implantar automaticamente a partir do Amazon S3, consulte Implantar automaticamente do Amazon S3 usando o AWS CodeDeploy. Tópicos Criar uma implantação com o AWS CodeDeploy (p. 226) 225

234 Criar uma implantação Visualizar detalhes de implantações com o AWS CodeDeploy (p. 233) Visualizar dados de log para implantações do AWS CodeDeploy (p. 234) Interromper uma implantação com o AWS CodeDeploy (p. 237) Reimplantar e reverter uma implantação com o AWS CodeDeploy (p. 238) Implantar um aplicativo em uma conta da AWS diferente (p. 242) Criar uma implantação com o AWS CodeDeploy Você pode usar o console do AWS CodeDeploy, a AWS CLI ou as APIs do AWS CodeDeploy para criar uma implantação que instala revisões de aplicativo já enviadas ao Amazon S3 ou ao GitHub nas instâncias de um grupo de implantação. Tópicos Pré-requisitos de implantação (p. 226) Criar uma implantação (console) (p. 228) Criar uma implantação (CLI) (p. 231) Pré-requisitos de implantação Antes de tentar uma implantação, verifique se você concluiu as seguintes etapas. Para uma implantação no local, você criou ou configurou as instâncias nas quais deseja implantar. Para obter mais informações, consulte Trabalhando com instâncias (p. 139). Para uma implantação azul/ verde, você possui um grupo do Auto Scaling existente para uso como template para o seu ambiente de substituição, ou você tem uma ou mais instâncias de grupos do Auto Scaling especificadas como seu ambiente original. Para obter mais informações, consulte Tutorial: use AWS CodeDeploy para implantar um aplicativo em um grupo de Auto Scaling (p. 90) e Auto Scaling (p. 38). Você deve ter criado um aplicativo que inclua pelo menos um grupo de implantação. Para obter informações, consulte Criar um aplicativo (p. 194) e Criar um grupo de implantação com o AWS CodeDeploy (p. 203). Você deve ter preparado a revisão do aplicativo que deseja implantar nas instâncias do seu grupo de implantação. Para obter mais informações, consulte Trabalhando com revisões de aplicativos para o AWS CodeDeploy (p. 215). Se quiser usar uma configuração de implantação personalizada para a sua implantação, é necessário que ela tenha sido criada antes do início do processo de implantação. Para obter mais informações, consulte Criar uma configuração de implantação com o AWS CodeDeploy (p. 192). Se você estiver implantando sua revisão de aplicativo a partir de um bucket do Amazon S3, esse bucket deve estar na mesma região da AWS que as instâncias do seu grupo de implantação. Se estiver implantando sua revisão de aplicativo a partir de um bucket do Amazon S3, uma política de bucket do Amazon S3 deve ter sido aplicada a esse bucket. Essa política concede às suas instâncias as permissões necessárias para baixar a revisão de aplicativo. Por exemplo, a seguinte política de bucket do Amazon S3 permite que qualquer instância do Amazon EC2 com um perfil de instâncias do IAM anexado contendo o ARN arn:aws:iam::80398example:role/ CodeDeployDemo seja baixada de qualquer local no bucket do Amazon S3 denominado codedeploydemobucket: { "Statement": [ { "Action": [ 226

235 Pré-requisitos de implantação } ] } "s3:get*", "s3:list*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::80398example:role/codedeploydemo" ] } A seguinte política de bucket do Amazon S3 permite que qualquer instância local com um usuário do IAM associado contendo o ARN arn:aws:iam::80398example:user/codedeployuser seja baixada de qualquer local no bucket do Amazon S3 denominado codedeploydemobucket: { } "Statement": [ { "Action": [ "s3:get*", "s3:list*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::80398example:user/codedeployuser" ] } } ] Para saber mais sobre como gerar e anexar uma política de bucket do Amazon S3, consulte Exemplos de políticas de bucket. Se estiver criando uma implantação azul/verde ou tiver especificado um Classic Load Balancer ou Balanceador de carga de aplicações opcional no grupo de implantação para uma implantação no local, você criou uma VPC usando a Amazon VPC que contém pelo menos duas sub-redes. (O AWS CodeDeploy usa o Elastic Load Balancing, que requer que todas as instâncias de um grupo de balanceador de carga estejam em um único VPC.) Se você ainda não criou um VPC, consulte o Guia de conceitos básicos do Amazon VPC. Se estiver criando uma implantação azul/verde, você configurou um Classic Load Balancer ou Balanceador de carga de aplicações no Elastic Load Balancing e o utilizou para registrar as instâncias que compõem seu ambiente original. As instâncias no seu ambiente de substituição serão registradas nesse balanceador de carga mais tarde. Para configurar um Classic Load Balancer, conclua as etapas em Tutorial: criar um Classic Load Balancer no Guia do Classic Load Balancer. Enquanto avança pelas etapas, anote o seguinte: Na Etapa 2: definir o balanceador de carga, em Criar LB interno, escolha o mesmo VPC que você selecionou quando criou suas instâncias. Na Etapa 5: registrar instâncias do EC2 no seu balanceador de carga, selecione as instâncias que estão atualmente no seu ambiente original. 227

236 Criar uma implantação (console) Na Etapa 7: criar e verificar seu balanceador de carga, anote o endereço DNS do seu balanceador de carga. Por exemplo, se você chamou seu balanceador de carga de my-load-balancer, o endereço DNS apareceria em um formato como my-load-balancer us-east-2.elb.amazonaws.com. Quando colar o nome DNS no campo de endereço de um navegador da Web conectado à Internet, você verá o aplicativo que implantou para seu ambiente original. Para configurar um Balanceador de carga de aplicações, siga as instruções em um dos seguintes tópicos: Crie um Balanceador de carga de aplicações Tutoriais: criar um Balanceador de carga de aplicações usando a AWS CLI Criar uma implantação (console) 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. Faça uma das coisas a seguir: No menu do AWS CodeDeploy, escolha Implantações e, em seguida, escolha Criar implantação. No menu do AWS CodeDeploy, escolha Aplicativos e escolha o nome do aplicativo no qual deseja implantar uma revisão. Na página Detalhes do aplicativo, selecione o botão referente ao grupo de implantação no qual deseja implantar uma revisão. No menu Ações, escolha Implantar nova revisão. 3. Na lista Aplicativos, escolha o nome do aplicativo que deseja usar para essa implantação. 4. Na lista Grupo de implantação, escolha o nome do grupo de implantação associado ao aplicativo. 5. Ao lado de Tipo de repositório, escolha o tipo de repositório no qual a sua revisão está armazenada: Meu aplicativo está armazenado no Amazon S3 Para obter mais informações, consulte Especificar informações sobre uma revisão armazenada em um bucket do Amazon S3 (p. 229) e, em seguida, volte para a etapa 6. Meu aplicativo está armazenado no GitHub Para obter mais informações, consulte Especificar informações sobre uma revisão armazenada em um repositório GitHub (p. 230) abaixo e, em seguida, volte para a etapa (Opcional) Na caixa Descrição, digite uma descrição para esta implantação. 7. Na lista Configuração de implantação, escolha uma configuração de implantação para controlar a taxa na qual as instâncias são atualizadas com as novas revisões de aplicativo (implantações no local) ou a taxa na qual o tráfego é roteado novamente a um ambiente de substituição (implantações azuis/ verdes). Para obter mais informações, consulte Trabalhando com configurações de implantação no AWS CodeDeploy (p. 189). 8. Em Opções de conteúdo, é possível especificar como o AWS CodeDeploy lida com arquivos em uma localização de destino de implantação que não fazia parte da implantação anterior bem-sucedida. Escolha uma das seguintes opções: Falha na implantação Um erro será informado, e o status da implantação mudará para Falha. 228

237 Criar uma implantação (console) Substituir o conteúdo Se um arquivo com o mesmo nome existir na localização de destino, a versão da revisão de aplicativo o substituirá. Reter o conteúdo Se um arquivo com o mesmo nome existir na localização de destino, ele será mantido, e a versão na revisão de aplicativo não será copiada para a instância. Para obter mais informações, consulte Comportamento de reversão com conteúdo existente (p. 240). 9. (Opcional) Em Substituições de configuração de reversão, você pode especificar opções de reversão automática para essa implantação diferentes daquelas que foram especificadas para o grupo de implantação, se houver. Para obter informações sobre reversões no AWS CodeDeploy, consulte Reimplantações e reversões de implantação (p. 11) e Reimplantar e reverter uma implantação (p. 238). Escolha uma das seguintes opções: Reverter quando uma implantação falhar A AWS CodeDeploy reimplantará a última revisão em bom estado como uma nova implantação. Reverter quando os limites do alarme forem atingidos Se alarmes tiverem sido adicionados ao grupo de implantação, o AWS CodeDeploy reimplantará a última revisão em bom estado conhecida quando um ou mais dos alarmes especificados forem ativados. Desativar reversões Não executar reversões para essa implantação. 10. Escolha Implantar. Para acompanhar o status da sua implantação, consulte Visualizar detalhes de implantações com o AWS CodeDeploy (p. 233). Tópicos Especificar informações sobre uma revisão armazenada em um bucket do Amazon S3 (p. 229) Especificar informações sobre uma revisão armazenada em um repositório GitHub (p. 230) Especificar informações sobre uma revisão armazenada em um bucket do Amazon S3 Se você estiver seguindo as etapas em Criar uma implantação (console) (p. 228), siga estas etapas para adicionar detalhes sobre uma revisão de aplicativo armazenada em um bucket do Amazon S3. 1. Copie o link do Amazon S3 da revisão para a caixa Local da revisão. Para encontrar o valor do link: 1. Em uma guia separada do navegador: Faça login no Console de gerenciamento da AWS e abra o console da Amazon S3 em console.aws.amazon.com/s3/. Navegue até a sua revisão e escolha-a. 2. Se o painel Propriedades não estiver visível, escolha o botão Propriedades. 3. No painel Propriedades, copie o valor do campo Link na caixa Local da revisão do console do AWS CodeDeploy. Para especificar uma ETag (uma soma de verificação de arquivo) como parte da localização da revisão: 229

238 Criar uma implantação (console) Se o valor do campo Link terminar com?versionid=versionid, adicione &etag= e a ETag ao final do valor do campo Link. Se o valor do campo Link não especificar um ID de versão, adicione?etag= e a ETag ao final do valor do campo Link. Embora não seja tão fácil quanto copiar o valor do campo Link, você também pode digitar a localização da revisão em um dos seguintes formatos: s3://bucket-name/pastas/objectname s3://bucket-name/pastas/objectname?versionid=versionid s3://bucket-name/pastas/objectname?etag=etag s3://bucket-name/pastas/objectname?versionid=versionid&etag=etag bucket-name.s3.amazonaws.com/pastas/objectname 2. Se for exibida uma mensagem na lista Tipo de arquivo especificando que o tipo de arquivo não pôde ser detectado, escolha o tipo de arquivo da revisão. Caso contrário, aceite o tipo de arquivo detectado. Especificar informações sobre uma revisão armazenada em um repositório GitHub Se você seguir as etapas em Criar uma implantação (console) (p. 228), siga estas etapas para adicionar detalhes sobre uma revisão de aplicativo armazenada em um repositório GitHub. 1. Em Conectar-se ao GitHub, faça um dos seguintes procedimentos: Para criar uma conexão para aplicativos AWS CodeDeploy com uma conta do GitHub diferente, saia do GitHub em uma guia separada do navegador. Em Conta do GitHub, digite um nome para identificar essa conexão e escolha Conectar-se ao GitHub. A página da Web solicita que você autorize o AWS CodeDeploy a interagir com o GitHub para o seu aplicativo. Continue na etapa 2. Para usar uma conexão já criada, em Conta do GitHub, selecione seu nome e escolha Conectar-se ao GitHub. Continue na etapa 4. Para criar uma conexão com uma conta do GitHub diferente, saia do GitHub em uma guia separada do navegador. Escolha Conectar-se a uma conta do GitHub e escolha Conectar-se ao GitHub. Continue na etapa Se for solicitado a fazer login no GitHub, siga as instruções na página Fazer login. Entre com seu nome de usuário, ou , e senha do GitHub. 3. Se uma página para Autorizar aplicativo for exibida, escolha Autorizar aplicativo. 4. Na página Criar implantação, na caixa Nome do repositório, digite o nome do usuário ou da organização do GitHub que contém a revisão, seguido por uma barra (/) e pelo nome do repositório que contém a revisão. Caso não tenha certeza do valor que deve ser digitado: 1. Em uma guia separada do navegador da Web, acesse o dashboard do GitHub. 2. Em Seus repositórios, passe o ponteiro do mouse sobre o nome do repositório de destino. Será exibida uma dica de ferramenta que mostra o nome do usuário ou da organização do GitHub, seguido por uma barra (/) e depois pelo nome do repositório. Digite esse valor exibido na caixa Nome do repositório. Se o nome do repositório de destino não estiver visível em Seus repositórios, use a caixa Pesquisar no GitHub para localizar o nome do repositório de destino e o nome do usuário ou da organização do GitHub. 230

239 Criar uma implantação (CLI) 5. Na caixa ID de confirmação, digite o ID da confirmação que se refere à revisão no repositório. Caso não tenha certeza do valor que deve ser digitado: 1. Em uma guia separada do navegador da Web, acesse o dashboard do GitHub. 2. Em Seus repositórios, escolha o nome do repositório que contém a confirmação de destino. 3. Na lista de confirmações, localize e copie o ID de confirmação que se refere à revisão no repositório. Em geral, esse ID tem 40 caracteres de comprimento e é formado por letras e números. (Não use a versão mais curta do ID de confirmação, que consiste normalmente nos 10 primeiros caracteres da versão mais longa desse ID de confirmação.) 4. Cole o ID de confirmação na caixa ID de confirmação. Criar uma implantação (CLI) Para usar a AWS CLI para implantar uma revisão: 1. Depois de ter preparado as instâncias, criado o aplicativo e enviado a revisão, siga um destes procedimentos: Se você deseja implantar uma revisão de um bucket do Amazon S3, continue na etapa 2 agora. Se você deseja implantar uma revisão de um repositório GitHub, primeiro conclua as etapas em Conectar um aplicativo AWS CodeDeploy a um repositório GitHub (p. 232) e continue na etapa Chame o comando create-deployment, especificando: Um nome de aplicativo. Para ver uma lista de nomes de aplicativos, chame o comando listapplications. Um nome do grupo de implantação do Amazon EC2. Para ver uma lista de nomes de grupos de implantação, chame o comando list-deployment-groups. Informações sobre a revisão a ser implantada: Para revisões armazenadas no Amazon S3: O nome do bucket do Amazon S3 que contém a revisão. O nome e o tipo de arquivo da revisão carregada. Não há suporte para os formatos de arquivo tar e tar compactado (.tar and.tar.gz) nas instâncias do Windows Server. (Opcional) O identificador de versão do Amazon S3 da revisão. (Se o identificador de versão não for especificado, o AWS CodeDeploy usará a versão mais recente.) (Opcional) A ETag da revisão. (Se a ETag não for especificada, o AWS CodeDeploy ignorará a validação do objeto.) Para revisões armazenadas no GitHub: O nome do usuário ou grupo do GitHub atribuído ao repositório que contém a revisão, seguido por uma barra (/) e o nome do repositório. O ID de confirmação da revisão. (Opcional) O nome de uma configuração de implantação a ser usada. Para visualizar uma lista de configurações de implantação, chame o comando list-deployment-configs. (Se não for especificado, o AWS CodeDeploy usará uma configuração de implantação padrão específica.) (Opcional) Se você deseja que a implantação em uma instância continue no evento de ciclo de vida de implantação BeforeInstall caso o evento de ciclo de vida de implantação ApplicationStop falhar. (Opcional) Uma descrição da implantação. 231

240 Criar uma implantação (CLI) Para implantações azuis/verdes, informações sobre as instâncias que pertencerão ao ambiente de substituição em uma implantação azul/verde, incluindo os nomes de um ou mais grupos do Auto Scaling, ou a chave, o tipo e valor do filtro de tag usados para identificar instâncias do Amazon EC2. Use essa sintaxe como parte da chamada create-deployment para especificar informações sobre uma revisão no Amazon S3 diretamente na linha de comando. (version e etag são opcionais.) --s3-location bucket=string,key=string,bundletype=tar tgz zip,version=string,etag=string Use essa sintaxe como parte da chamada create-deployment para especificar informações sobre uma revisão no GitHub diretamente na linha de comando: --github-location repository=string,commitid=string Para obter informações sobre revisões que já foram enviadas, chame o comando list-applicationrevisions. Para acompanhar o status da sua implantação, consulte Visualizar detalhes de implantações com o AWS CodeDeploy (p. 233). Tópicos Conectar um aplicativo AWS CodeDeploy a um repositório GitHub (p. 232) Conectar um aplicativo AWS CodeDeploy a um repositório GitHub Para poder implantar um aplicativo de um repositório GitHub pela primeira vez usando a AWS CLI, você primeiro deve dar ao AWS CodeDeploy a permissão necessária para interagir com o GitHub em nome da sua conta do GitHub. Essa etapa deve ser concluída uma vez para cada aplicativo usando o console do AWS CodeDeploy. 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, selecione Implantações. 3. Escolha Criar implantação. Você não criará uma nova implantação. No momento, essa é a única maneira de dar permissão ao AWS CodeDeploy para interagir com o GitHub em nome da sua conta de usuário do GitHub. 4. Na lista suspensa Aplicativo, escolha o aplicativo que você deseja vincular à sua conta de usuário do GitHub. 5. Na lista suspensa Grupo de implantação, escolha qualquer grupo de implantação disponível. 6. Ao lado de Tipo de repositório, escolha Minha revisão do aplicativo está armazenada no GitHub. 232

241 Visualizar detalhes de implantações 7. Escolha Conectar-se ao GitHub. Se você vir um link Connect to a different GitHub account: É possível que você já tenha autorizado o AWS CodeDeploy a interagir com o GitHub em nome de uma conta do GitHub diferente para o aplicativo. Você pode ter revogado a autorização para o AWS CodeDeploy interagir com o GitHub em nome da conta do GitHub conectada para todos os aplicativos vinculados ao AWS CodeDeploy. Para obter mais informações, consulte Autenticação do GitHub com aplicativos no AWS CodeDeploy (p. 48). 8. Se você ainda não entrou no GitHub, siga as instruções na página Fazer login. 9. Na página para Autorizar aplicativo, escolha Autorizar aplicativo. 10. Agora que o AWS CodeDeploy tem permissão, escolha Cancelar e continue com as etapas em Criar uma implantação (CLI) (p. 231). Visualizar detalhes de implantações com o AWS CodeDeploy Você pode usar o console do AWS CodeDeploy, a AWS CLI ou as APIs do AWS CodeDeploy para visualizar detalhes sobre implantações associadas à sua conta da AWS. É possível visualizar logs de implantação nas seguintes localizações das suas instâncias: Amazon Linux, RHEL e Ubuntu Server: /opt/codedeploy-agent/deployment-root/ deployment-logs/codedeploy-agent-deployments.log Windows Server: C:\ProgramData\Amazon\CodeDeploy<DEPLOYMENT-GROUP- ID><DEPLOYMENT-ID>\logs\scripts.log Para obter mais informações, consulte Analisando arquivos de log para investigar falhas de implantação em instâncias (p. 328). Tópicos Visualizar detalhes de implantações (console) (p. 233) Visualizar detalhes de implantações (CLI) (p. 234) Visualizar detalhes de implantações (console) Para usar o console do AWS CodeDeploy para visualizar os detalhes da implantação: 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, escolha Implantações para visualizar uma lista de implantações e seus detalhes. 233

242 Visualizar detalhes de implantações (CLI) Se não for exibida nenhuma entrada, verifique se a região correta está selecionada. Na barra de navegação, no seletor de região, escolha uma das regiões listadas em Região e endpoints, no AWS General Reference. O AWS CodeDeploy apenas oferece suporte a essas regiões. 3. Para ver mais detalhes de uma única implantação, em Implantações, escolha o ID da implantação. Visualizar detalhes de implantações (CLI) Para usar a AWS CLI para visualizar detalhes da implantação, chame o comando get-deployment ou batch-get-deployments. É possível chamar o comando list-deployments para obter uma lista de IDs de implantação exclusivos a serem usados como entradas para o comando get-deployment e o comando batch-get-deployments. Para ver detalhes sobre uma única implantação, chame o comando get-deployment, especificando o identificador de implantação exclusivo. Para obter o ID de implantação, chame o comando listdeployments. Para visualizar detalhes sobre várias implantações, chame o comando batch-get-deployments, especificando vários identificadores de implantação exclusivos. Para obter os IDs de implantação, chame o comando list-deployments. Para ver uma lista de IDs de implantação, chame o comando list-deployments, especificando: O nome do aplicativo associado à implantação. Para ver uma lista de nomes de aplicativos, chame o comando list-applications. O nome do grupo de implementação associado à implantação. Para ver uma lista de nomes de grupos de implantação, chame o comando list-deployment-groups. Opcionalmente, se você deseja incluir detalhes sobre implantações de acordo com seu status de implantação. (Se não for especificado, todas as implantações correspondentes serão listadas, independentemente do status de implantação.) Opcionalmente, se você deseja incluir detalhes sobre implementações de acordo com suas horas de início e/ou de término de criação. (Se não for especificado, todas as implantações correspondentes serão listadas, independentemente da hora de criação.) Visualizar dados de log para implantações do AWS CodeDeploy Você pode visualizar os dados de log criados por uma implantação do AWS CodeDeploy configurando o agente do Amazon CloudWatch Logs para visualizar dados agregados no console do CloudWatch ou fazendo login em uma instância individual para rever o arquivo de log. Tópicos Visualizar dados do arquivo de log no console do Amazon CloudWatch (p. 235) Visualizar arquivos de log em uma instância (p. 235) 234

243 Visualizar dados do arquivo de log no console do Amazon CloudWatch Visualizar dados do arquivo de log no console do Amazon CloudWatch Quando o agente do Amazon CloudWatch Logs está instalado em uma instância, dados de log de implantação para todas as implementações nessa instância se tornam disponíveis para visualização no console do CloudWatch. Por questões de simplicidade, recomendamos usar o Amazon CloudWatch Logs para monitorar arquivos de log centralmente em vez de visualizá-los caso a caso. Para obter informações sobre como configurar o agente de Logs do Amazon CloudWatch, consulte Visualizar logs do AWS CodeDeploy no console do CloudWatch Logs. Visualizar arquivos de log em uma instância Para visualizar dados de log de implantação para uma instância individual, você pode entrar nessa instância e procurar informações sobre erros ou outros eventos de implantação. Tópicos Para visualizar arquivos de log de implantação em instâncias do Amazon Linux, RHEL e Ubuntu Server (p. 235) Para visualizar arquivos de logs de implantação em instâncias do Windows Server (p. 236) Para visualizar arquivos de log de implantação em instâncias do Amazon Linux, RHEL e Ubuntu Server Em instâncias do Amazon Linux, RHEL e Ubuntu Server, os logs de implantação são armazenados na seguinte localização: /opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log Para visualizar ou analisar logs de implantação em instâncias do Amazon Linux, RHEL ou Ubuntu Server, entre na instância e digite o seguinte comando para abrir o arquivo de log do agente do AWS CodeDeploy: less /var/log/aws/codedeploy-agent/codedeploy-agent.log Digite os seguintes comandos para ver se há mensagens de erro no arquivo de log: Comando & ERROR Resultado Mostrar apenas as mensagens de erro no arquivo de log. Use um único espaço antes e depois da palavra ERROR. / ERROR Procurar a próxima mensagem de erro.¹? ERROR Procurar a mensagem de erro anterior.² Use um único espaço antes e depois da palavra ERROR. G g q h Ir para o final do arquivo de log. Ir para o início do arquivo de log. Sair do arquivo de log. Saber mais sobre comandos adicionais. 235

244 Visualizar arquivos de log em uma instância Comando Resultado ¹ Depois de digitar / ERROR, digite n para a próxima mensagem de erro. Digite N para a mensagem de erro anterior. ² Depois de digitar? ERROR, digite n para a próxima mensagem de erro ou N para a mensagem de erro anterior. Você também pode digitar o seguinte comando para abrir um arquivo de log de scripts do AWS CodeDeploy: less /opt/codedeploy-agent/deployment-root/deployment-group-id/deployment-id/logs/ scripts.log Digite os seguintes comandos para ver se há mensagens de erro no arquivo de log: Comando /stderr /stderr?stderr G g q h Resultado Mostrar apenas as mensagens de erro no arquivo de log. Procurar a próxima mensagem de erro.¹ Procurar a mensagem de erro anterior.² Ir para o final do arquivo de log. Ir para o início do arquivo de log. Sair do arquivo de log. Saber mais sobre comandos adicionais. ¹Depois de digitar /stderr, digite n para a próxima mensagem de erro afrente. Digite N para a mensagem de erro anterior atrás. ² Depois de digitar?stderr, digite n para a próxima mensagem de erro atrás. Digite N para a mensagem de erro anterior afrente. Para visualizar arquivos de logs de implantação em instâncias do Windows Server Arquivo de log do agente do AWS CodeDeploy: em instâncias do Windows Server, o arquivo de log do agente do AWS CodeDeploy é armazenado na seguinte localização: C:\ProgramData\Amazon\CodeDeploy\log\codedeploy-agent-log.txt Para visualizar ou analisar o arquivo de log do agente do AWS CodeDeploy em uma instância do Windows Server, entre nessa instância e digite o seguinte comando para abrir o arquivo: notepad C:\ProgramData\Amazon\CodeDeploy\log\codedeploy-agent-log.txt Para procurar o arquivo de log em busca de mensagens de erro, pressione CTRL+F, digite ERROR [ e, em seguida, pressione Enter para encontrar o primeiro erro. 236

245 Interromper uma implantação Arquivos de log de scripts do AWS CodeDeploy: em instâncias do Windows Server. os logs de implantação são armazenados na seguinte localização: C:\ProgramData\Amazon\CodeDeploy\deployment-group-id\deployment-id\logs\scripts.log Onde: deployment-group-id é uma string como examplebf3a9c7a-7c b0c68d0cd3c4 deployment-id é um identificador como d-12example Digite o seguinte comando para abrir um arquivo de log de scripts do AWS CodeDeploy: notepad C:\ProgramData\Amazon\CodeDeploy\deployment-group-ID\deployment-ID\logs\scripts.log Para procurar o arquivo de log em busca de mensagens de stderr, pressione CTRL+F, digite stderr e, em seguida, pressione Enter para encontrar o primeiro erro. Interromper uma implantação com o AWS CodeDeploy Você pode usar o console do AWS CodeDeploy, a AWS CLI ou as APIs do AWS CodeDeploy para interromper implantações associadas à sua conta da AWS. Warning Interromper uma implantação pode deixar algumas ou todas as instâncias nos seus grupos de implantação em um estado de implantação indeterminado. Para obter mais informações, consulte Implantações interrompidas e com falha (p. 10). Tópicos Interromper uma implantação (console) (p. 237) Interromper uma implantação (CLI) (p. 238) Interromper uma implantação (console) 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. No menu do AWS CodeDeploy, selecione Implantações. Se não for exibida nenhuma entrada, verifique se a região correta está selecionada. Na barra de navegação, no seletor de região, escolha uma das regiões listadas em Região e endpoints, no AWS General Reference. O AWS CodeDeploy apenas oferece suporte a essas regiões. 3. Na coluna Ações da implantação que você deseja interromper, escolha Interromper. 237

246 Interromper uma implantação (CLI) Se um botão Interromper não aparecer na coluna Ações, a implantação progrediu até um ponto em que não pode ser interrompida. Interromper uma implantação (CLI) Chame o comando stop-deployment, especificando o ID da implantação. Para ver uma lista de IDs de implantação, chame o comando list-deployments. Reimplantar e reverter uma implantação com o AWS CodeDeploy O AWS CodeDeploy reverte as implantações redistribuindo uma revisão previamente implantada de um aplicativo como uma nova implantação. Essas implementações revertidas são tecnicamente novas implantações, com novos ID de implantação, e não versões restauradas de uma implantação anterior. Implantações podem ser revertidas automaticamente ou manualmente. Tópicos Reversões automáticas (p. 238) Reversões manuais (p. 238) Fluxo de trabalho de reversão e reimplantação (p. 239) Comportamento de reversão com conteúdo existente (p. 240) Reversões automáticas Você pode configurar um grupo de implantação ou uma implantação para reversão automática quando uma implantação falhar ou quando um limite de monitoramento especificado for atendido. Nesse caso, a última versão conhecida em bom estado de uma revisão de aplicativo é implantada. Reversões automáticas são configuradas quando um aplicativo é criado ou quando um grupo de implantação é criado ou atualizado. Ao criar uma nova implantação, você também pode optar por substituir a configuração de reversão automática que foi especificada para o grupo de implantação. Você pode usar o Amazon Simple Notification Service para receber uma notificação sempre que uma implantação for revertida automaticamente. Para obter mais informações, consulte Monitorando implantações com notificações de eventos do Amazon SNS (p. 254). Para obter mais informações sobre como configurar reversões automáticas, consulte Configurar opções avançadas para um grupo de implantação (p. 212). Reversões manuais Se você não tiver configurado reversões automáticas, poderá reverter manualmente uma implantação criando uma nova implantação que usa qualquer revisão de aplicativo implantada anteriormente e seguindo as etapas para reimplementar uma revisão. Isso pode ser feito quando um aplicativo entra em um estado desconhecido. Em vez de gastar muito tempo com a solução de problemas, você pode 238

247 Fluxo de trabalho de reversão e reimplantação reimplantar o aplicativo para um bom estado de operação conhecido. Para obter mais informações, consulte Criar uma implantação com o AWS CodeDeploy (p. 226). Se você remover uma instância de um grupo de implantação, o AWS CodeDeploy não desinstalará nada que possa já ter sido instalado nessa instância. Fluxo de trabalho de reversão e reimplantação Quando a reversão automática é iniciada, ou quando você inicia manualmente uma reimplantação ou reversão manual, o AWS CodeDeploy primeiro tenta remover de cada instância participante todos os arquivos que foram instalados com êxito da última vez. O AWS CodeDeploy faz isso verificando o arquivo de limpeza: Arquivo /opt/codedeploy-agent/deployment-root/deployment-instructions/deployment-group-idcleanup (para instâncias do Amazon Linux, Ubuntu Server e RHEL) Arquivo C:\ProgramData\Amazon\CodeDeploy\deployment-instructions\deployment-group-ID-cleanup (para instâncias do Windows Server) Se o arquivo de limpeza existir, o AWS CodeDeploy o usará para remover da instância todos os arquivos listados antes de iniciar a nova implantação. Por exemplo, os dois primeiros arquivos de texto e os dois arquivos de script já foram implantados em uma instância do Amazon EC2 que executa o Windows Server, e os scripts criaram mais dois arquivos de texto durante os eventos de ciclo de vida de implantação: c:\temp\a.txt (previously deployed by AWS CodeDeploy) c:\temp\b.txt (previously deployed by AWS CodeDeploy) c:\temp\c.bat (previously deployed by AWS CodeDeploy) c:\temp\d.bat (previously deployed by AWS CodeDeploy) c:\temp\e.txt (previously created by c.bat) c:\temp\f.txt (previously created by d.bat) O arquivo de limpeza listará apenas os dois primeiros arquivos de texto e dois arquivos de script: c:\temp\a.txt c:\temp\b.txt c:\temp\c.bat c:\temp\d.bat Antes da nova implantação, o AWS CodeDeploy removerá apenas os dois primeiros arquivos de texto e os dois arquivos de script, deixando intactos os dois últimos arquivos de texto: c:\temp\a.txt will be removed c:\temp\b.txt will be removed c:\temp\c.bat will be removed c:\temp\d.bat will be removed c:\temp\e.txt will remain c:\temp\f.txt will remain Como parte desse processo, o AWS CodeDeploy não tentará reverter ou reconciliar ações realizadas por qualquer script em implantações anteriores durante reimplantações subsequentes, sejam reversões manuais ou automáticas. Por exemplo, se os arquivos c.bat e d.bat contiverem lógica para não recriar os arquivos e.txt e f.txt caso estes já existam, as versões antigas de e.txt e f.txt permanecerão inalteradas sempre que o AWS CodeDeploy executar c.bat e d.bat em implementações subsequentes. Você pode adicionar lógica a c.bat e d.bat para sempre verificar e excluir versões antigas de e.txt e f.txt antes de criar novas. 239

248 Comportamento de reversão com conteúdo existente Comportamento de reversão com conteúdo existente Como parte do processo de implantação, o agente do AWS CodeDeploy remove de cada instância todos os arquivos instalados pela implantação mais recente. Se arquivos que não faziam parte de uma implantação anterior aparecerem em localizações de implantação de destino, você poderá escolher o que o AWS CodeDeploy deve fazer com eles durante a próxima implantação: Fail the deployment Um erro será informado, e o status da implantação mudará para Failed. Overwrite the content A versão do arquivo da revisão de aplicativo substitui a versão que já está na instância. Retain the content O arquivo na localização de destino é mantido, e a versão na revisão de aplicativo não é copiada para a instância. Você pode optar por manter os arquivos que deseja que façam parte da próxima implantação sem precisar adicioná-los ao pacote de revisão de aplicativo. Por exemplo, você pode carregar diretamente na instância os arquivos que são necessários para a implantação, mas que não foram adicionados ao pacote de revisão de aplicativo. Outra opção é carregar arquivos na instância caso os seus aplicativos já estejam no seu ambiente de produção, mas você queira usar o AWS CodeDeploy pela primeira vez para implantá-los. No caso de reversões em que a mais recente revisão de aplicativo implantada com êxito for reimplantada devido a uma falha de implantação, a opção de tratamento de conteúdo para essa última implementação bem-sucedida será aplicada à implantação de reversão. No entanto, se a implantação que falhou tiver sido configurada para substituir arquivos, em vez de mantêlos, um resultado inesperado poderá ocorrer durante a reversão. Especificamente, os arquivos que você esperava que fossem mantidos talvez sejam removidos pela implantação com falha. Os arquivos não estão na instância quando a implantação de reversão é executada. No exemplo a seguir, existem três implementações. Nenhum arquivo substituído (excluído) durante a segunda implementação com falha estará mais disponível (não pode ser mantido) quando a revisão de aplicativo 1 for implantada novamente durante a implantação 3: Implantação Revisão de aplicativo Opção de substituição de conteúdo Status da implantação Comportamento e resultado implantação 1 revisão de aplicativo 1 MANTER Bem-sucedido O AWS CodeDeploy detecta arquivos nas localizações de destino que não foram implantados pela implantação anterior. Esses arquivos podem ter sido colocados lá intencionalmente para se tornarem parte da implantação atual. Eles são mantidos e registrados como parte do pacote de implantação atual. 240

249 Comportamento de reversão com conteúdo existente Implantação Revisão de aplicativo Opção de substituição de conteúdo Status da implantação Comportamento e resultado implantação 2 revisão de aplicativo 2 SUBSTITUIR Failed Durante o processo de implantação, o AWS CodeDeploy exclui todos os arquivos que fazem parte da implantação anterior bemsucedida. Isso inclui os arquivos que foram mantidos durante a implantação 1. No entanto, a implantação falha por motivos não relacionados. implantação 3 revisão de aplicativo 1 MANTER Como a reversão automática está habilitada para a implantação ou o grupo de implantação, o AWS CodeDeploy implanta a revisão de aplicativo em bom estado conhecida, a revisão de aplicativo 1. No entanto, os arquivos que você queria manter na implantação 1 foram excluídos antes da falha da implantação 2 e não podem ser recuperados pelo AWS CodeDeploy. Você poderá adicioná-los à instância se eles forem necessário para a revisão de aplicativo 1, ou poderá criar uma nova revisão de aplicativo. 241

250 Implantar um aplicativo em uma conta da AWS diferente Implantar um aplicativo em uma conta da AWS diferente Em geral, as organizações têm várias contas da AWS que utilizam para diferentes propósitos (por exemplo, uma para tarefas de administração de sistema e outra para tarefas de desenvolvimento, teste e produção, ou ainda uma associada a ambientes de desenvolvimento e teste e outra associada ao ambiente de produção). Embora você possa realizar trabalhos relacionados em diferentes contas, grupos de implantação do AWS CodeDeploy e as instâncias do Amazon EC2 nas quais eles são implantados estão estritamente vinculados às contas nas quais eles foram criados. Por exemplo, você não pode adicionar uma instância iniciada em uma conta em um grupo de implantação em outra instância. Suponha que você tenha duas contas da AWS: sua conta de desenvolvimento e sua conta de produção. Você trabalha principalmente na conta de desenvolvimento, mas deseja poder iniciar implantações na conta de produção sem um conjunto completo de credenciais ou sem ter que se desconectar da conta de desenvolvimento e entrar na conta de produção. Depois de seguir as etapas de configuração entre contas, você poderá iniciar implantações que pertencem a outra das contas da sua organização, sem precisar de um conjunto completo de credenciais para essa outra conta. Isso é feito em parte usando uma capacidade fornecida pelo Serviço de token de segurança da AWS (AWS STS), que concede acesso temporário a essa conta. Etapa 1: criar um bucket do S3 em qualquer uma das contas Na conta de desenvolvimento ou de produção: Se ainda não tiver feito isso, crie um bucket do Amazon S3 no qual as revisões de aplicativo para a conta de produção serão armazenadas. Para obter informações, consulte Criar um balde no Amazon S3. Você pode até mesmo usar o mesmo bucket e as mesmas revisões de aplicativo para ambas as contas, implantando no seu ambiente de produção os mesmos arquivos que você testou e verificou na sua conta de desenvolvimento. Etapa 2: conceder permissões de bucket do Amazon S3 ao perfil de instâncias do IAM da conta de produção Se o bucket do Amazon S3 criado na etapa 1 estiver na sua conta de produção, essa etapa não será necessária. A função que você assumir mais tarde já terá acesso a esse bucket, pois também está na conta de produção. Se tiver criado o bucket do Amazon S3 na conta de desenvolvimento, faça o seguinte: Na conta de produção, crie um perfil de instâncias do IAM. Para obter mais informações, consulte Etapa 4: criar um perfil de instância do IAM (p. 19). Anote o ARN desse perfil de instâncias do IAM. Você precisará adicioná-lo à política entre buckets que será criada em seguida. 242

251 Etapa 3: criar recursos e uma função entre contas na conta de produção Na conta de desenvolvimento, dê acesso ao bucket do Amazon S3 criado na conta de desenvolvimento para o perfil de instâncias do IAM que você acabou de criar na sua conta de produção. Para obter informações, consulte Exemplo 2: proprietário do bucket concedendo permissões para bucket entre contas. Observe o seguinte enquanto conclui o processo de concessão de permissões para bucket entre contas: No passo a passo de amostra, a Conta A representa sua conta de desenvolvimento, enquanto a Conta B representa sua conta de produção. Quando você executar as tarefas da Conta A (conta de desenvolvimento), modifique a seguinte política de bucket para conceder permissões entre contas em vez de usar a política de amostra fornecida no passo a passo. { } "Version": " ", "Statement": [ { "Sid": "Cross-account permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/role-name" }, "Action": [ "s3:get*", "s3:list*" ], "Resource": [ "arn:aws:s3:::bucket-name/*" ] } ] account-id representa o número da conta de produção na qual você acabou de criar o perfil de instâncias do IAM. role-name representa o nome do perfil de instâncias do IAM que você acabou de criar. bucket-name representa o nome do bucket que você criou na etapa 1. Certifique-se de incluir o /* depois do nome do seu bucket, para fornecer acesso a cada um dos arquivos dentro desse bucket. Etapa 3: criar recursos e uma função entre contas na conta de produção Na sua conta de produção: Crie seus recurso do AWS CodeDeploy aplicativo, grupo de implantação, configuração de implantação, instâncias do Amazon EC2, perfil de instância do Amazon EC2, função de serviço e assim por diante usando as instruções neste guia. Crie uma função adicional, uma função do IAM entre contas, que um usuário na sua conta de desenvolvimento possa assumir para realizar operações do AWS CodeDeploy nessa conta de produção. Use o Passo a passo: delegar acesso entre contas da AWS usando funções do IAM como guia para ajudar a criar a função entre contas. Em vez de adicionar as permissões de amostra no passo a passo ao seu documento de política, você deve anexar à função pelo menos as duas políticas a seguir fornecidas pela AWS: 243

252 Etapa 4: carregar a revisão de aplicativo no bucket do Amazon S3 AmazonS3FullAccess: necessária apenas se o bucket do S3 estiver na conta de desenvolvimento. Fornece à função da conta de produção assumida acesso total aos serviços e recursos do Amazon S3 na conta de desenvolvimento, na qual a revisão está armazenada. AWSCodeDeployDeployerAccess: permite que um usuário do IAM registre e implante revisões. Se quiser criar e gerenciar grupos de implantação e não apenas iniciar implantações, adicione a política AWSCodeDeployFullAccess em vez da política AWSCodeDeployDeployerAccess. Para obter mais informações sobre como usar políticas gerenciadas do IAM para conceder permissões para tarefas do AWS CodeDeploy, consulte Políticas gerenciadas (predefinidas) da AWS do AWS CodeDeploy (p. 273). Você poderá anexar políticas adicionais se quiser realizar tarefas em outros serviços da AWS enquanto usa essa função entre contas. Important À medida que você criar a função do IAM entre contas, anote os detalhes que serão necessários para obter acesso à conta de produção. Para usar o Console de gerenciamento da AWS para trocar de função, você precisará fornecer uma das seguintes opções: Uma URL para acessar a conta de produção com as credenciais da função assumida. Você encontrará o URL na página Revisão, que é exibida no final do processo de criação de função de conta cruzada. O nome da função entre contas e o alias ou o número de identificação da conta. Para usar a AWS CLI para trocar de função, você precisará fornecer as seguintes opções: O ARN da função entre contas que você assumirá. Etapa 4: carregar a revisão de aplicativo no bucket do Amazon S3 Na conta em que você criou o bucket do Amazon S3: Carregue sua revisão de aplicativo no bucket do Amazon S3. Para obter mais informações, consulte Enviar uma revisão do AWS CodeDeploy para o Amazon S3 (p. 220). Etapa 5: assumir a função entre contas e implantar aplicativos Na conta de desenvolvimento, você pode usar a AWS CLI ou o Console de gerenciamento da AWS para assumir a função entre contas e iniciar a implantação na conta de produção. Para obter instruções sobre como usar o Console de gerenciamento da AWS para trocar de função e iniciar implantações, consulte Alternando para uma função (Console de gerenciamento da AWS) e Criar uma implantação (console) (p. 228). Para obter instruções sobre como usar a AWS CLI para assumir a função entre contas e iniciar implantações, consulte Alternando para uma função do IAM (Interface de linha de comando da AWS) e Criar uma implantação (CLI) (p. 231). 244

253 Etapa 5: assumir a função entre contas e implantar aplicativos Para obter mais informações sobre como assumir uma função por meio do AWS STS, consulte AssumeRole no documento AWS Security Token Service User Guide e assume-role no documento AWS CLI Command Reference. Tópico relacionado: AWS CodeDeploy: implantando de uma conta de desenvolvimento em uma conta de produção 245

254 Ferramentas automatizadas Monitorando implantações no AWS CodeDeploy O monitoramento é uma parte importante para manter a confiabilidade, a disponibilidade e o desempenho do AWS CodeDeploy e das soluções da AWS. Você deve coletar dados de monitoramento de todas as partes de sua solução da AWS para ser mais fácil realizar a depuração de uma falha de vários pontos (caso ocorra). Porém, antes de começar a monitorar o AWS CodeDeploy, crie um plano de monitoramento que inclua as respostas para as seguintes perguntas: Quais são seus objetivos de monitoramento? Quais recursos você vai monitorar? Com que frequência você vai monitorar esses recursos? Quais ferramentas de monitoramento você usará? Quem realizará o monitoramento das tarefas? Quem deve ser notificado quando algo der errado? A próxima etapa é estabelecer uma linha de base de desempenho normal de AWS CodeDeploy em seu ambiente, medindo o desempenho em vários momentos e em diferentes condições de carga. À medida que você monitorar o AWS CodeDeploy, armazene dados de monitoramento anteriores para que possa compará-los com os dados de desempenho atuais, identificar padrões de desempenho normal e anomalias de desempenho e elaborar métodos para a solução de problemas. Por exemplo, se você estiver usando o AWS CodeDeploy, poderá monitorar o status das implantações e as instâncias de destino. Quando as implementações ou instâncias falharem, você precisará reconfigurar um arquivo de especificação de aplicativo, reinstalar ou atualizar o agente do AWS CodeDeploy, atualizar configurações em um aplicativo ou grupo de implantação ou fazer alterações nas configurações de instâncias ou em um arquivo AppSpec. Para estabelecer uma linha de base, você deve, no mínimo, monitorar os seguintes itens: Eventos e status de implantações Eventos e status de instâncias Ferramentas de monitoramento automatizadas A AWS fornece várias ferramentas que podem ser usadas para monitorar o AWS CodeDeploy. Você pode configurar algumas dessas ferramentas para fazer o monitoramento em seu lugar, e, ao mesmo tempo, 246

255 Ferramentas manuais algumas das ferramentas exigem intervenção manual. Recomendamos que você automatize as tarefas de monitoramento o máximo possível. Você pode usar as seguintes ferramentas de monitoramento automatizadas para assistir ao AWS CodeDeploy e relatar quando algo estiver errado: Alarmes do Amazon CloudWatch observe uma única métrica ao longo de um período de tempo que você especificar e realize uma ou mais ações com base no valor da métrica em relação a um determinado limite ao longo de vários períodos. A ação é uma notificação enviada a um tópico do Amazon Simple Notification Service (Amazon SNS) ou a uma política do Auto Scaling. Os alarmes do CloudWatch não invocam ações simplesmente porque estão em um estado específico. O estado deve ter sido alterado e mantido por um número específico de períodos. Para obter mais informações, consulte Monitorando implantações com ferramentas do Amazon CloudWatch (p. 248). Para obter informações sobre como atualizar sua função de serviço para funcionar com o monitoramento de alarmes do CloudWatch, consulte Conceder permissões do CloudWatch a uma função de serviço do AWS CodeDeploy (p. 249). Para obter informações sobre como adicionar o monitoramento de alarmes do CloudWatch às suas operações do AWS CodeDeploy, consulte Criar um aplicativo (p. 194), Criar um grupo de implantação com o AWS CodeDeploy (p. 203) ou Alterar configurações do grupo de implantação (p. 210). Amazon CloudWatch Logs monitore, armazene e acesse seus arquivos de log de AWS CloudTrail ou outras fontes. Para mais informações, consulte Monitoramento de arquivos de log no Guia do usuário do Amazon CloudWatch. Para obter informações sobre como usar o console do CloudWatch para visualizar logs do AWS CodeDeploy, consulte Exibir logs do AWS CodeDeploy no console do CloudWatch Logs. Eventos do Amazon CloudWatch faça correspondência de eventos e direcione-os a uma ou mais funções ou fluxos de destino para fazer alterações, capturar informações de estado e realizar ações corretivas. Para obter mais informações, consulte Uso de eventos no Guia do usuário do Amazon CloudWatch. Para obter informações sobre como usar o Eventos do CloudWatch nas suas operações do AWS CodeDeploy, consulte Monitorando implantações com o Eventos do Amazon CloudWatch (p. 250). Monitoramento de log do AWS CloudTrail Compartilhe arquivos de log entre contas, monitore os arquivos de log do CloudTrail em tempo real enviando-os para o CloudWatch Logs, escreva aplicações de processamento de logs em Java e confirme se os arquivos de log não foram alterados após a distribuição pelo CloudTrail. Para obter mais informações, consulte Working with CloudTrail Log Files no AWS CloudTrail User Guide. Para obter informações sobre como usar o CloudTrail com o AWS CodeDeploy, consulte Monitoramento de implantações com o AWS CloudTrail (p. 252). Amazon Simple Notification Service Configure gatilhos com base em eventos para receber notificações por SMS ou sobre eventos de implantação e instâncias, como êxitos ou falhas. Para obter mais informações, consulte Criar um tópico e O que é o Amazon Simple Notification Service. Para obter informações sobre como configurar notificações do Amazon SNS para o AWS CodeDeploy, consulte Monitorando implantações com notificações de eventos do Amazon SNS (p. 254). Ferramentas de monitoramento manual Outra parte importante do monitoramento de AWS CodeDeploy envolve monitorar manualmente os itens não abrangidos nos alertas do CloudWatch. O AWS CodeDeploy, o CloudWatch e outros painéis do console da AWS fornecem uma visão rápida do estado do seu ambiente da AWS. Recomendamos que você também verifique os arquivos de registro do AWS CodeDeploy deployments. O console do AWS CodeDeploy mostra: 247

256 O status das implantações AWS CodeDeploy Guia do usuário Monitorando implantações com ferramentas do Amazon CloudWatch A data e a hora de cada última tentativa de implantação e de cada última implementação bemsucedida de uma revisão O número de instâncias que tiveram êxito, falharam, foram ignoradas ou estão em andamento em uma implantação O status das instâncias locais A data e a hora em que as instâncias locais foram registradas ou tiveram seu registro cancelado A página inicial do CloudWatch mostra: Alertas e status atual Gráficos de alertas e recursos Estado de integridade do serviço Além disso, você pode usar o CloudWatch para fazer o seguinte: Criar painéis personalizados para monitorar os serviços com os quais você se preocupa Colocar em gráfico dados de métrica para solucionar problemas e descobrir tendências Pesquisar e procurar todas as métricas de recursos da AWS Criar e editar alertas para ser notificado sobre problemas Tópicos Monitorando implantações com ferramentas do Amazon CloudWatch (p. 248) Monitoramento de implantações com o AWS CloudTrail (p. 252) Monitorando implantações com notificações de eventos do Amazon SNS (p. 254) Monitorando implantações com ferramentas do Amazon CloudWatch Você pode monitorar o AWS CodeDeploy deployments usando as seguintes ferramentas do CloudWatch: o Eventos do Amazon CloudWatch, alarmes do CloudWatch e o Amazon CloudWatch Logs. Revisar os logs criados pelo agente do AWS CodeDeploy e as implantações pode ajudá-lo a solucionar as causas das falhas de implantação. Em vez de revisar os logs do AWS CodeDeploy em uma instância de cada vez, você pode usar o CloudWatch Logs para monitorar todos os logs em uma localização central. Para obter informações sobre como usar o console do CloudWatch para visualizar logs do AWS CodeDeploy, consulte Exibir logs do AWS CodeDeploy no console do CloudWatch Logs. Para obter informações sobre como usar alarmes do CloudWatch e o Eventos do CloudWatch para monitorar seu AWS CodeDeploy deployments, consulte os seguintes tópicos. Tópicos Monitorando implantações com alarmes do CloudWatch no AWS CodeDeploy (p. 248) Monitorando implantações com o Eventos do Amazon CloudWatch (p. 250) Monitorando implantações com alarmes do CloudWatch no AWS CodeDeploy Você pode criar um alarme do CloudWatch para uma instância ou um grupo do Auto Scaling que esteja usando nas suas operações do AWS CodeDeploy. Um alarme observa uma única métrica ao longo de 248

257 Monitorando implantações com alarmes do CloudWatch um período especificado por você e realiza uma ou mais ações com base no valor da métrica relativo a um determinado limite ao longo de vários períodos. Os alarmes do CloudWatch não invocam ações simplesmente porque estão em um estado específico. O estado deve ter sido alterado e mantido por um número específico de períodos. Usando a funcionalidade nativa de alarmes do CloudWatch, é possível especificar qualquer uma das ações com suporte pelo CloudWatch quando uma instância que você está usando em uma implantação falhar, por exemplo, enviando uma notificação do Amazon SNS ou interrompendo, encerrando, reinicializando ou recuperando uma instância. Para as suas operações do AWS CodeDeploy, você pode configurar um grupo de implantação para interromper uma implantação sempre que um alarme do CloudWatch associado a esse grupo for ativado. É possível associar até dez alarmes do CloudWatch a um grupo de implantação do AWS CodeDeploy. Se qualquer um dos alarmes especificados for ativado, a implantação será interrompida, e o status será atualizado para Stopped. Para usar essa opção, você deve conceder permissões do CloudWatch à sua função de serviço do AWS CodeDeploy. Para obter informações sobre como configurar alarmes do CloudWatch no console do CloudWatch, consulte Criando alarmes do Amazon CloudWatch, no Guia do usuário do Amazon CloudWatch. Para obter informações sobre como associar um alarme do CloudWatch a um grupo de implantação no AWS CodeDeploy, consulte Criar um grupo de implantação com o AWS CodeDeploy (p. 203) e Alterar configurações do grupo de implantação (p. 210). Tópicos Conceder permissões do CloudWatch a uma função de serviço do AWS CodeDeploy (p. 249) Conceder permissões do CloudWatch a uma função de serviço do AWS CodeDeploy Para que você possa usar o monitoramento de alarmes do CloudWatch com as suas implantações, a função de serviço usada em operações do AWS CodeDeploy deve ter permissão para acessar os recursos do CloudWatch. Para conceder permissões do CloudWatch a uma função de serviço 1. Faça login no Console de gerenciamento da AWS e abra o console da IAM em console.aws.amazon.com/iam/. 2. No console do IAM, selecione Funções no painel de navegação. 3. Escolha o nome da função de serviço utilizada nas suas operações do AWS CodeDeploy. 4. Na guia Permissões, na área de Políticas em linha, selecione Criar política de função. ou Se o botão Criar política de função não estiver disponível, expanda a área de Políticas em linha e depois clique aqui. 5. Na página Definir permissões, selecione Política personalizada e, então, Selecionar. 6. Na página Revisar política, no campo Nome da política, digite um nome para identificar essa política, tal como CWAlarms. 7. Cole o seguinte no campo Documento da política: { "Version": " ", "Statement": [ { 249

258 Monitorando implantações com o Eventos do Amazon CloudWatch } ] } "Effect": "Allow", "Action": "cloudwatch:describealarms", "Resource": "*" 8. Selecione Apply Policy. Monitorando implantações com o Eventos do Amazon CloudWatch Você pode usar o Eventos do Amazon CloudWatch para detectar e reagir a alterações no estado de uma instância ou a uma implantação (um "evento") nas suas operações do AWS CodeDeploy. Em seguida, com base em regras que você criar, o Eventos do CloudWatch chamará uma ou mais ações de destino quando uma implantação ou uma instância entrar no estado especificado em uma regra. Dependendo do tipo de alteração de estado, convém enviar notificações, capturar informações de estado, tomar medidas corretivas, iniciar eventos ou realizar outras ações. Você pode selecionar os seguintes tipos de destinos ao usar o Eventos do CloudWatch como parte das suas operações do AWS CodeDeploy: Funções AWS Lambda Fluxos Kinesis Filas Amazon SQS Destinos integrados (ações de alarme do CloudWatch) Tópicos Amazon SNS A seguir, alguns casos de uso: Use uma função Lambda para transmitir uma notificação a um canal Slack sempre que uma implantação falhar. Envie dados sobre implantações ou instâncias a um fluxo do Kinesis para dar suporte ao monitoramento abrangente do status em tempo real. Use ações de alarme do CloudWatch para interromper, encerrar, reinicializar ou recuperar instâncias do Amazon EC2 automaticamente quando ocorrer um evento de implantação ou instância que você especificar. O restante deste tópico descreve o procedimento básico para a criação de uma regra do Eventos do CloudWatch para o AWS CodeDeploy. Entretanto, antes de criar regras de eventos para uso nas suas operações do AWS CodeDeploy, você deve fazer o seguinte: Concluir os pré-requisitos do Eventos do CloudWatch. Para obter informações, consulte Pré-requisitos do Eventos do Amazon CloudWatch. Familiarize-se com os eventos, regras e destinos no Eventos do CloudWatch. Para obter mais informações, consulte O que é Eventos do Amazon CloudWatch? e Novo Eventos do CloudWatch Rastreie e responda a alterações em seus recursos da AWS. Criar um ou mais destinos que você usará nas suas regras de evento. Para criar uma regra do Eventos do CloudWatch para o AWS CodeDeploy: 1. Abra o console do CloudWatch em 2. No painel de navegação, selecione Events. 3. Escolha Create rule e, em Event selector, escolha AWS CodeDeploy. 250

259 4. Especifique um tipo de detalhe: AWS CodeDeploy Guia do usuário Monitorando implantações com o Eventos do Amazon CloudWatch Para criar uma regra que se aplica a todas as alterações de estado tanto de instâncias quanto de implementações, escolha Any detail type e, em seguida, pule para a etapa 6. Para criar uma regra aplicável somente a instâncias, escolha Specific detail type e depois CodeDeploy Instance State-change Notification. Para criar uma regra aplicável somente a implantações, escolha Specific detail type e depois CodeDeploy Deployment State-change Notification. 5. Especifique as alterações de estado às quais a regra se aplica: Para criar uma regra que se aplica a todas as alterações de estado, escolha Any state. Para criar uma regra que se aplica apenas a algumas alterações de estado, escolha Specific state(s) e depois escolha um ou mais valores de status na lista. A tabela a seguir lista os valores de status que você pode escolher: Valores de status de implantação FAILURE START STOP QUEUED Valores de status de instâncias FAILURE START READY ÊXITO READY ÊXITO 6. Especifique a quais aplicativos AWS CodeDeploy a regra é aplicável: Para criar uma regra que se aplique a todos os aplicativos, escolha Any application e, em seguida, pule para a etapa 8. Para criar uma regra que se aplique apenas a um aplicativo, escolha Specific application e depois escolha o nome do aplicativo na lista. 7. Especifique a quais grupos de implantação a regra se aplica: Para criar uma regra que se aplique a todos os grupos de implantação associados ao aplicativo selecionado, escolha Any deployment group. Para criar uma regra que se aplique a apenas um dos grupos de implantação associados ao aplicativo selecionado, escolha Specific deployment group(s) e, em seguida, escolha o nome do grupo de implantação na lista. 8. Analise a configuração da regra para garantir que ela atenda aos requisitos de monitoramento de evento. Veja a seguir a configuração de uma regra de evento que será processada sempre que uma implantação falhar em qualquer instância no MyDeploymentFleetgrupo de implantação do aplicativo denominado MyCodeDeployApp: 251

260 Monitoramento de implantações com o AWS CloudTrail 9. Na área Targets, escolha Add target*. 10. Na lista Select target type, selecione o tipo de destino preparado para usar com essa regra e, em seguida, configure as opções adicionais necessárias para esse tipo. 11. Escolha Configure details. 12. Na página Configure rule details, digite um nome e uma descrição para a regra e, em seguida, escolha a caixa State para habilitar a regra agora. 13. Se você estiver satisfeito com a regra, escolha Create rule. Monitoramento de implantações com o AWS CloudTrail O AWS CodeDeploy é integrado ao CloudTrail, um serviço que captura as chamadas de API feitas pelo ou em nome do AWS CodeDeploy na sua conta da AWS e que entrega os arquivos de log em um bucket do Amazon S3 que você especifica. O CloudTrail captura chamadas de API do console do AWS CodeDeploy a partir de comandos do AWS CodeDeploy por meio da AWS CLI ou diretamente das APIs do AWS CodeDeploy. Usando as informações coletadas pelo CloudTrail, é possível determinar qual solicitação foi feita ao AWS CodeDeploy, o endereço IP de origem do qual a solicitação foi feita, quem fez a solicitação, quando ela foi feita, etc. Para saber mais sobre o CloudTrail, incluindo como configurá-lo e habilitá-lo, consulte o documento AWS CloudTrail User Guide. Informações do AWS CodeDeploy no CloudTrail Quando o registro do CloudTrail está habilitado na sua conta da AWS, as chamadas de API feitas para ações do AWS CodeDeploy são rastreadas em arquivos de log. Os registros do AWS CodeDeploy são 252

261 Noções básicas das entradas dos arquivos de log do AWS CodeDeploy gravados com outros registros de serviço da AWS em um arquivo de log. CloudTrail determina quando criar e gravar em um novo arquivo de acordo com o período de tempo e o tamanho do arquivo. Todas as ações do AWS CodeDeploy são registradas e documentadas no AWS CodeDeploy Command Line Reference e no AWS CodeDeploy API Reference. Por exemplo, as chamadas para criar implantações, excluir aplicativos e registrar revisões de aplicativo geram entradas nos arquivos de log do CloudTrail. Cada entrada de log contém informações sobre quem gerou a solicitação. As informações sobre identidade do usuário no registro ajudam a determinar se a solicitação foi feita com credenciais de usuário root ou IAM, com credenciais de segurança temporárias para uma função ou um usuário federado ou por outro serviço da AWS. Para obter mais informações, consulte o campo useridentity no CloudTrail Event Reference. É possível armazenar os arquivos de log em seu bucket pelo tempo que você desejar, mas também é possível definir regras de ciclo de vida do Amazon S3 para arquivar ou excluir os arquivos de log automaticamente. Por padrão, a criptografia do lado do servidor (SSE) do Amazon S3 é usada para criptografar seus arquivos de log. O CloudTrail pode publicar notificações Amazon SNS quando novos arquivos de log forem entregues. Para obter mais informações, consulte Configuring Amazon SNS Notifications for CloudTrail. Também é possível agregar arquivos de log do AWS CodeDeploy de várias regiões e contas da AWS em um único bucket do Amazon S3. Para obter mais informações, consulte Receiving CloudTrail Log Files from Multiple Regions. Noções básicas das entradas dos arquivos de log do AWS CodeDeploy Os arquivos de log do CloudTrail podem conter uma ou mais entradas de log, e cada entrada é composta de vários eventos em formato JSON. Uma entrada de log representa uma única solicitação de qualquer origem e inclui informações sobre a ação solicitada, quaisquer parâmetros, a data e hora da ação, e assim por diante. Não é garantido que as entradas de log estejam em uma ordem específica. Ou seja, elas não são um rastreamento ordenado das chamadas de API públicas. O exemplo a seguir mostra uma entrada de log do CloudTrail que demonstra a ação de criação de grupo de implantação do AWS CodeDeploy: { "Records": [{ "eventversion": "1.02", "useridentity": { "type": "AssumedRole", "principalid": "AKIAI44QH8DHBEXAMPLE: ", "arn": "arn:aws:sts:: :assumed-role/example-role/ ", "accountid": " ", "accesskeyid": "AKIAIOSFODNN7EXAMPLE", "sessioncontext": { "attributes": { "mfaauthenticated": "false", "creationdate": " T03:57:36Z" }, "sessionissuer": { "type": "Role", "principalid": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam:: :role/example-role", "accountid": " ", "username": "example-role" } 253

262 Monitorando implantações com notificações de eventos do Amazon SNS } }, "eventtime": " T03:57:36Z", "eventsource": "codedeploy.amazonaws.com", "eventname": "CreateDeploymentGroup", "awsregion": "us-west-2", "sourceipaddress": " ", "useragent": "example-user-agent-string", "requestparameters": { "applicationname": "ExampleApplication", "servicerolearn": "arn:aws:iam:: :role/example-instance-group-role", "deploymentgroupname": "ExampleDeploymentGroup", "ec2tagfilters": [{ "value": "CodeDeployDemo", "type": "KEY_AND_VALUE", "key": "Name" }], "deploymentconfigname": "CodeDeployDefault.HalfAtATime" }, "responseelements": { "deploymentgroupid": "7d64e680-e6f4-4c07-b10a-9e117EXAMPLE" }, "requestid": " e9-11e4-8cf8-75d18EXAMPLE", "eventid": "832b82d5-d474-44e8-a51d-093ccEXAMPLE", "eventtype": "AwsApiCall", "recipientaccountid": " " },... additional entries... ] } Monitorando implantações com notificações de eventos do Amazon SNS Você pode adicionar gatilhos a um grupo de implantação do AWS CodeDeploy para receber notificações sobre eventos relacionados a implantações ou instâncias nesse grupo de implantação. Essas notificações são enviadas aos destinatários inscritos em um tópico do Amazon SNS que você incluiu como parte da ação do gatilho. Você pode receber notificações de eventos do AWS CodeDeploy em mensagens SMS ou mensagens de . Também pode usar de outras maneiras os dados JSON que são criados quando um evento especificado ocorre, por exemplo, enviando mensagens a filas do Amazon SQS ou invocando uma função no AWS Lambda. Para ver a estrutura dos dados JSON fornecidos para gatilhos de implantação e instância, consulte Formatos de dados JSON para gatilhos do AWS CodeDeploy (p. 263). Você poderá optar por usar gatilhos para receber notificações se: For um desenvolvedor que precisa saber quando uma implantação apresenta falhas ou é interrompida, para que você possa solucionar o problema. For um administrador do sistema que precisa saber quantas instâncias apresentam falhas para monitorar a integridade da sua frota do Amazon EC2. For um gerente que deseja uma contagem instantânea de eventos de implantação e instância, que possa ser obtida por meio de regras de filtragem que direcionam diferentes tipos de notificações para pastas no seu cliente de de desktop. É possível criar até 10 gatilhos para cada grupo de implantação do AWS CodeDeploy, para qualquer um dos seguintes tipos de eventos. 254

263 Conceder permissões do Amazon SNS a uma função de serviço Eventos de implantação Bem-sucedida Falha Iniciado Stopped Reverter Ready¹ Todos os eventos de implantação Eventos de instância Bem-sucedida Falha Iniciado Ready¹ Todos os eventos de instância ¹Aplicável apenas a implantações azuis/verdes. Indica que a última revisão do aplicativo foi instalada em instâncias em um ambiente de substituição e que o tráfego do ambiente original agora pode ser redirecionado atrás de um balanceador de carga. Para obter mais informações, consulte Trabalhando com implantações (p. 225). Tópicos Conceder permissões do Amazon SNS a uma função de serviço AWS CodeDeploy (p. 255) Criar um gatilho para um evento do AWS CodeDeploy (p. 256) Editar um gatilho em um grupo de implantação do AWS CodeDeploy (p. 261) Excluir um gatilho de um grupo de implantação do AWS CodeDeploy (p. 262) Formatos de dados JSON para gatilhos do AWS CodeDeploy (p. 263) Conceder permissões do Amazon SNS a uma função de serviço AWS CodeDeploy Antes que os seus gatilhos possam gerar notificações, a função de serviço usada em operações do AWS CodeDeploy devem ter permissão para acessar os recursos do Amazon SNS. Para conceder permissões do Amazon SNS a uma função de serviço 1. Faça login no Console de gerenciamento da AWS e abra o console da IAM em console.aws.amazon.com/iam/. 2. No console do IAM, selecione Funções no painel de navegação. 3. Escolha o nome da função de serviço utilizada nas suas operações do AWS CodeDeploy. 4. Na guia Permissões, na área de Políticas em linha, selecione Criar política de função. ou Se o botão Criar política de função não estiver disponível, expanda a área de Políticas em linha e depois clique aqui. 5. Na página Definir permissões, selecione Política personalizada e, então, Selecionar. 6. Na página Revisar política, no campo Nome da política, digite um nome para identificar essa política, tal como SNSPublish. 7. Cole o seguinte no campo Documento da política: { "Version": " ", "Statement": [ { 255

264 Criar um gatilho para um evento do AWS CodeDeploy } ] } "Effect": "Allow", "Action": "sns:publish", "Resource": "*" 8. Selecione Apply Policy. Criar um gatilho para um evento do AWS CodeDeploy É possível criar um gatilho que publica um tópico do Amazon Simple Notification Service (Amazon SNS) para um evento de implantação ou instância do AWS CodeDeploy. Dessa forma, quando esse evento ocorrer, todos os assinantes do tópico associado receberão notificações através do endpoint especificado no tópico, como uma mensagem SMS ou uma mensagem de . O Amazon SNS oferece vários métodos para assinar tópicos. Antes de criar um gatilho, você deve configurar o tópico do Amazon SNS para o qual esse gatilho apontará. Para obter informações, consulte Criar um tópico. Ao criar um tópico, é recomendável dar a ele um nome que identifique sua finalidade em formatos como Topic-group-us-west-3-deploy-fail ou Topic-group-project-2-instance-stop. Também é necessário conceder permissões do Amazon SNS a uma função de serviço do AWS CodeDeploy antes que notificações possam ser enviadas para o seu gatilho. Para obter mais informações, consulte Conceder permissões do Amazon SNS a uma função de serviço AWS CodeDeploy (p. 255). Depois de criar o tópico, você poderá adicionar assinantes. Para obter informações sobre como criar, gerenciar e assinar tópicos, consulte O que é o Amazon Simple Notification Service?. Criar um gatilho para enviar notificações de eventos do AWS CodeDeploy (console) É possível usar o console do AWS CodeDeploy para criar gatilhos referentes a um evento do AWS CodeDeploy. No final do processo de configuração, uma mensagem de notificação de teste é enviada para garantir que as permissões e os detalhes do gatilho estejam configurados corretamente. Para criar um gatilho para um evento do AWS CodeDeploy 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. Na página Aplicativos, escolha o nome do aplicativo para o qual serão enviados acionadores. 3. Na página Detalhes dos aplicativos, escolha a seta ao lado do grupo de implantação para o qual serão enviados acionadores. 4. Na área Acionadores, escolha Criar acionador. 5. No painel Create trigger, faça o seguinte: Em Nome de acionador, digite um nome para o acionador que facilite a identificação de sua finalidade. Recomendamos formatos como Trigger-group-us-west-3-deploy-fail ou Triggergroup-eu-central-instance-stop. Em Eventos, escolha um ou mais tipos de eventos que farão com que o tópico do Amazon SNS envie notificações. 256

265 Criar um gatilho para um evento do AWS CodeDeploy Em Tópico do Amazon SNS, escolha o nome do tópico que você criou para enviar notificações para esse acionador. 6. Escolha Criar acionador. O AWS CodeDeploy enviará uma notificação de teste para confirmar que você configurou corretamente o acesso entre o AWS CodeDeploy e o tópico do Amazon SNS. Dependendo do tipo de endpoint selecionado para o tópico, e se você tiver assinado o tópico, receberá uma confirmação em uma mensagem SMS ou de . Criar um gatilho para enviar notificações de eventos do AWS CodeDeploy (CLI) Você pode usar a CLI para incluir gatilhos ao criar um grupo de implantação ou pode adicionar gatilhos a um grupo de implantação existente. Para criar um gatilho para enviar notificações referentes um novo grupo de implantação Crie um arquivo JSON para configurar o grupo de implantação e, em seguida, execute o comando createdeployment-group usando a opção --cli-input-json. A maneira mais simples de criar o arquivo JSON é usar a opção --generate-cli-skeleton para obter uma cópia do formato JSON e, em seguida, fornecer os valores necessários em um editor de texto simples. 1. Execute o seguinte comando e depois copie os resultados em um editor de texto simples. aws deploy create-deployment-group --generate-cli-skeleton 2. Adicione o nome de um aplicativo AWS CodeDeploy existente à saída: { "applicationname": "TestApp-us-east-2", "deploymentgroupname": "", "deploymentconfigname": "", "ec2tagfilters": [ { "Key": "", "Value": "", "Type": "" } ], "onpremisesinstancetagfilters": [ { "Key": "", "Value": "", "Type": "" } ], "autoscalinggroups": [ "" ], "servicerolearn": "", "triggerconfigurations": [ { "triggername": "", "triggertargetarn": "", "triggerevents": [ 257

266 Criar um gatilho para um evento do AWS CodeDeploy } ] } ] "" 3. Forneça valores para os parâmetros que você deseja configurar. Ao usar o comando create-deployment-group, você deve fornecer pelo menos valores para os seguintes parâmetros: applicationname: o nome de um aplicativo já criado na sua conta. deploymentgroupname: um nome para o grupo de implantação que você está criando. servicerolearn: o ARN de uma função de serviço existente configurada para o AWS CodeDeploy na sua conta. Para obter mais informações, consulte Etapa 3: criar uma função de serviço (p. 15). Na seção triggerconfigurations, forneça valores para os seguintes parâmetros: triggername: o nome que você deseja dar ao gatilho, para poder identificá-lo facilmente. Recomendamos formatos como Trigger-group-us-west-3-deploy-fail ou Trigger-group-eucentral-instance-stop. triggertargetarn: o ARN do tópico do Amazon SNS que você criou para associar ao seu gatilho, neste formato: arn:aws:sns:us-east-2:80398example:newtesttopic. triggerevents: o tipo de eventos para os quais você deseja disparar notificações. É possível especificar um ou mais tipos de eventos, separando vários dos seus nomes com vírgulas (por exemplo, "triggerevents":["deploymentsuccess","deploymentfailure","instancefailure"]). Quando mais de um tipo de evento é adicionado, as notificações para todos esses tipos são enviadas ao tópico que você especificou, em vez de a um tópico diferente para cada um. É possível escolher entre os seguintes tipos de eventos: DeploymentStart DeploymentSuccess DeploymentFailure DeploymentStop DeploymentRollback DeploymentReady (aplicável apenas a instâncias de substituição em uma implantação azul/verde) InstanceStart InstanceSuccess InstanceFailure InstanceReady (aplicável apenas a instâncias de substituição em uma implantação azul/verde) O exemplo de configuração a seguir cria um grupo de implantação dep-group-ghi para um aplicativo TestApp-us-east-2 e um disparador que solicitará o envio de notificações sempre que uma implantação for iniciada, tiver êxito ou falhar: { "applicationname": "TestApp-us-east-2", "deploymentconfigname": "CodeDeployDefault.OneAtATime", "deploymentgroupname": "dep-group-ghi-789-2", "ec2tagfilters": [ { "Key": "Name", "Value": "Project-ABC", "Type": "KEY_AND_VALUE" } 258

267 Criar um gatilho para um evento do AWS CodeDeploy ], "servicerolearn": "arn:aws:iam:: :role/anycompany-service-role", "triggerconfigurations": [ { "triggername": "Trigger-group-us-east-2", "triggertargetarn": "arn:aws:sns:us-east-2:80398example:us-eastdeployments", "triggerevents": [ "DeploymentStart", "DeploymentSuccess", "DeploymentFailure" ] } ] } 4. Salve suas atualizações como um arquivo JSON e, em seguida, chame esse arquivo usando a opção --cli-input-json quando executar o comando create-deployment-group command: Important Não se esqueça de incluir file:// antes do nome de arquivo. Ele é obrigatório nesse comando. aws deploy create-deployment-group --cli-input-json file://filename.json No final do processo de criação, você receberá uma mensagem de notificação de teste indicando que tanto as permissões quanto os detalhes do gatilho estão configurados corretamente. Para criar um gatilho para enviar notificações referentes um grupo de implantação existente Para usar a AWS CLI para adicionar gatilhos de eventos do AWS CodeDeploy a um grupo de implantação existente, crie um arquivo JSON para atualizar o grupo de implantação e, em seguida, execute o comando update-deployment-group usando a opção --cli-input-json. A maneira mais simples de criar o arquivo JSON é executar o comando get-deployment-group para obter uma cópia da configuração do grupo de implantação, no formato JSON, e depois atualizar os valores dos parâmetros em um editor de texto simples. 1. Execute o seguinte comando e depois copie os resultados em um editor de texto simples. aws deploy get-deployment-group --application-name application --deployment-groupname deployment-group 2. Exclua o seguinte da saída: No início da saída, exclua { "deploymentgroupinfo":. No final da saída, exclua }. Exclua a linha que contém deploymentgroupid. Exclua a linha que contém deploymentgroupname. O conteúdo do seu arquivo de texto agora deve ser semelhante ao seguinte: { "applicationname": "TestApp-us-east-2", "deploymentconfigname": "CodeDeployDefault.OneAtATime", 259

268 Criar um gatilho para um evento do AWS CodeDeploy } "autoscalinggroups": [], "ec2tagfilters": [ { "Type": "KEY_AND_VALUE", "Value": "Project-ABC", "Key": "Name" } ], "triggerconfigurations": [], "servicerolearn": "arn:aws:iam:: :role/anycompany-service-role", "onpremisesinstancetagfilters": [] 3. Na seção triggerconfigurations, adicione dados para os parâmetros triggerevents, triggertargetarn e triggername. Para obter informações sobre parâmetros de configuração de gatilho, consulte TriggerConfig. O conteúdo do seu arquivo de texto agora deve ser semelhante ao seguinte. Esse código solicitará que as notificações sejam enviadas sempre que uma implantação começar, for bem-sucedida ou falhar. { "applicationname": "TestApp-us-east-2", "deploymentconfigname": "CodeDeployDefault.OneAtATime", "autoscalinggroups": [], "ec2tagfilters": [ { "Type": "KEY_AND_VALUE", "Value": "Project-ABC", "Key": "Name" } ], "triggerconfigurations": [ { "triggerevents": [ "DeploymentStart", "DeploymentSuccess", "DeploymentFailure" ], "triggertargetarn": "arn:aws:sns:us-east-2:80398example:us-eastdeployments", "triggername": "Trigger-group-us-east-2" } ], "servicerolearn": "arn:aws:iam:: :role/anycompany-service-role", "onpremisesinstancetagfilters": [] } 4. Salve suas atualizações como um arquivo JSON e execute o comando update-deployment-group usando a opção --cli-input-json. Certifique-se de incluir a opção --current-deployment-groupname e substitua o nome do seu arquivo JSON para nome do arquivo: Important Não se esqueça de incluir file:// antes do nome de arquivo. Ele é obrigatório nesse comando. aws deploy update-deployment-group --current-deployment-group-name deployment-groupname --cli-input-json file://filename.json No final do processo de criação, você receberá uma mensagem de notificação de teste indicando que tanto as permissões quanto os detalhes do gatilho estão configurados corretamente. 260

269 Editar um gatilho em um grupo de implantação Editar um gatilho em um grupo de implantação do AWS CodeDeploy Se os requisitos de notificação forem alterados, você poderá modificar seu gatilho em vez de criar um novo. Modificar um gatilho do AWS CodeDeploy (console) 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. Na página Aplicativos, escolha o nome do aplicativo associado ao grupo de implantação no qual você modificará um acionador. 3. Na página Detalhes do aplicativo, escolha a seta ao lado do grupo de implantação onde você editará um acionador. 4. Na área Acionadores, localize o nome do gatilho que você deseja modificar e, em seguida, escolha o ícone de lápis no final da linha. 5. Atualize o nome do gatilho, os eventos selecionados ou o tópico do Amazon SNS e escolha Salvar. Modificar um gatilho do AWS CodeDeploy (CLI) Para usar a CLI da AWS para alterar os detalhes do gatilho para eventos do AWS CodeDeploy quando você atualizar um grupo de implantação, crie um arquivo JSON para definir alterações nas propriedades do grupo de implantação e depois execute o comando update-deployment-group com a opção --cli-inputjson. A maneira mais simples de criar o arquivo JSON é executar o comando get-deployment-group para obter os detalhes do grupo de implantação atual no formato JSON e depois editar os valores necessários em um editor de texto simples. 1. Execute o seguinte comando, substituindo os nomes do seu aplicativo e grupo de implantação para application e deployment-group: aws deploy get-deployment-group --application-name application --deployment-groupname deployment-group 2. Copie os resultados do comando em um editor de texto simples e exclua o seguinte: No início da saída, exclua { "deploymentgroupinfo":. No final da saída, exclua }. Exclua a linha que contém deploymentgroupid. Exclua a linha que contém deploymentgroupname. O conteúdo do seu arquivo de texto agora deve ser semelhante ao seguinte: { "applicationname": "TestApp-us-east-2", "deploymentconfigname": "CodeDeployDefault.OneAtATime", "autoscalinggroups": [], 261

270 Excluir um gatilho de um grupo de implantação "ec2tagfilters": [ { "Type": "KEY_AND_VALUE", "Value": "East-1-Instances", "Key": "Name" } ], "triggerconfigurations": [ { "triggerevents": [ "DeploymentStart", "DeploymentSuccess", "DeploymentFailure", "DeploymentStop" ], "triggertargetarn": "arn:aws:sns:us-east-2: :trigger-group-useast-2", "triggername": "Trigger-group-us-east-2" } ], "servicerolearn": "arn:aws:iam:: :role/anycompany-service-role", "onpremisesinstancetagfilters": [] } 3. Altere quaisquer parâmetros, conforme necessário. Para obter informações sobre parâmetros de configuração de gatilho, consulte TriggerConfig. 4. Salve suas atualizações como um arquivo JSON e execute o comando update-deployment-group usando a opção --cli-input-json. Certifique-se de incluir a opção --current-deployment-groupname e substitua o nome do seu arquivo JSON para nome do arquivo: Important Não se esqueça de incluir file:// antes do nome de arquivo. Ele é obrigatório nesse comando. aws deploy update-deployment-group --current-deployment-group-name deployment-groupname --cli-input-json file://filename.json No final do processo de criação, você receberá uma mensagem de notificação de teste indicando que tanto as permissões quanto os detalhes do gatilho estão configurados corretamente. Excluir um gatilho de um grupo de implantação do AWS CodeDeploy Como há um limite de 10 gatilhos por grupo de implantação, talvez você queira excluir disparadores se eles não estiverem em uso. Não é possível desfazer a exclusão de um trigger, mas é possível recriar um. Excluir um disparador de um grupo de implantação (console) 1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at console.aws.amazon.com/codedeploy. Faça login com a mesma conta ou com as informações de usuário do IAM usadas em Conceitos básicos (p. 13). 2. Na página Aplicativos, escolha o aplicativo associado ao grupo de implantação do qual você deseja excluir um acionador. 262

271 Formatos de dados JSON para gatilhos 3. Na página Detalhes do aplicativo, escolha a seta ao lado do grupo de implantação. 4. Na área Acionadores, localize o nome do acionador a ser excluído e escolha no final de sua linha e escolha Excluir. Excluir um disparador de um grupo de implantação (CLI) Para usar a CLI para excluir um gatilho, chame o comando update-deployment-group com parâmetros de configuração de gatilho vazios, especificando: O nome do aplicativo associado ao grupo de implantação. Para ver uma lista de nomes de aplicativos, chame o comando list-applications. O nome do grupo de implantação associado ao aplicativo. Para ver uma lista de nomes de grupos de implantação, chame o comando list-deployment-groups. Por exemplo: aws deploy update-deployment-group --application-name application-name --currentdeployment-group-name deployment-group-name --trigger-configurations Formatos de dados JSON para gatilhos do AWS CodeDeploy Você pode usar a saída JSON que é criada quando um gatilho para uma implantação ou instância é ativado em um fluxo de trabalho de notificação personalizado, como enviar mensagens a filas do Amazon SQS ou invocar uma função no AWS Lambda. Este guia não aborda como configurar notificações usando o JSON. Para obter mais informações sobre como usar o Amazon SNS para enviar mensagens para filas do Amazon SQS, consulte Envio de mensagens Amazon SNS para filas do Amazon SQS. Para obter informações sobre como usar o Amazon SNS para chamar uma função do Lambda, consulte Chamando funções do Lambda usando notificações do Amazon SNS. Os exemplos a seguir mostram a estrutura da saída JSON disponível com gatilhos do AWS CodeDeploy. Exemplo de saída JSON para gatilhos com base em instâncias { "region": "us-east-2", "accountid": " ", "eventtriggername": "trigger-group-us-east-instance-succeeded", "deploymentid": "d-75i7mbt7c", "instanceid": "arn:aws:ec2:us-east-2: :instance/i f7", "lastupdatedat": " ", "instancestatus": "Succeeded", "lifecycleevents": [ { "LifecycleEvent": "ApplicationStop", "LifecycleEventStatus": "Succeeded", "StartTime": " ", "EndTime": " " }, { "LifecycleEvent": "BeforeInstall", 263

272 Formatos de dados JSON para gatilhos "LifecycleEventStatus": "Succeeded", "StartTime": " ", "EndTime": " " } //More lifecycle events might be listed here ] } Exemplo de saída JSON para gatilhos com base em implantação { } "region": "us-west-1", "accountid": " ", "eventtriggername": "Trigger-group-us-west-3-deploy-failed", "applicationname": "ProductionApp-us-west-3", "deploymentid": "d-75i7mbt7c", "deploymentgroupname": "dep-group-def-456", "createtime": " ", "completetime": " ", "deploymentoverview": { "Failed": "10", "InProgress": "0", "Pending": "0", "Skipped": "0", "Succeeded": "0" }, "status": "Failed", "errorinformation": { "ErrorCode": "IAM_ROLE_MISSING", "ErrorMessage": "IAM Role is missing for deployment group: dep-group-def-456" } 264

273 Autenticação Controle de acesso e autenticação do AWS CodeDeploy O acesso ao AWS CodeDeploy requer credenciais. Essas credenciais devem ter permissões para acessar recursos da AWS, como recuperar revisões de aplicativo de buckets do Amazon S3 e ler as tags nas instâncias do Amazon EC2. As seções a seguir apresentam detalhes sobre como você pode usar o AWS Identity and Access Management (IAM) e o AWS CodeDeploy para ajudar a garantir o acesso aos recursos: Autenticação (p. 265) Controle de acesso (p. 266) Autenticação Você pode acessar a AWS como alguns dos seguintes tipos de identidade: Usuário raiz da conta da AWS Ao se conectar à AWS, você fornece um endereço de e uma senha que são associados à sua conta da AWS. Essas são suas credenciais raiz e fornecem acesso total a todos os seus recursos da AWS. Important Por motivos de segurança, recomendamos que você use as credenciais raiz somente para criar um usuário administrador, que é um usuário do IAM com permissões totais na sua conta da AWS. Em seguida, você pode usar esse usuário administrador para criar outros usuários e funções IAM com permissões limitadas. Para mais informações, consulte Melhores práticas do IAM e Criação de um usuário e Grupo Admin em Guia do usuário do IAM. Usuário do IAM: um usuário do IAM é simplesmente uma identidade na qual sua conta da AWS possui permissões personalizadas específicas (por exemplo, permissões para enviar dados de eventos para um destino em AWS CodeDeploy). Você pode usar um nome e uma senha de usuário IAM para fazer login em páginas Web seguras da AWS, como Console de gerenciamento da AWS, Fóruns de discussão AWS ou o AWS Support Center. 265

274 Controle de acesso Além de um nome e uma senha de usuário, você também pode gerar chaves de acesso para cada usuário. Você pode usar essas chaves ao acessar serviços da AWS de forma programática, seja com um dos vários SDKs ou usando a AWS Command Line Interface (AWS CLI). As ferramentas de SDK e de CLI usam as chaves de acesso para o cadastramento criptográfico da sua solicitação. Se você não utilizar ferramentas da AWS, cadastre a solicitação você mesmo. AWS CodeDeploy supports Assinatura versão 4, um protocolo para autenticar solicitações de API de entrada. Para mais informações sobre autenticação de solicitações, consulte Processo de cadastramento de Assinatura versão 4 no AWS General Reference. Função do IAM Uma função do IAM é outra identidade do IAM que você pode criar na sua conta que tenha permissões específicas. É semelhante a um usuário IAM, mas não está associada a uma pessoa específica. Uma função do IAM permite obter chaves de acesso temporárias que podem ser usadas para acessar os serviços e recursos da AWS. As funções IAM com credenciais temporária são úteis nas seguintes situações: Acesso de usuário federado em vez de criar um usuário IAM, você pode usar identidades já existente de usuário de AWS Directory Service, o diretório de usuário da sua companhia ou um provedor de identidades da web. Estes são conhecidos como usuários federados. A AWS atribui uma função a um usuário federado quando o acesso é solicitado por meio de um provedor de identidades. Para obter mais informações sobre usuários federados, consulte Usuários federados e funções em Guia do usuário do IAM. Acesso entre contas Você pode usar uma função do IAM em sua conta para conceder, a outra conta da AWS, permissões de acesso aos recursos da sua conta. Para ver um exemplo, consulte o Tutorial: delegar acesso em contas da AWS usando funções do IAM no Guia do usuário do IAM. Acesso ao serviço da AWS: você pode usar uma função do IAM na sua conta para conceder permissões de serviço da AWS para acessar os recursos da sua conta. Por exemplo, você pode criar uma função essa permita Amazon Redshift acessar um bucket Amazon S3 em seu nome, e depois carregar dados armazenados no bucket em um cluster Amazon Redshift. Para mais informações, consulte Criação de uma função para delegar permissões a um serviço da AWS no Guia do usuário do IAM. Aplicações executadas no Amazon EC2 Em vez de armazenar chaves de acesso na instância EC2 a serem usadas em aplicações em execução na instância e fazer solicitações de API da AWS, você pode usar uma função do IAM para gerenciar credenciais temporárias para essas aplicações. Para atribuir uma função da AWS a uma instância EC2 e disponibilizá-la para todas as suas aplicações, crie um perfil de instância que esteja anexado à instância. Um perfil de instância contém a função e permite que programas em execução na instância EC2 obtenham credenciais temporárias. Para mais informações, consulte Utilização de funções para aplicações no Amazon EC2 no Guia do usuário do IAM. Controle de acesso Você pode ter credenciais válidas para autenticar as solicitações, mas, a menos que tenha permissões, não pode criar nem acessar os recursos do AWS CodeDeploy. Por exemplo, você deve ter permissões para criar, visualizar ou excluir aplicativos, implantações, configurações de implantação e grupos de implantação, bem como para registrar e cancelar registros ou ainda para adicionar ou remover tags a/de instâncias locais, entre outros. 266

275 Visão geral do gerenciamento de acesso As seções a seguir descrevem como gerenciar as permissões do AWS CodeDeploy. Recomendamos que você leia a visão geral primeiro. Visão geral de como gerenciar permissões de acesso aos recursos do AWS CodeDeploy (p. 267) Como usar políticas com base em identidade (políticas do IAM) para o AWS CodeDeploy (p. 272) Referência de permissões do AWS CodeDeploy (p. 276) Visão geral de como gerenciar permissões de acesso aos recursos do AWS CodeDeploy Cada recurso da AWS é de propriedade de uma conta da AWS e as permissões para criar ou acessar um recurso são regidas por políticas de permissões. Um administrador da conta pode anexar políticas de permissões a identidades do IAM (ou seja, usuários, grupos e funções), e alguns serviços (como AWS Lambda) também dão suporte à anexação de políticas de permissões a recursos. Um administrador da conta (ou usuário administrador) é um usuário com privilégios de administrador. Para obter mais informações, consulte as Melhores práticas do IAM no Guia do usuário do IAM. Ao conceder permissões, você decide quem recebe as permissões, os recursos relacionados às permissões concedidas e as ações específicas que deseja permitir nesses recursos. Tópicos Recursos e operações do AWS CodeDeploy (p. 267) Entender a propriedade de recursos (p. 268) Gerenciar o acesso aos recursos (p. 269) Especificação de elementos da política: ações, efeitos e principais (p. 271) Especificação de condições em uma política (p. 271) Recursos e operações do AWS CodeDeploy No AWS CodeDeploy, o principal recurso é um deployment group. Em uma política, você usa um Nome de recurso da Amazon (ARN) para identificar o recurso a que a política se aplica. O AWS CodeDeploy é compatível com outros recursos que podem ser usados com o deployment groups, incluindo aplicativos, configurações de implantação e instâncias. Estes são chamados de sub-recursos. Esses recursos e sub-recursos têm Nomes de recurso da Amazon (ARNs) exclusivos associados a eles. Para obter mais informações sobre ARNs, consulte Nomes de recursos Amazon (ARN) e namespaces de serviços da AWS, no Referência geral do Amazon Web Services. Tipo de recurso Grupo de implantação Aplicativo Configuração de implantação Formato de Nome de região da Amazon (ARN) arn:aws:codedeploy:region:account-id:application/application-name arn:aws:codedeploy:region:account-id:deploymentgroup/deploymentgroup-name arn:aws:codedeploy:region:account-id:deploymentconfig/deploymentconfiguration-name 267

276 Entender a propriedade de recursos Tipo de recurso Instância Todos os recursos do AWS CodeDeploy Todos os recursos do AWS CodeDeploy pertencentes à conta especificada na região especificada Formato de Nome de região da Amazon (ARN) arn:aws:codedeploy:region:account-id:instance/instance-id arn:aws:codedeploy:* arn:aws:codedeploy:region:account-id:* A maioria dos serviços na AWS trata os dois pontos (:) e a barra inclinada (/) como o mesmo caractere em ARNs. No entanto, o AWS CodeDeploy usa uma correspondência exata nos padrões e regras de recursos. Use os caracteres corretos do ARN ao criar padrões de evento, para que eles correspondam à sintaxe de ARN no recurso. Por exemplo, é possível indicar um grupo de implantação específico (mydeploymentgroup) na sua declaração usando o ARN, da seguinte maneira: "Resource": "arn:aws:codedeploy:us-west-2: :deploymentgroup/mydeploymentgroup" Também pode especificar todos os deployment groups que pertencem a uma conta específica usando o caractere curinga (*), da seguinte maneira: "Resource": "arn:aws:codedeploy:us-west-2: :deploymentgroup/*" Para especificar todos os recursos ou se uma ação de API específica não for compatível com ARNs, use o caractere curinga (*) no elemento Resource, da seguinte maneira: "Resource": "*" Algumas ações da API do AWS CodeDeploy aceitam vários recursos (por exemplo, BatchGetDeploymentGroups). Para especificar vários recursos em uma única declaração, separe seus ARNs com vírgulas, como se segue: "Resource": ["arn1", "arn2"] O AWS CodeDeploy fornece um conjunto de operações para trabalho com recursos do AWS CodeDeploy. Para ver uma lista das operações disponíveis, consulte Referência de permissões do AWS CodeDeploy (p. 276). Entender a propriedade de recursos A conta da AWS tem os recursos criados na conta, independentemente do que os criou. Mais especificamente, o proprietário do recurso é a conta da AWS da entidade principal (ou seja, a contaraiz, um usuário do IAM ou uma função do IAM) que autentica a solicitação de criação de recursos. Os exemplos a seguir ilustram como isso funciona: Se você usar as credenciais da conta-raiz da sua conta da AWS para criar uma regra, sua conta da AWS será a proprietária do recurso do AWS CodeDeploy. 268

277 Gerenciar o acesso aos recursos Se você criar um usuário do IAM na sua conta da AWS e conceder a ele permissões para criar recursos do AWS CodeDeploy, o usuário poderá criar recursos do AWS CodeDeploy. No entanto, a sua conta da AWS, à qual o usuário pertence, é a proprietária dos recursos do AWS CodeDeploy. Se você criar uma função da IAM na sua conta da AWS com permissões para criar recursos do AWS CodeDeploy, qualquer pessoa que puder assumir a função poderá criar recursos do AWS CodeDeploy. Sua conta da AWS, à qual a função pertence, é a proprietária dos recursos do AWS CodeDeploy. Gerenciar o acesso aos recursos A política de permissões descreve quem tem acesso a quê. A seção a seguir explica as opções disponíveis para a criação das políticas de permissões. Esta seção aborda como usar o IAM no contexto de AWS CodeDeploy. Não são fornecidas informações detalhadas sobre o serviço IAM. Para obter a documentação completa do IAM, consulte O que é IAM? no Guia do usuário do IAM. Para obter mais informações sobre a sintaxe e as descrições da política do IAM, consulte Referência de política do IAM da AWS no Guia do usuário do IAM. As políticas anexadas a uma identidade do IAM são conhecidas como políticas com base em identidade (políticas do IAM) e as políticas anexadas a um recurso são conhecidas como políticas com base em recurso. O AWS CodeDeploy é compatível somente com políticas com base em identidade (políticas do IAM). Tópicos Políticas com base em identidade (políticas do IAM) (p. 269) Políticas com base em recurso (p. 271) Políticas com base em identidade (políticas do IAM) Você pode anexar políticas a identidades do IAM. Por exemplo, você pode fazer o seguinte: Anexar uma política de permissões a um usuário ou grupo na sua conta: para conceder permissões de usuário para visualizar aplicativos, grupos de implantação e outros recursos do AWS CodeDeploy no console do AWS CodeDeploy, você pode anexar uma política de permissões a um usuário ou a um grupo ao qual esse usuário pertença. Associar uma política de permissões a uma função (conceder permissões entre contas) Você pode associar uma política de permissões baseada em identidade a uma função do IAM para conceder permissões entre contas. Por exemplo, o administrador na Conta A pode criar uma função para conceder permissões entre contas a outra conta da AWS (por exemplo, Conta B) ou um serviço da AWS, como se segue: 1. Um administrador da Conta A cria uma função do IAM e associa uma política de permissões à função que concede permissões em recursos da Conta A. 2. Um administrador da Conta A anexa uma política de confiança à função identificando a Conta B como a principal, que pode assumir a função. 269

278 Gerenciar o acesso aos recursos 3. O administrador da Conta B pode acabar delegando permissões para assumir a função para todos os usuários na Conta B. Isso permite que os usuários na Conta B criem ou acessem recursos na Conta A. A entidade de segurança na política de confiança também deverá ser uma entidade de segurança do serviço da AWS, se você quiser conceder permissões para assumir a função a um serviço da AWS. Para obter mais informações sobre o uso do IAM para delegar permissões, consulte Gerenciamento do acesso no Guia do usuário do IAM. No AWS CodeDeploy, políticas baseadas em identidade são usadas para gerenciar permissões para os vários recursos relacionados ao processo de implantação. É possível controlar o acesso a todos os seguintes tipos de recursos: Aplicativos e revisões de aplicativo Implantações Configurações de implantação Instâncias e instâncias locais As capacidades controladas por políticas baseadas em recursos variam dependendo do tipo de recurso, conforme descrito na tabela a seguir: Tipos de recursos Tudo Aplicativos Configurações de implantação Capacidades Visualizar e listar detalhes sobre recursos Criar recursos Excluir recursos Grupos de implantação Implantações Criar implantações Parar implantações Revisões de aplicativo Aplicativos Registrar revisões de aplicativo Atualizar recursos Grupos de implantação Instâncias locais Adicionar tags a instâncias Remover tags de instâncias Registrar instâncias Cancelar o registro de instâncias Você pode criar políticas do IAM específicas para restringir as chamadas e os recursos a que os usuários em sua conta têm acesso e associar essas políticas aos usuários do IAM. Para obter mais informações sobre como criar funções do IAM e ver exemplos de declarações de política do IAM para o AWS CodeDeploy, consulte Visão geral de como gerenciar permissões de acesso aos recursos do AWS CodeDeploy (p. 267). 270

279 Especificação de elementos da política: ações, efeitos e principais Políticas com base em recurso Outros serviços, como Amazon S3, também dão suporte a políticas de permissões com base em recursos. Por exemplo: você pode anexar uma política a um bucket do S3 para gerenciar permissões de acesso a esse bucket. AWS CodeDeploy não dá suporte a políticas com base em recurso. Especificação de elementos da política: ações, efeitos e principais Para cada recurso do AWS CodeDeploy, o serviço define um conjunto de operações da API. Para conceder permissões a essas operações da API, o AWS CodeDeploy define um conjunto de ações que você pode especificar em uma política. Algumas operações da API podem exigir permissões para mais de uma ação a fim de realizar a operação da API. Para obter mais informações sobre os recursos e operações da API, consulte Recursos e operações do AWS CodeDeploy (p. 267) e Referência de permissões do AWS CodeDeploy (p. 276). Estes são os elementos de política básicos: Recurso Você usa um ARN para identificar o recurso a que a política se aplica. Para obter mais informações, consulte Recursos e operações do AWS CodeDeploy (p. 267). Ação Você usa palavras-chave de ação para identificar as operações de recurso que deseja permitir ou negar. Por exemplo, a permissão codedeploy:getapplication permite que o usuário execute a operação GetApplication. Efeito Você especifica o efeito, permitir ou negar, quando o usuário solicita a ação específica. Se você não conceder (permitir) explicitamente acesso a um recurso, o acesso estará implicitamente negado. Você também pode negar explicitamente o acesso a um recurso, o que pode fazer para ter a certeza de que um usuário não consiga acessá-lo, mesmo que uma política diferente conceda acesso. Principal Em políticas baseadas em identidade (políticas IAM), o usuário ao qual a política está anexada é o principal implícito. Para as políticas baseadas em recursos, você especifica quais usuários, contas, serviços ou outras entidades deseja que recebam permissões (aplica-se somente a políticas baseadas em recursos). Para saber mais sobre a sintaxe da política do IAM e as descrições, consulte Referência de política do IAM da AWS em Guia do usuário do IAM. Para ver uma tabela com todas as ações da API do AWS CodeDeploy e os recursos a que elas se aplicam, consulte Referência de permissões do AWS CodeDeploy (p. 276). Especificação de condições em uma política Ao conceder permissões, você pode usar a linguagem da política de acesso para especificar as condições quando uma política deve entrar em vigor. Por exemplo, convém que uma política só seja aplicada após uma data específica. Para obter mais informações sobre como especificar condições em uma linguagem de política, consulte Condição no Guia do usuário do IAM. Para expressar condições, você usa chaves de condição predefinidas. Não há chaves de condição específicas para o AWS CodeDeploy. No entanto, existem chaves de condição em toda a AWS que você pode usar conforme apropriado. Para obter uma lista completa de chaves em toda a AWS, consulte Chaves disponíveis para condições, no Guia do usuário do IAM. 271

280 Como usar políticas com base em identidade (políticas do IAM) Como usar políticas com base em identidade (políticas do IAM) para o AWS CodeDeploy Este tópico fornece exemplos de políticas com base em identidade que demonstram como um administrador de conta pode anexar políticas de permissões a identidades do IAM (ou seja, usuários, grupos e funções) e, assim, conceder permissões para realizar operações em recursos do AWS CodeDeploy. Para obter informações sobre a política que deve ser anexada a um usuário do IAM para usar o AWS CodeDeploy, consulte Etapa 1: provisionar um usuário do IAM (p. 13). Important É recomendável analisar antes os tópicos introdutórios que explicam os conceitos básicos e as opções disponíveis para gerenciar o acesso aos recursos do AWS CodeDeploy. Para obter mais informações, consulte Visão geral de como gerenciar permissões de acesso aos recursos do AWS CodeDeploy (p. 267). Tópicos Permissões obrigatórias para usar o console AWS CodeDeploy (p. 272) Políticas gerenciadas (predefinidas) da AWS do AWS CodeDeploy (p. 273) Exemplos de política gerenciada pelo cliente (p. 274) Veja a seguir um exemplo de uma política de permissões que permite a um usuário excluir o grupo de implantação denominado WordPress_DepGroup, associado ao aplicativo denominado WordPress_App, na região us-west-2. { "Version": " ", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:deletedeploymentgroup" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:80398example:deploymentgroup:wordpress_app/ WordPress_DepGroup" ] } ] } Permissões obrigatórias para usar o console AWS CodeDeploy Para que um usuário trabalhe com o console do AWS CodeDeploy, ele deve ter um conjunto mínimo de permissões que lhe permita descrever outros recursos da AWS para sua conta da AWS. Para usar o AWS CodeDeploy totalmente no console do AWS CodeDeploy, você deve ter permissões dos seguintes serviços: Auto Scaling AWS CodeDeploy Amazon Elastic Compute Cloud 272

281 Elastic Load Balancing AWS Identity and Access Management Amazon Simple Storage Service Amazon Simple Notification Service Amazon CloudWatch AWS CodeDeploy Guia do usuário Políticas gerenciadas (predefinidas) da AWS do AWS CodeDeploy Se você criar uma política do IAM que seja mais restritiva que as permissões mínimas necessárias, o console não funcionará como pretendido para os usuários com essa política do IAM. Para garantir que esses usuários ainda consigam usar o console AWS CodeDeploy anexe também a política gerenciada AWSCodeDeployReadOnlyAccess ao usuário, conforme descrito em Políticas gerenciadas (predefinidas) da AWS do AWS CodeDeploy (p. 273). Você não precisa conceder permissões mínimas do console para os usuários que estão fazendo ligações somente com a AWS CLI ou a API do AWS CodeDeploy. Políticas gerenciadas (predefinidas) da AWS do AWS CodeDeploy A AWS resolve muitos casos de uso comuns, fornecendo políticas do IAM autônomas criadas e administradas pela AWS. Essas políticas gerenciadas da AWS concedem permissões necessárias para casos de uso comuns, de modo que você possa evitar a necessidade de investigar quais permissões são necessárias. Para obter mais informações, consulte as Políticas gerenciadas da AWS no Guia do usuário do IAM. As seguintes políticas gerenciadas da AWS, as quais você pode associar a usuários na sua conta, são específicas do AWS CodeDeploy: AWSCodeDeployFullAccess concede acesso integral ao AWS CodeDeploy. AWSCodeDeployFullAccess não fornece permissões para operações em outros serviços necessários para implantar seus aplicativos, como o Amazon EC2 e o Amazon S3, mas apenas para operações específicas do AWS CodeDeploy. AWSCodeDeployDeployerAccess concede acesso para um usuário do IAM registrar e implantar revisões. AWSCodeDeployReadOnlyAccess concede acesso somente leitura ao AWS CodeDeploy. AWSCodeDeployRole permite que o AWS CodeDeploy identifique instâncias do Amazon EC2 por suas tags do Amazon EC2 ou nomes de grupos do Auto Scaling, e instâncias locais por suas tags de instância local, e implante revisões de aplicativo nessas instâncias adequadamente. Fornece as permissões necessárias para publicar notificações em tópico do Amazon SNS e recuperar informações sobre alarmes do CloudWatch. As permissões para alguns aspectos do processo de implantação são concedidas a dois outros tipos de função que atuam em nome do AWS CodeDeploy, em vez de para usuários do IAM: Perfil de instância do IAM: uma função do IAM que você anexa a instâncias do Amazon EC2. Este perfil inclui as permissões necessárias para acessar os buckets do Amazon S3 ou os repositórios do GitHub nos quais os aplicativos que serão implantados pelo AWS CodeDeploy estão armazenados. Para obter mais informações, consulte Etapa 4: criar um perfil de instância do IAM (p. 19). 273

282 Exemplos de política gerenciada pelo cliente Função de serviço: uma função do &IAM que concede permissões para um serviço da AWS para que ele possa acessar recursos do AWS. As políticas que você anexa à função de serviço determinam quais recursos da AWS o serviço pode acessar e as ações que ele pode realizar com esses recursos. No AWS CodeDeploy, uma função de serviço é usada para o seguinte: Para ler as tags aplicadas às instâncias ou aos nomes de grupo do Auto Scaling associados a essas instâncias. Isso permite que o AWS CodeDeploy identifique as instâncias nas quais poderá implantar aplicativos. Para executar operações em instâncias, grupos do Auto Scaling e load balancers do Elastic Load Balancing. Para publicar informações em tópicos do Amazon SNS de forma que as notificações possam ser enviadas quando eventos especificados de implantação ou instância ocorrerem. Para recuperar informações sobre alarmes do CloudWatch para configurar o monitoramento de alarmes de implantações. Para obter mais informações, consulte Etapa 3: criar uma função de serviço (p. 15). Você também pode criar as próprias políticas do IAM personalizadas a fim de permitir permissões para ações e recursos do AWS CodeDeploy. Você pode anexar essas políticas personalizadas a usuários ou grupos do IAM que exijam essas permissões. Exemplos de política gerenciada pelo cliente Nesta seção, você pode encontrar políticas de usuário de exemplo que concedam permissões para diversas ações do AWS CodeDeploy. Essas políticas funcionam quando você está usando a API do AWS CodeDeploy, SDKs da AWS ou a AWS CLI. Ao usar o console, você precisa conceder permissões adicionais específicas ao console, o que é debatido em Permissões obrigatórias para usar o console AWS CodeDeploy (p. 272). Você pode usar os seguintes exemplos de políticas do IAM listados para limitar o acesso ao AWS CodeDeploy para seus usuários e funções do IAM. Todos os exemplos usam a região Região Oeste dos EUA (Oregon) (us-west-2) e contêm IDs de conta fictícios. Exemplos Exemplo 1: permitir que um usuário execute operações do AWS CodeDeploy em uma única região (p. 274) Exemplo 2: permitir que um usuário registre revisões para um único aplicativo (p. 275) Exemplo 3: permitir que um usuário crie implantações para um único grupo de implantação (p. 275) Exemplo 1: permitir que um usuário execute operações do AWS CodeDeploy em uma única região O exemplo a seguir concede permissões para realizar operações do AWS CodeDeploy somente na região us-west-2: { "Version": " ", "Statement" : [ { "Effect" : "Allow", "Action" : [ 274

283 Exemplos de política gerenciada pelo cliente } ] } "codedeploy:*" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:80398example:*" ] Exemplo 2: permitir que um usuário registre revisões para um único aplicativo O exemplo a seguir concede permissões para registrar revisões de aplicativo para todos os aplicativos que começam com Test na região us-west-2: { } "Version": " ", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:registerapplicationrevision" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:80398example:application:test*" ] } ] Exemplo 3: permitir que um usuário crie implantações para um único grupo de implantação O exemplo a seguir permite que o usuário especificado crie implantações para o grupo de implantação denominado WordPress_DepGroup, associado ao aplicativo denominado WordPress_App, a configuração de implantação personalizada denominada ThreeQuartersHealthy e qualquer revisão de aplicativos associada ao aplicativo denominado WordPress_App. Todos esses recursos estão associados à região uswest-2. { "Version": " ", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:createdeployment" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:80398example:deploymentgroup:wordpress_app/ WordPress_DepGroup" ] }, { "Effect" : "Allow", "Action" : [ "codedeploy:getdeploymentconfig" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:80398example:deploymentconfig:threequartershealthy" 275

284 Referência de permissões do AWS CodeDeploy } ] ] }, { "Effect" : "Allow", "Action" : [ "codedeploy:getapplicationrevision" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:80398example:application:wordpress_app" ] } Referência de permissões do AWS CodeDeploy Ao configurar o Controle de acesso (p. 266) e escrever políticas de permissões que você pode anexar a uma identidade do IAM (políticas com base em identidade), você pode usar a tabela a seguir como referência. A tabela indica cada operação de API do AWS CodeDeploy, as ações correspondentes às quais você pode conceder permissões de realização, bem como o formato do ARN de recurso a ser usado para conceder as permissões. Você especifica as ações no campo Action da política e especifica um ARN, com ou sem um caractere curinga (*), como o valor do recurso no campo Resource da política. Você pode usar chaves de condição em toda a AWS nas políticas do AWS CodeDeploy para expressar condições. Para obter uma lista completa de chaves em toda a AWS, consulte Chaves disponíveis, no Guia do usuário do IAM. Para especificar uma ação, use o prefixo codedeploy: seguido pelo nome da operação API (por exemplo, codedeploy:getapplication e codedeploy:createapplication. Para especificar várias ações em uma única declaração, separe-as com vírgulas (por exemplo, "Action": ["codedeploy:action1", "codedeploy:action2"]). Usando caracteres curinga Você pode usar um caractere curinga (*) no seu ARN para especificar várias ações ou recursos. Por exemplo, codedeploy:* especifica todas as ações do AWS CodeDeploy, enquanto codedeploy:get* especifica todas as ações AWS CodeDeploy que começam com a palavra Get. O exemplo a seguir concede acesso a todos os grupos de implantação com nomes que começam com West e estão associados a aplicativos com nomes que começam com Test. arn:aws:codedeploy:us-west-2:80398example:deploymentgroup:test*/west* É possível usar curingas com os seguintes recursos listados na tabela: application-name deployment-group-name deployment-configuration-name instance-id Curingas não podem ser usados com region ou account-id. Para obter mais informações sobre curingas, consulte Identificadores do IAM, no Guia do usuário do IAM. As ações que podem ser especificadas em uma política do IAM para uso com o AWS CodeDeploy estão informadas abaixo. Operações de API do AWS CodeDeploy e permissões necessárias para ações 276

285 Referência de permissões do AWS CodeDeploy AddTagsToOnPremisesInstances Ação/Ações: codedeploy:addtagstoonpremisesinstances Necessário para adicionar tags a uma ou mais instâncias locais. Recurso: arn:aws:codedeploy:region:account-id:instance/instance-id BatchGetApplicationRevisions Ação/Ações: codedeploy:batchgetapplicationrevisions Necessário para obter informações sobre várias revisões de aplicativo associadas ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:application:application-name BatchGetApplications Ação/Ações: codedeploy:batchgetapplications Necessário para obter informações sobre vários aplicativos associados ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:application:* BatchGetDeploymentGroups Ação/Ações: codedeploy:batchgetdeploymentgroups Necessário para obter informações sobre vários grupos de implantação associados ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:applicationname/deployment-group-name BatchGetDeploymentInstances Ação/Ações: codedeploy:batchgetdeploymentinstances Necessário para obter informações sobre uma ou mais instâncias que fazem parte de um grupo de implantação. Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:applicationname/deployment-group-name BatchGetDeployments Ação/Ações: codedeploy:batchgetdeployments Necessário para obter informações sobre várias implantações associadas ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:applicationname/deployment-group-name BatchGetOnPremisesInstances Ação/Ações: codedeploy:batchgetonpremisesinstances Necessário para obter informações sobre uma ou mais instâncias locais. Recurso: arn:aws:codedeploy:region:account-id:* ContinueDeployment Ação/Ações: codedeploy:continuedeployment Necessário durante uma implantação azul/verde para iniciar o registro de instâncias em um ambiente de substituição com balanceadores de carga do Elastic Load Balancing. 277

286 Referência de permissões do AWS CodeDeploy Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:applicationname/deployment-group-name CreateApplication Ação/Ações: codedeploy:createapplication Necessário para criar um aplicativo associado ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:application:application-name CreateDeployment ¹ Ação/Ações: codedeploy:createdeployment Necessário para criar uma implantação para um aplicativo associado ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:applicationname/deployment-group-name CreateDeploymentConfig Ação/Ações: codedeploy:createdeploymentconfig Necessário para criar uma configuração de implantação personalizada associada ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:deploymentconfig/deployment-configurationname CreateDeploymentGroup Ação/Ações: codedeploy:createdeploymentgroup Necessário para criar um grupo de implantação para um aplicativo associado ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:applicationname/deployment-group-name DeleteApplication Ação/Ações: codedeploy:deleteapplication Necessário para excluir um aplicativo associado ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:application:application-name DeleteDeploymentConfig Ação/Ações: codedeploy:deletedeploymentconfig Necessário para excluir uma configuração de implantação personalizada associada ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:deploymentconfig/deployment-configurationname DeleteDeploymentGroup Ação/Ações: codedeploy:deletedeploymentgroup Necessário para excluir um grupo de implantação para um aplicativo associado ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:applicationname/deployment-group-name DeregisterOnPremisesInstance Ação/Ações: codedeploy:deregisteronpremisesinstance 278

287 Referência de permissões do AWS CodeDeploy Necessário para cancelar o registro de uma instância local. Recurso: arn:aws:codedeploy:region:account-id:instance/instance-id GetApplication Ação/Ações: codedeploy:getapplication Necessário para obter informações sobre um único aplicativo associado ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:application:application-name GetApplicationRevision Ação/Ações: codedeploy:getapplicationrevision Necessário para obter informações sobre uma única revisão de aplicativo para um aplicativo associado ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:application:application-name GetDeployment Ação/Ações: codedeploy:getdeployment Necessário para obter informações sobre uma única implantação em um grupo de implantação para um aplicativo associado ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:applicationname/deployment-group-name GetDeploymentConfig Ação/Ações: codedeploy:getdeploymentconfig Necessário para obter informações sobre uma única configuração de implantação associada ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:deploymentconfig/deployment-configurationname GetDeploymentGroup Ação/Ações: codedeploy:getdeploymentgroup Necessário para obter informações sobre um único grupo de implantação para um aplicativo associado ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:applicationname/deployment-group-name GetDeploymentInstance Ação/Ações: codedeploy:getdeploymentinstance Necessário para obter informações sobre uma única instância em uma implantação associada ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:applicationname/deployment-group-name GetOnPremisesInstance Ação/Ações: codedeploy:getonpremisesinstance Necessário para obter informações sobre uma única instância local. 279

288 Referência de permissões do AWS CodeDeploy Recurso: arn:aws:codedeploy:region:account-id:instance/instance-id ListApplicationRevisions Ação/Ações: codedeploy:listapplicationrevisions Necessário para obter informações sobre todas as revisões de aplicativo para um aplicativo associado ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:application:* ListApplications Ação/Ações: codedeploy:listapplications Necessário para obter informações sobre todos os aplicativos associados ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:application:* ListDeploymentConfigs Ação/Ações: codedeploy:listdeploymentconfigs Necessário para obter informações sobre todas as configurações de implantação associadas ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:deploymentconfig/* ListDeploymentGroups Ação/Ações: codedeploy:listdeploymentgroups Necessário para obter informações sobre todos os grupos de implantação de um aplicativo associado ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/* ListDeploymentInstances Ação/Ações: codedeploy:listdeploymentinstances Obrigatório para obter informações sobre todas as instâncias em uma implantação associada ao usuário do IAM ou à conta da AWS. Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:applicationname/deployment-group-name ListDeployments Ação/Ações: codedeploy:listdeployments Necessário para obter informações sobre todas as implantações em um grupo de implantação associado ao usuário do IAM, ou para obter todas as implantações associadas ao usuário do IAM ou à conta da AWS. Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:applicationname/deployment-group-name ListGitHubAccountTokenNames Ação/Ações: codedeploy:listgithubaccounttokennames Necessário para obter uma lista dos nomes de conexões armazenadas em contas do GitHub. Recurso: arn:aws:codedeploy:region:account-id:* 280

289 Referência de permissões do AWS CodeDeploy ListOnPremisesInstances Ação/Ações: codedeploy:listonpremisesinstances Necessário para obter uma lista de um ou mais nomes de instâncias locais. Recurso: arn:aws:codedeploy:region:account-id:* RegisterApplicationRevision Ação/Ações: codedeploy:registerapplicationrevision Necessário para registrar informações sobre uma revisão de aplicativo para um aplicativo associado ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:application:application-name RegisterOnPremisesInstance Ação/Ações: codedeploy:registeronpremisesinstance Necessário para registrar uma instância local no AWS CodeDeploy. Recurso: arn:aws:codedeploy:region:account-id:instance/instance-id RemoveTagsFromOnPremisesInstances Ação/Ações: codedeploy:removetagsfromonpremisesinstances Necessário para remover tags de uma ou mais instâncias locais. Recurso: arn:aws:codedeploy:region:account-id:instance/instance-id SkipWaitTimeForInstanceTermination Ação/Ações: codedeploy:skipwaittimeforinstancetermination Necessário para substituir um tempo de espera especificado e iniciar o encerramento de instâncias no ambiente original logo após a conclusão bem-sucedida do direcionamento do tráfego em uma implantação azul/verde. Recurso: arn:aws:codedeploy:region:account-id:instance/instance-id StopDeployment Ação/Ações: codedeploy:stopdeployment Necessário para interromper uma implantação em andamento em um grupo de implantação para um aplicativo associado ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:applicationname/deployment-group-name UpdateApplication ³ Ação/Ações: codedeploy:updateapplication Necessário para alterar informações sobre um aplicativo associado ao usuário do IAM. Recurso: arn:aws:codedeploy:region:account-id:application:application-name UpdateDeploymentGroup ³ Ação/Ações: codedeploy:updatedeploymentgroup Necessário para alterar informações sobre um único grupo de implantação para um aplicativo associado ao usuário do IAM. 281

290 Referência de permissões do AWS CodeDeploy Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:applicationname/deployment-group-name ¹ Quando você especifica permissões CreateDeployment, também deve especificar permissões GetDeploymentConfig para as configurações de configuração de implantação e permissões GetApplicationRevision ou RegisterApplicationRevision para a revisão de aplicativo. ² Válido para ListDeployments ao fornecer um grupo de implantação específico, mas não ao listar todas as implantações associadas ao usuário do IAM) ³ Para UpdateApplication, você deve ter permissões UpdateApplication tanto para nome do aplicativo antigo quanto para o seu novo nome. Para ações UpdateDeploymentGroup que envolvem a alteração do nome de um grupo de implantação, você deve ter permissões UpdateDeploymentGroup tanto para o nome do grupo de implantação antigo quanto para o seu novo nome. 282

291 Referência ao AppSpec File do AWS CodeDeploy Esta seção é apenas uma referência. Para uma visão geral conceitual do arquivo AppSpec, consulte Arquivos de especificação de aplicativo do AWS CodeDeploy (p. 11). O arquivo de especificação do aplicativo (arquivo AppSpec) é um arquivo formatado em YAML usado pelo AWS CodeDeploy para determinar: o que ele deve instalar nas suas instâncias a partir de sua revisão de aplicativo no Amazon S3 ou GitHub. quais ganchos de evento de ciclo de vida devem ser executados em resposta a eventos de ciclo de vida de implantação. Um arquivo AppSpec deve ser chamado de appspec.yml e deve ser colocado na raiz da estrutura de diretórios do código-fonte de um aplicativo. Caso contrário, as implantações falharão. Depois de ter um arquivo AppSpec concluído, agrupe-o, junto com o conteúdo a ser implantado, em um único arquivamento (zip, tar ou tar compactado). Para obter mais informações, consulte Trabalhando com revisões de aplicativos para o AWS CodeDeploy (p. 215). Não há suporte para os formatos de arquivo tar e tar compactado (.tar and.tar.gz) nas instâncias do Windows Server. Depois de ter um arquivamento agrupado (conhecido no AWS CodeDeploy como uma revisão), você o carregará em um bucket do Amazon S3 ou no seu repositório Git. Em seguida, usará o AWS CodeDeploy para implantar a revisão. Para obter instruções, consulte Criar uma implantação com o AWS CodeDeploy (p. 226). Tópicos Estrutura de AppSpec File (p. 284) Exemplo de AppSpec File (p. 298) 283

292 Estrutura de AppSpec File Espaçamento de AppSpec File (p. 299) Validar seu AppSpec File e local do arquivo (p. 300) Estrutura de AppSpec File O arquivo AppSpec Tem a seguinte estrutura de alto nível: version: 0.0 os: operating-system-name files: source-destination-files-mappings permissions: permissions-specifications hooks: deployment-lifecycle-event-mappings Nessa estrutura: versão os Essa seção especifica a versão do arquivo AppSpec. Não mude esse valor. Ele é necessário. Atualmente, o único valor permitido é 0.0. Ele está reservado pelo AWS CodeDeploy para uso futuro. files Esta seção especifica o valor do sistema operacional da instância na qual você implantará. Ele é necessário. Os seguintes valores podem ser especificados: linux A instância é uma instância do Amazon Linux, Ubuntu Server ou RHEL. windows A instância é uma instância do Windows Server. Esta seção especifica o nome dos arquivos que devem ser copiados para a instância durante o evento Install da implantação. Para obter mais informações, consulte Seção 'files' de AppSpec (p. 285). permissions hooks Esta seção especifica como permissões especiais, se houver, devem ser aplicadas aos arquivos na seção files à medida que estes são copiados para a instância. Esta seção se aplica apenas a instâncias do Amazon Linux, Ubuntu Server e Red Hat Enterprise Linux (RHEL). Para obter mais informações, consulte, Seção 'permissions' de AppSpec (p. 288). Esta seção especifica scripts a serem executados em eventos específicos de ciclo de vida de implantação durante a implantação. Para obter mais informações, consulte Seção 'hooks' de AppSpec (p. 291). Tópicos Seção 'files' de AppSpec (p. 285) Seção 'permissions' de AppSpec (p. 288) Seção 'hooks' de AppSpec (p. 291) 284

293 Seção 'files' de AppSpec Seção 'files' de AppSpec Fornece informações ao AWS CodeDeploy sobre quais arquivos da sua revisão de aplicativo devem ser instalados na instância durante o evento Install da implantação. Essa seção somente será necessária se você estiver copiando arquivos da sua revisão para localizações na instância durante a implantação. Esta seção tem a seguinte estrutura: files: - source: source-file-location destination: destination-file-location Vários pares de origem e de destino podem ser definidos. A instrução de origem identifica um arquivo ou diretório da sua revisão para copiar na instância: Se a origem se referir a um arquivo, somente o arquivo especificado será copiado na instância. Se a origem se referir a um diretório, todos os arquivos no diretório serão copiados para a instância. Se a origem for uma única barra ("/" para as instâncias do Amazon Linux, RHEL e Ubuntu Server ou "\\" para instâncias do Windows Server), todos os arquivos da sua revisão serão copiados para a instância. Os caminhos usados na origem são caminhos relativos, a partir da raiz da sua revisão. A instrução de destino identifica a localização na instância em que os arquivos devem ser copiados. Este deve ser um caminho totalmente qualificado. Veja a seguir um exemplo da seção files para uma instância do Amazon Linux, Ubuntu Server ou RHEL. files: - source: Config/config.txt destination: /webapps/config - source: source destination: /webapps/myapp Neste exemplo, as duas operações a seguir serão realizadas durante o evento Install: 1. Copie o arquivo Config/config.txt em sua revisão no caminho /webapps/config/config.txt na instância. 2. Copie recursivamente todos os arquivos no diretório source da revisão para o diretório /webapps/myapp na instância. Exemplos da seção 'files' Os exemplos a seguir mostram como especificar a seção files. Embora esses exemplos descrevam estruturas de arquivos e diretórios (pasta) do Windows Server, eles podem ser facilmente adaptados para instâncias do Amazon Linux, Ubuntu Server e RHEL. Para os exemplos a seguir, supomos que esses arquivos apareçam no pacote na raiz de source: appspec.yml my-file.txt my-file-2.txt my-file-3.txt 285

294 Seção 'files' de AppSpec # 1) Copy only my-file.txt to the destination folder c:\temp. # files: - source:.\my-file.txt destination: c:\temp # # Result: # c:\temp\my-file.txt # # # # 2) Copy only my-file-2.txt and my-file-3.txt to the destination folder c:\temp. # files: - source: my-file-2.txt destination: c:\temp - source: my-file-3.txt destination: c:\temp # # Result: # c:\temp\my-file-2.txt # c:\temp\my-file-3.txt # # # # 3) Copy my-file.txt, my-file-2.txt, and my-file-3.txt (along with the appspec.yml file) to the destination folder c:\temp. # files: - source: \ destination: c:\temp # # Result: # c:\temp\appspec.yml # c:\temp\my-file.txt # c:\temp\my-file-2.txt # c:\temp\my-file-3.txt Para os seguintes exemplos, supomos que appspec.yml apareça no pacote na raiz de source, juntamente com uma pasta chamada my-folder que contém três arquivos: appspec.yml my-folder\my-file.txt my-folder\my-file-2.txt my-folder\my-file-3.txt # 4) Copy the 3 files in my-folder (but do not copy my-folder itself) to the destination folder c:\temp. # files: - source:.\my-folder destination: c:\temp # # Result: # c:\temp\my-file.txt # c:\temp\my-file-2.txt # c:\temp\my-file-3.txt # # # # 5) Copy my-folder and its 3 files to my-folder within the destination folder c:\temp. 286

295 Seção 'files' de AppSpec # files: - source:.\my-folder destination: c:\temp\my-folder # # Result: # c:\temp\my-folder\my-file.txt # c:\temp\my-folder\my-file-2.txt # c:\temp\my-folder\my-file-3.txt # # # # 6) Copy the 3 files in my-folder to other-folder within the destination folder c:\temp. # files: - source:.\my-folder destination: c:\temp\other-folder # # Result: # c:\temp\other-folder\my-file.txt # c:\temp\other-folder\my-file-2.txt # c:\temp\other-folder\my-file-3.txt # # # # 7) Copy only my-file-2.txt and my-file-3.txt to my-folder within the destination folder c:\temp. # files: - source:.\my-folder\my-file-2.txt destination: c:\temp\my-folder - source:.\my-folder\my-file-3.txt destination: c:\temp\my-folder # # Result: # c:\temp\my-folder\my-file-2.txt # c:\temp\my-folder\my-file-3.txt # # # # 8) Copy only my-file-2.txt and my-file-3.txt to other-folder within the destination folder c:\temp. # files: - source:.\my-folder\my-file-2.txt destination: c:\temp\other-folder - source:.\my-folder\my-file-3.txt destination: c:\temp\other-folder # # Result: # c:\temp\other-folder\my-file-2.txt # c:\temp\other-folder\my-file-3.txt # # # # 9) Copy my-folder and its 3 files (along with the appspec.yml file) to the destination folder c:\temp. # files: - source: \ destination: c:\temp # # Result: # c:\temp\appspec.yml # c:\temp\my-folder\my-file.txt # c:\temp\my-folder\my-file-2.txt 287

296 Seção 'permissions' de AppSpec # c:\temp\my-folder\my-file-3.txt Seção 'permissions' de AppSpec A seção permissions especifica como permissões especiais, se houver, devem ser aplicadas aos arquivos e diretórios/pastas na seção files depois de serem copiados para a instância. Podem ser especificadas várias instruções de objeto. Esta seção é opcional. Ela é aplicável somente a instâncias do Amazon Linux, Ubuntu Server e RHEL. Esta seção tem a seguinte estrutura: permissions: - object: object-specification pattern: pattern-specification except: exception-specification owner: owner-account-name group: group-name mode: mode-specification acls: - acls-specification context: user: user-specification type: type-specification range: range-specification type: - object-type As instruções são as seguintes: object Necessário. Este é um conjunto de objetos do sistema de arquivos (arquivos ou diretórios/ pastas) ao qual as permissões especificadas serão aplicadas depois que esses objetos forem copiados para a instância. pattern Opcional. Especifica um padrão para aplicar permissões. Se forem especificadas com os caracteres especiais "**", ou se não forem especificadas, as permissões especificadas serão aplicadas a todos os arquivos ou diretórios correspondentes, dependendo do tipo. except Opcional. Especifica quaisquer exceções ao padrão. owner Opcional. O nome do proprietário do objeto. Se não for especificado, todos os proprietários existentes aplicados à estrutura original de arquivos ou diretórios/pastas permanecerão inalterados após a operação de cópia. group Opcional. O nome do grupo para o objeto. Se não for especificado, todos os grupos existentes aplicados à estrutura original de arquivos ou diretórios/pastas permanecerão inalterados após a operação de cópia. mode Opcional. Um número inteiro que especifica o modo octal para as permissões a serem aplicadas ao objeto. Por exemplo, 644 representa permissões de leitura e gravação para o proprietário, permissões somente leitura para o grupo e permissões somente leitura para todos os outros usuários, enquanto 4755 representa o atributo setuid que está sendo definido, permissões de controle total para o proprietário, permissões de leitura e execução para o grupo e permissões de leitura e execução para todos os outros usuários. (Para obter exemplos adicionais, consulte a documentação do comando chmod do Linux.) Se o modo não for especificado, todos os modos existentes aplicados à estrutura original de arquivos ou diretórios/pastas permanecerão inalterados após a operação de cópia. acls Opcional. Uma lista de strings de caracteres que representam uma ou mais entradas da ACL (Lista de controle de acesso) aplicadas ao objeto. Por exemplo, u:bob:rw representa permissões de leitura e gravação para o usuário bob. (Para obter exemplos adicionais, consulte exemplos de formatos de entradas de ACL na documentação do comando setfacl do Linux). Várias entradas de ACL podem ser especificadas. Se acls não for especificado, todas as ACLs existentes aplicadas à estrutura original de 288

297 Seção 'permissions' de AppSpec arquivos ou diretórios/pastas permanecerão inalteradas após a operação de cópia. Elas substituirão as ACLs existentes. A configuração de usuários sem nome, grupos sem nome ou outras entradas de ACL semelhantes fará com que o arquivo AppSpec falhe. Use mode para especificar esses tipos de permissões em vez disso. context Opcional. Para instâncias habilitadas com o SELinux (Security-Enhanced Linux), uma lista de rótulos de contexto relevantes para a segurança a ser aplicada aos objetos copiados. Os rótulos são especificados como chaves contendo usuário, tipo e intervalo. (Para obter mais informações, consulte a documentação do SELinux). Se não for especificado, qualquer rótulo existente aplicado à estrutura original de arquivos ou diretórios/pastas permanecerá inalterado após a operação de cópia. user Opcional. O usuário do SELinux. type Opcional. O nome do tipo SELinux. range Opcional. O especificador do intervalo SELinux. Isso apenas terá efeito se os recursos MLS (Multi-Level Security) e MCS (Multi-Category Security) estiverem habilitados na máquina. Se o MLS/ MCS não estiver habilitado, o intervalo assumirá s0 como padrão. type Opcional. Os tipos de objetos aos quais aplicar as permissões especificadas. Isso pode ser definido como file ou directory. Se file for especificado, as permissões serão aplicadas somente aos arquivos que estiverem imediatamente contidos dentro de object após a operação de cópia (e não a object propriamente dito). Se directory for especificado, as permissões serão aplicadas de forma recursiva a todos os diretórios/pastas que estiverem em qualquer lugar em object após a operação de cópia (mas não a object propriamente dito). Exemplo da seção 'permissions' O exemplo a seguir mostra como especificar a seção permissions com as instruções object, pattern, except, owner, mode e type. Esse exemplo é aplicável somente a instâncias do Amazon Linux, Ubuntu Server e RHEL. Neste exemplo, suponha que os seguintes arquivos e pastas sejam copiados para a instância nesta hierarquia: /tmp `-- my-app -- my-file-1.txt -- my-file-2.txt -- my-file-3.txt -- my-folder-1 -- my-file-4.txt -- my-file-5.txt `-- my-file-6.txt `-- my-folder-2 -- my-file-7.txt -- my-file-8.txt -- my-file-9.txt `-- my-folder-3 O seguinte arquivo AppSpec mostra como definir permissões nesses arquivos e pastas depois que eles são copiados: version: 0.0 os: linux # Copy over all of the folders and files with the permissions they # were originally assigned. files: - source:./my-file-1.txt destination: /tmp/my-app 289

298 Seção 'permissions' de AppSpec - source:./my-file-2.txt destination: /tmp/my-app - source:./my-file-3.txt destination: /tmp/my-app - source:./my-folder-1 destination: /tmp/my-app/my-folder-1 - source:./my-folder-2 destination: /tmp/my-app/my-folder-2 # 1) For all of the files in the /tmp/my-app folder ending in -3.txt # (for example, just my-file-3.txt), owner = adm, group = wheel, and # mode = 464 (-r--rw-r--). permissions: - object: /tmp/my-app pattern: "*-3.txt" owner: adm group: wheel mode: 464 type: - file # 2) For all of the files ending in.txt in the /tmp/my-app # folder, but not for the file my-file-3.txt (for example, # just my-file-1.txt and my-file-2.txt), # owner = ec2-user and mode = 444 (-r--r--r--). - object: /tmp/my-app pattern: "*.txt" except: [my-file-3.txt] owner: ec2-user mode: 444 type: - file # 3) For all the files in the /tmp/my-app/my-folder-1 folder except # for my-file-4.txt and my-file-5.txt, (for example, # just my-file-6.txt), owner = operator and mode = 646 (-rw-r--rw-). - object: /tmp/my-app/my-folder-1 pattern: "**" except: [my-file-4.txt, my-file-5.txt] owner: operator mode: 646 type: - file # 4) For all of the files that are immediately under # the /tmp/my-app/my-folder-2 folder except for my-file-8.txt, # (for example, just my-file-7.txt and # my-file-9.txt), owner = ec2-user and mode = 777 (-rwxrwxrwx). - object: /tmp/my-app/my-folder-2 pattern: "**" except: [my-file-8.txt] owner: ec2-user mode: 777 type: - file # 5) For all folders at any level under /tmp/my-app that contain # the name my-folder but not # /tmp/my-app/my-folder-2/my-folder-3 (for example, just # /tmp/my-app/my-folder-1 and /tmp/my-app/my-folder-2), # owner = ec2-user and mode = 555 (dr-xr-xr-x). - object: /tmp/my-app pattern: "*my-folder*" except: [tmp/my-app/my-folder-2/my-folder-3] owner: ec2-user mode: 555 type: - directory # 6) For the folder /tmp/my-app/my-folder-2/my-folder-3, # group = wheel and mode = 564 (dr-xrw-r--). - object: /tmp/my-app/my-folder-2 290

299 Seção 'hooks' de AppSpec group: wheel mode: 564 type: - directory As permissões resultantes são as seguintes: -r--r--r-- ec2-user root my-file-1.txt -r--r--r-- ec2-user root my-file-2.txt -r--rw-r-- adm wheel my-file-3.txt dr-xr-xr-x ec2-user root my-folder-1 -rw-r--r-- root root my-file-4.txt -rw-r--r-- root root my-file-5.txt -rw-r--rw- operator root my-file-6.txt dr-xr-xr-x ec2-user root my-folder-2 -rwxrwxrwx ec2-user root my-file-7.txt -rw-r--r-- root root my-file-8.txt -rwxrwxrwx ec2-user root my-file-9.txt dr-xrw-r-- root wheel my-folder-3 O exemplo a seguir mostra como especificar a seção permissions com a adição das instruções acls e context. Esse exemplo é aplicável somente a instâncias do Amazon Linux, Ubuntu Server e RHEL. permissions: - object: /var/www/html/wordpress pattern: "**" except: [/var/www/html/wordpress/readme.txt] owner: bob group: writers mode: 644 acls: - u:mary:rw - u:sam:rw - m::rw context: user: unconfined_u type: httpd_sys_content_t range: s0 type: - file Seção 'hooks' de AppSpec A seção hooks de arquivo AppSpec contém mapeamentos que vinculam ganchos de evento de ciclo de vida de implantação a um ou mais scripts. Se um gancho de evento não estiver presente, nenhuma operação será executada para esse evento. Essa seção será necessária somente se você estiver executando scripts como parte da implantação. Tópicos Lista de ganchos de eventos de ciclo de vida (p. 292) Disponibilidade de ganchos de eventos de ciclo de vida (p. 293) Ordem de execução de ganchos em uma implantação (p. 294) Estrutura da seção 'hooks' (p. 296) Disponibilidade variáveis de ambientes para ganchos (p. 297) Exemplo de ganchos (p. 298) 291

300 Seção 'hooks' de AppSpec Lista de ganchos de eventos de ciclo de vida Veja a seguir as descrições dos ganchos que estão disponíveis para uso no seu arquivo AppSpec. Para obter informações sobre quais ganchos de eventos de ciclo de vida são válidos para quais tipos de implantação e reversão, consulte Disponibilidade de ganchos de eventos de ciclo de vida (p. 293). 1. ApplicationStop Esse evento de ciclo de vida de implantação ocorre mesmo antes do download da revisão de aplicativo. Você pode especificar scripts para esse evento de forma a interromper normalmente o aplicativo ou remover pacotes atualmente instalados na preparação de uma implantação. O arquivo AppSpec e os scripts usados para esse evento de ciclo de vida de implantação são da revisão de aplicativo anterior implementada com êxito. Um arquivo AppSpec não existe em uma instância antes de implantar nela. Por esse motivo, o gancho ApplicationStop não será executado da primeira vez em que você implantar na instância. É possível usar o gancho ApplicationStop da segunda vez em que você implantar em uma instância. Para determinar a localização da revisão de aplicativo mais recente implantada com êxito, o agente do AWS CodeDeploy procura pela localização listada no arquivo deployment-groupid_last_successful_install. Esse arquivo está localizado em: Pasta /opt/codedeploy-agent/deployment-root/deployment-instructions nas instâncias do Amazon Linux, Ubuntu Server e RHEL Amazon EC2. Pasta C:\ProgramData\Amazon\CodeDeploy\deployment-instructions nas instâncias do Windows Server Amazon EC2. Para solucionar um problema de falha de implantação durante o evento de ciclo de vida de implantação ApplicationStop, consulte Solucionando problemas com eventos de ciclo de vida de implantação ApplicationStop, BeforeBlockTraffic e AfterBlockTraffic (p. 323). 2. DownloadBundle durante esse evento de ciclo de vida de implantação, o agente do AWS CodeDeploy copia os arquivos de revisão de aplicativo para uma localização temporária: Pasta /opt/codedeploy-agent/deployment-root/deployment-group-id/deployment-id/deploymentarchive nas instâncias do Amazon Linux, Ubuntu Server e RHEL Amazon EC2. Pasta C:\ProgramData\Amazon\CodeDeploy\deployment-group-id\deployment-id\deploymentarchive nas instâncias do Windows Server Amazon EC2. Esse evento é reservado para o agente do AWS CodeDeploy e não pode ser usado para executar scripts. Para solucionar um problema de falha de implantação durante o evento de ciclo de vida de implantação DownloadBundle, consulte Solucionando problemas com um evento de ciclo de vida de implantação DownloadBundle com falha que indica "UnknownError: not opened for reading" (p. 324). 3. BeforeInstall Você pode usar esse evento de ciclo de vida de implantação para tarefas de préinstalação, como decodificar arquivos e criar um backup da versão atual. 4. Install Durante esse evento de ciclo de vida de implantação, o agente do AWS CodeDeploy copia os arquivos de revisão da localização temporária para a pasta de destino final. Esse evento é reservado para o agente do AWS CodeDeploy e não pode ser usado para executar scripts. 5. AfterInstall Você pode usar esse evento de ciclo de vida de implantação para tarefas como configurar seu aplicativo ou alterar as permissões dos arquivos. 6. ApplicationStart Em geral, esse evento de ciclo de vida de implantação é usado para reiniciar os serviços que foram interrompidos durante ApplicationStop. 292

301 Seção 'hooks' de AppSpec 7. ValidateService Este é o último evento de ciclo de vida de implantação. Ele é usado para verificar se a implantação foi concluída com sucesso. 8. BeforeBlockTraffic É possível usar esse evento de ciclo de vida de implantação para executar tarefas em instâncias antes que estas tenham seu registro cancelado de um balanceador de carga. Para solucionar um problema de falha de implantação durante o evento de ciclo de vida de implantação BeforeBlockTraffic, consulte Solucionando problemas com eventos de ciclo de vida de implantação ApplicationStop, BeforeBlockTraffic e AfterBlockTraffic (p. 323). 9. BlockTraffic Durante esse evento de ciclo de vida de implantação, o tráfego da Internet é impedido de acessar as instâncias que atualmente estão servindo o tráfego. Esse evento é reservado para o agente do AWS CodeDeploy e não pode ser usado para executar scripts. 10.AfterBlockTraffic É possível usar esse evento de ciclo de vida de implantação para executar tarefas em instâncias depois que estas tenham seu registro cancelado de um balanceador de carga. Para solucionar um problema de falha de implantação durante o evento de ciclo de vida de implantação AfterBlockTraffic, consulte Solucionando problemas com eventos de ciclo de vida de implantação ApplicationStop, BeforeBlockTraffic e AfterBlockTraffic (p. 323). 11.BeforeAllowTraffic É possível usar esse evento de ciclo de vida de implantação para executar tarefas em instâncias antes que estas sejam registradas em um balanceador de carga. 12.AllowTraffic Durante esse evento de ciclo de vida de implantação, o tráfego da Internet pode acessar instâncias após uma implantação. Esse evento é reservado para o agente do AWS CodeDeploy e não pode ser usado para executar scripts. 13.AfterAllowTraffic É possível usar esse evento de ciclo de vida de implantação para executar tarefas em instâncias depois que estas sejam registradas em um balanceador de carga. Disponibilidade de ganchos de eventos de ciclo de vida A tabela a seguir lista os ganchos de eventos de ciclo de vida disponíveis para cada cenário de implantação e reversão. Nome do evento de ciclo de vida Implantação no local¹ Implementação azul/verde: instâncias originais Implementação azul/verde: instâncias de substituição Reversão de implementação azul/verde: instâncias originais Reversão de implantação azul/verde: instâncias de substituição ApplicationStop DownloadBundle² BeforeInstall Install² AfterInstall ApplicationStart ValidateService BeforeBlockTraffic BlockTraffic² AfterBlockTraffic 293

302 Seção 'hooks' de AppSpec Nome do evento de ciclo de vida Implantação no local¹ Implementação azul/verde: instâncias originais Implementação azul/verde: instâncias de substituição Reversão de implementação azul/verde: instâncias originais Reversão de implantação azul/verde: instâncias de substituição BeforeAllowTraffic AllowTraffic² AfterAllowTraffic ¹Também se aplica à reversão de uma implantação no local. ² Reservado para operações do AWS CodeDeploy. Não pode ser usado para executar scripts. Ordem de execução de ganchos em uma implantação Implantações no local Em uma implantação no local, incluindo a reversão de uma implantação no local, ganchos de eventos são executados na seguinte ordem: Para implantações no local, os seis ganchos relacionados ao bloqueio e à permissão de tráfego apenas serão aplicáveis se você especificar um Classic Load Balancer ou Balanceador de carga de aplicações do Elastic Load Balancing no grupo de implantação. 294

303 Seção 'hooks' de AppSpec Os eventos Start, DownloadBundle, Install e End na implantação não podem ser especificados em scripts e é por isso que aparecem em cinza nesse diagrama. No entanto, é possível editar a seção files de arquivo AppSpec para especificar o que é instalado durante o evento Install. Implantações azuis/verdes Em uma implantação azul/verde, ganchos de eventos são executados na seguinte ordem: 295

304 Seção 'hooks' de AppSpec Os eventos Start, DownloadBundle, Install, BlockTraffic, AllowTraffic e End na implantação não podem ser especificados em scripts e é por isso que aparecem em cinza nesse diagrama. No entanto, é possível editar a seção files de arquivo AppSpec para especificar o que é instalado durante o evento Install. Estrutura da seção 'hooks' A seção hooks tem a seguinte estrutura: hooks: deployment-lifecycle-event-name: - location: script-location timeout: timeout-in-seconds runas: user-name 296

305 Seção 'hooks' de AppSpec Você pode incluir os seguintes elementos em uma entrada hookapós o nome do evento de ciclo de vida de implantação: location timeout Obrigatório. A localização no pacote do arquivo de script para a revisão. Optional. O número de segundos para permitir que o script seja executado antes que ele seja considerado com falha. O padrão é 3600 segundos (1 hora). runas 3600 segundos (1 hora) é o tempo máximo permitido para a execução do script para cada evento de ciclo de vida de implantação. Se os scripts excederem esse limite, a implantação será interrompida, e a implantação na instância falhará. Certifique-se de que o número total de segundos especificado em timeout para todos os scripts em cada evento de ciclo de vida de implantação não exceda esse limite. Optional. O usuário para representar ao executar o script. Por padrão, este é o agente do AWS CodeDeploy em execução na instância. O AWS CodeDeploy não armazena senhas e, portanto, o usuário não poderá ser representado se o usuário runas precisar de uma senha. Esse elemento se aplica apenas a instâncias do Amazon Linux e Ubuntu Server. Disponibilidade variáveis de ambientes para ganchos Durante cada evento de ciclo de vida de implantação, os scripts hook podem acessar as seguintes variáveis de ambiente: APPLICATION_NAME O nome do aplicativo no AWS CodeDeploy que faz parte da implantação atual (por exemplo, WordPress_App). DEPLOYMENT_ID O ID do AWS CodeDeploy que foi atribuído à implantação atual (por exemplo, d-ab1cdef23). DEPLOYMENT_GROUP_NAME O nome do grupo de implantação no AWS CodeDeploy que faz parte da implantação atual (por exemplo, WordPress_DepGroup). DEPLOYMENT_GROUP_ID O ID do grupo de implantação no AWS CodeDeploy que faz parte da implantação atual (por exemplo, b1a2189b-dd90-4ef5-8f40-4c1c5example). LIFECYCLE_EVENT O nome do evento de ciclo de vida de implantação atual (por exemplo, AfterInstall). Essas variáveis de ambiente são locais para cada evento de ciclo de vida de implantação. O seguinte script muda a porta de escuta em um servidor Apache HTTP para 9090 em vez de 80 se o valor de DEPLOYMENT_GROUP_NAME é igual a Staging. Esse script deve ser invocado durante o evento BeforeInstall do evento de ciclo de vida de implantação: if [ "$DEPLOYMENT_GROUP_NAME" == "Staging" ] then sed -i -e 's/listen 80/Listen 9090/g' /etc/httpd/conf/httpd.conf 297

306 Exemplo de AppSpec File fi O seguinte exemplo de script altera o nível de verbosidade das mensagens registradas em seu log de erros de Aviso para Depuração quando o valor da variável de ambiente DEPLOYMENT_GROUP_NAME é igual a Staging. Esse script deve ser invocado durante o evento BeforeInstall do evento de ciclo de vida de implantação: if [ "$DEPLOYMENT_GROUP_NAME" == "Staging" ] then sed -i -e 's/loglevel warn/loglevel debug/g' /etc/httpd/conf/httpd.conf fi O seguinte exemplo de script substitui o texto na página da Web especificada pelo texto que exibe o valor dessas variáveis de ambiente. Esse script deve ser invocado durante o evento AfterInstall do evento de ciclo de vida de implantação: #!/usr/bin/python import os strtosearch="<h2>this application was deployed using AWS CodeDeploy.</h2>" strtoreplace="<h2>this page for "+os.environ['application_name']+" application and "+os.environ['deployment_group_name']+" deployment group with "+os.environ['deployment_group_id']+" deployment group ID was generated by a "+os.environ['lifecycle_event']+" script during "+os.environ['deployment_id']+" deployment.</h2>" fp=open("/var/www/html/index.html","r") buffer=fp.read() fp.close() fp=open("/var/www/html/index.html","w") fp.write(buffer.replace(strtosearch,strtoreplace)) fp.close() Exemplo de ganchos Veja a seguir um exemplo de entrada hooks: hooks: AfterInstall: - location: Scripts/RunResourceTests.sh timeout: 180 O script Scripts/RunResourceTests.sh será executado durante o estágio AfterInstall do processo de implantação. A implantação não terá êxito se o script precisar de mais de 180 segundos (3 minutos) para ser executado. Observe que a localização dos scripts que você especifica na seção hooks é relativa à raiz do pacote de revisão de aplicativo. No exemplo acima, um arquivo chamado RunResourceTests.sh está em um diretório chamado Scripts. O diretório Scripts está no nível raiz do pacote. Para obter mais informações, consulte Planejar uma revisão para o AWS CodeDeploy (p. 215). Exemplo de AppSpec File Veja a seguir um exemplo de um arquivo AppSpec para uma implantação no local em uma instância do Amazon Linux, Ubuntu Server ou RHEL. 298

307 Espaçamento de AppSpec File version: 0.0 os: linux files: - source: Config/config.txt destination: /webapps/config - source: source destination: /webapps/myapp hooks: BeforeInstall: - location: Scripts/UnzipResourceBundle.sh - location: Scripts/UnzipDataBundle.sh AfterInstall: - location: Scripts/RunResourceTests.sh timeout: 180 ApplicationStart: - location: Scripts/RunFunctionalTests.sh timeout: 3600 ValidateService: - location: Scripts/MonitorService.sh timeout: 3600 runas: codedeployuser Para uma instância do Windows Server, mude os: linux para os: windows. Além disso, você deve qualificar completamente os caminhos de destination (por exemplo, c:\temp\webapps\config e c:\temp \webapps\myapp). Não inclua o elemento runas. Veja a seguir a sequência de eventos durante a implantação: 1. Execute o script localizado em Scripts/UnzipResourceBundle.sh. 2. Se o script anterior retornou um código de saída de 0 (êxito), execute o script localizado em Scripts/ UnzipDataBundle.sh. 3. Copie o arquivo do caminho Config/config.txt para o caminho /webapps/config/config.txt. 4. Copie recursivamente todos os arquivos no diretório source para o diretório /webapps/myapp. 5. Execute o script localizado em Scripts/RunResourceTests.sh com um tempo limite de 180 segundos (3 minutos). 6. Execute o script localizado em Scripts/RunFunctionalTests.sh com um tempo limite de 3600 segundos (1 hora). 7. Execute o script localizado em Scripts/MonitorService.sh como o usuário codedeploy com um tempo limite de 3600 segundos (1 hora). Espaçamento de AppSpec File O seguinte é o formato correto para o espaçamento de arquivo AppSpec. Os números entre colchetes indicam o número de espaços que devem ocorrer entre os itens. Por exemplo, [4] significa inserir quatro espaços entre os itens. O AWS CodeDeploy gerará um erro que talvez seja difícil de depurar se as localizações e o número de espaços em um arquivo AppSpec não estiverem corretos. version:[1]version-number os:[1]operating-system-name files: [2]-[1]source:[1]source-files-location [4]destination:[1]destination-files-location permissions: [2]-[1]object:[1]object-specification [4]pattern:[1]pattern-specification [4]except:[1]exception-specification [4]owner:[1]owner-account-name 299

308 Validar seu AppSpec File e local do arquivo [4]group:[1]group-name [4]mode:[1]mode-specification [4]acls: [6]-[1]acls-specification [4]context: [6]user:[1]user-specification [6]type:[1]type-specification [6]range:[1]range-specification [4]type: [6]-[1]object-type hooks: [2]deployment-lifecycle-event-name: [4]-[1]location:[1]script-location [6]timeout:[1]timeout-in-seconds [6]runas:[1]user-name Veja a seguir um exemplo de um arquivo AppSpec corretamente espaçado: version: 0.0 os: linux files: - source: / destination: /var/www/html/wordpress hooks: BeforeInstall: - location: scripts/install_dependencies.sh timeout: 300 runas: root AfterInstall: - location: scripts/change_permissions.sh timeout: 300 runas: root ApplicationStart: - location: scripts/start_server.sh timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root Para obter mais informações sobre espaçamento, consulte a especificação YAML. Validar seu AppSpec File e local do arquivo Sintaxe de arquivos O AWS CodeDeploy não fornece uma ferramenta para validar o conteúdo de um AppSpec File. Em vez disso, considere usar uma ferramenta baseada em navegador, como YAML Lint ou Online YAML Parser para ajudá-lo a verificar a sintaxe de YAML. Local do arquivo Para verificar se você colocou seu arquivo AppSpec no diretório raiz da estrutura de diretórios do conteúdo de origem do aplicativo, execute um dos seguintes comandos: Em instância Linux, macos, or Unix locais: ls path/to/root/directory/appspec.yml 300

309 Validar seu AppSpec File e local do arquivo Se o arquivo AppSpec não estiver localizado lá, um erro "No such file or directory" será exibido. Em instâncias locais do Windows: dir path\to\root\directory\appspec.yml Se o arquivo AppSpec não estiver localizado lá, um erro "File Not Found" será exibido. 301

310 Referência de configuração do agente do AWS CodeDeploy Quando o agente do AWS CodeDeploy está instalado, um arquivo de configuração é colocado na instância. Esse arquivo de configuração especifica caminhos de diretório e outras configurações para o AWS CodeDeploy usar à medida que ele interage com a instância. É possível alterar algumas das opções de configuração no arquivo. Para instâncias do Amazon Linux, Ubuntu Server e Red Hat Enterprise Linux (RHEL), o arquivo de configuração se chama codedeployagent.yml. É possível encontrá-la no diretório /etc/codedeployagent/conf. Para instâncias do Windows Server, o arquivo de configuração se chama conf.yml. É possível encontrá-la no diretório C:\ProgramData\Amazon\CodeDeploy. As configurações são: :log_aws_wire: Defina como true para que o agente do AWS CodeDeploy capture logs do Amazon S3 e os grave em um arquivo chamado codedeployagent.wire.log na localização apontada pela configuração :log_dir:. Warning Você deve definir :log_aws_wire: como true somente durante o tempo necessário para capturar logs de conexão. O arquivo codedeploy-agent.wire.log pode aumentar rapidamente até atingir um tamanho muito grande. A saída de log nesse arquivo pode conter informações confidenciais, incluindo o conteúdo de texto simples de arquivos transferidos para dentro ou fora do Amazon S3 enquanto essa configuração estava definida como true. Os logs contêm informações sobre todas as atividades do Amazon S3 associadas à conta da AWS enquanto essa configuração estava 302

311 definida como true, e não apenas as atividades relacionadas a implantações do AWS CodeDeploy. A configuração padrão é a false. Essa configuração aplica-se a todos os tipos de instâncias. Você deve adicionar essa definição de configuração a instâncias do Windows Server para poder usá-la. :log_dir: A pasta na instância em que os arquivos de log relacionados às operações do agente do AWS CodeDeploy são armazenadas. A configuração padrão é '/var/log/aws/ codedeploy-agent' para instâncias do Amazon Linux, Ubuntu Server e RHEL e C:\ProgramData \Amazon\CodeDeploy\log para instâncias do Windows Server. :pid_dir: A pasta onde codedeploy-agent.pid está armazenado. Esse arquivo contém o ID do processo (PID) do agente do AWS CodeDeploy. A configuração padrão é a '/opt/codedeploy-agent/ state/.pid'. Essa configuração é aplicável somente a instâncias do Amazon Linux, Ubuntu Server e RHEL. :program_name: O nome do programa do agente do AWS CodeDeploy. A configuração padrão é a codedeploy-agent. Essa configuração é aplicável somente a instâncias do Amazon Linux, Ubuntu Server e RHEL. :root_dir: A pasta em que as revisões relacionadas, o histórico de implantação e os scripts de implantação na instância estão armazenados. A configuração padrão é '/opt/codedeployagent/deployment-root' para instâncias do Amazon Linux, Ubuntu Server e RHEL e C: \ProgramData\Amazon\CodeDeploy para instâncias do Windows Server. :verbose: Definir como true para que o agente do AWS CodeDeploy imprima arquivos de log de mensagens de depuração na instância. A configuração padrão é false para instâncias do Amazon Linux, Ubuntu Server e RHEL e true para instâncias do Windows Server. 303

312 Tópicos relacionados :wait_between_runs: O intervalo, em segundos, entre a sondagem do agente do AWS CodeDeploy em busca de implantações pendentes no AWS CodeDeploy. A configuração padrão é a 1. :on_premises_config_file: Para instâncias locais, o caminho para uma localização alternativa para o arquivo de configuração denominado codedeploy.onpremises.yml (para Ubuntu Server e RHEL) ou conf.onpremises.yml (para Windows Server). Por padrão, esses arquivos são armazenados em /etc/codedeploy-agent/ conf/codedeploy.onpremises.yml para Ubuntu Server e RHEL e C:\ProgramData\Amazon \CodeDeploy\conf.onpremises.yml para Windows Server. Disponível na versão e em versões posteriores do agente do AWS CodeDeploy. :proxy_uri: (Opcional) O proxy HTTP através do qual você deseja que o agente do AWS CodeDeploy se conecte à AWS para as suas operações do AWS CodeDeploy. Use um formato semelhante a query. Disponível na versão e versões posteriores do AWS CodeDeploy agente. :max_revisions: (Opcional) O número de revisões de aplicativos para um grupo de implantação que você deseja que o agente do AWS CodeDeploy arquive. Todas as revisões que excederem o número especificado serão excluídas. Insira qualquer número inteiro positivo. Se nenhum valor for especificado, o AWS CodeDeploy manterá as cinco revisões mais recentes, além da revisão atualmente implantada. Com suporte na versão e versões posteriores do agente do AWS CodeDeploy. Tópicos relacionados Trabalhando com o agente do AWS CodeDeploy (p. 119) Gerenciando operações do agente do AWS CodeDeploy (p. 125) 304

313 Referência de templates do AWS CloudFormation para o AWS CodeDeploy Além dos outros métodos disponíveis no AWS CodeDeploy, você pode usar templates do AWS CloudFormation para realizar as seguintes tarefas: Crie aplicativos. Crie grupos de implantação e especifique uma revisão de destino. Crie configurações de implantação. Crie instâncias do Amazon EC2. O AWS CloudFormation é um serviço que ajuda você a modelar e configurar seus recursos da AWS usando templates. Um template do AWS CloudFormation é um arquivo de texto cujo formato está em conformidade com o padrão JSON. Você cria um template que descreve todos os recursos da AWS desejados, e o AWS CloudFormation cuida do provisionamento e da configuração desses recursos para você. Para obter mais informações, consulte O que é o AWS CloudFormation? e Trabalhando com templates do AWS CloudFormation no Guia do usuário do AWS CloudFormation. Se você planeja usar templates do AWS CloudFormation compatíveis com o AWS CodeDeploy na sua organização, como administrador, você deve conceder acesso ao AWS CloudFormation e às ações e aos serviços da AWS dos quais o AWS CloudFormation depende. Para conceder permissões para criar aplicativos, grupos de implementação e configurações de implantação, anexe a seguinte política aos usuários do IAM que trabalharão com o AWS CloudFormation: { "Version": " ", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*" ], "Resource": "*" 305

314 } ] } Para obter mais informações sobre políticas gerenciadas, consulte os seguintes tópicos: Para visualizar a política que deve ser anexada aos usuários do IAM que criarão instâncias do Amazon EC2, consulte Criar uma instância do Amazon EC2 para o AWS CodeDeploy (template do AWS CloudFormation) (p. 147). Para obter informações sobre como anexar políticas aos usuários do IAM, consulte Trabalhando com políticas gerenciadas no Guia do usuário do IAM. Para aprender a restringir os usuários a um conjunto limitado de ações e recursos do AWS CodeDeploy. consulte Políticas gerenciadas (predefinidas) da AWS do AWS CodeDeploy (p. 273). A tabela a seguir mostra as ações que um template do AWS CloudFormation pode realizar em seu nome e inclui links para informações adicionais sobre os tipos de recursos da AWS e seus tipos de propriedade que você pode adicionar a um template do AWS CloudFormation. Ação Crie uma aplicação AWS CodeDeploy. Crie e especifique os detalhes de um grupo de implantação a ser usado para implantar as revisões de aplicativos. ¹ Crie um conjunto de regras de implantação, condições de sucesso de implantação e condições de falha de implantação que o AWS CodeDeploy usará durante uma implantação. Crie uma instância do Amazon EC2. ² Tipo de recurso do AWS CloudFormation AWS::CodeDeploy::Application AWS::CodeDeploy::DeploymentGroup AWS::CodeDeploy::DeploymentConfig AWS::EC2::Instance ¹ Se você especificar a versão da revisão de aplicativo a ser implantada como parte do grupo de implantação, sua revisão de destino será implantada assim que o processo de provisionamento estiver completo. Para obter mais informações sobre a configuração de templates, consulte os tópicos AWS CodeDeploy DeploymentGroup Deployment Revision S3Location e AWS CodeDeploy DeploymentGroup Deployment Revision GitHubLocation no Guia do usuário do AWS CloudFormation.. ² Fornecemos templates que você pode usar para criar instâncias do Amazon EC2 nas regiões em que o AWS CodeDeploy tem suporte. Para obter mais informações sobre como usar esses templates, consulte Criar uma instância do Amazon EC2 para o AWS CodeDeploy (template do AWS CloudFormation) (p. 147). 306

315 Lista de arquivos do kit de recursos Referência ao kit de recursos do AWS CodeDeploy Muitos dos arquivos dos quais o AWS CodeDeploy depende estão armazenados em buckets do Amazon S3 específicos da região da AWS publicamente disponíveis. Chamamos essa coleção de arquivos de Kit de recursos do AWS CodeDeploy. Tópicos Lista de arquivos do kit de recursos (p. 307) Exibindo uma lista dos arquivos do kit de recursos (p. 308) Baixando os arquivos do kit de recursos (p. 309) Lista de arquivos do kit de recursos A tabela a seguir lista os arquivos no Kit de recursos do AWS CodeDeploy. Arquivo VERSION codedeploy-agent.noarch.rpm codedeploy-agent_all.deb codedeploy-agent.msi Descrição Um arquivo usado por agentes do AWS CodeDeploy para atualização à medida que eles são executados em instâncias. O agente do AWS CodeDeploy para Amazon Linux e Red Hat Enterprise Linux (RHEL). Pode haver vários arquivos com o mesmo nome de arquivo base, mas versões diferentes (como ). O agente do AWS CodeDeploy para Ubuntu Server. Pode haver vários arquivos com o mesmo nome de arquivo base, mas versões diferentes (como _1.0-0). O agente do AWS CodeDeploy para Windows Server. Pode haver vários arquivos com o mesmo nome de arquivo base, mas versões diferentes (como ). 307

316 Exibindo uma lista dos arquivos do kit de recursos Arquivo install CodeDeploy_SampleCF_Template.json SampleApp_Linux.zip SampleApp_Windows.zip Descrição Um arquivo que você pode usar para instalar mais facilmente o agente do AWS CodeDeploy. Um modelo do AWS CloudFormation que você pode usar para iniciar de uma a três instâncias do Amazon EC2 em execução no Amazon Linux ou no Windows Server. Pode haver vários arquivos com o mesmo nome de arquivo base, mas versões diferentes (como ). Uma amostra de revisão de aplicativo que você pode implantar em uma instância do Amazon EC2 executando o Amazon Linux ou em uma instância do Ubuntu Server ou RHEL. Pode haver vários arquivos com o mesmo nome de arquivo base, mas versões diferentes (como -1.0). Uma amostra de revisão de aplicativo que você pode implantar em uma instância do Windows Server. Pode haver vários arquivos com o mesmo nome de arquivo base, mas versões diferentes (como -1.0). Exibindo uma lista dos arquivos do kit de recursos Para ver uma lista de arquivos, use o comando aws s3 ls da sua região. Os arquivos em cada bucket são projetados para operar com recursos na região correspondente. aws s3 ls --recursive s3://aws-codedeploy-us-east-2 aws s3 ls --recursive s3://aws-codedeploy-us-east-1 aws s3 ls --recursive s3://aws-codedeploy-us-west-1 aws s3 ls --recursive s3://aws-codedeploy-us-west-2 aws s3 ls --recursive s3://aws-codedeploy-ca-central-1 aws s3 ls --recursive s3://aws-codedeploy-eu-west-1 aws s3 ls --recursive s3://aws-codedeploy-eu-west-2 aws s3 ls --recursive s3://aws-codedeploy-eu-central-1 aws s3 ls --recursive s3://aws-codedeploy-ap-northeast-1 308

317 Baixando os arquivos do kit de recursos aws s3 ls --recursive s3://aws-codedeploy-ap-northeast-2 aws s3 ls --recursive s3://aws-codedeploy-ap-southeast-1 aws s3 ls --recursive s3://aws-codedeploy-ap-southeast-2 aws s3 ls --recursive s3://aws-codedeploy-ap-south-1 aws s3 ls --recursive s3://aws-codedeploy-sa-east-1 aws s3 ls --recursive s3://aws-codedeploy-cn-north-1 Baixando os arquivos do kit de recursos Para baixar um arquivo, use o comando aws s3 cp para a sua região. Certifique-se de usar o ponto final (.) perto do final. Isso baixa o arquivo no seu diretório atual. Os seguintes comandos baixam um único arquivo chamado SampleApp_Linux.zip de uma das pastas / samples/latest/ dos buckets: aws s3 cp s3://aws-codedeploy-us-east-2/samples/latest/sampleapp_linux.zip. --region useast-2 aws s3 cp s3://aws-codedeploy-us-east-1/samples/latest/sampleapp_linux.zip. --region useast-1 aws s3 cp s3://aws-codedeploy-us-west-1/samples/latest/sampleapp_linux.zip. --region uswest-1 aws s3 cp s3://aws-codedeploy-us-west-2/samples/latest/sampleapp_linux.zip. --region uswest-2 aws s3 cp s3://aws-codedeploy-ca-central-1/samples/latest/sampleapp_linux.zip. --region ca-central-1 aws s3 cp s3://aws-codedeploy-eu-west-1/samples/latest/sampleapp_linux.zip. --region euwest-1 aws s3 cp s3://aws-codedeploy-eu-west-2/samples/latest/sampleapp_linux.zip. --region euwest-2 aws s3 cp s3://aws-codedeploy-eu-central-1/samples/latest/sampleapp_linux.zip. --region eu-central-1 309

318 Baixando os arquivos do kit de recursos aws s3 cp s3://aws-codedeploy-ap-northeast-1/samples/latest/sampleapp_linux.zip. --region ap-northeast-1 aws s3 cp s3://aws-codedeploy-ap-northeast-2/samples/latest/sampleapp_linux.zip. --region ap-northeast-2 aws s3 cp s3://aws-codedeploy-ap-southeast-1/samples/latest/sampleapp_linux.zip. --region ap-southeast-1 aws s3 cp s3://aws-codedeploy-ap-southeast-2/samples/latest/sampleapp_linux.zip. --region ap-southeast-2 aws s3 cp s3://aws-codedeploy-ap-south-1/samples/latest/sampleapp_linux.zip. --region apsouth-1 aws s3 cp s3://aws-codedeploy-sa-east-1/samples/latest/sampleapp_linux.zip. --region saeast-1 aws s3 cp s3://aws-codedeploy-cn-north-1/samples/latest/sampleapp_linux.zip. --region cnnorth-1 Para baixar todos os arquivos, use um dos seguintes comandos para sua região: aws s3 cp --recursive s3://aws-codedeploy-us-east-2. --region us-east-2 aws s3 cp --recursive s3://aws-codedeploy-us-east-1. --region us-east-1 aws s3 cp --recursive s3://aws-codedeploy-us-west-1. --region us-west-1 aws s3 cp --recursive s3://aws-codedeploy-us-west-2. --region us-west-2 aws s3 cp --recursive s3://aws-codedeploy-ca-central-1. --region ca-central-1 aws s3 cp --recursive s3://aws-codedeploy-eu-west-1. --region eu-west-1 aws s3 cp --recursive s3://aws-codedeploy-eu-west-2. --region eu-west-2 aws s3 cp --recursive s3://aws-codedeploy-eu-central-1. --region eu-central-1 310

319 Baixando os arquivos do kit de recursos aws s3 cp --recursive s3://aws-codedeploy-ap-northeast-1. --region ap-northeast-1 aws s3 cp --recursive s3://aws-codedeploy-ap-northeast-2. --region ap-northeast-2 aws s3 cp --recursive s3://aws-codedeploy-ap-southeast-1. --region ap-southeast-1 aws s3 cp --recursive s3://aws-codedeploy-ap-southeast-2. --region ap-southeast-2 aws s3 cp --recursive s3://aws-codedeploy-ap-south-1. --region ap-south-1 aws s3 cp --recursive s3://aws-codedeploy-sa-east-1. --region sa-east-1 aws s3 cp --recursive s3://aws-codedeploy-cn-north-1. --region cn-north-1 311

320 Aplicativos Limites de AWS CodeDeploy As tabelas a seguir descrevem limites em no AWS CodeDeploy. Você pode solicitar um aumento de limite para os limites do AWS CodeDeploy listados em Limites de serviço da AWS, no documento Referência geral do Amazon Web Services. Não é possível aumentar o limite para o número de horas que uma implantação pode ser executada. Tópicos Aplicativos (p. 312) Revisões de aplicativo (p. 313) Implantações (p. 313) Configurações de implantação (p. 314) Grupos de implantação (p. 314) Instâncias (p. 314) Aplicativos O número máximo de aplicações associadas a uma conta da AWS em uma única região Número máximo de caracteres no nome de um aplicativo Caracteres permitidos no nome de um aplicativo Letras (az, AZ), números (0-9), ponto final (.), sublinhados (_), + (sinais de mais), = (sinais de igual),, (sinais de arroba), - (sinais de menos). 312

321 Revisões de aplicativo Número máximo de aplicativos que podem ser transmitidos à ação de API BatchGetApplications Número máximo de tokens de conexão do GitHub para uma única conta da AWS Revisões de aplicativo Número máximo de caracteres em um nome de revisão de aplicativo Tipos de arquivos permitidos para revisões de aplicativos 100 Arquivamentos com a extensão.zip ou.tar e arquivamentos compactados com a extensão.tar.gz. Um arquivamento simples ou compactado compatível com o AWS CodeDeploy deve conter um único arquivo de especificação do aplicativo (arquivo AppSpec) com o nome do arquivo appspec.yml. Implantações Número máximo de implantações simultâneas em um grupo de implantação¹ Número máximo de implantações simultâneas associadas a uma conta da AWS² Número máximo de horas que uma implantação pode ser executada Número máximo de segundos até que um evento de ciclo de vida de implantação individual falhe se não for concluído Número máximo de caracteres em uma descrição de implantação Número máximo de implantações que podem ser transmitidas à ação de API BatchGetDeployments ¹ Esse limite destina-se a evitar implantações acidentais e simultâneas do mesmo aplicativo no mesmo grupo de implantação. ² Cada implantação em uma instância do Amazon EC2 dimensionada em um grupo de Auto Scaling conta como uma única implantação simultânea. Se a instância do Amazon EC2 dimensionada estiver associada a vários aplicativos, uma implantação simultânea adicional para cada aplicativo será gerada. Por exemplo, um grupo de Auto Scaling que for dimensionado em cinco instâncias do Amazon EC2 e estiver associado a um único aplicativo gerará cinco implementações simultâneas. Se as mesmas cinco instâncias do Amazon EC2 dimensionadas forem associadas a dois aplicativos adicionais, isso gerará dez implantações simultâneas adicionais. 313

322 Configurações de implantação Configurações de implantação Número máximo de configurações de implantação personalizadas associadas a uma conta da AWS Valores permitidos para uma configuração de instâncias íntegras mínimas de HOST_COUNT Valores permitidos para uma configuração de instâncias íntegras mínimas de FLEET_PERCENT Número máximo de caracteres em um nome de configuração de implantação personalizado Caracteres permitidos em um nome de configuração de implantação personalizado Prefixos não permitidos em um nome de configuração de implantação personalizado 25 Qualquer número inteiro positivo ou 0 (zero). Zero (0) resulta em uma implantação em todas as instâncias ao mesmo tempo. Qualquer número inteiro positivo inferior a 100 ou 0 (zero). Zero (0) resulta em uma implantação em todas as instâncias ao mesmo tempo. 100 Letras (az, AZ), números (0-9), ponto final (.), sublinhados (_), + (sinais de mais), = (sinais de igual),, (sinais de arroba), - (sinais de menos). CodeDeployDefault. Grupos de implantação O número máximo de grupos de implantação associados a um único aplicativo Número máximo de tags em um grupo de implantação Número máximo de grupo de Auto Scaling em um grupo de implantação Número máximo de caracteres em um nome de grupo de implantação Caracteres permitidos em um nome de grupo de implantação O número máximo de acionadores de notificações de evento em um grupo de implementação Letras (az, AZ), números (0-9), ponto final (.), sublinhados (_), + (sinais de mais), = (sinais de igual),, (sinais de arroba), - (sinais de menos). 10 Instâncias O número máximo de instâncias em uma única implantação

323 Instâncias Número máximo de caracteres em uma chave de tag 128 Número máximo de caracteres em um valor de tag 256 Número máximo de instâncias que podem ser transmitidas à ação de API BatchGetOnPremisesInstances Versão necessária do SDK da AWS para Ruby (aws-sdk-core) ou anterior para versões do agente do AWS CodeDeploy anteriores a ou anterior para o agente do AWS CodeDeploy versão e posterior. 315

324 Problemas de solução de problemas gerais Solução de problemas do AWS CodeDeploy Use os tópicos desta seção para ajudar a resolver problemas e erros que você possa encontrar ao usar o AWS CodeDeploy. As causas de muitas falhas de implantação podem ser identificadas por meio da revisão dos arquivos de log criados durante o processo de implantação. Por questões de simplicidade, recomendamos usar o Amazon CloudWatch Logs para monitorar arquivos de log centralmente em vez de visualizá-los caso a caso. Para obter informações, consulte Visualizar logs do AWS CodeDeploy no console do CloudWatch Logs. Tópicos Problemas de solução de problemas gerais (p. 316) Solucionar problemas de implantação (p. 320) Solucionar problemas com o grupo de implantação (p. 326) Solução de problemas com a instância (p. 327) Solução de problemas com o Auto Scaling (p. 328) Códigos de erro para o AWS CodeDeploy (p. 333) Problemas de solução de problemas gerais Tópicos Lista geral de verificação para solução de problemas (p. 317) Os recursos de implantação do AWS CodeDeploy têm suporte apenas em certas regiões (p. 318) Funções do IAM necessárias não estão disponíveis (p. 318) 316

325 Lista geral de verificação para solução de problemas Evite implantações simultâneas na mesma instância do Amazon EC2 (p. 318) Usar alguns editores de texto para criar arquivos AppSpec e scripts de shell pode fazer com que as implantações falhem (p. 319) Usar o Finder no Mac OS para agrupar uma revisão de aplicativo pode fazer com que as implantações falhem (p. 320) Lista geral de verificação para solução de problemas Você pode usar a seguinte lista de verificação para solucionar problemas com uma implantação que falhou. 1. Consulte Visualizar detalhes de implantações com o AWS CodeDeploy (p. 233) e Exibir Detalhes da Instância com o AWS CodeDeploy (p. 183) para determinar por que a implantação falhou. Se você não conseguir determinar a causa, continue com o restante dos itens nesta lista de verificação. 2. Verifique se você configurou corretamente as instâncias: A instância foi iniciada com um par de chaves do Amazon EC2 especificado? Para obter mais informações, consulte o tópico sobre pares de chaves do Amazon EC2, no Guia do usuário do Amazon EC2 para instâncias do Linux. O perfil de instâncias do IAM correto está anexado à instância? Para obter mais informações, consulte Configurar uma instância do Amazon EC2 para trabalhar com o AWS CodeDeploy (p. 153) e Etapa 4: criar um perfil de instância do IAM (p. 19). A instância foi marcada? Para obter mais informações, consulte o tópico sobre como trabalhar no console, no Guia do usuário do Amazon EC2 para instâncias do Linux. O agente do AWS CodeDeploy está instalado e em execução na instância? Para obter mais informações, consulte Gerenciando operações do agente do AWS CodeDeploy (p. 125). 3. Verifique as configurações do aplicativo e do grupo de implantação: Para verificar as configurações do seu aplicativo, consulte Visualizar detalhes de aplicativos (p. 200). Para verificar as configurações do seu grupo de implantação, consulte Visualizar detalhes do grupo de implantação com o AWS CodeDeploy (p. 209). 4. Confirme se a revisão de aplicativo está corretamente configurada: Verifique o formato do seu arquivo AppSpec. Para obter mais informações, consulte Adicionar um AppSpec File (p. 216) e Referência ao AppSpec File do AWS CodeDeploy (p. 283). Verifique seu bucket do Amazon S3 ou o repositório GitHub para verificar sua revisão de aplicativo está na localização esperada. Reveja os detalhes da sua revisão de aplicativo AWS CodeDeploy para garantir que ela esteja registrada corretamente. Para obter mais informações, consulte Visualizar detalhes de revisões de aplicativo (p. 221). Se você estiver implantando a partir do Amazon S3, confira seu bucket do Amazon S3 para verificar se o AWS CodeDeploy recebeu permissão para baixar a revisão de aplicativo. Para obter informações sobre políticas de bucket, consulte Pré-requisitos de implantação (p. 226). Se você estiver implantando a partir do GitHub, confira seu repositório GitHub para verificar se o AWS CodeDeploy recebeu permissão para baixar a revisão de aplicativo. Para obter mais informações, consulte Criar uma implantação com o AWS CodeDeploy (p. 226) e Autenticação do GitHub com aplicativos no AWS CodeDeploy (p. 48). 5. Verifique se a função de serviço está corretamente configurada. Para obter mais informações, consulte Etapa 3: criar uma função de serviço (p. 15). 6. Confirme que você seguiu as etapas em Conceitos básicos (p. 13) para: Anexe políticas ao usuário do IAM. Instale ou atualize e configure a AWS CLI. Crie um perfil de instâncias do IAM e uma função de serviço. 317

326 Os recursos de implantação do AWS CodeDeploy têm suporte apenas em certas regiões Para obter mais informações, consulte Controle de acesso e autenticação do AWS CodeDeploy (p. 265). 7. Confirme que você está usando a AWS CLI versão ou posterior. Para verificar a versão instalada, chame aws --version. Se você ainda não consegue solucionar sua implantação com falha, reveja os outros problemas neste tópico. Os recursos de implantação do AWS CodeDeploy têm suporte apenas em certas regiões Se você não vê ou não consegue acessar aplicativos, grupos de implantação, instâncias ou outros recursos de implantação na AWS CLI ou no console do AWS CodeDeploy, verifique se está fazendo referência a uma das regiões listadas em Região e endpoints, no AWS General Reference. As instâncias do Amazon EC2 e os grupos do Auto Scaling que serão usados em implantações do AWS CodeDeploy devem ser iniciados e criados em uma dessas regiões. Se você estiver usando a AWS CLI, execute o comando aws configure na AWS CLI. Em seguida, você pode visualizar e definir sua região padrão. Se estiver usando o console do AWS CodeDeploy, na barra de navegação, no seletor de região, escolha uma das regiões com suporte. Important Para usar serviços em Região China (Pequim), é necessário ter uma conta e credenciais específicas para a região. As contas e credenciais de outras regiões do AWS não funcionarão para o Região China (Pequim), e vice-versa. Informações sobre alguns recursos do o Região China (Pequim), como procedimentos de instalação do agente do AWS CodeDeploy e nomes de buckets de kits de recursos do AWS CodeDeploy não estão incluídos nesta edição do Guia do usuário do AWS CodeDeploy. Para obter mais informações: AWS CodeDeploy em Conceitos básicos do AWS em Região China (Pequim) Guia do usuário do AWS CodeDeploy para Região China (Pequim) (versão em inglês versão em chinês) Funções do IAM necessárias não estão disponíveis Se você depender de um perfil de instâncias do IAM ou de uma função de serviço que foi criada como parte de uma pilha do AWS CloudFormation, se excluir a pilha, todas as funções do IAM também serão excluídas. Talvez seja por isso que a função do IAM não é mais exibido no console do IAM e o AWS CodeDeploy não funciona conforme esperado. Para corrigir esse problema, é necessário recriar manualmente a função do IAM excluída. Evite implantações simultâneas na mesma instância do Amazon EC2 Como prática recomendada, você deve evitar situações que resultem em mais de uma tentativa de implantação em uma instância do Amazon EC2 ao mesmo tempo. Nos casos em que comandos de 318

327 Usar alguns editores de texto para criar arquivos AppSpec e scripts de shell pode fazer com que as implantações falhem diferentes implementações competem para serem executados em uma única instância, as implementações podem expirar e falhar pelos seguintes motivos: A lógica de tempo limite do AWS CodeDeploy espera que todas as etapas de um processo de implantação sejam concluídas em cinco minutos ou menos. O agente do AWS CodeDeploy pode processar apenas um comando de implantação por vez. Não é possível controlar a ordem em que as implantações ocorrem quando mais de uma implantação tenta ser executada ao mesmo tempo. A lógica do AWS CodeDeploy considera que uma implantação falhou quando suas etapas não são concluídos em até cinco minutos, mesmo que um processo de implantação esteja sendo executado como esperado em outras situações. O limite de cinco minutos poderá ser excedido se os comandos de várias implantações estiverem sendo enviados ao agente do AWS CodeDeploy ao mesmo tempo. Para obter informações sobre outros desafios que você pode enfrentar com implantações simultâneas em grupos de Auto Scaling, consulte Evite associar vários grupos de implantação a um único grupo de Auto Scaling (p. 331). Usar alguns editores de texto para criar arquivos AppSpec e scripts de shell pode fazer com que as implantações falhem Alguns editores de texto introduzem caracteres não imprimíveis e fora de conformidade nos arquivos. Se você usa editores de texto para criar ou modificar arquivos AppSpec ou arquivos de script de shell para execução em instâncias do Amazon Linux, Ubuntu Server ou RHEL, todas as implementações que dependerem desses arquivos poderão falhar. Quando o AWS CodeDeploy usa esses arquivos durante uma implantação, a presença desses caracteres pode levar a problemas de validação de arquivo AppSpec difíceis de solucionar e falhas de execução de script. No console do AWS CodeDeploy, na página de detalhes do evento da implantação, escolha Exibir logs. (Como alternativa, use a AWS CLI para chamar o comando get-deployment-instance.) Procure erros como "caractere inválido", "comando não encontrado" ou "arquivo não encontrado". Para resolver este problema, recomendamos o seguinte: Não use editores de texto que introduzam automaticamente caracteres não imprimíveis, como retornos de carro (caracteres ^M) em seus arquivos AppSpec e de script de shell. Use editores de texto que mostrem caracteres não imprimíveis, como retornos de carro, em seus arquivos AppSpec e de script de shell, para que você possa encontrar e remover qualquer caractere que possa ter sido introduzido automática ou aleatoriamente. Para ver exemplos desses tipos de editores de texto, pesquise "editor de texto mostra retornos de carro" na Internet. Use editores de texto em execução em instâncias do Amazon Linux, Ubuntu Server ou RHEL para criar arquivos de script de shell que sejam executados em instâncias do Amazon Linux, Ubuntu Server ou RHEL. Para ver exemplos desses tipos de editores de texto, pesquise "editor de script de shell Linux" na Internet. Se você tiver que usar um editor de texto no Windows ou Mac OS para criar arquivos de script de shell para execução em instâncias do Amazon Linux, Ubuntu Server ou RHEL, use um programa ou utilitário que converta texto de formato Windows ou Mac OS no formato Unix. Para obter exemplos desses programas e utilitários, pesquise "DOS para UNIX" ou "Mac para UNIX" na Internet. Certifique-se de testar os arquivos de script de shell convertidos nos sistemas operacionais de destino. 319

328 Usar o Finder no Mac OS para agrupar uma revisão de aplicativo pode fazer com que as implantações falhem Usar o Finder no Mac OS para agrupar uma revisão de aplicativo pode fazer com que as implantações falhem As implantações poderão falhar se você usar o aplicativo Finder de interface gráfica do usuário (GUI) em um Mac para agrupar (compactar) um arquivo AppSpec e scripts e arquivos relacionados em um arquivamento de revisão de aplicativos (.zip). Isso acontece porque o Finder cria uma pasta intermediária MACOSX no arquivo.zip e coloca os arquivos de componentes nessa pasta. O AWS CodeDeploy não pode encontrar os arquivos componentes e, portanto, a implantação falha. Para resolver esse problema, recomendamos que você use a AWS CLI para chamar o comando push, que compacta esses arquivos na estrutura esperada. Como alternativa, é possível usar o Terminal em vez da GUI para compactar arquivos componentes. O terminal não cria uma pasta MACOSX intermediária. Solucionar problemas de implantação Tópicos A implantação falha com a mensagem "Validation of PKCS7 signed message failed" (p. 320) A implantação ou reimplantação dos mesmos arquivos nos mesmos locais de instância falha com um erro indicando que a implantação falhou porque um arquivo especificado já existe na localização (p. 321) Solucionando problemas com um evento de ciclo de vida AllowTraffic com falha em erro relatado nos logs de implantação (p. 322) Solucionando problemas com eventos de ciclo de vida de implantação ApplicationStop, BeforeBlockTraffic e AfterBlockTraffic (p. 323) Solucionando problemas com um evento de ciclo de vida de implantação DownloadBundle com falha que indica "UnknownError: not opened for reading" (p. 324) Os scripts do Windows PowerShell não conseguem usar a versão de 64 bits do Windows PowerShell por padrão (p. 324) Processos de execução longa podem fazer com que as implantações falhem (p. 325) As causas de muitas falhas de implantação podem ser identificadas por meio da revisão dos arquivos de log criados durante o processo de implantação. Por questões de simplicidade, recomendamos usar o Amazon CloudWatch Logs para monitorar arquivos de log centralmente em vez de visualizá-los caso a caso. Para obter informações, consulte Visualizar logs do AWS CodeDeploy no console do CloudWatch Logs. A implantação falha com a mensagem "Validation of PKCS7 signed message failed" Essa mensagem de erro indica que a instância está executando uma versão do agente do AWS CodeDeploy que apenas oferece suporte ao algoritmo de hash SHA-1. O suporte para o algoritmo de hash SHA-2 foi introduzido na versão do agente do AWS CodeDeploy, lançada em novembro de A partir de 17 de outubro de 2016, as implantações falharão se uma versão do agente do AWS CodeDeploy anterior a estiver instalada. Para obter mais informações, consulte A AWS mudará para o algoritmo de hash SHA256 para certificados SSL, AVISO: retirando agentes de host do AWS CodeDeploy anteriores à versão e Atualizar o agente do AWS CodeDeploy (p. 133). 320

329 A implantação ou reimplantação dos mesmos arquivos nos mesmos locais de instância falha com um erro indicando que a implantação falhou porque um arquivo especificado já existe na localização A implantação ou reimplantação dos mesmos arquivos nos mesmos locais de instância falha com um erro indicando que a implantação falhou porque um arquivo especificado já existe na localização Quando o AWS CodeDeploy tenta implantar um arquivo em uma instância, mas um arquivo com o mesmo nome já existe na localização de destino especificada, a implantação nessa instância pode falhar. Você poderá receber a mensagem de erro indicando que a implantação falhou porque um arquivo especificado já existe na localização location-name. Isso ocorre porque, durante cada implantação, o AWS CodeDeploy primeiro exclui todos os arquivos da implantação anterior, que estão listados em um arquivo de log de limpeza. Se houver arquivos nas pastas de instalação de destino que não estão listados nesse arquivo de limpeza, o agente do AWS CodeDeploy, por padrão, interpretará isso como um erro e reprovará a implantação. Em instâncias do Amazon Linux, RHEL e Ubuntu Server, o arquivo de limpeza está localizado em /opt/codedeploy-agent/deployment-root/deployment-instructions/. Em instâncias do Windows Server, o local é C:\ProgramData\Amazon\CodeDeploy\deployment-instructions\. A maneira mais fácil de evitar esse erro é especificar uma opção diferente do comportamento padrão de reprovar a implantação. Para cada implantação, você pode optar por reprovar a implantação, substituir os arquivos não listados no arquivo de limpeza ou manter os arquivos que já estão na instância. A opção de substituição é útil quando, por exemplo, você colocou manualmente um arquivo em uma instância após a última implantação, mas adicionou um arquivo com o mesmo nome à próxima revisão de aplicativo. É possível escolher a opção de retenção para os arquivos colocados na instância que você deseja que façam parte da próxima implantação sem precisar adicioná-los ao pacote de revisão de aplicativo. A opção de retenção também é útil quando seus arquivos de aplicativo já estão em seu ambiente de produção, e você deseja implantar usando o AWS CodeDeploy pela primeira vez. Para obter mais informações, consulte Criar uma implantação (console) (p. 228) e Comportamento de reversão com conteúdo existente (p. 240). Solucionando erros de implantação indicando que a implantação falhou porque um arquivo especificado já existe na localização Se você optar por não especificar uma opção para substituir ou manter o conteúdo detectado pelo AWS CodeDeploy nos seus locais de implantação de destino (ou se não especificar nenhuma opção de implantação para lidar com conteúdo existente em um comando programático), será possível optar por solucionar o erro. As informações a seguir aplicam-se somente quando você opta por não reter ou substituir o conteúdo. Se você tentar redistribuir arquivos com os mesmos nomes e localizações, a reimplantação terá melhores chances de sucesso se você especificar o nome do aplicativo e o grupo de implantação com o mesmo ID de grupo de implantação subjacente usado antes. O AWS CodeDeploy usa o ID de grupo de implantação subjacente para identificar arquivos a serem removidos antes de uma reimplantação. A implantação de novos arquivos ou a reimplantação dos mesmos arquivos nas mesmas localizações em instâncias pode falhar por estes motivos: Você especificou um nome de aplicativo diferente para uma redistribuição da mesma revisão nas mesmas instâncias. A redistribuição falhará porque, mesmo que o nome do grupo de implantação 321

330 Solucionando problemas com um evento de ciclo de vida AllowTraffic com falha em erro relatado nos logs de implantação seja o mesmo, o uso de um nome de aplicativo diferente significa que um ID de grupo de implantação subjacente diferente será usado. Você excluiu e recriou um grupo de implantação para um aplicativo e depois tentou reimplantar a mesma revisão no grupo de implantação. A reimplantação falhará porque, mesmo que o nome do grupo de implantação seja o mesmo, o AWS CodeDeploy fará referência a um ID de grupo de implantação subjacente diferente. Você excluiu um aplicativo e grupo de implantação no AWS CodeDeploy e depois criou um novo aplicativo e grupo de implantação com os mesmos nomes daqueles que foram excluídos. Depois disso, você tentou reimplantar uma revisão que havia sido implantada no grupo de implantação anterior no novo grupo de implantação com o mesmo nome. A redistribuição falhará porque, mesmo que os nomes de aplicativo e grupo de implantação sejam os mesmos, o AWS CodeDeploy ainda faz referência ao ID do grupo de implantação que você excluiu. Você implantou uma revisão em um grupo de implantação e, em seguida, implantou a mesma revisão em outro grupo de implantação para as mesmas instâncias. A segunda implantação falhará porque o AWS CodeDeploy fará referência a um ID de grupo de implantação subjacente diferente. Você implantou uma revisão em um grupo de implantação e, em seguida, implantou outra revisão em outro grupo de implantação para as mesmas instâncias. Existe pelo menos um arquivo com o mesmo nome e no mesmo local em que o segundo grupo de implantação está tentando implantar. A segunda implantação falhará porque o AWS CodeDeploy não removerá o arquivo existente antes do início da segunda implantação. Ambas as implementações farão referência a diferentes IDs de grupo de implantação. Você implantou uma revisão no AWS CodeDeploy, mas há pelo menos um arquivo com o mesmo nome e no mesmo local. A implantação falhará porque, por padrão, o AWS CodeDeploy não removerá o arquivo existente antes do início da implantação. Para resolver essas situações, siga um destes procedimentos: Remova os arquivos das localizações e instâncias em que eles foram implantados anteriormente e, em seguida, tente de novo a implantação. No arquivo AppSpec da sua revisão, nos eventos de ciclo de vida de implantação ApplicationStop ou BeforeInstall, especifique um script personalizado para excluir arquivos em qualquer localização que corresponda aos arquivos que sua revisão está prestes a instalar. Implante ou reimplante os arquivos em localizações ou instâncias que não faziam parte de implementações anteriores. Antes de excluir um aplicativo ou um grupo de implantação, implemente uma revisão contendo um arquivo AppSpec que não especifique arquivos para copiar nas instâncias. Para a implantação, especifique o nome do aplicativo e o nome do grupo de implantação que usam os mesmos IDs de aplicativo e grupo de implantação subjacentes que aqueles que você está prestes a excluir. (É possível usar o comando get-deployment-group para recuperar o ID do grupo de implantação.) O AWS CodeDeploy usará o ID do grupo de implantação subjacente e o arquivo AppSpec para remover todos os arquivos instalados na implantação bem-sucedida anterior. Solucionando problemas com um evento de ciclo de vida AllowTraffic com falha em erro relatado nos logs de implantação Em alguns casos, uma implantação azul/verde falha durante o evento de ciclo de vida AllowTraffic, mas nenhuma causa para a falha é indicada nos logs de implantação. Essa falha geralmente ocorre devido às verificações de integridade que estão sendo configuradas incorretamente no Elastic Load Balancing para o Classic Load Balancer ou Balanceador de carga de aplicações usados para gerenciar o tráfego para o grupo de implantação. 322

331 Solucionando problemas com eventos de ciclo de vida de implantação ApplicationStop, BeforeBlockTraffic e AfterBlockTraffic Para resolver o problema, reveja e corrija quaisquer erros na configuração de verificação de integridade do balanceador de carga. Para Classic Load Balancers, consulte Configurar verificações de integridade no Guia do Classic Load Balancer e ConfigureHealthCheck no Elastic Load Balancing API Reference version Para Balanceador de carga de aplicaçõess, consulte Verificações de integridade para seus grupos de destino no Guia do Balanceador de carga de aplicações. Solucionando problemas com eventos de ciclo de vida de implantação ApplicationStop, BeforeBlockTraffic e AfterBlockTraffic Durante uma implantação, o agente do AWS CodeDeploy executa os scripts especificados para ApplicationStop, BeforeBlockTraffic e AfterBlockTraffic no arquivo AppSpec a partir da implantação anterior bem-sucedida. (Todos os outros scripts são executados a partir do arquivo AppSpec na implantação atual.) Se um desses scripts contiver um erro e não for executado com sucesso, a implantação poderá falhar. Os possíveis motivos dessas falhas incluem: O agente do AWS CodeDeploy encontra o arquivo deployment-group-id_last_successful_install no local correto, mas o local listado no arquivo deployment-group-id_last_successful_install não existe. Em instâncias do Amazon Linux, Ubuntu Server e RHEL, esse arquivo deve existir em /opt/ codedeploy-agent/deployment-root/deployment-instructions. Em instâncias do Windows Server, esse arquivo deve ser armazenado na pasta C:\ProgramData \Amazon\CodeDeploy\deployment-instructions. Na localização listada no arquivo deployment-group-id_last_successful_install, o arquivo AppSpec é inválido ou os scripts não foram executados com sucesso. O script contém um erro que não pode ser corrigido e, portanto, nunca será executado com sucesso. Use o console do AWS CodeDeploy para investigar por que uma implantação pode ter falhado durante qualquer um desses eventos. Na página de detalhes da implantação, escolha Exibir eventos. Na página de detalhes para a instância, na linha ApplicationStop, BeforeBlockTraffic ou AfterBlockTraffic, escolha Exibir logs. Como alternativa, use a CLI da AWS para chamar o comando get-deployment-instance. Se a causa da falha for um script da última implantação bem-sucedida que nunca será executado com sucesso, crie uma nova implantação e especifique que as falhas ApplicationStop, BeforeBlockTraffic e AfterBlockTraffic devem ser ignoradas. Você pode fazer isso de duas maneiras: Use o console do AWS CodeDeploy para criar uma implantação. Na página Criar implantação, em Falha de evento do ciclo de vida do ApplicationStop, escolha Não falhar a implantação para uma instância se esse evento de ciclo de vida na instância falhar. Use a CLI da AWS para chamar o comando create-deployment e incluir a opção --ignoreapplication-stop-failures. Quando você implantar a revisão de aplicativo novamente, a implantação continuará mesmo que algum desses três eventos de ciclo de vida falhar. Se a nova revisão incluir scripts fixos para esses eventos de ciclo de vida, as implementações futuras poderão ser bem-sucedidas sem a aplicação dessa correção. 323

332 Solucionando problemas com um evento de ciclo de vida de implantação DownloadBundle com falha que indica "UnknownError: not opened for reading" Solucionando problemas com um evento de ciclo de vida de implantação DownloadBundle com falha que indica "UnknownError: not opened for reading" Se você estiver tentando implantar uma revisão de aplicativo a partir do Amazon S3 e essa implantação falhar durante o evento de ciclo de vida de implantação DownloadBundle com o erro "UnknownError: not opened for reading": Houve um erro interno do serviço do Amazon S3. Implante novamente a revisão de aplicativo. O perfil de instâncias do IAM na sua instância do Amazon EC2 não tem permissões para acessar a revisão de aplicativo no Amazon S3. Para obter informações sobre políticas de bucket do Amazon S3, consulte Enviar uma revisão do AWS CodeDeploy para o Amazon S3 (p. 220) e Pré-requisitos de implantação (p. 226). As instâncias nas quais você fará a implantação estão associadas a uma região (por exemplo, Oeste dos EUA (Oregon)), mas o bucket do Amazon S3 que contém essa revisão de aplicativo está associado a outra região (por exemplo, Leste dos EUA (Norte da Virgínia)). Verifique se a revisão de aplicativo está em um bucket do Amazon S3 associado à mesma região que as instâncias. Na página de detalhes do evento da implantação, na linha Fazer download do pacote, escolha Exibir logs. Como alternativa, use a AWS CLI para chamar o comando get-deployment-instance. Se esse erro tiver ocorrido, deverá haver um erro na saída com o código de erro "UnknownError" e a mensagem de erro "not opened for reading". Para determinar o motivo desse erro: 1. Habilite o registro em log em pelo menos uma das instâncias e depois implante novamente a revisão de aplicativo. 2. Examine o arquivo de log para encontrar o erro. Mensagens de erro comuns para esse problema incluem a frase "acesso negado". 3. Depois de examinar os arquivos de log, recomendamos que você desabilite o registro em log para reduzir o tamanho do arquivo de log e a quantidade de informações confidenciais que podem aparecer na saída em texto sem formatação na instância no futuro. Para saber como encontrar o arquivo de log e habilitar e desabilitar o registro em log, consulte: :log_aws_wire: em Trabalhando com o agente do AWS CodeDeploy (p. 119). Os scripts do Windows PowerShell não conseguem usar a versão de 64 bits do Windows PowerShell por padrão Se um script do Windows PowerShell executado como parte de uma implantação depender da funcionalidade de 64 bits (por exemplo, porque consome mais memória do que um aplicativo de 32 bits permitirá ou chama bibliotecas que são oferecidas somente em uma versão de 64 bits), o script poderá falhar ou não ser executado conforme esperado. Isso ocorre porque, por padrão, o AWS CodeDeploy usa a versão de 32 bits do Windows PowerShell para executar scripts do Windows PowerShell que fazem parte de uma revisão de aplicativo. Adicione um código como o seguinte ao início de qualquer script que deve ser executado com a versão de 64 bits do Windows PowerShell: # Are you running in 32-bit mode? 324

333 # (\SysWOW64\ = 32-bit mode) AWS CodeDeploy Guia do usuário Processos de execução longa podem fazer com que as implantações falhem if ($PSHOME -like "*SysWOW64*") { Write-Warning "Restarting this script under 64-bit Windows PowerShell." # Restart this script under 64-bit Windows PowerShell. # (\SysNative\ redirects to \System32\ for 64-bit mode) & (Join-Path ($PSHOME -replace "SysWOW64", "SysNative") powershell.exe) -File ` (Join-Path $PSScriptRoot # Exit 32-bit script. } Exit $LastExitCode # Was restart successful? Write-Warning "Hello from $PSHOME" Write-Warning " (\SysWOW64\ = 32-bit mode, \System32\ = 64-bit mode)" Write-Warning "Original arguments (if any): $args" # Your 64-bit script code follows here... #... Embora as informações do caminho de arquivo nesse código possam parecer contra-intuitivas, o Windows PowerShell de 32 bits usa um caminho como: c:\windows\syswow64\windowspowershell\v1.0\powershell.exe O Windows PowerShell de 64 bits usa um caminho como: c:\windows\system32\windowspowershell\v1.0\powershell.exe Processos de execução longa podem fazer com que as implantações falhem Para implantações em instâncias do Amazon Linux, Ubuntu Server e RHEL, se você tiver um script de implantação que inicia um processo de execução longa, o AWS CodeDeploy poderá demorar muito tempo no evento de ciclo de vida de implantação e, em seguida, reprovar a implantação. Isso ocorre porque, se o processo demorar mais que o tempo esperado para os processos de primeiro e segundo plano nesse evento, o AWS CodeDeploy interromperá e reprovará a implantação, mesmo que o processo ainda esteja sendo executado conforme o esperado. Por exemplo, uma revisão de aplicativo contém dois arquivos em sua raiz, after-install.sh e sleep.sh. Seu arquivo AppSpec contém as seguintes instruções: version: 0.0 os: linux files: - source:./sleep.sh destination: /tmp hooks: AfterInstall: - location: after-install.sh timeout: 60 O arquivo after-install.sh é executado durante o evento de ciclo de vida de aplicativo AfterInstall. Seu conteúdo é o seguinte: 325

334 Solucionar problemas com o grupo de implantação #!/bin/bash /tmp/sleep.sh O arquivo sleep.sh contém o seguinte, que suspende a execução do programa por três minutos (180 segundos), simulando alguns processos de execução longa: #!/bin/bash sleep 180 Quando after-install.sh chamar sleep.sh, sleep.sh será iniciado e continuará em execução por três minutos (180 segundos), o que corresponde a dois minutos (120 segundos) além do tempo estimado pelo AWS CodeDeploy para a interrupção da execução de sleep.sh (e, por relação, after-install.sh). Após o tempo limite de um minuto (60 segundos), o AWS CodeDeploy interromperá e reprovará a implantação no evento de ciclo de vida de aplicativo AfterInstall, mesmo que sleep.sh continue a ser executado conforme o esperado. O seguinte erro é exibido: Script at specified location: after-install.sh failed to complete in 60 seconds Você não pode simplesmente adicionar um E comercial (&) em after-install.sh para executar sleep.sh em segundo plano. #!/bin/bash # Do not do this. /tmp/sleep.sh & Ao fazer isso, é possível que a implantação fique em um estado pendente até o período de tempo limite do evento de ciclo de vida de implementação padrão de uma hora, após o qual o AWS CodeDeploy interromperá e reprovará a implantação no evento de ciclo de vida de aplicativo AfterInstall, como antes. Em after-install.sh, chame sleep.sh da seguinte maneira, o que permite que o AWS CodeDeploy continue depois que o processo começar a ser executado: #!/bin/bash /tmp/sleep.sh > /dev/null 2> /dev/null < /dev/null & Na chamada anterior, sleep.sh é o nome do processo que você deseja começar a executar em segundo plano, redirecionando stdout, stderr e stdin para /dev/null. Solucionar problemas com o grupo de implantação Marcar uma instância como parte de um grupo de implantação não implanta automaticamente seu aplicativo na nova instância O AWS CodeDeploy não implanta automaticamente seu aplicativo em uma instância recém-marcada. Você deve criar uma nova implantação no grupo de implantação. Você pode usar o AWS CodeDeploy para permitir implementações automáticas em novas instâncias do Amazon EC2 em grupos de Auto Scaling. Para obter mais informações, consulte Auto Scaling (p. 38). 326

335 Solução de problemas com a instância Solução de problemas com a instância Tópicos As tags devem ser definidas corretamente (p. 327) O agente AWS CodeDeploy deve estar instalado e em execução nas instâncias (p. 327) As implantações não falham por até uma hora quando uma instância é encerrada durante uma implantação (p. 327) Analisando arquivos de log para investigar falhas de implantação em instâncias (p. 328) Criar um novo arquivo de log do AWS CodeDeploy caso ele tenha sido excluído por acidente (p. 328) Solucionando erros de implantação que indicam "InvalidSignatureException Signature expired: [time] is now earlier than [time]" (p. 328) As tags devem ser definidas corretamente Use o comando list-deployment-instances para confirmar que as instâncias usadas para uma implantação estão marcadas corretamente. Se uma instância do Amazon EC2 estiver ausente na saída, use o console do Amazon EC2 para confirmar que as tags foram definidas nessa instância. Para obter mais informações, consulte o tópico sobre como trabalhar no console, no Guia do usuário do Amazon EC2 para instâncias do Linux. Se você marcar uma instância e usar imediatamente o AWS CodeDeploy para implantar um aplicativo nela, talvez essa instância não seja incluída na implantação. Isso ocorre porque podem ser necessários vários minutos antes que o AWS CodeDeploy possa ler as tags. Recomendamos que você aguarde pelo menos cinco minutos entre o momento de marcar uma instância e a tentativa de implantar nela. O agente AWS CodeDeploy deve estar instalado e em execução nas instâncias Para verificar se o agente do AWS CodeDeploy está instalado e em execução em uma instância, consulte Verificar se o agente do AWS CodeDeploy está em execução (p. 125). Para instalar, desinstalar ou reinstalar o agente do AWS CodeDeploy, consulte Instalar ou reinstalar o agente do AWS CodeDeploy (p. 128). As implantações não falham por até uma hora quando uma instância é encerrada durante uma implantação O AWS CodeDeploy fornece uma janela de uma hora para cada evento de ciclo de vida de implantação ser executado até sua conclusão. Isso fornece tempo suficiente para scripts de execução longa. Se ocorrer alguma coisa que impeça que os scripts sejam executados até a conclusão enquanto um evento de ciclo de vida estiver em andamento (por exemplo, se uma instância for encerrada ou o agente do AWS CodeDeploy for desligado), poderá demorar até uma hora para que o status da implantação seja exibido como Failed. Isso é verdade mesmo que o período de tempo limite especificado no script seja menor que uma hora. Isso ocorre porque, quando a instância for encerrada, o agente do AWS CodeDeploy será desligado e não poderá processar scripts adicionais. 327

336 Analisando arquivos de log para investigar falhas de implantação em instâncias Porém, se uma instância for encerrada entre eventos de ciclo de vida ou antes do início da primeira etapa do evento de ciclo de vida, o tempo limite ocorrerá depois de apenas cinco minutos. Analisando arquivos de log para investigar falhas de implantação em instâncias Se o status de uma instância na implantação for algo diferente de Succeeded, você poderá analisar os dados do arquivo de log de implantação para ajudar a identificar o problema. Para obter informações sobre como acessar dados do log de implantação, consulte Visualizar dados de log de implantações (p. 234). Criar um novo arquivo de log do AWS CodeDeploy caso ele tenha sido excluído por acidente Se você excluir acidentalmente o arquivo de log de implantação em uma instância, o AWS CodeDeploy não criará um arquivo de log de substituição. Para criar um novo arquivo de log, faça login na instância e depois execute estes comandos: Para uma instância do Amazon Linux, Ubuntu Server, or RHEL instance, execute estes comandos nesta ordem, um de cada vez: sudo service codedeploy-agent stop sudo service codedeploy-agent Para uma instância do Windows Server: powershell.exe -Command Restart-Service -Name codedeployagent Solucionando erros de implantação que indicam "InvalidSignatureException Signature expired: [time] is now earlier than [time]" O AWS CodeDeploy requer referências de tempo precisas para realizar suas operações. Se a data e a hora da sua instância não estiverem definidas corretamente, talvez elas não correspondam à data de assinatura da sua solicitação de implantação, que, portanto, será rejeitada pelo AWS CodeDeploy. Para evitar falhas de implantação relacionadas a configurações de tempo incorretas, consulte os seguintes tópicos: Definindo o tempo para sua instância do Linux Definindo o tempo para uma instância do Windows Solução de problemas com o Auto Scaling Tópicos Solução geral de problemas com o Auto Scaling (p. 329) 328

337 Solução geral de problemas com o Auto Scaling As instâncias em um grupo de Auto Scaling são continuamente provisionadas e encerradas antes que uma revisão possa ser implantada (p. 330) Terminar ou reiniciar uma instância do Auto Scaling pode fazer com que as implantações falhem (p. 330) Evite associar vários grupos de implantação a um único grupo de Auto Scaling (p. 331) As instâncias do Amazon EC2 em um grupo de Auto Scaling falham ao ser iniciadas e recebem o erro "Heartbeat Timeout" (p. 331) Ganchos de ciclo de vida de Auto Scaling com correspondência incorreta podem fazer com que implantações automáticas em grupos de Auto Scaling sejam interrompidas ou reprovadas (p. 332) Solução geral de problemas com o Auto Scaling Implementações em instâncias do Amazon EC2 em um grupo de Auto Scaling podem falhar pelos seguintes motivos: A Auto Scaling inicia e encerra instâncias do Amazon EC2 continuamente. Se o AWS CodeDeploy não puder implantar automaticamente sua revisão de aplicativo, a Auto Scaling continuará a iniciar e encerrar as instâncias do Amazon EC2. Desassocie o grupo de Auto Scaling da implantação do AWS CodeDeploy ou altere a configuração do seu grupo de Auto Scaling para que o número desejado de instâncias corresponda ao número atual de instâncias (impedindo assim que a Auto Scaling inicie mais instâncias do Amazon EC2). Para obter mais informações, consulte Alterar configurações do grupo de implantação (p. 210) ou o tópico sobre como configurar seus grupos de Auto Scaling. O agente do AWS CodeDeploy não responde.o agente do AWS CodeDeploy pode não ser instalado se scripts de inicialização (por exemplo, scripts cloud-init) que são executados imediatamente depois que uma instância do Amazon EC2 é lançada ou inicializada levarem mais de uma hora para serem executados. O AWS CodeDeploy tem um tempo limite de uma hora para o agente do AWS CodeDeploy responder a implantações pendentes. Para resolver esse problema, mova seus scripts de inicialização para sua revisão de aplicativo AWS CodeDeploy. Uma instância do Amazon EC2 em um grupo de Auto Scaling é reinicializada durante uma implantação.sua implantação poderá falhar se uma instância do Amazon EC2 for reinicializada durante uma implantação ou se o agente do AWS CodeDeploy for desligado durante o processamento de um comando de implantação. Para obter mais informações, consulte Terminar ou reiniciar uma instância do Auto Scaling pode fazer com que as implantações falhem (p. 330). As várias revisões de aplicativos são implantadas simultaneamente na mesma instância do Amazon EC2 em um grupo de Auto Scaling.A implantação de várias revisões de aplicativos na mesma instância do Amazon EC2 em um grupo de Auto Scaling ao mesmo tempo poderá falhar se uma das implantações tiver scripts que forem executados por mais de alguns minutos. Não implante várias revisões de aplicativos nas mesmas instâncias do Amazon EC2 em um grupo de Auto Scaling. Uma implantação falhará para novas instâncias do Amazon EC2 que forem iniciadas como parte de um grupo de Auto Scaling.Normalmente, nesse cenário, a execução de scripts em uma implantação pode impedir a inicialização de instâncias do Amazon EC2 no grupo de Auto Scaling. (Outras instâncias do Amazon EC2 no grupo de Auto Scaling podem parecer estar em execução normalmente.) Para resolver esse problema, verifique se todos os outros scripts são concluídos primeiro: O agente do AWS CodeDeploy não está incluído na sua AMI: se você usar o comando cfn-initpara instalar o agente do AWS CodeDeploy enquanto inicia uma nova instância, coloque o script de instalação do agente no final da seção cfn-init do seu template do AWS CloudFormation. O agente do AWS CodeDeploy está incluído na sua AMI : se você incluir o agente do AWS CodeDeploy na sua AMI, configure-o para que ele esteja em um estado Stopped quando a instância for criada e depois inclua um script para iniciar o agente como a etapa final na sua biblioteca de scripts cfn-init.. 329

338 As instâncias em um grupo de Auto Scaling são continuamente provisionadas e encerradas antes que uma revisão possa ser implantada As instâncias em um grupo de Auto Scaling são continuamente provisionadas e encerradas antes que uma revisão possa ser implantada Em alguns casos, um erro pode impedir uma implantação bem-sucedida em instâncias recémprovisionadas em um grupo de Auto Scaling. Os resultados são instâncias não íntegras e implantações sem sucesso. Como a implantação não pode ser executada ou concluída com êxito, as instâncias são encerradas logo depois de serem criadas. Em seguida, a configuração do grupo de Auto Scaling fará com que outro lote de instâncias seja provisionado para tentar atender ao requisito mínimo de hosts íntegros. Este lote também é encerrado, e o ciclo continua. As possíveis causas incluem: Verificações de integridade do grupo de Auto Scaling com falha Um erro na revisão de aplicativo Para contornar esse problema, siga estas etapas: 1. Crie manualmente uma instância do Amazon EC2 que não faça parte do grupo de Auto Scaling. Marque a instância com uma tag de instância do EC2 exclusiva. 2. Adicione a nova instância ao grupo de implementação afetado. 3. Implante uma nova revisão de aplicativo sem erros no grupo de implantação. Ela solicitará que o grupo de Auto Scaling implante a revisão de aplicativo em instâncias futuras no grupo de Auto Scaling. Depois de confirmar que as implantações foram bem-sucedidas, você pode excluir a instância que criou para evitar cobranças contínuas. Terminar ou reiniciar uma instância do Auto Scaling pode fazer com que as implantações falhem Se uma instância do Amazon EC2 for iniciada através do Auto Scaling e, em seguida, for encerrada ou reinicializada, as implantações nessa instância poderão falhar pelos seguintes motivos: Durante uma implantação em progresso, um evento de dimensionamento ou qualquer outro evento de encerramento fará com que a instância se desconecte do grupo de Auto Scaling e, em seguida, seja encerrada. Como a implantação não pode ser concluída, ela falha. A instância é reinicializada, mas demora mais de cinco minutos para ser iniciada. O AWS CodeDeploy considera isso um tempo limite. O serviço reprovará todas as implementações atuais e futuras nessa instância. Para resolver esse problema: Em geral, verifique se todas as implantações estão concluídas antes que a instância seja encerrada ou reinicializada. Verifique se todas as implantações são iniciadas após a reinicialização da instância. Se você especificar uma AMI (Imagem de Máquina da Amazon) base do Windows Server para uma configuração de Auto Scaling e usar o serviço EC2Config para definir o nome do computador da instância, esse comportamento poderá fazer com que as implantações falhem. Para desabilitar esse 330

339 Evite associar vários grupos de implantação a um único grupo de Auto Scaling comportamento, na AMI base do Windows Server, na guia Geral da caixa de diálogo Propriedades do serviço Ec2, desmarque a caixa Definir nome do computador. Depois que você desmarcar a caixa, esse comportamento será desabilitado para todas as novas instância de Auto Scaling do Windows Server iniciadas com essa AMI base do Windows Server. Para instâncias de Auto Scaling do Windows Server nas quais esse comportamento esteja habilitado, você não precisa desmarcar a caixa. Basta reimplantar implementações com falha nessas instâncias depois que elas forem reinicializadas. Evite associar vários grupos de implantação a um único grupo de Auto Scaling Como prática recomendada, você deve associar apenas um grupo de implantação a cada grupo de Auto Scaling. Isso porque, se a Auto Scaling dimensionar uma instância que tem ganchos associados a vários grupos de implantação, ela enviará notificações para todos os ganchos de uma só vez. Isso faz com que várias implantações em cada instância sejam iniciadas ao mesmo tempo. Quando várias implementações enviam comandos ao agente do AWS CodeDeploy ao mesmo tempo, o limite de cinco minutos na lógica de tempo limite do AWS CodeDeploy pode ser excedida. (A lógica do AWS CodeDeploy considera que uma implantação falhou quando suas etapas não são concluídos em até cinco minutos, mesmo que um processo de implantação esteja sendo executado como esperado em outras situações.) Não é possível controlar a ordem em que as implantações ocorrem quando mais de uma implantação tenta ser executada ao mesmo tempo. Por fim, se a implantação em qualquer instância falhar, a Auto Scaling encerrará essa instância imediatamente. Quando essa primeira instância for encerrada, as outras implementações que estavam em execução começarão a falhar. Como o AWS CodeDeploy tem um tempo limite de uma hora para o agente do AWS CodeDeploy responder a implantações pendentes, pode demorar até 60 minutos para que cada instância atinja o tempo limite. Para obter mais informações sobre problemas com tentativas de implantações múltiplas em uma instância ao mesmo tempo, consulte Evite implantações simultâneas na mesma instância do Amazon EC2 (p. 318). Para obter mais informações sobre a Auto Scaling, consulte Nos bastidores: integração entre o AWS CodeDeploy e o Auto Scaling. As instâncias do Amazon EC2 em um grupo de Auto Scaling falham ao ser iniciadas e recebem o erro "Heartbeat Timeout" Um grupo de Auto Scaling pode falhar ao inicializar novas instâncias do Amazon EC2, gerando uma mensagem semelhante à seguinte: Launching a new Amazon EC2 instance <instance-id>. Status Reason: Instance failed to complete user's Lifecycle Action: Lifecycle Action with token<token-id> was abandoned: Heartbeat Timeout. Essa mensagem geralmente indica que um aplicativo no AWS CodeDeploy foi excluído antes que seus grupos de implantação associados fossem atualizados ou excluídos. Quando você exclui um aplicativo ou grupo de implantação, o AWS CodeDeploy tenta limpar qualquer gancho de Auto Scaling associado a ele, mas alguns ganchos podem permanecer. Se você executar um comando para excluir um grupo de implantação, os ganchos restantes serão retornados na saída. Porém, se você executar um comando para excluir um aplicativo, os ganchos restantes não aparecerão na saída. 331

340 Ganchos de ciclo de vida de Auto Scaling com correspondência incorreta podem fazer com que implantações automáticas em grupos de Portanto, como prática recomendada, Auto Scaling sejam você interrompidas deve excluir todos ou reprovadas os grupos de implantação associados a um aplicativo antes de excluir esse aplicativo. É possível usar a saída do comando para identificar os ganchos de ciclo de vida que devem ser excluídos manualmente. Se você estiver recebendo uma mensagem de erro "Heartbeat Timeout", pode determinar se os ganchos de ciclo de vida útil restantes são a causa e resolver o problema, fazendo o seguinte: 1. Execute o comando update-deployment-group command ou delete-deployment-group. Examine a saída da chamada. Se a saída contiver uma estrutura hooksnotcleanedup com uma lista de ganchos de ciclo de vida de Auto Scaling, os ganchos de ciclo de vida restantes são provavelmente a causa do erro. 2. Chame o comando describe-lifecycle-hooks, especificando o nome do grupo de Auto Scaling associado às instâncias do Amazon EC2 que não puderam ser iniciadas. Na saída, procure qualquer nome de gancho de ciclo de vida de Auto Scaling que corresponda à estrutura hooksnotcleanedup que você identificou na etapa 1. Como alternativa, procure nomes de gancho de ciclo de vida de Auto Scaling que contenham o nome do grupo de implantação. 3. Chame o comando delete-lifecycle-hook para cada gancho de ciclo de vida de Auto Scaling. Especifique o grupo de Auto Scaling e um gancho de ciclo de vida. Se você excluir (de um grupo de Auto Scaling) todos os ganchos de ciclo de vida de Auto Scaling criados pelo AWS CodeDeploy, o AWS CodeDeploy deixará de implantar em instâncias do Amazon EC2 dimensionadas como parte desse grupo de Auto Scaling. Ganchos de ciclo de vida de Auto Scaling com correspondência incorreta podem fazer com que implantações automáticas em grupos de Auto Scaling sejam interrompidas ou reprovadas A Auto Scaling e o AWS CodeDeploy usam ganchos de ciclo de vida para determinar quais revisões de aplicativos devem ser implantadas em quais instâncias do Amazon EC2 depois de elas terem sido iniciadas em grupos de Auto Scaling. Implantações automáticas poderão ser interrompidas ou falhar se ganchos de ciclo de vida e as informações sobre esses ganchos não corresponderem exatamente na Auto Scaling e no AWS CodeDeploy. Se as implantações em um grupo de Auto Scaling estiverem falhando, veja se os nomes dos ganchos de ciclo de vida na Auto Scaling e no AWS CodeDeploy correspondem. Caso contrário, use estas chamadas de comando da AWS CLI. Primeiro, obtenha a lista dos nomes de ganchos de ciclo de vida para o grupo de Auto Scaling e o grupo de implantação: 1. Chame o comando describe-lifecycle-hooks, especificando o nome do grupo de Auto Scaling associado ao grupo de implantação no AWS CodeDeploy. Na saída, na lista LifecycleHooks, anote cada valor de LifecycleHookName. 2. Chame o comando get-deployment-group, especificando o nome do grupo de implantação associado ao grupo de Auto Scaling. Na saída, na lista autoscalinggroups, localize cada item cujo valor de nome corresponda ao nome do grupo de Auto Scaling e depois anote o valor de hook correspondente. Agora, compare os dois conjuntos de nomes de ganchos de ciclo de vida. Se eles corresponderem exatamente, caractere por caractere, então este não é o problema. Você pode tentar outras etapas de solução de problemas do Auto Scaling descritas em outras partes desta seção. 332

341 Códigos de erro No entanto, se os dois conjuntos de nomes de ganchos de ciclo de vida não corresponderem exatamente, caractere por caractere, faça o seguinte: 1. Se houver nomes de ganchos de ciclo de vida na saída do comando describe-lifecycle-hooks que também não estão na saída do comando get-deployment-group, faça o seguinte: 1. Para cada nome de gancho de ciclo de vida na saída do comando describe-lifecycle-hooks, chame o comando delete-lifecycle-hook. 2. Chame o comando update-deployment-group, especificando o nome do grupo de Auto Scaling original. O AWS CodeDeploy criará novos ganchos de ciclo de vida de substituição no grupo de Auto Scaling e os associará ao grupo de implantação. As implantações automáticas serão agora retomadas à medida que novas instâncias forem adicionadas ao grupo de Auto Scaling. 2. Se houver nomes de ganchos de ciclo de vida na saída do comando get-deployment-group que também não estão na saída do comando describe-lifecycle-hooks, faça o seguinte: 1. Chame o comando update-deployment-group, mas não especifique o nome do grupo de Auto Scaling original. 2. Chame o comando update-deployment-group, mas, desta vez, especifique o nome do grupo de Auto Scaling original. O AWS CodeDeploy recriará os ganchos de ciclo de vida ausentes no grupo de Auto Scaling. As implantações automáticas serão agora retomadas à medida que novas instâncias forem adicionadas ao grupo de Auto Scaling. Depois de fazer com que os dois conjuntos de nomes de ganchos de ciclo de vida correspondam exatamente, caractere por caractere, as revisões de aplicativos deverão ser reimplantadas, mas apenas nas novas instâncias à medida que elas forem adicionadas ao grupo de Auto Scaling. As implantações não ocorrerão automaticamente para instâncias que já estejam no grupo de Auto Scaling. Códigos de erro para o AWS CodeDeploy Este tópico fornece informações de referência sobre erros do AWS CodeDeploy. Código de erro AGENT_ISSUE Descrição A implantação falhou por causa de um problema com o agente do AWS CodeDeploy. Certifiquese de que o agente esteja instalado e em execução em todas as instâncias neste grupo de implantação. Saiba mais: Verificar se o agente do AWS CodeDeploy está em execução (p. 125) Instalar ou reinstalar o agente do AWS CodeDeploy (p. 128) Trabalhando com o agente do AWS CodeDeploy (p. 119) HEALTH_CONSTRAINTS A implantação geral falhou porque muitas instâncias individuais falharam na implantação, poucas instâncias íntegras estão disponíveis para implantação ou algumas instâncias no seu grupo de implantação estão apresentando problemas. 333

342 Códigos de erro Código de erro Descrição Saiba mais: Integridade da instância do AWS CodeDeploy (p. 184) Solução de problemas com a instância (p. 327) Solucionar problemas de implantação (p. 320) HEALTH_CONSTRAINTS_INVALID A implantação não pode ser iniciada porque o número mínimo de instâncias íntegras, definido pela configuração de implantação, não está disponível. Você pode reduzir o número necessário de instâncias íntegras, atualizando sua configuração de implantação ou aumentando o número de instâncias nesse grupo de implantação. Saiba mais: Integridade da instância do AWS CodeDeploy (p. 184) Trabalhando com instâncias (p. 139) IAM_ROLE_MISSING A implantação falhou porque nenhuma função de serviço existe com o nome de função de serviço especificado para o grupo de implantação. Verifique se você está usando o nome da função de serviço correto. Saiba mais: Etapa 3: criar uma função de serviço (p. 15) Alterar configurações do grupo de implantação (p. 210) IAM_ROLE_PERMISSIONS O AWS CodeDeploy não tem as permissões necessárias para assumir uma função, ou a função do IAM que você está usando não lhe dá permissão para realizar operações em um serviço da AWS. Saiba mais: Etapa 1: provisionar um usuário do IAM (p. 13) Etapa 3: criar uma função de serviço (p. 15) Etapa 4: criar um perfil de instância do IAM (p. 19) AUTO_SCALING_IAM_ROLE_PERMISSIONS A função de serviço associada ao seu grupo de implantação não tem a permissão necessária para realizar operações no seguinte serviço da AWS. Saiba mais: Etapa 3: criar uma função de serviço (p. 15) Criando uma função para delegar permissões a um serviço da AWS 334

343 Tópicos relacionados Código de erro OVER_MAX_INSTANCES Descrição A implantação falhou porque mais instâncias estão direcionadas para implantação do que o permitido para a sua conta. Para reduzir o número de instâncias direcionadas para essa implantação, atualize as configurações de tag desse grupo de implantação ou exclua algumas das instâncias direcionadas. Como alternativa, você pode entrar em contato com o Suporte da AWS para solicitar um aumento de limites. Saiba mais: Alterar configurações do grupo de implantação (p. 210) Limites (p. 312) Solicitar um aumento de limites THROTTLED A implantação falhou porque foram feitas mais solicitações do que o permitido para o AWS CodeDeploy para uma função do IAM. Tente reduzir o número de solicitações. Saiba mais: Taxa de solicitações de APIs de consulta UNABLE_TO_SEND_ASG A implantação falhou porque o grupo de implantação não está configurado corretamente com seu grupo do Auto Scaling. No console do AWS CodeDeploy, exclua o grupo do Auto Scaling do grupo de implantação e, em seguida, adicione-o novamente. Saiba mais: Nos bastidores: integração entre o AWS CodeDeploy e o Auto Scaling Tópicos relacionados Solução de problemas do AWS CodeDeploy (p. 316) 335

344 Guias de referência e recursos de suporte Recursos do AWS CodeDeploy Os seguintes recursos relacionados podem ajudá-lo enquanto você trabalha com o AWS CodeDeploy. Guias de referência e recursos de suporte AWS CodeDeploy API Reference: descrições, sintaxe e exemplos de uso sobre ações e tipos de dados do AWS CodeDeploy, incluindo parâmetros comuns e códigos de erro. Perguntas frequentes técnicas sobre o AWS CodeDeploy: as principais perguntas dos clientes sobre o AWS CodeDeploy. Notas de versão do AWS CodeDeploy: uma visão geral de alto nível das versões atuais e anteriores, especificamente notas sobre novos recursos, correções e problemas conhecidos. Centro de Suporte da AWS: a central para criar e gerenciar seus casos de Suporte da AWS. Também inclui links para outros recursos, como fóruns, perguntas frequentes técnicas, status de integridade de serviços e o AWS Trusted Advisor. Planos de suporte da AWS: a principal página da Web para obter informações sobre os planos de Suporte da AWS. Entre em contato conosco: um ponto central de contato para consultas relativas a faturamento, conta, eventos, abuso e outros problemas. Termos do site da AWS: informações detalhadas sobre nossos direitos autorais e marca registrada; sua conta, licença e acesso ao site, entre outros tópicos. Amostras Amostras do AWS CodeDeploy no GitHub: amostras e cenários de template para o AWS CodeDeploy. AWS CodeDeploy Jenkins Plugin: plugin Jenkins para o AWS CodeDeploy. Agente do AWS CodeDeploy: versão de software aberto do agente do AWS CodeDeploy. Blogs Blog AWS DevOps: informações para desenvolvedores, administradores do sistema e arquitetos. 336

345 Kits e ferramentas de desenvolvimento de software da AWS Kits e ferramentas de desenvolvimento de software da AWS Os seguintes SDKs e ferramentas da AWS oferecem suporte para o desenvolvimento de soluções com o AWS CodeDeploy: AWS SDK para.net AWS SDK for Java AWS SDK for JavaScript AWS SDK para PHP AWS SDK for Python (Boto) AWS SDK para Ruby AWS Toolkit para Eclipse Partes 1, 2 e 3. AWS Tools para Windows PowerShell: um conjunto de cmdlets do Windows PowerShell que expõem a funcionalidade do AWS SDK para.net no ambiente do PowerShell. Cmdlets do AWS CodeDeploy nas ferramentas da AWS para PowerShell: um conjunto de cmdlets do Windows PowerShell que expõem a funcionalidade do AWS CodeDeploy no ambiente do PowerShell. AWS Command Line Interface: uma sintaxe de linha de comando uniforme para acessar serviços da AWS. A AWS CLI usa um único processo de configuração para permitir o acesso para todos os serviços com suporte. Ferramentas para Desenvolvedores da AWS: links para ferramentas e recursos de desenvolvedores que fornecem documentação, amostras de código, notas de versão e outras informações para ajudar você a desenvolver aplicativos inovadores com o AWS CodeDeploy e a AWS. 337

346 Histórico do documento A tabela a seguir descreve as principais mudanças feitas neste guia do usuário para dar suporte às funcionalidades novas e aprimoradas desde a última versão do Guia do Usuário do AWS CodeDeploy. Versão da API: Atualização mais recente da documentação: 10 de agosto de 2017 Alteração Descrição Alterado em Tópicos atualizados Tópicos novos e atualizados O suporte do AWS CodeDeploy para load balancers do Elastic Load Balancing em grupos de implantação foi expandido para incluir Balanceador de carga de aplicaçõess, tanto para implantações azuis/verdes quanto para implantações no local. Agora você pode escolher entre um Balanceador de carga de aplicações e um Classic Load Balancer para seu grupo de implantação. Load balancers são obrigatórios em implantações azuis/verdes e opcionais em implantações no local. Os tópicos incluindo Integrando o AWS CodeDeploy com o Elastic Load Balancing (p. 40), Criar um aplicativo (p. 194) e Criar um grupo de implantação com o AWS CodeDeploy (p. 203) foram atualizados para refletir esse suporte adicional. O AWS CodeDeploy agora é compatível com o uso de grupos de várias tags para identificar uniões e interseções de instâncias a serem incluídas em um grupo de implantação. Se você usar um grupo de tag única, qualquer instância identificada por pelo menos uma tag no grupo é incluída no grupo de implementação. Se você usar grupos de várias tags, apenas as instâncias que são identificadas por pelo menos uma tag em cada um dos grupos de tags serão incluídas. Para obter informações sobre o novo método para adicionar instâncias a um grupo de implantação, consulte???. Outros tópicos atualizados para refletir este suporte incluem Criar um aplicativo para uma implantação no local (console) (p. 195), Criar um aplicativo para uma implantação azul/verde (console) (p. 197), Criar um grupo de implantação para uma implantação no local (console) (p. 203), Criar um grupo de implantação para uma implantação azul/verde (console) (p. 205), Implantações do AWS CodeDeploy (p. 7) e 10 de agosto de de julho de

347 Alteração Descrição Alterado em Etapa 5: criar um aplicativo e um grupo de implantação (p. 112) em Tutorial: usar o AWS CodeDeploy para implantar um aplicativo do GitHub (p. 106). Tópico atualizado Tópicos atualizados Tópicos atualizados Dois métodos adicionais para instalar o agente do AWS CodeDeploy em instâncias do Windows Server foram adicionados a Instalar ou reinstalar o agente do AWS CodeDeploy para o Windows Server (p. 130). Além dos comandos do Windows PowerShell, agora o arquivo de instalação das instruções está disponível para baixar usando um link HTTPS direto e usando um comando de cópia do Amazon S3. Depois que o arquivo é baixado ou copiado para uma instância, é possível executar a instalação manualmente. O AWS CodeDeploy melhorou sua estratégia de gerenciamento de conexões com contas e repositórios do GitHub. Agora, você pode criar e armazenar até 25 conexões com contas do GitHub para associar aplicativos AWS CodeDeploy a repositórios GitHub. Cada conexão pode dar suporte a vários repositórios. Você pode criar conexões com até 25 contas diferentes do GitHub ou criar mais de uma conexão com uma única conta. Depois de conectar um aplicativo a uma conta do GitHub, o AWS CodeDeploy gerencia as permissões de acesso necessárias sem exigir ações adicionais da sua parte. Atualizações para refletir esse suporte foram feitas em Especificar informações sobre uma revisão armazenada em um repositório GitHub (p. 230), Integrando o AWS CodeDeploy com o GitHub (p. 47) e Tutorial: usar o AWS CodeDeploy para implantar um aplicativo do GitHub (p. 106). No passado, se o agente do AWS CodeDeploy detectasse arquivos em uma localização de destino que não fazia parte da revisão de aplicativo da implantação bem-sucedida mais recente, a implantação atual falharia por padrão. Agora, o AWS CodeDeploy agora fornece opções sobre como o agente lida com esses arquivos: falha a implantação, mantém o conteúdo ou substitui o conteúdo. Atualização de Criar uma implantação com o AWS CodeDeploy (p. 226) para refletir esse suporte, e a nova seção Comportamento de reversão com conteúdo existente (p. 240) foi adicionada a Reimplantar e reverter uma implantação (p. 238). 12 de julho de de maio de de maio de

348 Alteração Descrição Alterado em Tópicos atualizados Tópicos atualizados Um Classic Load Balancer no Elastic Load Balancing agora pode ser atribuído a um grupo de implantação usando o console do AWS CodeDeploy ou a CLI da AWS. Em uma implantação no local, um balanceador de carga impede que o tráfego da Internet seja direcionado para uma instância durante o processo, tornando-a novamente disponível para tráfego assim que essa implantação for concluída. Vários tópicos foram atualizados para refletir esse novo suporte, incluindo Integração com outros serviços da AWS (p. 34), Integrando o AWS CodeDeploy com o Elastic Load Balancing (p. 40), Criar um aplicativo para uma implantação no local (console) (p. 195), Criar um grupo de implantação para uma implantação no local (console) (p. 203) e Seção 'hooks' de AppSpec (p. 291). Foi adicionada uma nova seção ao guia de solução de problemas, Solucionando problemas com eventos de ciclo de vida de implantação ApplicationStop, BeforeBlockTraffic e AfterBlockTraffic (p. 323). Um Classic Load Balancer no Elastic Load Balancing agora pode ser atribuído a um grupo de implantação usando o console do AWS CodeDeploy ou a CLI da AWS. Em uma implantação no local, um balanceador de carga impede que o tráfego da Internet seja direcionado para uma instância durante o processo, tornando-a novamente disponível para tráfego assim que essa implantação for concluída. Vários tópicos foram atualizados para refletir esse novo suporte, incluindo Integração com outros serviços da AWS (p. 34), Integrando o AWS CodeDeploy com o Elastic Load Balancing (p. 40), Criar um aplicativo para uma implantação no local (console) (p. 195), Criar um grupo de implantação para uma implantação no local (console) (p. 203) e Seção 'hooks' de AppSpec (p. 291). Foi adicionada uma nova seção ao guia de solução de problemas, Solucionando problemas com eventos de ciclo de vida de implantação ApplicationStop, BeforeBlockTraffic e AfterBlockTraffic (p. 323). 27 de abril de de maio de

349 Alteração Descrição Alterado em Tópicos atualizados Tópicos novos e atualizados Tópicos novos e atualizados O AWS CodeDeploy agora está disponível em Região China (Pequim). Para usar serviços em Região China (Pequim), é necessário ter uma conta e credenciais específicas para a região. As contas e credenciais de outras regiões do AWS não funcionarão para o Região China (Pequim), e vice-versa. Informações sobre alguns recursos do o Região China (Pequim), como procedimentos de instalação do agente do AWS CodeDeploy e nomes de buckets de kits de recursos do AWS CodeDeploy não estão incluídos nesta edição do Guia do usuário do AWS CodeDeploy. Para obter mais informações: AWS CodeDeploy em Conceitos básicos do AWS em Região China (Pequim) Guia do usuário do AWS CodeDeploy para Região China (Pequim) (versão em inglês versão em chinês) Vários novos tópicos foram introduzidos para refletir o novo suporte do AWS CodeDeploy para implantações azuis/verdes, um método de implantação no qual 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 de substituição). Visão geral de uma implantação azul/verde (p. 4) fornece uma explicação generalizada da metodologia azul/verde usada pelo AWS CodeDeploy. Testar uma implantação azul/ verde de amostra no AWS CodeDeploy (p. 25) fornece um guia para usar o novo Assistente de implantação de exemplo para implantações azuis/verdes. Novos tópicos adicionais incluem Criar um aplicativo para uma implantação azul/verde (console) (p. 197). Criar um grupo de implantação para uma implantação azul/verde (console) (p. 205), e Configurar um load balancer no Elastic Load Balancing para implantações do AWS CodeDeploy (p. 208). Vários tópicos foram atualizados também, incluindo Criar uma implantação com o AWS CodeDeploy (p. 226), Trabalhando com configurações de implantação no AWS CodeDeploy (p. 189), Criar um aplicativo (p. 194), Trabalhando com grupos de implantação (p. 202), Trabalhando com implantações (p. 225) e Seção 'hooks' de AppSpec (p. 291). Um novo tópico, Usar o comando register-on-premises-instance (ARN de sessão do IAM) para registrar uma instância local (p. 171), descreve como autenticar e registrar instâncias locais usando credenciais temporárias periodicamente atualizadas geradas pelo AWS Security Token Service. Essa abordagem oferece melhor suporte para grandes frotas de instâncias locais do que o uso exclusivo das credenciais de um usuário do IAM estático em cada instância. Trabalhando com instâncias locais para o AWS CodeDeploy (p. 156) também foi atualizado para refletir esse novo suporte. 29 de março de de janeiro de de dezembro de

350 Alteração Descrição Alterado em Tópicos atualizados Tópicos atualizados Tópicos atualizados Novos tópicos Tópico atualizado Tópicos atualizados Agora, o AWS CodeDeploy está disponível em Região da UE (Londres) (eu-west-2). Vários tópicos, incluindo aqueles que contêm instruções para configurar o agente do AWS CodeDeploy, foram atualizados para refletir a disponibilidade dessa nova região. Agora, o AWS CodeDeploy está disponível em Região do Canadá (Central) (ca-central-1). Vários tópicos, incluindo aqueles que contêm instruções para configurar o agente do AWS CodeDeploy, foram atualizados para refletir a disponibilidade dessa nova região. Agora, o AWS CodeDeploy está disponível em Região do Leste dos EUA (Ohio) (us-east-2). Vários tópicos, incluindo aqueles que contêm instruções para configurar o agente do AWS CodeDeploy, foram atualizados para refletir a disponibilidade dessa nova região. Uma nova seção, Controle de acesso e autenticação do AWS CodeDeploy (p. 265), fornece informações detalhadas sobre como usar AWS Identity and Access Management (IAM) e AWS CodeDeploy para ajudar a acessar de forma segura os recursos com o uso de credenciais. Essas credenciais fornecem as permissões necessárias para acessar recursos da AWS, como recuperar revisões de aplicativos de buckets do Amazon S3 e ler as tags nas instâncias do Amazon EC2. Atualizar o agente do AWS CodeDeploy no Windows Server (p. 134) foi atualizado para refletir a disponibilidade do novo atualizador do agente do AWS CodeDeploy para Windows Server. Quando instalado em uma instância do Windows Server, o atualizador verificará periodicamente se há novas versões. Quando uma nova versão for detectada, o atualizador desinstalará a versão atual do agente, se instalada, antes de instalar a versão mais recente. Agora, o AWS CodeDeploy se integra com do Amazon CloudWatch, permitindo interromper uma implantação se houver uma alteração no estado de um alarme especificado por um número de períodos consecutivos, conforme especificado no limite do alarme. Agora, o AWS CodeDeploy também oferece suporte à reversão automática de uma implantação quando determinadas condições são atendidas, por exemplo, uma falha de implantação ou um alarme ativado. Uma série de tópicos foram atualizados para refletir essas alterações, incluindo Criar um aplicativo (p. 194), Criar um grupo de implantação com o AWS CodeDeploy (p. 203), Alterar configurações do grupo de implantação (p. 210), Implantações do AWS CodeDeploy (p. 7), Reimplantar e reverter uma implantação (p. 238) e Integrações de produtos e serviços ao AWS CodeDeploy (p. 34), junto com um novo tópico, Monitorando implantações com alarmes do CloudWatch no AWS CodeDeploy (p. 248). 13 de dezembro de de dezembro de de outubro de de outubro de de outubro de de setembro de

351 Alteração Descrição Alterado em Tópicos novos e atualizados Atualizações de tópicos Atualizações de tópicos Atualizações de tópicos Agora, o AWS CodeDeploy fornece integração com o Eventos do Amazon CloudWatch. Agora, você pode usar o Eventos do CloudWatch para iniciar uma ou mais ações quando alterações são detectadas no estado de uma implantação ou no estado de uma instância que pertence a um grupo de implantação. Você pode incorporar ações que invocam funções do AWS Lambda que publicam em fluxos do Kinesis ou tópicos do Amazon SNS que enviam mensagens a filas do Amazon SQS ou que, por sua vez, disparam ações de alarmes do CloudWatch. Para obter mais informações, consulte Monitorando implantações com o Eventos do Amazon CloudWatch (p. 250). Os tópicos Integrating AWS CodeDeploy with Elastic Load Balancing (p. 40) e Integração com outros serviços da AWS (p. 34) foram atualizados para refletir uma opção de balanceamento de carga adicional. O AWS CodeDeploy agora é compatível com o Classic Load Balancer e o Balanceador de carga de aplicações, disponíveis no Elastic Load Balancing. Agora, o AWS CodeDeploy está disponível em Região da Ásia-Pacífico (Mumbai) (ap-south-1). Vários tópicos, incluindo aqueles que contêm instruções para configurar o agente do AWS CodeDeploy, foram atualizados para refletir a disponibilidade dessa nova região. Agora, o AWS CodeDeploy está disponível em Região da Ásia-Pacífico (Seul) (ap-northeast-2). Vários tópicos, incluindo aqueles que contêm instruções para configurar o agente do AWS CodeDeploy, foram atualizados para refletir a disponibilidade dessa nova região. O sumário foi reorganizada para incluir seções para instâncias, configurações de implantação, aplicativos, grupos de implantação, revisões e implantações. Uma nova seção foi adicionada para tutoriais do AWS CodeDeploy. Para facilitar o uso, vários tópicos longos, incluindo Referência ao AppSpec File do AWS CodeDeploy (p. 283) e Solução de problemas do AWS CodeDeploy (p. 316), foram divididos em tópicos mais curtos. Informações de configuração para o agente do AWS CodeDeploy foram transferidas para um novo tópico, Referência de configuração do agente do AWS CodeDeploy (p. 302). 9 de setembro de de agosto de de junho de de junho de

352 Alteração Descrição Alterado em Tópicos novos e atualizados Atualizações de tópicos Tópicos novos e atualizados Códigos de erro para o AWS CodeDeploy (p. 333) fornece informações sobre algumas das mensagens de erro que podem ser exibidas quando a implantação do AWS CodeDeploy falha. As seguintes seções em Solução de problemas do AWS CodeDeploy (p. 316) foram atualizadas para ajudar na resolução de problemas de implantação: As instâncias do Amazon EC2 em um grupo de Auto Scaling falham ao ser iniciadas e recebem o erro "Heartbeat Timeout" (p. 331) Evite implantações simultâneas na mesma instância do Amazon EC2 (p. 318) Evite associar vários grupos de implantação a um único grupo de Auto Scaling (p. 331) Agora, o AWS CodeDeploy está disponível em Região América do Sul (São Paulo) (sa-east-1). Vários tópicos, incluindo aqueles que contêm instruções para configurar o agente do AWS CodeDeploy, foram atualizados para refletir a disponibilidade dessa nova região. Atualização de Trabalhando com o agente do AWS CodeDeploy (p. 119) para refletir a nova opção de configuração :max_revisions:, usada para especificar o número de revisões de aplicativos para um grupo de implantação que você deseja que o agente do AWS CodeDeploy arquive. Agora, o AWS CodeDeploy oferece suporte à inclusão de gatilhos a um grupo de implantação para receber notificações sobre eventos relacionados a implantações ou instâncias nesse grupo de implantação. Essas notificações são enviadas aos destinatários inscritos em um tópico do Amazon Simple Notification Service que você incluiu como parte da ação do gatilho. Você também pode usar dados JSON que são criados quando um gatilho é disparado no seu próprio fluxo de trabalho de notificação personalizado. Para obter mais informações, consulte Monitorando implantações com notificações de eventos do Amazon SNS (p. 254). Procedimentos foram atualizados para refletir o novo design da página Application details. A seção As implantações não falham por até uma hora quando uma instância é encerrada durante uma implantação (p. 327) em Solução de problemas do AWS CodeDeploy (p. 316) foi atualizada. Atualização de Limites (p. 312) para refletir limites revisados para o número de grupos de implantação que podem ser associados a um único aplicativo, os valores permitidos para configurações mínimas de instâncias íntegras e as versões necessárias do AWS SDK para Ruby (aws-sdk-core). 20 de abril de de março de de fevereiro de

353 Alteração Descrição Alterado em Tópicos novos e atualizados Novo tópico Atualização de tópico Atualizações de tópicos Atualizações de tópicos Agora, o AWS CodeDeploy está agora disponível na região Oeste dos EUA (Norte da Califórnia) (us-west-1). Vários tópicos, incluindo aqueles que contêm instruções para configurar o agente do AWS CodeDeploy, foram atualizados para refletir a inclusão dessa nova região. Escolher um tipo de repositório do AWS CodeDeploy (p. 218) lista e descreve os tipos de repositórios agora com suporte pelo AWS CodeDeploy. Esse novo tópico será atualizado à medida que houver suporte para outros tipos de repositório. Foram feitas atualizações em Gerenciando operações do agente do AWS CodeDeploy (p. 125) com informações sobre o novo arquivo.version adicionado a instâncias para denunciar a versão atual do agente do AWS CodeDeploy, bem como informações sobre versões com suporte do agente. Foi adicionado realce de sintaxe para amostras de código, incluindo exemplos JSON e YAML, ao guia do usuário. Adicionar um AppSpec File (p. 216) foi reorganizado como instruções passo a passo. Implantar um aplicativo em uma conta da AWS diferente (p. 242) descreve os requisitos de configuração e o processo para iniciar implantações que pertencem a outra das contas da sua organização, sem precisar de um conjunto completo de credenciais para essa outra conta. Isso é muito útil para organizações que usam várias contas para diferentes finalidades, como uma associada a ambientes de desenvolvimento e teste e outra associada ao ambiente de produção. O tópico Integrações de produtos e serviços ao AWS CodeDeploy (p. 34) foi reprojetado. Agora, ele inclui uma seção para exemplos de integração da comunidade, com listas de postagens de blog e exemplos de vídeos relacionados a integrações com o AWS CodeDeploy. Agora, o AWS CodeDeploy está disponível em Região Ásia-Pacífico (Cingapura) (ap-southeast-1). Vários tópicos, incluindo aqueles que contêm instruções para configurar o agente do AWS CodeDeploy, foram atualizados para refletir a disponibilidade dessa nova região. Atualização de Trabalhando com o agente do AWS CodeDeploy (p. 119) para refletir a nova opção :proxy_uri: no arquivo de configuração do agente do AWS CodeDeploy. Foram feitas atualizações em Referência ao AppSpec File do AWS CodeDeploy (p. 283) com informações sobre como usar uma nova variável de ambiente, DEPLOYMENT_GROUP_ID, que scripts de gancho podem acessar durante um evento de ciclo de vida de implantação. 20 de janeiro de de dezembro de de dezembro de de dezembro de de dezembro de

354 Alteração Descrição Alterado em Atualização de tópico Atualização de Etapa 3: criar uma função de serviço (p. 15) para refletir um novo procedimento para criar uma função de serviço para o AWS CodeDeploy e para incorporar outras melhorias. 13 de novembro de 2015 Atualizações de tópicos Novos tópicos Atualizações de tópicos Atualizações de tópicos Atualizações de tópicos Agora, o AWS CodeDeploy está disponível em Região UE (Frankfurt) (eu-central-1). Vários tópicos, incluindo aqueles que contêm instruções para configurar o agente do AWS CodeDeploy, foram atualizados para refletir a disponibilidade dessa nova região. O tópico Solução de problemas do AWS CodeDeploy (p. 316) foi atualizado com informações sobre como garantir que as configurações de tempo nas instâncias estejam precisas. Referência de templates do AWS CloudFormation para o AWS CodeDeploy (p. 305) foi publicado para refletir o novo suporte do AWS CloudFormation para ações do AWS CodeDeploy. Criação de um tópico Componentes primários do AWS CodeDeploy (p. 5) e introdução da definição de uma revisão de destino. Atualização de Criar um grupo de implantação com o AWS CodeDeploy (p. 203) para refletir a capacidade de localizar instâncias para um grupo de implantação usando pesquisas com curingas. Atualização de Integridade da instância do AWS CodeDeploy (p. 184) para esclarecer o conceito de instâncias íntegras mínimas. Agora, o AWS CodeDeploy está disponível em Região Ásia- Pacífico (Tóquio) (ap-northeast-1). Vários tópicos, incluindo aqueles que contêm instruções para configurar o agente do AWS CodeDeploy, foram atualizados para refletir a disponibilidade dessa nova região. Agora, o AWS CodeDeploy oferece suporte a implantações em instâncias locais e instâncias do Amazon EC2 do Red Hat Enterprise Linux (RHEL). Para obter mais informações, consulte os tópicos a seguir: Sistemas operacionais com suporte com o agente do AWS CodeDeploy (p. 119) Trabalhando com instâncias (p. 139) Tutorial: implantar o WordPress em uma instância do Amazon EC2 (Amazon Linux ou Red Hat Enterprise Linux e Linux, macos, or Unix) (p. 51) Tutorial: implantar um aplicativo em uma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux) (p. 84) 19 de outubro de de outubro de de agosto de de agosto de de junho de

355 Alteração Descrição Alterado em Atualização de tópico Atualizações de tópicos Agora, o AWS CodeDeploy fornece um conjunto de variáveis de ambiente que os seus scripts de implantação podem usar durante implantações. Essas variáveis de ambiente incluem informações como o nome do aplicativo AWS CodeDeploy atual, o grupo de implantação e o evento de ciclo de vida de implantação, bem como o identificador de implantação do AWS CodeDeploy atual. Para obter mais informações, consulte o final da seção Seção 'hooks' de AppSpec (p. 291) no Referência ao AppSpec File do AWS CodeDeploy (p. 283). Agora, o AWS CodeDeploy fornece um conjunto de políticas gerenciadas da AWS no IAM que você pode usar em vez de criar manualmente as políticas equivalentes. Dentre elas estão: Uma política para permitir que um usuário do IAM registre revisões somente no AWS CodeDeploy e depois as implante por meio do AWS CodeDeploy. Uma política para fornecer a um usuário do IAM acesso total aos recursos do AWS CodeDeploy. Uma política para fornecer a um usuário do IAM acesso somente leitura aos recursos do AWS CodeDeploy. Uma política a ser anexada a uma função de serviço, para que o AWS CodeDeploy possa identificar instâncias do Amazon EC2 de acordo com suas tags do Amazon EC2, tags de instância local ou nomes de grupos do Auto Scaling e implantar revisões de aplicativos nessas instâncias de acordo. 29 de maio de de maio de 2015 Atualizações de tópicos Novos tópicos Para mais informações, consulte a seção Exemplos de política gerenciada pelo cliente (p. 274) em Controle de acesso e autenticação do AWS CodeDeploy (p. 265). Agora, o AWS CodeDeploy está disponível em Região UE (Irlanda) (eu-west-1) e Região Ásia-Pacífico (Sydney) (apsoutheast-2). Vários tópicos, incluindo aqueles que contêm instruções para configurar o agente do AWS CodeDeploy, foram atualizados para refletir a disponibilidade dessas novas regiões. Agora, o AWS CodeDeploy oferece suporte a implantações em instâncias locais e instâncias do Amazon EC2. Os seguintes tópicos foram adicionados para descrever esse novo suporte: Trabalhando com instâncias locais para o AWS CodeDeploy (p. 156) Tutorial: implantar um aplicativo em uma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux) (p. 84) Trabalhando com instâncias locais para o AWS CodeDeploy (p. 156) 7 de maio de de abril de 2015 Novo tópico Recursos do AWS CodeDeploy (p. 336) foi adicionado. 2 de abril de

356 Alteração Descrição Alterado em Atualização de tópico Atualizações de tópicos Atualização de Solução de problemas do AWS CodeDeploy (p. 316): Uma nova seção Processos de execução longa podem fazer com que as implantações falhem (p. 325) descreve as etapas que você pode realizar para identificar e solucionar falhas de implantação devido a processos de execução longa. Atualização da seção Solução geral de problemas com o Auto Scaling (p. 329) para mostrar que o AWS CodeDeploy aumentou sua lógica de tempo limite do Auto Scaling para o agente do AWS CodeDeploy de cinco minutos para uma hora. Uma nova seção Ganchos de ciclo de vida de Auto Scaling com correspondência incorreta podem fazer com que implantações automáticas em grupos de Auto Scaling sejam interrompidas ou reprovadas (p. 332) descreve as etapas que você pode realizar para identificar e resolver implantações automáticas com falhas em grupos de Auto Scaling. Os seguintes tópicos foram atualizados para refletir novas recomendações para criar suas próprias políticas personalizadas e, em seguida, anexá-las a usuários e funções no IAM: Configurar uma instância do Amazon EC2 para trabalhar com o AWS CodeDeploy (p. 153) Etapa 4: criar um perfil de instância do IAM (p. 19) Etapa 3: criar uma função de serviço (p. 15) Controle de acesso e autenticação do AWS CodeDeploy (p. 265) 2 de abril de de fevereiro de 2015 Duas seções foram adicionadas a Solução de problemas do AWS CodeDeploy (p. 316): Lista geral de verificação para solução de problemas (p. 317) Os scripts do Windows PowerShell não conseguem usar a versão de 64 bits do Windows PowerShell por padrão (p. 324) Atualizações de tópicos Atualização da seção Seção 'hooks' de AppSpec (p. 291) no Referência ao AppSpec File do AWS CodeDeploy (p. 283) para descrever com mais precisão os eventos de ciclo de vida de implantação disponíveis. Uma nova seção foi adicionada a Solução de problemas do AWS CodeDeploy (p. 316): As instâncias do Amazon EC2 em um grupo de Auto Scaling falham ao ser iniciadas e recebem o erro "Heartbeat Timeout" (p. 331). Uma seção CloudBees foi adicionada a Integrações de produtos e serviços ao AWS CodeDeploy (p. 34). 28 de janeiro de

357 Alteração Descrição Alterado em Atualizações de tópicos As seguintes seções foram adicionadas a Solução de problemas do AWS CodeDeploy (p. 316): Usar alguns editores de texto para criar arquivos AppSpec e scripts de shell pode fazer com que as implantações falhem (p. 319) Usar o Finder no Mac OS para agrupar uma revisão de aplicativo pode fazer com que as implantações falhem (p. 320) Solucionando problemas com eventos de ciclo de vida de implantação ApplicationStop, BeforeBlockTraffic e AfterBlockTraffic (p. 323) Solucionando problemas com um evento de ciclo de vida de implantação DownloadBundle com falha que indica "UnknownError: not opened for reading" (p. 324) Solução geral de problemas com o Auto Scaling (p. 329) 20 de janeiro de 2015 Informações foram adicionadas ao Etapa 5: experimentar o assistente de implantação de amostra do AWS CodeDeploy (p. 22) para esclarecer que certas permissões são necessárias para o usuário do IAM responsável pela chamada, especificamente: Etapa 3: configurar instâncias (p. 30) observa que certas permissões são necessárias para usar o template do AWS CloudFormation do passo-a-passo. Etapa 7: selecionar uma função de serviço (p. 31) observa que certas permissões são necessárias para criar uma função de serviço como parte do passo-a-passo. Etapa 9: revisar os detalhes da implantação (p. 32) observa que certas permissões são necessárias para criar aplicativos e grupos de implantação e para implantar aplicativos. Novos tópicos Para obter informações sobre as permissões necessárias, consulte Pré-requisitos (p. 23). Atualização da seção Integrações de produtos e serviços ao AWS CodeDeploy (p. 34) para incluir os seguintes tópicos Auto Scaling (p. 38) Tutorial: use AWS CodeDeploy para implantar um aplicativo em um grupo de Auto Scaling (p. 90) Monitoramento de implantações com o AWS CloudTrail (p. 252) Integrando o AWS CodeDeploy com o Elastic Load Balancing (p. 40) Integrando o AWS CodeDeploy com o GitHub (p. 47) Tutorial: usar o AWS CodeDeploy para implantar um aplicativo do GitHub (p. 106) 9 de janeiro de

358 Alteração Descrição Alterado em Atualizações de tópicos A seção Implantar automaticamente do GitHub com o AWS CodeDeploy (p. 49) foi adicionada a Integrando o AWS CodeDeploy com o GitHub (p. 47). Agora, é possível disparar automaticamente uma implantação de um repositório GitHub sempre que o código-fonte nesse repositório é alterado. A seção Solução de problemas com o Auto Scaling (p. 328) foi adicionada a Solução de problemas do AWS CodeDeploy (p. 316). Essa nova seção descreve como solucionar problemas comuns com a implantação em grupos de Auto Scaling. A nova subseção "Exemplos de arquivos" foi adicionada à seção Seção 'files' de AppSpec (p. 285) de Referência ao AppSpec File do AWS CodeDeploy (p. 283). Essa nova subseção inclui vários exemplos de como usar a seção files de um arquivo AppSpec para instruir o AWS CodeDeploy a copiar arquivos ou pastas específicos para locais específicos em uma instância do Amazon EC2 durante uma implantação. 8 de janeiro de 2015 Novo tópico Monitoramento de implantações com o AWS CloudTrail (p. 252) foi adicionado. O AWS CodeDeploy é integrado ao AWS CloudTrail, um serviço que captura chamadas de API feitas pelo ou em nome do AWS CodeDeploy na sua conta da AWS e entrega os arquivos de log em um bucket do Amazon S3 que você especifica. Atualização de tópico A seção Etapa 3: configurar instâncias (p. 30) em Etapa 5: experimentar o assistente de implantação de amostra do AWS CodeDeploy (p. 22) foi atualizada. 17 de dezembro de de dezembro de 2014 Lançamento público inicial Este é o lançamento público inicial do Guia do usuário do AWS CodeDeploy. 12 de novembro de

359 AWS Glossary For the latest AWS terminology, see the AWS Glossary in the AWS General Reference. 351

Amazon WorkSpaces Application Manager. Guia do usuário

Amazon WorkSpaces Application Manager. Guia do usuário Amazon WorkSpaces Application Manager Guia do usuário Amazon WorkSpaces Application Manager: Guia do usuário Copyright 2017 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's

Leia mais

Manual do Usuário Brother Meter Read Tool

Manual do Usuário Brother Meter Read Tool Manual do Usuário Brother Meter Read Tool BRA-POR Versão 0 Direitos autorais Copyright 2017 Brother Industries, Ltd. Todos os direitos reservados. As informações incluídas neste documento estão sujeitas

Leia mais

Leia-me do Veritas System Recovery 16 Management Solution

Leia-me do Veritas System Recovery 16 Management Solution Leia-me do Veritas System Recovery 16 Management Solution Sobre este Leia-me Requisitos do sistema para políticas de entrega de software do Veritas System Recovery 16 Requisitos do sistema para o Veritas

Leia mais

ADMINISTRANDO O WINDOWS SERVER 2012

ADMINISTRANDO O WINDOWS SERVER 2012 20411 - ADMINISTRANDO O WINDOWS SERVER 2012 CONTEÚDO PROGRAMÁTICO Módulo 1: Configurando e Solucionando problemas de sistema de nome de domínio Este módulo explica como configurar e solucionar problemas

Leia mais

Versão do documento agosto Usando recursos avançados de geração de relatórios Soluções Ariba On-Demand

Versão do documento agosto Usando recursos avançados de geração de relatórios Soluções Ariba On-Demand Versão do documento agosto 2012 Usando recursos avançados de geração de relatórios Soluções Ariba On-Demand Conteúdo Modificando opções de exibição....3 Formatando dados de campo....5 Analisando a variação

Leia mais

Guia de instalação. McAfee Web Gateway Cloud Service

Guia de instalação. McAfee Web Gateway Cloud Service Guia de instalação McAfee Web Gateway Cloud Service COPYRIGHT Copyright 2017 McAfee LLC ATRIBUIÇÕES DE MARCA McAfee e o logotipo da McAfee, McAfee Active Protection, epolicy Orchestrator, McAfee epo, Foundstone,

Leia mais

Guia de Instalação. 1. Guia de Instalação do Nintex Workflow 2010

Guia de Instalação.  1. Guia de Instalação do Nintex Workflow 2010 Guia de Instalação Nintex USA LLC 2012. Todos os direitos reservados. Salvo erros e omissões. [email protected] www.nintex.com 1 Sumário 1. Instalando o Nintex Workflow 2010... 4 1.1 Executar o instalador...

Leia mais

Guia de Instalação do Nintex Forms Guia de Instalação do Nintex Forms Nintex. All rights reserved. Errors and omissions excepted.

Guia de Instalação do Nintex Forms Guia de Instalação do Nintex Forms Nintex. All rights reserved. Errors and omissions excepted. Guia de Instalação do Nintex Forms 2013 [email protected] www.nintex.com 2013 Nintex. All rights reserved. Errors and omissions excepted. 1 Sumário 1. Instalando o Nintex Forms 2013... 4 1.1 Executar

Leia mais

Instruções de operação Site de aplicativos

Instruções de operação Site de aplicativos Antes de usar o equipamento, leia atentamente este manual e mantenha-o ao alcance para consultas futuras. Instruções de operação Site de aplicativos CONTEÚDO Como ler este manual... 2 Símbolos usados

Leia mais

ADMINISTRAÇÃO DE BANCOS DE DADOS DO MICROSOFT SQL SERVER

ADMINISTRAÇÃO DE BANCOS DE DADOS DO MICROSOFT SQL SERVER 20462 - ADMINISTRAÇÃO DE BANCOS DE DADOS DO MICROSOFT SQL SERVER CONTEÚDO PROGRAMÁTICO Estrutura de tópicos do curso Módulo 1: Introdução à administração de banco de dados do SQL Server 2014 Este módulo

Leia mais

INSTALANDO E CONFIGURANDO O WINDOWS SERVER 2012

INSTALANDO E CONFIGURANDO O WINDOWS SERVER 2012 20410 - INSTALANDO E CONFIGURANDO O WINDOWS SERVER 2012 CONTEÚDO PROGRAMÁTICO Módulo 1: Implantando e gerenciando o Windows Server 2012 Este módulo apresenta aos estudantes as edições do Windows Server

Leia mais

MANUAL DE INSTALAÇÃO SISTEMA DE GERÊNCIA CONSCIUS

MANUAL DE INSTALAÇÃO SISTEMA DE GERÊNCIA CONSCIUS MANUAL DE INSTALAÇÃO SISTEMA DE GERÊNCIA CONSCIUS 1 ÍNDICE ÍNDICE... 2 1. INTRODUÇÃO... 3 2. REQUISITOS... 3 2.1 Requisitos mínimos para utilização do instalador... 3 2.2 Requisitos mínimos para instalação

Leia mais

Entrega contínua: automatizar o pipeline de implantação

Entrega contínua: automatizar o pipeline de implantação White Paper Deployment Authomation Entrega contínua: automatizar o pipeline de implantação Índice página O valor da entrega contínua.... 1 A desconexão entre criar e implantar.... 3 Automação e integração

Leia mais

Notas sobre a Versão do Controlador de arquivos para HP 3PAR StoreServ

Notas sobre a Versão do Controlador de arquivos para HP 3PAR StoreServ Notas sobre a Versão do Controlador de arquivos para HP 3PAR StoreServ 3.03.0a Número de peça HP C8S69-96029 Publicado: Junho de 2013 Edição 1 Copyright 2013 Hewlett-Packard Development Company, L.P. Microsoft

Leia mais

Perguntas e respostas

Perguntas e respostas Autodesk Revit Autodesk Revit LT Perguntas e respostas Este documento fornece perguntas e respostas sobre como usar o software Autodesk Revit ou Autodesk Revit LT com o Boot Camp, parte do Mac OS X que

Leia mais

Neste tópico, você conhecerá a ferramenta Solution Packager, usada por parceiros e fornecedores de soluções de software para criar soluções prontas

Neste tópico, você conhecerá a ferramenta Solution Packager, usada por parceiros e fornecedores de soluções de software para criar soluções prontas Neste tópico, você conhecerá a ferramenta Solution Packager, usada por parceiros e fornecedores de soluções de software para criar soluções prontas para distribuir a outros parceiros. 1 Neste tópico, você

Leia mais

Requisitos do sistema

Requisitos do sistema Requisitos do sistema Sistema operacional O Nintex Workflow 2007 deve ser instalado no Microsoft Windows Server 2003 ou 2008. Cliente de navegação Microsoft Internet Explorer 6.x, embora recomende-se o

Leia mais

STD SERVIÇO DE BACKUP EM NUVEM

STD SERVIÇO DE BACKUP EM NUVEM Select Soluções Manual de Instalação Windows SBackup STD SERVIÇO DE BACKUP EM NUVEM Sumário 1. REQUERIMENTOS DE HARDWARE E SOFTWARE... 3 1.1. SOFTWARE... 3 2. PRIMEIROS PASSOS... 4 3. DOWNLOAD E INSTALAÇÃO

Leia mais

Milestone Systems. Aba Consulta rápida: Ativar licenças para os produtos XProtect VMS 2018 R3. XProtect Professional e XProtect Express

Milestone Systems. Aba Consulta rápida: Ativar licenças para os produtos XProtect VMS 2018 R3. XProtect Professional e XProtect Express Milestone Systems Aba Consulta rápida: Ativar licenças para os produtos XProtect VMS 2018 R3 XProtect Professional e XProtect Express Antes de iniciar Este guia descreve as etapas básicas para parceiros

Leia mais

AVG Admin 8.5 SQL Server 2005 Express

AVG Admin 8.5 SQL Server 2005 Express AVG Admin 8.5 SQL Server 2005 Express Conteúdo: 1. Instalação do SQL Server 2005 Express...3 1.1.Microsoft.Net Framework 2.0...3 1.2.Microsoft SQL Server 2005 Express...4 2. Instalação e Configuração do

Leia mais

Usando o VMware Identity Manager Desktop. VMware Identity Manager 2.8 VMware Identity Manager 2.9.1

Usando o VMware Identity Manager Desktop. VMware Identity Manager 2.8 VMware Identity Manager 2.9.1 Usando o VMware Identity Manager Desktop VMware Identity Manager 2.8 VMware Identity Manager 2.9.1 Usando o VMware Identity Manager Desktop Você pode encontrar a documentação técnica mais atualizada no

Leia mais

# Início Instalação e Configuração Servidor Antivírus Symantec Endpoint #

# Início Instalação e Configuração Servidor Antivírus Symantec Endpoint # ------------------------------ # Início Instalação e Configuração Servidor Antivírus Symantec Endpoint # ------------------------------ O Symantec Endpoint Protection 11.0 combina o Symantec AntiVirus

Leia mais

Manual Técnico. Instalação e Configuração do Reporting Services

Manual Técnico. Instalação e Configuração do Reporting Services 201 6 Manual Técnico Instalação e Configuração do Reporting Services Me ta T e c no l o g i a em So f t wa r e Lt da. Com a instalação do módulo de Reporting services poderemos disponibilizar relatórios,

Leia mais

É possível acessar o Fiery Remote Scan de sua área de trabalho ou de um aplicativo compatível com o TWAIN.

É possível acessar o Fiery Remote Scan de sua área de trabalho ou de um aplicativo compatível com o TWAIN. Fiery Remote Scan O Fiery Remote Scan permite gerenciar digitalizações no Servidor Fiery e na impressora a partir de um computador remoto. Você pode usar o Fiery Remote Scan para: Iniciar digitalizações

Leia mais

Instalação do IBM SPSS Modeler Entity Analytics

Instalação do IBM SPSS Modeler Entity Analytics Instalação do IBM SPSS Modeler Entity Analytics Índice IBM SPSS Modeler Entity Analytics Instalação.............. 1 IBM SPSS Modeler Entity Analytics (Lado do Cliente) 1 Requisitos de sistema..........

Leia mais

Spectrum Miner. Versão 8.0. Guia de administração para a integração do Portrait Dialogue

Spectrum Miner. Versão 8.0. Guia de administração para a integração do Portrait Dialogue Spectrum Miner Versão 8.0 Conteúdo 1 - Introdução Objetivo 4 Quem deve ler este manual 4 Documentação relacionada 4 2 - Visão geral da integração do Miner Visão geral da integração do Miner 6 3 - Instalação

Leia mais

Fiery Command WorkStation 5.8 com Fiery Extended Applications 4.4

Fiery Command WorkStation 5.8 com Fiery Extended Applications 4.4 Fiery Command WorkStation 5.8 com Fiery Extended Applications 4.4 O Fiery Extended Applications (FEA) v4.4 contém o Fiery software para executar tarefas usando o Fiery Server. Este documento descreve como

Leia mais

Guia de Instalação e Inicialização. Para DataPage+ 2012

Guia de Instalação e Inicialização. Para DataPage+ 2012 Para DataPage+ 2012 Última revisão: 29 de agosto de 2012 Índice Instalando componentes de pré-requisito... 1 Visão geral... 1 Passo 1: Execute o setup.exe e inicie o assistente... 1 Passo 2: Aceite os

Leia mais

CONFIGURAÇÃO DE SERVIÇOS AVANÇADOS DO WINDOWS SERVER 2012

CONFIGURAÇÃO DE SERVIÇOS AVANÇADOS DO WINDOWS SERVER 2012 20412 - CONFIGURAÇÃO DE SERVIÇOS AVANÇADOS DO WINDOWS SERVER 2012 CONTEÚDO PROGRAMÁTICO Módulo 1: Implementação de serviços de rede avançados Neste módulo os alunos serão capazes de configurar recursos

Leia mais

Começando com o AWS IoT

Começando com o AWS IoT Começando com o AWS IoT Bruno Emer e David Reis Dezembro de 2016 Conteúdo Começando com AWS IoT Parte 2 1 Pré-Requisitos 1 Conceitos Básicos 2 Arquitetura de Referência deste Tutorial 2 Acessar a Console

Leia mais

Atualizações de Software Guia do Usuário

Atualizações de Software Guia do Usuário Atualizações de Software Guia do Usuário Copyright 2007 Hewlett-Packard Development Company, L.P. Microsoft é uma marca registrada da Microsoft Corporation nos Estados Unidos. As informações contidas neste

Leia mais

Software de configuração para redes NetWare

Software de configuração para redes NetWare Novell NetWare Este tópico inclui: "Software de configuração para redes NetWare" na página 3-37 "Instalação rápida" na página 3-37 "Configuração avançada" na página 3-37 "Configuração do servidor de impressão

Leia mais

Se a tela de instalação não for exibida após um minuto, inicie o CD manualmente:

Se a tela de instalação não for exibida após um minuto, inicie o CD manualmente: Página 1 de 5 Guia de conexão Instalando uma impressora conectada localmente (Windows) Nota: se o sistema operacional não for suportado pelo CD Software e documentação, será necessário usar o Assistente

Leia mais

Instalar e desinstalar o CFC

Instalar e desinstalar o CFC Instalar e desinstalar o CFC Esta seção descreve o processo de instalação do Cliente de filtragem de conteúdo SonicWall nos sistemas do usuário final. Consulte a seção que se aplica ao sistema operacional

Leia mais

Leia-me do monitor do Veritas System Recovery 16

Leia-me do monitor do Veritas System Recovery 16 Leia-me do monitor do Veritas System Recovery 16 Sobre este Leia-me Recursos não mais suportados no Veritas System Recovery 16 Monitor Sobre o Veritas System Recovery 16 Monitor Requisitos do sistema Pré-requisitos

Leia mais

Este é o segundo modulo, nele abordaremos os métodos de gerenciamento do Windows Server 2008.

Este é o segundo modulo, nele abordaremos os métodos de gerenciamento do Windows Server 2008. Gerenciando o Windows Server 2008 Bem vindo(a), Este é o segundo modulo, nele abordaremos os métodos de gerenciamento do Windows Server 2008. Após essa aula você será capaz de: Definir quais são as formas

Leia mais

Amazon WorkSpaces Application Manager. Guia do Administrador

Amazon WorkSpaces Application Manager. Guia do Administrador Amazon WorkSpaces Application Manager Guia do Administrador Manager: Guia do Administrador Copyright 2017 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks and trade

Leia mais

1.1.Etapa 1 Bem vindo ao Assistente de Instalação do SIP Sistema Integrado de Pessoal...3

1.1.Etapa 1 Bem vindo ao Assistente de Instalação do SIP Sistema Integrado de Pessoal...3 Manual Instalação SIP 1 Sumário 1.Instalando o Sistema...3 1.1.Etapa 1 Bem vindo ao Assistente de Instalação do SIP Sistema Integrado de Pessoal...3 1.2.Etapa 2 Selecione o Local de Destino...3 1.3.Etapa

Leia mais

Tutorial Mão na Massa sobre Elastic Load Balancer

Tutorial Mão na Massa sobre Elastic Load Balancer Tutorial Mão na Massa sobre Elastic Load Balancer Este tutorial ira abordar como criar um ELB para fazer balanceamento da carga de tráfego através de várias intancias (servidores Cloud) EC2 em uma mesma

Leia mais

Manual do Utilizador Brother Meter Read Tool

Manual do Utilizador Brother Meter Read Tool Manual do Utilizador Brother Meter Read Tool POR Versão 0 Direitos de autor Direitos de autor 2017 Brother Industries, Ltd. Todos os direitos reservados. As informações contidas neste documento estão sujeitas

Leia mais

Início. Sistemas Operacionais Suportados. Suporte Técnico. Vídeos de Treinamento. Nosso sistema faz backup de tudo que é importante para você

Início. Sistemas Operacionais Suportados. Suporte Técnico. Vídeos de Treinamento. Nosso sistema faz backup de tudo que é importante para você Manual do Usuário Início Este documento tem como objetivo guiar você na instalação do agente e configuração básica do plano de backup. Sistemas Operacionais Suportados Plano Backup para Pessoas Microsoft

Leia mais

Manual de instalação do Microsoft SQL Server 2008 R2 Express no Windows 10

Manual de instalação do Microsoft SQL Server 2008 R2 Express no Windows 10 PASSO-A-PASSO Manual de instalação do Microsoft SQL Server 2008 R2 Express no Windows 10 JS SoftCom Documentação Automação Dropbox Pasta 07 Manuais e Procedimentos Instalações SQL Server Informações CÓDIGO:

Leia mais

Instalando Apache Solr no Mac OSX

Instalando Apache Solr no Mac OSX Instalando Apache Solr no Mac OSX Apache Solr é um plataforma de busca(search engine) de código livre construída sobre o Lucene. Solr é considerada a plataforma de busca para web sites mais popular que

Leia mais

Amostras e Tutoriais Versão 8 Release 0. Tutorial da Amostra de Contratação para o IBM Process Designer

Amostras e Tutoriais Versão 8 Release 0. Tutorial da Amostra de Contratação para o IBM Process Designer Amostras e Tutoriais Versão 8 Release 0 Tutorial da Amostra de Contratação para o IBM Process Designer ii Amostra de Contratação Manuais PDF e o Centro de Informações Os manuais PDF são fornecidos como

Leia mais

Procedimentos para Instalação do Sisloc Versão

Procedimentos para Instalação do Sisloc Versão Procedimentos para Instalação do Sisloc Versão 2017.10 Sumário: 1. Informações Gerais... 3 2. Etapa 1: Instalação do Sisloc... 4 Passo a passo... 4 3. Etapa 2: Instalação da base de dados Sisloc... 24

Leia mais

Assina Web S_Line Manual de Uso

Assina Web S_Line Manual de Uso 1. Introdução O Assina Web S_Line permite assinar digitalmente Resultados de Exames em XML que estão disponíveis na internet. É feito o download dos documentos no computador, convertidos para o formato

Leia mais

Avisos legais KYOCERA Document Solutions Inc.

Avisos legais KYOCERA Document Solutions Inc. Avisos legais É proibida a reprodução total ou parcial deste guia sem a devida autorização. As informações deste guia estão sujeitas a modificações sem aviso prévio. Não nos responsabilizamos por quaisquer

Leia mais

ZENworks 2017 Visão geral. Dezembro de 2016

ZENworks 2017 Visão geral. Dezembro de 2016 ZENworks 2017 Visão geral Dezembro de 2016 Informações legais Para saber mais sobre informações legais, marcas registradas, isenções de responsabilidades, garantias, exportação e outras restrições de uso,

Leia mais

Manual de Instalação Recuperação Fiscal

Manual de Instalação Recuperação Fiscal Manual de Instalação Recuperação Fiscal Versão 1.4 Junho de 2014 1 Controle de Alterações Nome Data Versão Descrição Thaís Oliveira 10/12/2013 1.0 Criação do Documento Fábio Franzoni 19/12/2013 1.1 Revisão

Leia mais

CLARO BACKUP ONLINE Guia Prático

CLARO BACKUP ONLINE Guia Prático CLARO BACKUP ONLINE Guia Prático Bem vindo ao Backup Online GUIA RÁPIDO DE CONFIGURAÇÃO DO BACK UP ONLINE Você está adquirindo uma das melhores plataformas de Backup na Nuvem disponíveis no mercado. Preparamos

Leia mais

Uma equipe forte: DocuWare e Microsoft Outlook

Uma equipe forte: DocuWare e Microsoft Outlook Connect to Outlook Product Info Uma equipe forte: DocuWare e Microsoft Outlook Use o Connect to Outlook para armazenar com rapidez seus e-mails diretamente no DocuWare do MS Outlook. Você também pode pesquisar

Leia mais

WINDOWS. 1. Baixar o software cwrsync e efetuar a instalação.

WINDOWS. 1. Baixar o software cwrsync e efetuar a instalação. Como configurar o RSYNC para a função Backup Auditor Este tutorial descreve a configuração do Rsync para as plataformas: Windows, Linux baseados em Debian e Linux baseados em Red Hat Importante: Devem

Leia mais

Atualizações de Software Guia do Usuário

Atualizações de Software Guia do Usuário Atualizações de Software Guia do Usuário Copyright 2009 Hewlett-Packard Development Company, L.P. Windows é uma marca registrada da Microsoft Corporation nos Estados Unidos. As informações contidas neste

Leia mais

IBM Managed Security Services para Reimplementação e Reativação do Agente

IBM Managed Security Services para Reimplementação e Reativação do Agente Descrição dos Serviços IBM Managed Security Services para Reimplementação e Reativação do Agente 1. Escopo dos Serviços O IBM Managed Security Services para Reimplementação e Reativação do Agente (denominado

Leia mais

X-RiteColor Master Web Edition

X-RiteColor Master Web Edition X-RiteColor Master Web Edition O presente documento contém instruções de instalação do X-RiteColor Master Web Edition. Favor seguir todas as instruções cuidadosamente na ordem fornecida. Antes de prosseguir,

Leia mais

ArcGIS for Server: Administração e. Configuração do Site.

ArcGIS for Server: Administração e. Configuração do Site. ArcGIS for Server: Administração e Configuração do Site Duração: 3 dias (24 horas) Versão do ArcGIS Pro: 10.x Material didático: Inglês. www.academiagis.com.br Descrição Este curso ensina como você planejar

Leia mais

MANUAL DO USUÁRIO GERÊNCIA DE APLICATIVOS

MANUAL DO USUÁRIO GERÊNCIA DE APLICATIVOS MANUAL DO USUÁRIO GERÊNCIA DE APLICATIVOS ÍNDICE Introdução Acessando a plataforma Monitorando dispositivos Gerenciando aplicativos Opções de segurança Recursos avançados desenvolvedor Contato 03 04 05

Leia mais

Data Warehouse ETL. Rodrigo Leite Durães.

Data Warehouse ETL. Rodrigo Leite Durães. Data Warehouse ETL Rodrigo Leite Durães [email protected] Introdução Um dos desafios da implantação de um DW é a integração dos dados de fontes heterogêneas e complexas, padronizando informações,

Leia mais

Guia do Google Cloud Print

Guia do Google Cloud Print Guia do Google Cloud Print Informações sobre o Google Cloud Print Imprimir usando o Google Cloud Print Apêndice Conteúdo Como ler os manuais... 2 Símbolos usados nos manuais... 2 Isenção de responsabilidade...

Leia mais

COMO INSTALAR O CATÁLOGO

COMO INSTALAR O CATÁLOGO Este guia tem por finalidade detalhar as etapas de instalação do catálogo e assume que o arquivo de instalação já foi baixado de nosso site. Caso não tenho sido feita a etapa anterior favor consultar o

Leia mais

MANUAL DO SISTEMA ACADÊMICO VERSÃO

MANUAL DO SISTEMA ACADÊMICO VERSÃO ÍNDICE 1. Sistema Acadêmico Grupo Prepara... 2 1.1. Instalação do Sistema Acadêmico Grupo Prepara... 2 1.1.1. Caso a pasta não tenha sido criada... 3 1.1.2. Caso a pasta tenha sido criada... 3 1.2. Requisitos

Leia mais

SISTEMA OPERACIONAL - ios

SISTEMA OPERACIONAL - ios Manual do Usuário SISTEMA OPERACIONAL - ios Copyright GVT 2015 Versão 1.4.2 www.gvtcloud.com.br 1 1 Cloud... 3 2 Instalacão do Cloud... 4 3 Configuração e uso do Cloud... 6 3.1 Home... 6 3.2 Fotos... 9

Leia mais

MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO DA APPLIANCE VIRTUAL GRAVITYZONE

MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO DA APPLIANCE VIRTUAL GRAVITYZONE MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO DA APPLIANCE VIRTUAL GRAVITYZONE Para instalar e configurar a Appliance Virtual: 1. Importe a imagem da Appliance Virtual GravityZone em seu ambiente virtualizado. 2.

Leia mais

Guia de instalação do REIS

Guia de instalação do REIS Guia de instalação do REIS Este guia foi desenvolvido para explicar o processo de instalação e configuração do REIS em ambiente de produção. Organização do projeto: O projeto REIS é configurado em dois

Leia mais

Manual de Instalação do Módulo de Segurança MMA SISGEN

Manual de Instalação do Módulo de Segurança MMA SISGEN Manual de Instalação do Módulo de Segurança MMA SISGEN 1. DESCRIÇÃO Este documento descreve os requisitos mínimos necessários e os procedimentos de download e instalação do Módulo de Segurança, utilizados

Leia mais

Manual de Instalação e Ativação OFFICE BANKING BRADESCO OBB PLUS

Manual de Instalação e Ativação OFFICE BANKING BRADESCO OBB PLUS Manual de Instalação e Ativação OFFICE BANKING BRADESCO OBB PLUS ÍNDICE 1 Instalação do OBB Plus... 3 2 2.1 Ativação dos Produtos... 14 Download do Instalador de Crédito a Funcionário 240, Multipag e Vendor...

Leia mais

Como atribuir um endereço IP e acessar seu dispositivo

Como atribuir um endereço IP e acessar seu dispositivo Manual do Usuário Índice Introdução................................................. 3 Suporte a navegadores........................................... 3 Sobre endereços IP..............................................

Leia mais

Atualizações do sistema Adendo do usuário

Atualizações do sistema Adendo do usuário Atualizações do sistema Adendo do usuário Atualizações do sistema é um serviço do servidor de impressão que mantém o software de sistema de seu servidor de impressão atualizado com as últimas atualizações

Leia mais

Acronis Snap Deploy 2.0 Guia de Instalação

Acronis Snap Deploy 2.0 Guia de Instalação Acronis Snap Deploy 2.0 Guia de Instalação Copyright Acronis, Inc., 2000-2008. Todos os direitos reservado. Windows e MS-DOS são marcas registradas da Microsoft Corporation. Todas as outras marcas são

Leia mais

LINUX Revenda de Hospedagem

LINUX Revenda de Hospedagem LINUX Revenda de Hospedagem Guia de Início Índice! Características da Revenda de Hospedagem! Cadastre-se para a Revenda de Hospedagem! Revenda de Hospedagem é para todo Mundo Como começar a revender imediatamente

Leia mais

Como usar o P-touch Transfer Manager

Como usar o P-touch Transfer Manager Como usar o P-touch Transfer Manager Versão 0 BRA-POR Introdução Aviso importante O conteúdo deste documento e as especificações deste produto estão sujeitos a alterações sem aviso prévio. A Brother se

Leia mais

Introdução ao Cliente de VPN Global

Introdução ao Cliente de VPN Global Introdução ao Cliente de VPN Global Sobre a Cliente de VPN Global de SonicWall Antes de começar Sobre a Cliente de VPN Global de SonicWall O SonicWall Cliente de VPN Global cria uma conexão de Rede virtual

Leia mais

Estas etapas preliminares devem ser executadas para todas as impressoras:

Estas etapas preliminares devem ser executadas para todas as impressoras: Windows NT 4.x Este tópico inclui: "Etapas preliminares" na página 3-26 "Etapas de instalação rápida em CD-ROM" na página 3-26 "Solução de problemas do Windows NT 4.x (TCP/IP)" na página 3-30 Etapas preliminares

Leia mais