AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de...

430
AWS CodeDeploy Guia do usuário Versão da API 2014-10-06

Transcript of AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de...

Page 1: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeployGuia do usuário

Versão da API 2014-10-06

Page 2: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuário

AWS CodeDeploy: Guia do usuárioCopyright © 2019 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 mannerthat is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks notowned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored byAmazon.

Page 3: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuário

Table of Contents........................................................................................................................................................ x

O que é o AWS CodeDeploy? ............................................................................................................. 1Vídeo de introdução do AWS CodeDeploy ..................................................................................... 2Benefícios do AWS CodeDeploy ................................................................................................... 2Visão geral das plataformas de computação do AWS CodeDeploy ..................................................... 2Visão geral dos tipos de implantação do AWS CodeDeploy .............................................................. 7

Visão geral de uma implantação no local ............................................................................... 8Visão geral de uma implantação azul/verde ............................................................................ 9

Deixe seu comentário ................................................................................................................ 12Componentes primários ............................................................................................................. 12Implantações ............................................................................................................................ 15

Implantações em uma AWS Lambda Plataforma de computação .............................................. 15Implantações em uma Amazon ECS Plataforma de computação ............................................. 18Implantações em uma EC2/No local Plataforma de computação ............................................... 23

Arquivos de especificação de aplicativo ........................................................................................ 28Arquivos AppSpec em uma Amazon ECS Plataforma de computação ...................................... 28Arquivos AppSpec em uma plataforma de computação AWS Lambda ....................................... 28Arquivos AppSpec em uma plataforma de computação EC2/local ............................................. 29Como o agente do AWS CodeDeploy usa o arquivo AppSpec ................................................ 29

Conceitos básicos ............................................................................................................................. 30Etapa 1: provisionar um usuário do IAM ....................................................................................... 30Etapa 2: instalar ou atualizar e depois configurar a AWS CLI ........................................................... 31Etapa 3: criar uma função de serviço ........................................................................................... 32

Criar uma função de serviço (console) ................................................................................. 32Criar uma função de serviço (CLI) ....................................................................................... 34Obter o ARN da função de serviço (console) ........................................................................ 36Obter o ARN da função de serviço (CLI) .............................................................................. 36

Etapa 4: Criar um perfil de instância do IAM ................................................................................. 36Criar um perfil de instância do IAM para suas instâncias do Amazon EC2 (CLI) .......................... 37Criar um perfil de instância do IAM para suas instâncias do Amazon EC2 (console) ..................... 39

Integrações de produtos e serviços ..................................................................................................... 41Integração com outros serviços da AWS ...................................................................................... 41

Amazon EC2 Auto Scaling ................................................................................................. 46Elastic Load Balancing ...................................................................................................... 49

Integração com produtos e serviços de parceiros .......................................................................... 52GitHub ............................................................................................................................. 56

Exemplos de integração da comunidade ...................................................................................... 59Publicações no blog .......................................................................................................... 59Vídeos ............................................................................................................................. 59

Tutoriais .......................................................................................................................................... 61Tutorial: Implantar o WordPress em uma instância não Windows ..................................................... 61

Etapa 1: iniciar uma instância do Amazon EC2 ..................................................................... 62Etapa 2: Configurar o conteúdo de origem ............................................................................ 64Etapa 3: carregar seu aplicativo no Amazon S3 .................................................................... 67Etapa 4: implantar seu aplicativo ......................................................................................... 71Etapa 5: atualizar e reimplantar seu aplicativo ....................................................................... 75Etapa 6: Limpeza .............................................................................................................. 78

Tutorial: implantar um aplicativo Hello World em uma instância do Windows Server ............................. 80Etapa 1: iniciar uma instância do Amazon EC2 ..................................................................... 81Etapa 2: Configurar o conteúdo de origem ............................................................................ 82Etapa 3: carregar seu aplicativo no Amazon S3 .................................................................... 84Etapa 4: implantar seu aplicativo ......................................................................................... 87Etapa 5: atualizar e reimplantar seu aplicativo ....................................................................... 91Etapa 6: Limpeza .............................................................................................................. 93

Versão da API 2014-10-06iii

Page 4: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuário

Tutorial: implantar um aplicativo em uma instância local ................................................................. 95Pré-requisitos ................................................................................................................... 96Etapa 1: configurar a instância local .................................................................................... 96Etapa 2: criar uma revisão de aplicativo de amostra ............................................................... 96Etapa 3: agrupar e carregar sua revisão de aplicativo no Amazon S3 ...................................... 100Etapa 4: implantar sua revisão de aplicativo ........................................................................ 100Etapa 5: verificar sua implantação ..................................................................................... 100Etapa 6: limpar os recursos .............................................................................................. 100

Tutorial: implantar em um grupo de Amazon EC2 Auto Scaling ...................................................... 102Pré-requisitos ................................................................................................................. 102Etapa 1: criar e configurar o grupo de Amazon EC2 Auto Scaling ........................................... 102Etapa 2: implantar o aplicativo no grupo do Amazon EC2 Auto Scaling .................................... 108Etapa 3: verificar seus resultados ...................................................................................... 114Etapa 4: Aumentar o número de instâncias do Amazon EC2 no grupo de Amazon EC2 AutoScaling .......................................................................................................................... 115Etapa 5: verificar novamente seus resultados ...................................................................... 116Etapa 6: Limpeza ............................................................................................................ 118

Tutorial: implantar um aplicativo do GitHub ................................................................................. 119Pré-requisitos ................................................................................................................. 120Etapa 1: configurar uma conta do GitHub ........................................................................... 120Etapa 2: criar um repositório GitHub .................................................................................. 120Etapa 3: carregar um aplicativo de exemplo no seu repositório GitHub ..................................... 122Etapa 4: provisionar uma instância .................................................................................... 125Etapa 5: criar um aplicativo e um grupo de implantação ........................................................ 125Etapa 6: implantar o aplicativo na instância ......................................................................... 126Etapa 7: monitorar e verificar a implantação ........................................................................ 129Etapa 8: limpar ............................................................................................................... 130

Trabalhando com o agente do AWS CodeDeploy ................................................................................. 132Sistemas operacionais com suporte com o agente do AWS CodeDeploy ......................................... 132

Sistemas operacionais Amazon EC2 AMI com suporte .......................................................... 132Sistemas operacionais locais com suporte .......................................................................... 133

Protocolo de comunicação e porta do agente do AWS CodeDeploy ................................................ 133Suporte da SDK da AWS para Ruby (aws-sdk-core) para o agente do AWS CodeDeploy .................... 133Histórico de versões do agente do AWS CodeDeploy ................................................................... 133Limpeza de revisões de aplicativo e arquivos de log ..................................................................... 137Arquivos instalados pelo agente do AWS CodeDeploy .................................................................. 137Gerenciando operações do agente do AWS CodeDeploy .............................................................. 139

Verificar se o agente do AWS CodeDeploy está em execução ............................................... 140Determinar a versão do agente do AWS CodeDeploy ........................................................... 141Instalar ou reinstalar o agente do AWS CodeDeploy ............................................................. 142Atualizar o agente do AWS CodeDeploy ............................................................................. 149Desinstalar o agente do AWS CodeDeploy ......................................................................... 153

Trabalhando com instâncias ............................................................................................................. 155Comparando instâncias do Amazon EC2 com instâncias locais ...................................................... 155Tarefas de instâncias para o AWS CodeDeploy ........................................................................... 156Marcar instâncias para implantações no AWS CodeDeploy ............................................................ 157

Exemplo 1: grupo de tag única, tag única ........................................................................... 158Exemplo 2: grupo de tag única, várias tags ......................................................................... 158Exemplo 3: grupos de várias tags, tags únicas .................................................................... 159Exemplo 4: grupos de várias tags, várias tags ..................................................................... 161

Trabalhando com instâncias do Amazon EC2 .............................................................................. 164Criar uma instância do Amazon EC2 (AWS CLI ou console do Amazon EC2) ........................... 165Criar uma instância do Amazon EC2 (modelo do AWS CloudFormation) .................................. 171Configurar uma instância do Amazon EC2 .......................................................................... 177

Trabalhando com instâncias locais ............................................................................................. 180Pré-requisitos para configurar uma instância local ................................................................ 181Registrar uma instância local ............................................................................................ 182

Versão da API 2014-10-06iv

Page 5: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuário

Gerenciando operações de instâncias locais ....................................................................... 203Exibir Detalhes da Instância ..................................................................................................... 208

Exibir Detalhes da Instância (console) ................................................................................ 208Exibir Detalhes da Instância (CLI) ...................................................................................... 209

Integridade da instância ........................................................................................................... 209Estado de integridade ...................................................................................................... 210Instâncias e implantações mínimas íntegras ........................................................................ 211

Trabalhando com configurações de implantação .................................................................................. 214Configurações de implantação em uma plataforma de computação EC2/No local ............................. 214

Configurações de implantação predefinidas ......................................................................... 214Configurações de implantação em uma plataforma de computação do Amazon ECS .......................... 217Configurações de implantação em uma AWS Lambda Compute Platform ........................................ 217

Configurações de implantação predefinidas ........................................................................ 217............................................................................................................................................ 218

Criar uma configuração de implantação ...................................................................................... 218Visualizar detalhes de configurações de implantação .................................................................... 219

Visualizar detalhes de configurações de implantação (console) .............................................. 219Visualizar configuração de implantação (CLI) ...................................................................... 220

Excluir a configuração de uma implantação ................................................................................. 220Trabalhando com aplicativos ............................................................................................................. 221

Criar um aplicativo .................................................................................................................. 221Criar um aplicativo para uma implantação no local (console) .................................................. 223Criar um aplicativo para uma implantação azul/verde (console) .............................................. 225Criar um aplicativo para uma implantação do serviço do Amazon ECS (console) ...................... 228Criar um aplicativo para uma implantação de função do AWS Lambda (console) ...................... 229Criar um aplicativo (CLI) .................................................................................................. 231

Visualizar detalhes de aplicativos .............................................................................................. 231Visualizar detalhes de aplicativos (console) ......................................................................... 231Visualizar detalhes de aplicativos (CLI) ............................................................................... 232

Renomear um aplicativo ........................................................................................................... 232Excluir um aplicativo ................................................................................................................ 232

Excluir um aplicativo (console) .......................................................................................... 232Excluir um aplicativo (AWS CLI) ........................................................................................ 233

Trabalhando com grupos de implantação ............................................................................................ 234Grupos de implantação em implantações da plataforma de computação Amazon ECS ...................... 234Grupos de implantação em implantações da plataforma de computação AWS Lambda ....................... 234Grupos de implantação em implantações EC2/No local Plataforma de computação ............................ 234............................................................................................................................................ 235

Criar um grupo de implantação ................................................................................................. 235Criar um grupo de implantação para uma implantação no local (console) ................................. 236Criar um grupo de implantação para uma implantação de EC2/No local azul/verde (console) ....... 238Criar um grupo de implantação para uma implantação da Amazon ECS (console) ..................... 241Configurar um load balancer no Elastic Load Balancing para implantações do AWS CodeDeploy .. 242Criar um grupo de implantação (CLI) ................................................................................. 243

Visualizar detalhes do grupo de implantação. .............................................................................. 243Visualizar detalhes do grupo de implantação (console) ......................................................... 244Visualizar detalhes do grupo de implantação (CLI) ............................................................... 244

Altere as configurações do grupo de implantação. ........................................................................ 244Alterar configurações do grupo de implantação (console) ...................................................... 245Alterar configurações do grupo de implantação (CLI) ............................................................ 245

Configurar opções avançadas para um grupo de implantação ........................................................ 246Exclua um grupo de implantação ............................................................................................... 248

Excluir um grupo de implantação (console) ......................................................................... 248Excluir um grupo de implantação (CLI) ............................................................................... 249

Como trabalhar com revisões de aplicativos ........................................................................................ 250Planejar uma revisão ............................................................................................................... 250Adicionar um AppSpec File ...................................................................................................... 251

Versão da API 2014-10-06v

Page 6: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuário

Adicionar um arquivo AppSpec para uma implantação de Amazon ECS .................................. 251Adicionar um arquivo AppSpec para uma implantação de AWS Lambda .................................. 253Adicionar um arquivo AppSpec para uma implantação de EC2/No local ................................... 255

Escolher um tipo de repositório ................................................................................................. 257Enviar uma revisão por push .................................................................................................... 259

Enviar uma revisão usando a AWS CLI .............................................................................. 261Visualizar detalhes de revisões de aplicativo ............................................................................... 262

Visualizar detalhes de revisões de aplicativo (console) .......................................................... 262Visualizar detalhes de revisões de aplicativo (CLI) ............................................................... 263

Registrar uma revisão de aplicativo ........................................................................................... 264Registrar uma revisão no Amazon S3 com o AWS CodeDeploy (CLI) ...................................... 264Registrar uma revisão no GitHub com o AWS CodeDeploy (CLI) ............................................ 265

Trabalhando com implantações ......................................................................................................... 266Criar uma implantação ............................................................................................................. 267

Pré-requisitos de implantação ........................................................................................... 267Criar uma implantação (console) Amazon ECS Plataforma de computação. .............................. 270Criar uma implantação (console) AWS Lambda Plataforma de computação. ............................. 271Criar uma implantação (console) EC2/No local Plataforma de computação. .............................. 272Criar uma implantação Amazon ECS Plataforma de computação (CLI) .................................... 276Criar uma implantação AWS Lambda Plataforma de computação (CLI) ................................... 277Criar uma implantação EC2/No local Plataforma de computação (CLI) ..................................... 278

Visualizar detalhes de implantações ........................................................................................... 280Visualizar detalhes de implantações (console) ..................................................................... 280Visualizar detalhes de implantações (CLI) ........................................................................... 281

Visualizar dados de log de implantações .................................................................................... 281Visualizar dados do arquivo de log no console do Amazon CloudWatch ................................... 281Visualizar arquivos de log em uma instância ....................................................................... 282

Interromper uma implantação .................................................................................................... 284Interromper uma implantação (console) .............................................................................. 284Interromper uma implantação (CLI) .................................................................................... 285

Reimplantar e reverter uma implantação ..................................................................................... 285Reversões automáticas .................................................................................................... 285Reversões manuais ......................................................................................................... 285Fluxo de trabalho de reversão e reimplantação .................................................................... 286Comportamento de reversão com conteúdo existente ........................................................... 287

Implantar um aplicativo em uma conta da AWS diferente .............................................................. 289Etapa 1: criar um bucket do S3 em qualquer uma das contas ................................................ 289Etapa 2: conceder permissões de bucket do Amazon S3 ao perfil de instâncias do IAM da contade produção ................................................................................................................... 289Etapa 3: criar recursos e uma função entre contas na conta de produção ................................. 290Etapa 4: carregar a revisão de aplicativo no bucket do Amazon S3 ......................................... 291Etapa 5: assumir a função entre contas e implantar aplicativos ............................................... 291

Validar um pacote de implantação em uma máquina local ............................................................. 292Pré-requisitos ................................................................................................................. 292Criar uma implantação local ............................................................................................. 294Exemplos ....................................................................................................................... 295

Monitorando implantações ................................................................................................................ 297Ferramentas automatizadas ...................................................................................................... 297Ferramentas manuais .............................................................................................................. 298Monitorando implantações com ferramentas do Amazon CloudWatch .............................................. 299

Monitorando implantações com alarmes do CloudWatch ....................................................... 299Monitoramento de implantações com o Eventos do Amazon CloudWatch ................................. 301

Monitoramento de implantações com o AWS CloudTrail ................................................................ 303Informações do AWS CodeDeploy no CloudTrail .................................................................. 303Noções básicas das entradas dos arquivos de log do AWS CodeDeploy .................................. 304

Monitorando implantações com notificações de eventos do Amazon SNS ........................................ 305Conceder permissões do Amazon SNS a uma função de serviço ............................................ 306

Versão da API 2014-10-06vi

Page 7: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuário

Criar um gatilho para um evento do AWS CodeDeploy ......................................................... 307Editar um gatilho em um grupo de implantação ................................................................... 312Excluir um gatilho de um grupo de implantação ................................................................... 313Formatos de dados JSON para gatilhos ............................................................................. 314

Autenticação e controle de acesso .................................................................................................... 316Autenticação ........................................................................................................................... 316Controle de acesso ................................................................................................................. 317Visão geral do gerenciamento de acesso .................................................................................... 317

Recursos e operações ..................................................................................................... 318Entender a propriedade de recursos .................................................................................. 319Gerenciamento do acesso aos recursos ............................................................................. 319Especificação de elementos da política: ações, efeitos e principais ......................................... 321Especificação de condições em uma política ....................................................................... 322

Uso de políticas baseadas em identidade (políticas do IAM) .......................................................... 322Permissões necessárias para usar o console do AWS CodeDeploy ......................................... 323Políticas gerenciadas (predefinidas) da AWS para o AWS CodeDeploy .................................... 323Exemplos de política gerenciada pelo cliente ....................................................................... 325

Referência de permissões AWS CodeDeploy .............................................................................. 327Referência de arquivos AppSpec ....................................................................................................... 334

Arquivos AppSpec em uma plataforma de computação do Amazon ECS ......................................... 334Arquivos AppSpec em uma plataforma de computação AWS Lambda ............................................. 334Arquivos AppSpec em uma plataforma de computação EC2/local ................................................... 335AppSpec FileEstrutura do ......................................................................................................... 335

Estrutura de arquivos AppSpec para implantações de Amazon ECS ....................................... 335Estrutura de arquivos AppSpec para implantações de AWS Lambda ....................................... 336Estrutura de arquivos AppSpec para implantações de EC2/No local ........................................ 337A seção 'files' AppSpec (EC2/No local Implantações somente) ............................................... 338Seção 'resources' do AppSpec (somente implantações do Amazon ECS e AWS Lambda) .......... 341A seção 'permissions' AppSpec (EC2/No local Implantações somente) .................................... 343Seção 'hooks' de AppSpec ............................................................................................... 347

AppSpec File Exemplo ............................................................................................................. 361Exemplo de AppSpec File para uma implantação Amazon ECS ............................................. 361Exemplo de AppSpec File para uma implantação AWS Lambda ............................................ 363Exemplo de AppSpec File para uma implantação EC2/No local ............................................. 364

Espaçamento de AppSpec File ................................................................................................. 364Validar seu AppSpec File e local do arquivo ............................................................................... 365

Referência de configuração do agente ............................................................................................... 367Tópicos relacionados ............................................................................................................... 369

Referência de templates do AWS CloudFormation ............................................................................... 370Referência ao kit de recursos ........................................................................................................... 372

Nomes de bucket do kit de recursos por região ........................................................................... 372Conteúdo do kit de recursos ..................................................................................................... 373Exibir uma lista dos arquivos do kit de recursos ........................................................................... 374Fazer download dos arquivos do kit de recursos .......................................................................... 375

Limites ........................................................................................................................................... 377Aplicativos .............................................................................................................................. 377Revisões de aplicativo ............................................................................................................. 377Implantações .......................................................................................................................... 378Configurações de implantação .................................................................................................. 379Grupos de implantação ............................................................................................................ 379Instâncias ............................................................................................................................... 380

Solução de problemas ..................................................................................................................... 381Problemas de solução de problemas gerais ................................................................................ 381

Lista geral de verificação para solução de problemas ........................................................... 381Os recursos de implantação do AWS CodeDeploy têm suporte apenas em certas regiões ........... 382Funções do IAM necessárias não estão disponíveis ............................................................. 383

Versão da API 2014-10-06vii

Page 8: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuário

Usar alguns editores de texto para criar arquivos AppSpec e scripts de shell pode fazer com queas implantações falhem .................................................................................................... 383O uso do Finder no macOS para agrupar uma revisão de aplicativo pode causar falhas naimplantação .................................................................................................................... 384

Solução de problemas de implantação da EC2/No local ................................................................ 384A implantação falha com a mensagem "Validation of PKCS7 signed message failed" .................. 385A implantação ou reimplantação dos mesmos arquivos nos mesmos locais de instância falhacom um erro indicando que a implantação falhou porque um arquivo especificado já existe nalocalização ..................................................................................................................... 385Solucionando problemas com um evento de ciclo de vida AllowTraffic com falha em erro relatadonos logs de implantação .................................................................................................. 387Solucionando problemas com eventos de ciclo de vida de implantação ApplicationStop,BeforeBlockTraffic e AfterBlockTraffic ................................................................................. 387Solucionando problemas com um evento de ciclo de vida de implantação DownloadBundle comfalha que indica "UnknownError: not opened for reading" ....................................................... 388Os scripts do Windows PowerShell não conseguem usar a versão de 64 bits do WindowsPowerShell por padrão ..................................................................................................... 389Processos de execução longa podem fazer com que as implantações falhem ........................... 389

Solução de problemas de implantação da AWS Lambda ............................................................... 391As implantações do AWS Lambda falha após a interrupção manual de uma implantação doLambda que não tem reversões configuradas ...................................................................... 391

Solucionar problemas com o grupo de implantação ...................................................................... 391Marcar uma instância como parte de um grupo de implantação não implanta automaticamenteseu aplicativo na nova instância ........................................................................................ 391

Solução de problemas com a instância ...................................................................................... 392As tags devem ser definidas corretamente .......................................................................... 392O agente AWS CodeDeploy deve estar instalado e em execução nas instâncias ....................... 392As implantações não falham por até uma hora quando uma instância é encerrada durante umaimplantação .................................................................................................................... 392Analisando arquivos de log para investigar falhas de implantação em instâncias ........................ 393Criar um novo arquivo de log do AWS CodeDeploy caso ele tenha sido excluído por acidente ...... 393Solucionando erros de implantação que indicam "InvalidSignatureException – Signature expired:[time] is now earlier than [time]" ........................................................................................ 393

Solução de problemas de token do GitHub ................................................................................. 393Token OAuth inválido do GitHub ....................................................................................... 393Número máximo de tokens OAuth do GitHub excedido ......................................................... 394

Solução de problemas com o Amazon EC2 Auto Scaling .............................................................. 394Solução geral de problemas do Amazon EC2 Auto Scaling .................................................... 394As instâncias em um grupo de Amazon EC2 Auto Scaling são continuamente provisionadas eencerradas antes que uma revisão possa ser implantada ...................................................... 395Terminar ou reiniciar uma instância do Amazon EC2 Auto Scaling pode fazer com que asimplantações falhem ........................................................................................................ 396Evite associar vários grupos de implantação a um único grupo de Amazon EC2 Auto Scaling ...... 396As instâncias do Amazon EC2 em um grupo de Amazon EC2 Auto Scaling falham ao seriniciadas e recebem o erro "Heartbeat Timeout" ................................................................... 397Ganchos de ciclo de vida de Amazon EC2 Auto Scaling com correspondência incorreta podemfazer com que implantações automáticas em grupos de Amazon EC2 Auto Scaling sejaminterrompidas ou reprovadas ............................................................................................. 398

Códigos de erro ...................................................................................................................... 399Tópicos relacionados ....................................................................................................... 401

Recursos ....................................................................................................................................... 402Guias de referência e recursos de suporte .................................................................................. 402Amostras ............................................................................................................................... 402Blogs ..................................................................................................................................... 402Kits e ferramentas de desenvolvimento de software da AWS ......................................................... 402

Histórico do documento .................................................................................................................... 404Atualizações anteriores ............................................................................................................ 405

Versão da API 2014-10-06viii

Page 9: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuário

AWS Glossary ................................................................................................................................ 420

Versão da API 2014-10-06ix

Page 10: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuário

Os procedimentos neste guia são compatíveis com o novo design do console. Se você optar por usar aversão mais antiga do console, muitos dos conceitos e procedimentos básicos deste guia ainda serãoaplicáveis. Para acessar a ajuda no novo console, escolha o ícone de informações.

Versão da API 2014-10-06x

Page 11: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuário

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

Você pode implantar uma variedade quase ilimitada de conteúdos de aplicativos, incluindo:

• código• funções AWS Lambda sem servidor• arquivos de configuração e da Web• executáveis• packages• scripts• arquivos de multimídia

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

O AWS CodeDeploy facilita para você:

• Lançar novos recursos rapidamente.• Atualizar versões da função do AWS Lambda.• Evite tempo de inatividade durante a implantação do aplicativo.• Processar a complexidade da atualização de seus aplicativos sem muitos dos riscos associados a

implantações manuais propensas a erro.

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

O AWS CodeDeploy funciona com vários sistemas de gerenciamento de configurações, controle deorigem, integração contínua, entrega contínua e implantação contínua. Para obter mais informações,consulte Integrações de produtos.

Tópicos• Vídeo de introdução do AWS CodeDeploy (p. 2)• Benefícios do AWS CodeDeploy (p. 2)• Visão geral das plataformas de computação do AWS CodeDeploy (p. 2)• Visão geral dos tipos de implantação do AWS CodeDeploy (p. 7)• Deixe seu comentário (p. 12)• Componentes primários do AWS CodeDeploy (p. 12)• Implantações do AWS CodeDeploy (p. 15)• Arquivos de especificação de aplicativo do AWS CodeDeploy (p. 28)

Versão da API 2014-10-061

Page 12: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVídeo de introdução do AWS CodeDeploy

Vídeo de introdução do AWS CodeDeployEste breve vídeo (2:10) descreve como o AWS CodeDeploy automatiza as implantações de código eminstâncias do Amazon EC2.

Passo-a-passo em vídeo de uma implantação do AWS CodeDeploy.

Benefícios do AWS CodeDeployO AWS CodeDeploy oferece estes benefícios:

• Aplicativos de contêiner, com e sem servidor. O AWS CodeDeploy permite implantar tanto aplicativostradicionais em servidores quanto aplicativos que implantam uma versão de função AWS Lambda semservidor ou um aplicativo do Amazon ECS.

• Implantações automatizadas. O AWS CodeDeploy automatiza totalmente as implantações de aplicativosnos seus ambientes de desenvolvimento, teste e produção. O AWS CodeDeploy se expande com ainfraestrutura, para que você possa implantar em uma ou milhares de instâncias.

• Minimize o tempo de inatividade. Se o seu aplicativo usa a EC2/No local Plataforma de computação,o AWS CodeDeploy ajuda a maximizar a disponibilidade do seus aplicativo. Durante uma implantaçãono 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 desubstituição. O tráfego é roteado novamente para essas instâncias no momento que você escolher, sejaimediatamente ou assim que o teste do novo ambiente terminar. Para ambos os tipos de implantação, oAWS 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 oumanualmente.

• Controle centralizado. Você pode iniciar e controlar o status das suas implantações no console do AWSCodeDeploy ou na AWS CLI. Você recebe um relatório que lista quando cada revisão de aplicativo foiimplantada 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 seintegrar com o processo de lançamento de software ou a cadeia de ferramentas de entrega contínua.

• Implantações simultâneas. Se você tiver mais de um aplicativo que usa o EC2/No local Plataformade computação, o AWS CodeDeploy poderá implantá-los simultaneamente no mesmo conjunto deinstâncias.

Visão geral das plataformas de computação doAWS CodeDeploy

O AWS CodeDeploy pode implantar aplicativos em três plataformas de computação:

• EC2/No local: Descreve instâncias de servidores físicos que podem ser instâncias do Amazon EC2 nanuvem, instâncias na nuvem, servidores no local ou ambos. Aplicativos criados usando o EC2/No localPlataforma de computação podem ser composto de arquivos executáveis, arquivos de configuração,imagens e muito mais.

As implantações que usam o EC2/No local Plataforma de computação gerenciam a maneira com queo tráfego é direcionado para instâncias usando um tipo de implantação local ou azul/verde. Para obtermais informações, consulte Visão geral dos tipos de implantação do AWS CodeDeploy (p. 7).

Versão da API 2014-10-062

Page 13: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisão geral das plataformas de

computação do AWS CodeDeploy

• AWS Lambda: usado para implantar aplicativos que consistem em uma versão atualizada de umafunção do Lambda. O AWS Lambda gerencia a função do Lambda em um ambiente de computaçãosem servidor composto por uma estrutura de computação de alta disponibilidade. Toda administraçãodos recursos de computação é realizada pelo AWS Lambda. Para obter mais informações, consulteAplicativos e computação sem servidor. Para obter mais informações sobre o AWS Lambda e funçõesdo Lambda, consulte AWS Lambda.

Os aplicativos criados usando a AWS Lambda Plataforma de computação podem gerenciar a maneiracomo o tráfego é direcionado para as versões da função do Lambda atualizadas durante umaimplantação, escolhendo uma configuração canary, linear ou todas de uma só vez.

• Amazon ECS: usada para implantar um aplicativo em contêineres do Amazon ECS como um conjuntode tarefas. O AWS CodeDeploy realiza uma implantação azul/verde instalando uma versão atualizadado aplicativo em contêineres como um novo conjunto de tarefas de substituição. O AWS CodeDeployroteia o tráfego de produção do aplicativo original, ou conjunto de tarefas, para o conjunto de tarefas desubstituição. O conjunto de tarefas original é encerrado após uma implantação bem-sucedida. Para obtermais informações sobre o Amazon ECS, consulte Amazon Elastic Container Service.

A tabela a seguir descreve como os componentes do AWS CodeDeploy são usados com cada Plataformade computação. Para obter mais informações, consulte:

• Trabalhando com grupos de implantação no AWS CodeDeploy (p. 234)• Trabalhando com implantações no AWS CodeDeploy (p. 266)• Trabalhando com configurações de implantação no AWS CodeDeploy (p. 214)• Trabalhando com revisões de aplicativos para o AWS CodeDeploy (p. 250)• Trabalhando com aplicativos no AWS CodeDeploy (p. 221)

Componente do AWSCodeDeploy

EC2/No local AWS Lambda AmazonECS

Grupo de implantação Implanta uma revisão emum conjunto de instâncias.

Implanta uma novaversão de uma funçãoLambda sem servidorem uma infraestruturade computação de altadisponibilidade.

Especificao serviçodo AmazonECS com oaplicativo emcontêineresparaimplantarcomo umconjunto detarefas, umlistener deproduçãoe de testeopcionalusado parafornecer otráfego parao aplicativoimplantado,quandorotearnovamenteo tráfegoe encerrar

Versão da API 2014-10-063

Page 14: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisão geral das plataformas de

computação do AWS CodeDeploy

Componente do AWSCodeDeploy

EC2/No local AWS Lambda AmazonECSo conjuntode tarefasoriginal doaplicativoimplantado econfiguraçõesopcionaisde trigger,alarme ereversão.

Implantação Implanta uma nova revisãoque consiste em umaplicativo e um arquivoAppSpec. O AppSpecespecifica como implantar oaplicativo nas instâncias emum grupo de implantação.

Passa o tráfego deprodução de uma versãode uma função Lambdapara uma nova versão damesma função. O AppSpecfile especifica qual versãoda função Lambda seráimplantada.

Implantauma versãoatualizadade umaplicativodo AmazonECS emcontêinerescomoum novoconjunto detarefas desubstituição.O AWSCodeDeployroteianovamenteo tráfego deprodução doconjunto detarefas coma versãooriginalpara o novoconjunto detarefas desubstituiçãocom aversãoatualizada.Quando aimplantaçãoforconcluída,o conjuntode tarefasoriginal éencerrado.

Versão da API 2014-10-064

Page 15: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisão geral das plataformas de

computação do AWS CodeDeploy

Componente do AWSCodeDeploy

EC2/No local AWS Lambda AmazonECS

Configuração deimplantação

Configurações quedeterminam a velocidadede implantação e o númeromínimo de instâncias quedevem permanecer íntegrasem qualquer ponto de umaimplantação.

Configurações quedeterminam como o tráfegoé deslocado para asversões atualizadas dafunção Lambda.

O tráfegoé semprepassadode umasó vez. Asconfiguraçõesdaimplantaçãopersonalizadanãopodem serespecificadaspara umaimplantaçãodo AmazonECS.

Versão da API 2014-10-065

Page 16: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisão geral das plataformas de

computação do AWS CodeDeploy

Componente do AWSCodeDeploy

EC2/No local AWS Lambda AmazonECS

Revisão Uma combinação deum arquivo AppSpec earquivos de aplicativo, comoexecutáveis, arquivos deconfiguração, etc.

Um arquivo AppSpec queespecifica a função Lambdaque será implantada efunções Lambda quepodem executar testes devalidação durante ganchosde evento de ciclo de vidade implantação.

UmAppSpecfile queespecifica:

• Adefiniçãode tarefadoAmazonECSpara oserviço doAmazonECScom oaplicativoemcontêineresque seráimplantado.

• Ocontêineronde seuaplicativoatualizadoéimplantado.

• Uma portapara ocontêinerem que otráfego deproduçãoéredirecionado.

• Asconfiguraçõesde redeopcionaise asfunçõesLambdaquepodemexecutartestes devalidaçãodurante osganchosdo eventode ciclo

Versão da API 2014-10-066

Page 17: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisão geral dos tipos de implantação do AWS CodeDeploy

Componente do AWSCodeDeploy

EC2/No local AWS Lambda AmazonECS

de vida deimplantação.

Aplicativo Uma coleção de gruposde implantação e revisões.Um aplicativo da EC2/Nolocal usa a EC2/No localPlataforma de computação.

Uma coleção de gruposde implantação e revisões.Um aplicativo usado parauma implantação do AWSLambda usa a Amazon ECSPlataforma de computação.

Uma coleçãode grupos deimplantaçãoe revisões.Umaplicativousadopara umaimplantaçãodo AmazonECS usaa AmazonECSPlataformadecomputação.

Visão geral dos tipos de implantação do AWSCodeDeploy

O AWS CodeDeploy fornece duas opções de tipo de implantação:

• Implantação no local: o aplicativo em cada instância no grupo de implantação é interrompido, a últimarevisão de aplicativo é instalada, e a nova versão do aplicativo é iniciada e validada. Você pode usarum load balancer 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. Somente implantações queusam o EC2/No local Plataforma de computação podem usar implantações no local. Para obter maisinformações sobre implantações no local, consulte Visão geral de uma implantação no local (p. 8).

Note

As implantações AWS Lambda Plataforma de computação não podem usar um tipo deimplantação no local.

• Implantação verde/azul: o comportamento da implantação depende de qual Plataforma de computaçãovocê usa:• Azul/verde em uma EC2/No local Plataforma de computação: as instâncias em um grupo de

implantação (o ambiente original) são substituídas por um conjunto diferente de instâncias (o ambientede 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 ambienteoriginal serão canceladas e podem ser interrompidas ou mantidas em execução para outros usos.

Versão da API 2014-10-067

Page 18: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisão geral de uma implantação no local

Note

Se você usar uma EC2/No local Plataforma de computação, esteja ciente de que asimplantações azul/verde funcionam somente com instâncias do Amazon EC2.

• Azul/verde em uma AWS Lambda Plataforma de computação: o tráfego é deslocado do seu ambientesem servidor atual para um com suas versões atualizadas da função do Lambda. Você podeespecificar as funções Lambda que realizam testes de validação e escolher a maneira como ocorreo deslocamento do tráfego. Todas as implantações AWS Lambda Plataforma de computação sãoimplantações azul/verde. Por esse motivo, você não precisa especificar um tipo de implantação.

• Azul/verde em uma Amazon ECS Plataforma de computação: o tráfego é deslocado do conjunto detarefas com a versão original de um aplicativo em contêineres em um serviço do Amazon ECS paraum conjunto de tarefas de substituição no mesmo serviço. O protocolo e a porta de um listener deload balancer especificado são usados para rotear novamente o tráfego de produção. Durante umaimplantação, um listener de teste pode ser usado para fornecer o tráfego ao conjunto de tarefas desubstituição enquanto testes de validação são executados.

Para obter mais informações sobre implantações azul/verde, consulte Visão geral de uma implantaçãoazul/verde (p. 9).

Note

Ao usar o agente do AWS CodeDeploy, você pode executar uma implantação em uma instânciana qual está conectado sem a necessidade de um aplicativo, grupo de implantação ou mesmouma conta da AWS. Para obter informações, consulte Usar o agente do AWS CodeDeploy paravalidar um pacote de implantação em uma máquina local (p. 292).

Tópicos• Visão geral de uma implantação no local (p. 8)• Visão geral de uma implantação azul/verde (p. 9)

Visão geral de uma implantação no localO diagrama a seguir mostra o fluxo de uma típico implantação no local do AWS CodeDeploy.

Note

As implantações AWS Lambda Plataforma de computação não podem usar um tipo deimplantação no local.

Versão da API 2014-10-068

Page 19: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisão geral de uma implantação azul/verde

Como isso funciona:

1. Primeiro, você cria conteúdo implantável na sua máquina de desenvolvimento local ou em um ambientesemelhante e, em seguida, adiciona um application specification file (AppSpec file). O AppSpec fileé exclusivo do AWS CodeDeploy. Ele define as ações de implantação que você deseja que o AWSCodeDeploy execute. Você agrupa seu conteúdo implementável e o AppSpec file em um arquivamentoe depois carrega esse arquivamento em um bucket do Amazon S3 ou em um repositório GitHub. Essearquivo é 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 deinstâncias do Amazon EC2 seu conteúdo deve ser implantado. O AWS CodeDeploy chama um conjuntode instâncias do Amazon EC2 um grupo de implantação. Um grupo de implantação contém instânciasindividualmente marcadas do Amazon EC2, instâncias do Amazon EC2 em grupos do Amazon EC2Auto Scaling ou ambos.

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

3. Em seguida, o agente do AWS CodeDeploy em cada instância faz uma sondagem no AWS CodeDeploypara determinar o que extrair do bucket do Amazon S3 ou do repositório GitHub especificado e quandoessa extração deve ocorrer.

4. Por fim, o agente do AWS CodeDeploy em cada instância extrai a revisão de destino do bucket doAmazon S3 ou repositório GitHub especificado e, usando as instruções no AppSpec file, implanta oconteúdo na instância.

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

Visão geral de uma implantação azul/verdeUma implantação azul/verde roteia novamente o tráfego do seu ambiente original do aplicativo para umambiente de substituição. Seu ambiente depende da Plataforma de computação do aplicativo do AWSCodeDeploy.

Versão da API 2014-10-069

Page 20: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisão geral de uma implantação azul/verde

• AWS Lambda: O tráfego de implantação é passado de uma versão de uma função Lambda para umanova versão da mesma função Lamdba.

• Amazon ECS: O tráfego é passado de um conjunto de tarefas em seu serviço do Amazon ECS para umconjunto de tarefas de substituição atualizado no mesmo serviço do Amazon ECS.

• EC2/No local: O tráfego é passado de um conjunto de instâncias no ambiente original para um conjuntode instâncias de substituição.

Todas as implantações da Amazon ECS e AWS Lambda são azul/verde. Uma implantação de EC2/Nolocal pode ser local ou azul/verde. Uma implantação azul/verde oferece uma série de vantagens emrelação a uma implantação no local:

• Um aplicativo pode ser instalado e testado no novo ambiente de substituição e implantado paraprodução por meio do redirecionamento do tráfego.

• Se você estiver usando o EC2/No local Plataforma de computação, mudar novamente para a versãomais recente de um aplicativo é mais rápido e mais confiável. Isso ocorre porque o tráfego pode serdirecionado de volta para as instâncias originais, desde que elas não tenham sido encerradas. Comuma implantação no local, as versões devem ser revertidas com a reimplantação da versão anterior doaplicativo.

• Se você estiver usando a EC2/No local Plataforma de computação, as novas instâncias sãoprovisionadas para uma implantação azul/verde e refletirá as configurações de servidor maisatualizadas. Isso ajuda a evitar os tipos de problemas que ocorrem algumas vezes em instâncias deexecução prolongada.

• Se você estiver usando a AWS Lambda Plataforma de computação, você controla como o tráfego épassado da versão original da função da AWS Lambda para a nova versão da função da AWS Lambda.

O modo como você configura uma implantação verde/azul depende de qual plataforma de computação suaimplantação está usando.

Implantação azul/verde em uma Plataforma de computação AWSLambdaSe você estiver usando a AWS Lambda Plataforma de computação, será necessário escolher um dosseguintes tipos de configuração de implantação para especificar como o tráfego será deslocado de versãooriginal da função AWS Lambda para a nova versão da função AWS Lambda:

• Canary: O tráfego é deslocado em dois incrementos. Você pode escolher entre opções do canarypredefinidas que especificam a porcentagem de tráfego deslocada para a versão da função do Lambdaatualizada no primeiro incremento e no intervalo, em minutos, antes que o tráfego restante sejadeslocado no segundo incremento.

• Linear: O tráfego é deslocado em incrementos iguais com um número igual de minutos entre cadaincremento. Você pode escolher entre opções lineares predefinidas que especificam a porcentagem detráfego deslocado em cada incremento e o número de minutos entre cada incremento.

• All-at-once: todo o tráfego é deslocado da função original do Lambda para a versão atualizada da funçãodo Lambda de uma única vez.

Para obter mais informações sobre configurações de implantação AWS Lambda, consulte Configuraçõesde implantação predefinidas para uma plataforma de computação AWS Lambda (p. 217).

Versão da API 2014-10-0610

Page 21: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisão geral de uma implantação azul/verde

Implantação azul/verde em uma plataforma de computação doAmazon ECSSe você estiver usando a Amazon ECS Plataforma de computação, o tráfego de produção é passado doconjunto de tarefas original do seu serviço do Amazon ECS para um conjunto de tarefas de substituição deuma só vez.

Para obter mais informações sobre a configuração de implantação do Amazon ECS, consulteConfigurações de implantação em uma plataforma de computação do Amazon ECS (p. 217).

Implantação azul/verde em uma Plataforma de computação EC2/local

Note

Você deve usar instâncias do Amazon EC2 para implantações azul/verde na EC2/No localPlataforma de computação. As instâncias no local não são suportadas para o tipo de implantaçãoazul/verde.

Se você estiver usando a EC2/No local Plataforma de computação, o seguinte aplica-se:

É necessário ter uma ou mais instâncias do Amazon EC2 com tags de identificação do Amazon EC2 ouum grupo do Amazon EC2 Auto Scaling. As instâncias devem atender a estes requisitos adicionais:

• Cada instância do Amazon EC2 deve ter o perfil de instância do IAM correto anexado.• O agente do AWS CodeDeploy deve ser instalado e executado em cada instância.

Note

Normalmente, você também tem uma revisão de aplicativo em execução nas instâncias do seuambiente original, mas isso não é um requisito para uma implantação azul/verde.

Ao criar um grupo de implantação que é usado em implantações azuis/verdes, você pode escolher comoseu ambiente de substituição é especificado:

Copiar um grupo do Amazon EC2 Auto Scaling existente: durante a implantação azul/verde, o AWSCodeDeploy cria as instâncias para o seu ambiente de substituição automaticamente durante aimplantação. Com essa opção, o AWS CodeDeploy usa o grupo de Amazon EC2 Auto Scaling que vocêespecificar como um modelo para o ambiente de substituição, incluindo o mesmo número de instâncias emexecução e muitas outras opções de configuração.

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

Como isso funciona:

1. Você já possui instâncias ou um grupo de Amazon EC2 Auto Scaling que serve como seu ambienteoriginal. A primeira vez em que você executa uma implantação azul/verde, normalmente você usainstâ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émdas opções necessárias para uma implantação no local, você especifica o seguinte:• O load balancer que direciona o tráfego do seu ambiente original para o seu ambiente de substituição

durante o processo de implantação azul/verde.

Versão da API 2014-10-0611

Page 22: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioDeixe seu comentário

• Se deseja redirecionar o tráfego para o ambiente de substituição imediatamente ou esperar eredirecioná-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.

3. Você cria uma implantação para esse grupo de implementação e, durante o processo, acontece oseguinte:a. Se você optou por copiar um grupo de Amazon EC2 Auto Scaling, as instâncias serão provisionadas

para o seu ambiente de substituição.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 desubstituição. Se você não redirecionar manualmente o tráfego antes do final do período de espera, aimplantação será interrompida.

d. As instâncias no ambiente de substituição serão registradas em um load balancer do Elastic LoadBalancing, 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 comas suas especificações no grupo de implantação, ou seja, serão encerradas ou continuarão emexecução.

Deixe seu comentárioOs seus comentários são bem-vindos. Para entrar em contato conosco, visite o fórum do AWSCodeDeploy.

Tópicos

• Componentes primários (p. 12)• Implantações (p. 15)• Arquivos de especificação de aplicativo (p. 28)

Componentes primários do AWS CodeDeployAntes de começar a trabalhar com o serviço, você deve se familiarizar com os principais componentes doprocesso de implantação do AWS CodeDeploy.

Application: A name that uniquely identifies the application you want to deploy. AWS CodeDeploy usesthis name, which functions as a container, to ensure the correct combination of revision, deploymentconfiguration, and deployment group are referenced during a deployment.

Plataforma de computação: a plataforma na qual o AWS CodeDeploy implanta um aplicativo.

• EC2/No local: Descreve instâncias de servidores físicos que podem ser instâncias do Amazon EC2 nanuvem, instâncias na nuvem, servidores no local ou ambos. Aplicativos criados usando o EC2/No localPlataforma de computação podem ser composto de arquivos executáveis, arquivos de configuração,imagens e muito mais.

As implantações que usam o EC2/No local Plataforma de computação gerenciam a maneira com queo tráfego é direcionado para instâncias usando um tipo de implantação local ou azul/verde. Para obtermais informações, consulte Visão geral dos tipos de implantação do AWS CodeDeploy (p. 7).

Versão da API 2014-10-0612

Page 23: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioComponentes primários

• AWS Lambda: usado para implantar aplicativos que consistem em uma versão atualizada de umafunção do Lambda. O AWS Lambda gerencia a função do Lambda em um ambiente de computaçãosem servidor composto por uma estrutura de computação de alta disponibilidade. Toda administraçãodos recursos de computação é realizada pelo AWS Lambda. Para obter mais informações, consulteAplicativos e computação sem servidor. Para obter mais informações sobre o AWS Lambda e funçõesdo Lambda, consulte AWS Lambda.

Os aplicativos criados usando a AWS Lambda Plataforma de computação podem gerenciar a maneiracomo o tráfego é direcionado para as versões da função do Lambda atualizadas durante umaimplantação, escolhendo uma configuração canary, linear ou todas de uma só vez.

• Amazon ECS: usada para implantar um aplicativo em contêineres do Amazon ECS como um conjuntode tarefas. O AWS CodeDeploy realiza uma implantação azul/verde instalando uma versão atualizadado aplicativo em contêineres como um novo conjunto de tarefas de substituição. O AWS CodeDeployroteia o tráfego de produção do aplicativo original, ou conjunto de tarefas, para o conjunto de tarefas desubstituição. O conjunto de tarefas original é encerrado após uma implantação bem-sucedida. Para obtermais informações sobre o Amazon ECS, consulte Amazon Elastic Container Service.

Configuração de implantação: um conjunto de regras e condições de sucesso e falha de implantaçãoque é usado pelo AWS CodeDeploy durante uma implantação. Se sua implantação usa a EC2/Nolocal Plataforma de computação, você pode especificar o número mínimo de instâncias íntegras para aimplantação. Se sua implantação usa a AWS Lambda Plataforma de computação, você pode especificarcomo o tráfego é encaminhado para as versões da função do Lambda atualizadas.

Para obter mais informações sobre como especificar o número mínimo de hosts íntegros para umaimplantação que usa a EC2/No local Plataforma de computação, consulte Instâncias e implantaçõesmínimas íntegras (p. 211).

Estas são as configurações de implantação que especificam como o tráfego é roteado durante umaimplantação que usa a AWS Lambda Plataforma de computação:

• Canary: O tráfego é deslocado em dois incrementos. Você pode escolher entre opções do canarypredefinidas que especificam a porcentagem de tráfego deslocada para a versão da função do Lambdaatualizada no primeiro incremento e no intervalo, em minutos, antes que o tráfego restante sejadeslocado no segundo incremento.

• Linear: O tráfego é deslocado em incrementos iguais com um número igual de minutos entre cadaincremento. Você pode escolher entre opções lineares predefinidas que especificam a porcentagem detráfego deslocado em cada incremento e o número de minutos entre cada incremento.

• All-at-once: todo o tráfego é deslocado da função original do Lambda para a versão atualizada da funçãodo Lambda de uma única vez.

Grupo de implantação: um conjunto de instâncias individuais. Um grupo de implantação contém instânciasindividualmente marcadas e/ou instâncias do Amazon EC2 em grupos do Amazon EC2 Auto Scaling.Para obter informações sobre tags de instâncias do Amazon EC2, consulte Como trabalhar com tagsusando o console. Para obter informações sobre instâncias locais, consulte Trabalhando com instânciaslocais (p. 180). Para obter mais informações sobre o Amazon EC2 Auto Scaling, consulte Integrar o AWSCodeDeploy ao Amazon EC2 Auto Scaling (p. 46).

Deployment type: The method used to make the latest application revision available on instances in adeployment group.

• Implantação no local: o aplicativo em cada instância no grupo de implantação é interrompido, a últimarevisão de aplicativo é instalada, e a nova versão do aplicativo é iniciada e validada. Você pode usarum load balancer 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. Somente implantações queusam o EC2/No local Plataforma de computação podem usar implantações no local. Para obter maisinformações sobre implantações no local, consulte Visão geral de uma implantação no local (p. 8).

Versão da API 2014-10-0613

Page 24: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioComponentes primários

• Implantação verde/azul: o comportamento da implantação depende de qual Plataforma de computaçãovocê usa:• Azul/verde em uma EC2/No local Plataforma de computação: as instâncias em um grupo de

implantação (o ambiente original) são substituídas por um conjunto diferente de instâncias (o ambientede 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 ambienteoriginal serão canceladas e podem ser interrompidas ou mantidas em execução para outros usos.

Note

Se você usar uma EC2/No local Plataforma de computação, esteja ciente de que asimplantações azul/verde funcionam somente com instâncias do Amazon EC2.

• Azul/verde em uma AWS Lambda Plataforma de computação: o tráfego é deslocado do seu ambientesem servidor atual para um com suas versões atualizadas da função do Lambda. Você podeespecificar as funções Lambda que realizam testes de validação e escolher a maneira como ocorreo deslocamento do tráfego. Todas as implantações AWS Lambda Plataforma de computação sãoimplantações azul/verde. Por esse motivo, você não precisa especificar um tipo de implantação.

• Azul/verde em uma Amazon ECS Plataforma de computação: o tráfego é deslocado do conjunto detarefas com a versão original de um aplicativo em contêineres em um serviço do Amazon ECS paraum conjunto de tarefas de substituição no mesmo serviço. O protocolo e a porta de um listener deload balancer especificado são usados para rotear novamente o tráfego de produção. Durante umaimplantação, um listener de teste pode ser usado para fornecer o tráfego ao conjunto de tarefas desubstituição enquanto testes de validação são executados.

Para obter mais informações sobre implantações azul/verde, consulte Visão geral de uma implantaçãoazul/verde (p. 9).

Perfil de instância do IAM: uma função do IAM que você anexa a instâncias do Amazon EC2. Este perfilinclui as permissões necessárias para acessar os buckets do Amazon S3 ou os repositórios do GitHub nosquais os aplicativos estão armazenados. Para obter mais informações, consulte Etapa 4: criar um perfil deinstância do IAM para as suas instâncias do Amazon EC2 (p. 36).

Revisão: uma revisão da implantação AWS Lambda é um arquivo com formato YAML ou JSON queespecifica informações sobre a função do Lambda a ser implantada. Uma revisão da implantação EC2/Nolocal é um arquivo compactado que contém o conteúdo da fonte (código-fonte, páginas da web, arquivosexecutáveis e scripts de implantação) e um application specification file (AppSpec file). As revisões AWSLambda podem ser armazenadas em buckets do Amazon S3. As revisões EC2/No local são armazenadasem buckets do Amazon S3 ou repositórios do GitHub. Para o , uma revisão é identificada de maneiraexclusiva pela chave de objeto do e pela versão do ETag, ou por 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 elepossa acessar recursos da AWS. As políticas que você anexa à função de serviço determinam quaisrecursos da AWS o serviço pode acessar e as ações que ele pode realizar com esses recursos. No AWSCodeDeploy, uma função de serviço é usada para o seguinte:

• Para ler as tags aplicadas às instâncias ou aos nomes de grupo do Amazon EC2 Auto Scalingassociados a essas instâncias. Isso permite que o AWS CodeDeploy identifique as instâncias nas quaispoderá implantar aplicativos.

• Para executar operações em instâncias, grupos do Amazon EC2 Auto Scaling e load balancers doElastic Load Balancing.

Versão da API 2014-10-0614

Page 25: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioImplantações

• Para publicar informações em tópicos do Amazon SNS de forma que as notificações possam serenviadas quando eventos especificados de implantação ou instância ocorrerem.

• Para recuperar informações sobre alarmes do CloudWatch para configurar o monitoramento de alarmesde implantações.

Para obter mais informações, consulte Etapa 3: criar uma função de serviço para o AWSCodeDeploy (p. 32).

Revisão de destino: a versão mais recente da revisão do aplicativo da qual você fez upload no repositório edeseja implantar nas instâncias em um grupo de implantação. Em outras palavras, a revisão do aplicativoatualmente destinada para implantação. Ela também é a revisão que é extraída para implantaçõesautomáticas.

Para obter informações sobre outros componentes no fluxo de trabalho do AWS CodeDeploy, consulte osseguintes tópicos:

• Escolher um tipo de repositório do AWS CodeDeploy (p. 257)• Implantações (p. 15)• Arquivos de especificação de aplicativo (p. 28)• Integridade da instância (p. 209)• Trabalhando com o agente do AWS CodeDeploy (p. 132)• Trabalhando com instâncias locais (p. 180)

Implantações do AWS CodeDeployEste tópico fornece informações sobre os componentes e o fluxo de trabalho de implantações no AWSCodeDeploy. O processo de implantação varia, dependendo da Plataforma de computação (EC2/local ouLambda) que você usa para suas implantações.

Tópicos• Implantações em uma AWS Lambda Plataforma de computação (p. 15)• Implantações em uma Amazon ECS Plataforma de computação (p. 18)• Implantações em uma EC2/No local Plataforma de computação (p. 23)

Implantações em uma AWS Lambda Plataforma decomputaçãoEste tópico fornece informações sobre os componentes e o fluxo de trabalho de implantações no AWSCodeDeploy que usam o AWS Lambda Plataforma de computação.

Tópicos• Componentes de implantação em uma Plataforma de computação AWS Lambda (p. 16)• Fluxo de trabalho da implantação em uma Plataforma de computação AWS Lambda (p. 16)• Carregando sua revisão de aplicativo (p. 17)• Criando seus grupos de implantação e aplicativos (p. 17)• Implantando sua revisão de aplicativo (p. 17)• Atualizar o aplicativo (p. 17)• Implantações interrompidas e com falha (p. 17)

Versão da API 2014-10-0615

Page 26: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioImplantações em uma AWS

Lambda Plataforma de computação

• Reimplantações e reversões de implantação (p. 18)

Componentes de implantação em uma Plataforma decomputação AWS LambdaO diagrama a seguir mostra como os componentes em uma implantação do AWS CodeDeploy em umAWS Lambda Plataforma de computação.

Fluxo de trabalho da implantação em uma Plataforma decomputação AWS LambdaO diagrama a seguir mostra as principais etapas na implantação de funções do AWS Lambda novas eatualizadas.

Essas etapas incluem:

1. Criar um aplicativo, especificando um nome que represente exclusivamente as revisões de aplicativoque você deseja implantar. Para implantar funções do Lambda, você especifica o AWS Lambda

Versão da API 2014-10-0616

Page 27: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioImplantações em uma AWS

Lambda Plataforma de computação

Plataforma de computação ao criar seu aplicativo. O AWS CodeDeploy usa esse nome durante umaimplantação para garantir que ele esteja referenciando os componentes de implantação corretos, comoo grupo de implantação, a configuração de implantação e a revisão de aplicativo. Para obter maisinformações, consulte Criar um aplicativo com o AWS CodeDeploy (p. 221).

2. Configuração de um grupo de implantação especificando o nome de seu grupo de implantação.3. Seleção de uma configuração de implantação para especificar como o tráfego será deslocado de sua

versão original da função do AWS Lambda para a nova versão da função do Lambda. Para obter maisinformações, consulte Visualizar detalhes de configurações de implantação (p. 219).

4. Especificar um application specification file (AppSpec file). Você pode carregar o arquivo no Amazon S3,inseri-lo no console em formato JSON ou YAML ou especificá-lo com a AWS CLI ou o SDK. O AppSpecfile especifica uma definição de tarefa do Amazon ECS para a implantação, um nome do contêiner eo mapeamento de porta usado para rotear o tráfego e funções Lambda executadas após os ganchosde ciclo de vida de implantação. Se você não deseja criar um AppSpec file, é possível inserir essasinformações diretamente no console em formato JSON ou YAML. Para obter mais informações, consulteTrabalhando com revisões de aplicativos para o AWS CodeDeploy (p. 250).

5. Implantar a revisão de aplicativo no grupo de implantação. O AWS CodeDeploy implanta a revisãode função do Lambda especificada. O tráfego é deslocado para sua revisão de função do Lambdasuando o arquivo AppSpec da implantação que você escolheu ao criar seu aplicativo. Para obter maisinformações, consulte Criar uma implantação com o AWS CodeDeploy (p. 267).

6. Verificar os resultados da implantação. Para obter mais informações, consulte Monitorandoimplantações no AWS CodeDeploy (p. 297).

Carregando sua revisão de aplicativoColoque um AppSpec file no Amazon S3 ou digite-o diretamente no console ou na AWS CLI. Para obtermais informações, consulte Arquivos de especificação de aplicativo (p. 28).

Criando seus grupos de implantação e aplicativosUm grupo de implantação do AWS CodeDeploy em um AWS Lambda Plataforma de computação identificauma coleção de um ou mais AppSpec files. Cada AppSpec file pode implantar uma versão da função doLambda. Um grupo de implantação também define um conjunto de opções de configuração para futurasimplantações, como configurações de alarmes e reversões.

Implantando sua revisão de aplicativoAgora você está pronto para implantar a revisão da função especificada no AppSpec file no grupo deimplantação. Use o console do AWS CodeDeploy ou o comando create-deployment. Existem parâmetrosque você pode especificar para controlar sua implantação, incluindo a revisão, o grupo de implantação e aconfiguração de implantação.

Atualizar o aplicativoVocê pode fazer atualizações no seu aplicativo e usar o console do AWS CodeDeploy ou chamar ocomando create-deployment para enviar uma revisão.

Implantações interrompidas e com falhaVocê pode usar o console do AWS CodeDeploy ou o comando stop-deployment para interromper umaimplantação. Quando você tenta interromper a implantação, uma de três coisas acontece:

• A implantação é interrompida, e a operação retorna a um status de sucesso. Nesse caso, mais nenhumevento de ciclo de vida de implantação é executado no grupo de implantação para a implantaçãointerrompida.

Versão da API 2014-10-0617

Page 28: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioImplantações em uma Amazon

ECS Plataforma de computação

• A implantação não é interrompida imediatamente, e a operação retorna um status pendente. Nessecaso, alguns eventos de ciclo de vida de implantação ainda podem estar em execução no grupo deimplantação. Após a conclusão da operação pendente, as chamadas subsequentes para interromper aimplantação retornam um status de sucesso.

• A implantação não pode ser interrompida, e a operação retorna um erro. Para obter mais informações,consulte ErrorInformation e Erros comuns no AWS CodeDeploy API Reference.

Como as implantações interrompidas, as implantações com falha podem resultar em alguns eventosde ciclo de vida da implantação que já foram executados. Para descobrir por que uma implantaçãofalhou, você pode usar o console do AWS CodeDeploy ou analisar os dados do arquivo de log daimplantação com falha. Para obter mais informações, consulte Limpeza de revisões de aplicativoe arquivos de log (p. 137) e Visualizar dados de log para implantações de EC2/No local do AWSCodeDeploy (p. 281).

Reimplantações e reversões de implantaçãoO AWS CodeDeploy implementa reversões reimplantando como uma nova implantação uma revisãoanteriormente implantada.

Você pode configurar um grupo de implantação para reverter automaticamente as implementaçõesquando determinadas condições forem atendidas, inclusive quando uma implantação falhar ou umlimite de monitoramento de alarme for atingido. Você também pode substituir configurações de reversãoespecificadas 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ãoanteriormente implantada.

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

Para obter mais informações, consulte Reimplantar e reverter uma implantação com o AWSCodeDeploy (p. 285).

Implantações em uma Amazon ECS Plataforma decomputaçãoEste tópico fornece informações sobre os componentes e o fluxo de trabalho de implantações no AWSCodeDeploy que usam o Amazon ECS Plataforma de computação.

Tópicos• Antes de começar uma implantação do Amazon ECS (p. 19)• Componentes de implantação em uma plataforma de computação do Amazon ECS (p. 20)• Fluxo de trabalho da implantação em uma plataforma de computação do Amazon ECS (p. 21)• Carregando sua revisão de aplicativo (p. 22)• Criando seus grupos de implantação e aplicativos (p. 22)• Implantando sua revisão de aplicativo (p. 22)• Atualizar o aplicativo (p. 22)• Implantações interrompidas e com falha (p. 22)• Reimplantações e reversões de implantação (p. 23)

Versão da API 2014-10-0618

Page 29: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioImplantações em uma Amazon

ECS Plataforma de computação

Antes de começar uma implantação do Amazon ECSAntes de iniciar uma implantação de aplicativo do Amazon ECS, você deve ter o seguinte preparado.Alguns requisitos são especificados quando você cria o grupo de implantação e outros são especificadosno AppSpec file.

Requisito Onde especificado

Cluster do Amazon ECS Grupo de implantação

Serviço do Amazon ECS Grupo de implantação

Balanceador de carga de aplicações ou NetworkLoad Balancer

Grupo de implantação

Listener de produção Grupo de implantação

Listener de teste (opcional) Grupo de implantação

Dois grupos de destino Grupo de implantação

Definição de tarefa do Amazon ECS AppSpec file

Nome do contêiner AppSpec file

Porta do contêiner AppSpec file

Cluster do Amazon ECS

Um cluster do Amazon ECS é um agrupamento lógico de tarefas ou serviços. Especifique o clusterdo Amazon ECS que contém o serviço do Amazon ECS ao criar o grupo de implantação do aplicativodo AWS CodeDeploy. Para obter mais informações, consulte Clusters do Amazon ECS no Guia dousuário do Amazon Elastic Container Service.

Serviço do Amazon ECS

Um serviço do Amazon ECS mantém e executa as instâncias especificadas de uma definição detarefa em um cluster do Amazon ECS. Seu serviço do Amazon ECS deve estar habilitado para o AWSCodeDeploy. Por padrão, um serviço do Amazon ECS é habilitado para implantações do AmazonECS. Ao criar o grupo de implantação, você pode optar por implantar um serviço do Amazon ECS queestá no seu cluster do Amazon ECS. Para obter mais informações, consulte Serviços do Amazon ECSno Guia do usuário do Amazon Elastic Container Service.

Balanceador de carga de aplicações ou Network Load Balancer

Você deve usar o Elastic Load Balancing com o serviço do Amazon ECS que você deseja atualizarcom uma implantação do Amazon ECS. Você pode usar um Balanceador de carga de aplicaçõesou um Network Load Balancer. Recomendamos um Balanceador de carga de aplicações para quevocê possa aproveitar recursos, como o mapeamento de porta dinâmico e o roteamento baseadoem caminhos e regras de prioridade. Especifique o load balancer ao criar o grupo de implantação doaplicativo do AWS CodeDeploy. Para obter mais informações, consulte Criar um load balancer noGuia do usuário do Amazon Elastic Container Service.

Um ou dois listenters

Um listener é usado pelo seu load balancer para direcionar o tráfego para seus grupos de destino.Um listener de produção é necessário. Você pode especificar um segundo listener de teste opcionalque direciona o tráfego para o seu conjunto de tarefas de substituição enquanto você executa testesde validação. Especifique um ou dois listeners ao criar seu grupo de implantação. Se você usar o

Versão da API 2014-10-0619

Page 30: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioImplantações em uma Amazon

ECS Plataforma de computação

console do Amazon ECS para criar o serviço do Amazon ECS, seus listeners são criados para você.Para obter mais informações, consulte Listeners para seus Application Load Balancers no Guia dousuário do Elastic Load Balancing e Criar um serviço no Guia do usuário do Amazon Elastic ContainerService.

Dois grupos de destino do Amazon ECS

Um grupo de destino é usado para rotear o tráfego para um destino registrado. Uma implantaçãodo Amazon ECS requer dois grupos de destino: um para o conjunto de tarefas original do aplicativodo Amazon ECS e um para seu conjunto de tarefas de substituição. Durante a implantação, o AWSCodeDeploy cria um conjunto de tarefas de substituição e roteia novamente o tráfego do conjuntode tarefas original para o novo. Especifique os grupos de destino ao criar o grupo de implantação doaplicativo do AWS CodeDeploy.

Durante uma implantação, o AWS CodeDeploy determina qual grupo de destino é associado à tarefaem seu serviço do Amazon ECS que tem o status PRIMARY (esse é o conjunto de tarefas original),associa um grupo de destino a ele e, em seguida, associa o outro grupo de destino ao conjunto detarefas de substituição. Se você executar outra implantação, o grupo de destino associado ao conjuntode tarefas original da implantação atual será associado ao conjunto de tarefas de substituição dapróxima implantação. Para obter mais informações, consulte Grupos de destino para seus ApplicationLoad Balancers no Guia do usuário do Elastic Load Balancing.

Uma definição de tarefa do Amazon ECS

Uma definição de tarefa é necessária para executar o contêiner do Docker que contém o aplicativodo Amazon ECS. Especifique o ARN da definição de tarefa no AppSpec file do aplicativo do AWSCodeDeploy. Para obter mais informações, consulte Definições de tarefas do Amazon ECS no Guiado usuário do Amazon Elastic Container Service e Seção 'resources' AppSpec para implantações daAmazon ECS (p. 342).

Um contêiner para seu aplicativo do Amazon ECS

Um contêiner do Docker contém tudo o que precisa para executar seu aplicativo de software. Seu loadbalancer direciona o tráfego para um contêiner no conjunto de tarefas do aplicativo do Amazon ECS.Especifique o nome do contêiner no AppSpec file do aplicativo do AWS CodeDeploy. O contêinerespecificado no AppSpec file deve ser um dos contêineres especificados na sua definição de tarefado Amazon ECS. Para obter mais informações, consulte O que é o Amazon Elastic ContainerService? no Guia do usuário do Amazon Elastic Container Service e Seção 'resources' AppSpec paraimplantações da Amazon ECS (p. 342).

Uma porta para o conjunto de tarefas de substituição

Durante a implantação do Amazon ECS, o load balancer direciona o tráfego para essa porta nocontêiner especificado no AppSpec file do aplicativo do AWS CodeDeploy. Especifique a porta noAppSpec file do aplicativo do AWS CodeDeploy. Para obter mais informações, consulte Seção'resources' AppSpec para implantações da Amazon ECS (p. 342).

Componentes de implantação em uma plataforma decomputação do Amazon ECSO diagrama a seguir mostra como os componentes em uma implantação do AWS CodeDeploy em umAmazon ECS Plataforma de computação.

Versão da API 2014-10-0620

Page 31: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioImplantações em uma Amazon

ECS Plataforma de computação

Fluxo de trabalho da implantação em uma plataforma decomputação do Amazon ECSO diagrama a seguir mostra as principais etapas na implantação de serviços do Amazon ECS atualizados.

Essas etapas incluem:

1. Criar um aplicativo do AWS CodeDeploy especificando um nome que represente exclusivamente oque você deseja implantar. Para implantar um aplicativo do Amazon ECS, em seu aplicativo do AWSCodeDeploy, especifique a Amazon ECS Plataforma de computação. O AWS CodeDeploy usa umaplicativo durante uma implantação para fazer referência aos componentes de implantação corretos,como o grupo de implantação, os grupos de destino, os listeners, o comportamento de redirecionamentode tráfego e a revisão de aplicativo. Para obter mais informações, consulte Criar um aplicativo com oAWS CodeDeploy (p. 221).

2. Configurar um grupo de implantação especificando:• Nome do grupo de implantação.• Nome do serviço e cluster do Amazon ECS. O controlador de implantação do serviço do Amazon ECS

deve ser definido como AWS CodeDeploy.

Versão da API 2014-10-0621

Page 32: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioImplantações em uma Amazon

ECS Plataforma de computação

• O listener de produção, um listener de teste opcional e grupos de destino usados durante umaimplantação.

• Configurações de implantação, como quando redirecionar o tráfego de produção para o conjuntode tarefas de substituição do Amazon ECS em seu serviço do Amazon ECS e quando encerrar oconjunto de tarefas original do Amazon ECS definido em seu serviço do Amazon ECS.

• Configurações opcionais, como triggers, alarmes e o comportamento de reversão.3. Especifique um application specification file (AppSpec file). Você pode carregá-lo no Amazon S3, inseri-

lo no console em formato JSON ou YAML ou especificá-lo com a AWS CLI ou o SDK. O AppSpec fileespecifica uma definição de tarefa do Amazon ECS para a implantação, um nome do contêiner e omapeamento de porta usado para rotear o tráfego e funções Lambda executadas após os ganchosde ciclo de vida de implantação. O nome do contêiner especificado deve ser um contêiner em suadefinição de tarefa do Amazon ECS especificada. Para obter mais informações, consulte Trabalhandocom revisões de aplicativos para o AWS CodeDeploy (p. 250).

4. Implantar sua revisão de aplicativo. O AWS CodeDeploy roteará novamente o tráfego da versão originalde um conjunto de tarefas em seu serviço do Amazon ECS para um novo conjunto de tarefas desubstituição. Grupos de destino especificados no grupo de implantação são usados para fornecer otráfego para conjuntos de tarefa originais e de substituição. Depois de concluir a implantação, o conjuntode tarefas original é encerrado. Você pode especificar um listener de teste opcional para fornecer otráfego de teste para a sua versão de substituição antes que o tráfego seja redirecionado a ele. Paraobter mais informações, consulte Criar uma implantação com o AWS CodeDeploy (p. 267).

5. Verificar os resultados da implantação. Para obter mais informações, consulte Monitorandoimplantações no AWS CodeDeploy (p. 297).

Carregando sua revisão de aplicativoColoque um AppSpec file no Amazon S3 ou digite-o diretamente no console ou na AWS CLI. Para obtermais informações, consulte Arquivos de especificação de aplicativo (p. 28).

Criando seus grupos de implantação e aplicativosUm grupo de implantação do AWS CodeDeploy em uma Amazon ECS Plataforma de computaçãoidentifica listeners para fornecer o tráfego para o seu aplicativo do Amazon ECS atualizado e dois gruposde destino usados durante a implantação. Um grupo de implantação também define um conjunto deopções de configuração, como configurações de reversões e alarmes.

Implantando sua revisão de aplicativoAgora, você está pronto para implantar o serviço do Amazon ECS atualizado e especificado no seugrupo de implantação. Use o console do AWS CodeDeploy ou o comando create-deployment. Existemparâmetros que você pode especificar para controlar sua implantação, incluindo o grupo de implantação ea revisão.

Atualizar o aplicativoVocê pode fazer atualizações no seu aplicativo e usar o console do AWS CodeDeploy ou chamar ocomando create-deployment para enviar uma revisão.

Implantações interrompidas e com falhaVocê pode usar o console do AWS CodeDeploy ou o comando stop-deployment para interromper umaimplantação. Quando você tenta interromper a implantação, uma de três coisas acontece:

• A implantação é interrompida, e a operação retorna a um status de sucesso. Nesse caso, mais nenhumevento de ciclo de vida de implantação é executado no grupo de implantação para a implantaçãointerrompida.

Versão da API 2014-10-0622

Page 33: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioImplantações em uma EC2/No

local Plataforma de computação

• A implantação não é interrompida imediatamente, e a operação retorna um status pendente. Nessecaso, alguns eventos de ciclo de vida de implantação ainda podem estar em execução no grupo deimplantação. Após a conclusão da operação pendente, as chamadas subsequentes para interromper aimplantação retornam um status de sucesso.

• A implantação não pode ser interrompida, e a operação retorna um erro. Para obter mais informações,consulte Informações de erros e Erros comuns no AWS CodeDeploy API Reference.

Reimplantações e reversões de implantaçãoO AWS CodeDeploy implementa reversões redirecionando o tráfego do conjunto de tarefas de substituiçãodefinido para o conjunto de tarefas original.

Você pode configurar um grupo de implantação para reverter automaticamente as implementaçõesquando determinadas condições forem atendidas, inclusive quando uma implantação falhar ou umlimite de monitoramento de alarme for atingido. Você também pode substituir configurações de reversãoespecificadas 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ãoanteriormente implantada.

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

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

Para obter mais informações, consulte Reimplantar e reverter uma implantação com o AWSCodeDeploy (p. 285).

Implantações em uma EC2/No local Plataforma decomputaçãoEste tópico fornece informações sobre os componentes e o fluxo de trabalho de implantações no AWSCodeDeploy que usam o EC2/No local Plataforma de computação. Para obter informações sobreimplantações azuis/verdes, consulte Visão geral de uma implantação azul/verde (p. 9).

Tópicos• Componentes de implantação em uma Plataforma de computação EC2/local (p. 23)• Fluxo de trabalho de implantação em uma Plataforma de computação EC2/local (p. 24)• Configurando Instâncias (p. 26)• Carregando sua revisão de aplicativo (p. 26)• Criando seus grupos de implantação e aplicativos (p. 26)• Implantando sua revisão de aplicativo (p. 27)• Atualizar o aplicativo (p. 27)• Implantações interrompidas e com falha (p. 27)• Reimplantações e reversões de implantação (p. 27)

Componentes de implantação em uma Plataforma decomputação EC2/localO diagrama a seguir mostra os componentes em uma implantação do AWS CodeDeploy em umaplataforma de computação EC2/local.

Versão da API 2014-10-0623

Page 34: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioImplantações em uma EC2/No

local Plataforma de computação

Fluxo de trabalho de implantação em uma Plataforma decomputação EC2/localO diagrama a seguir mostra as principais etapas na implantação de revisões de aplicativo:

Essas etapas incluem:

1. Criar um aplicativo especificando um nome que representa exclusivamente as revisões de aplicativoque você quer implantar e a plataforma de computação de seu aplicativo. O AWS CodeDeploy usaesse nome durante uma implantação para garantir que ele esteja referenciando os componentesde implantação corretos, como o grupo de implantação, a configuração de implantação e arevisão de aplicativo. Para obter mais informações, consulte Criar um aplicativo com o AWSCodeDeploy (p. 221).

2. Configurar um grupo de implantação, especificando um tipo de implantação e as instâncias nas quaisvocê deseja implantar suas revisões de aplicativo. Uma implantação no local atualiza instâncias com

Versão da API 2014-10-0624

Page 35: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioImplantações em uma EC2/No

local Plataforma de computação

a revisão de aplicativo mais recente. Uma implantação azul/verde registra um conjunto de instânciasde substituição para o grupo de implantação em um balanceador de carga e cancela o registro dasinstâncias originais.

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

Se você especificar um grupo de tags no grupo de implantação, o AWS CodeDeploy será implantadoem instâncias que tenham pelo menos uma das tags especificadas aplicadas. Se você especificar doisou mais grupos de tags, o AWS CodeDeploy será implantado apenas em instâncias que atendam aoscritérios para cada um dos grupos de tags. Para obter mais informações, consulte Marcar instânciaspara implantações no AWS CodeDeploy (p. 157).

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

Fornecemos um modelo do AWS CloudFormation que você pode usar para configurar rapidamente umainstância do Amazon EC2 com base no Amazon Linux ou no Windows Server. Também fornecemos oagente 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. 235).

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 emimplantações e instâncias. Para obter mais informações, consulte Monitoramento de implantaçõescom notificações de eventos do Amazon SNS (p. 305).

• Gerenciamento de implantações com base em alarmes — Implemente o monitoramento de alarmesdo Amazon CloudWatch para interromper implantações quando suas métricas excederem os limitesdefinidos no CloudWatch.

• Reversões de implantação automáticas — Configure uma implantação para que ela seja revertidaautomaticamente para a última revisão conhecida em bom estado quando uma implantação falhar ouum limite de alarme for atingido.

3. Especificar uma configuração de implantação para indicar em quantas instâncias implantarsuas revisões de aplicativo simultaneamente e descrevendo as condições de êxito e falha paraa implantação. Para obter mais informações, consulte Visualizar detalhes de configurações deimplantação (p. 219).

4. Carregar uma revisão de aplicativo no Amazon S3 ou GitHub. Além dos arquivos que você desejaimplantar e de quaisquer scripts que você deseja executar durante a implantação, é necessário incluirum application specification file (AppSpec file). Esse arquivo contém instruções de implantação,como para onde copiar os arquivos em cada instância e quando executar scripts de implantação.Para obter mais informações, consulte Trabalhando com revisões de aplicativos para o AWSCodeDeploy (p. 250).

5. Implantar a revisão de aplicativo no grupo de implantação. O agente do AWS CodeDeploy em cadainstância no grupo de implantação copia sua revisão de aplicativo do Amazon S3 ou GitHub para ainstância. Em seguida,o agente do AWS CodeDeploy desagrupa a revisão e, usando o AppSpec file,copia os arquivos para as localizações especificadas e executa os scripts de implantação. Para obtermais informações, consulte Criar uma implantação com o AWS CodeDeploy (p. 267).

6. Verificar os resultados da implantação. Para obter mais informações, consulte Monitorandoimplantações no AWS CodeDeploy (p. 297).

7. Reimplantar uma revisão. Você pode querer fazer isso se precisar corrigir um bug no conteúdo deorigem, executar os scripts de implantação em uma ordem diferente ou corrigir uma implantação comfalha. Para fazer isso, reagrupe o conteúdo de origem revisado, quaisquer scripts de implantação eo AppSpec file em uma nova revisão e, em seguida, carregue essa revisão no bucket do Amazon S3ou em um repositório GitHub. Em seguida, você executa uma nova implantação no mesmo grupo de

Versão da API 2014-10-0625

Page 36: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioImplantações em uma EC2/No

local Plataforma de computação

implantação com a nova revisão. Para obter mais informações, consulte Criar uma implantação com oAWS CodeDeploy (p. 267).

Configurando InstânciasVocê precisa configurar instâncias para poder implantar revisões de aplicativo pela primeira vez. Se umarevisã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 instaladoem instâncias de Amazon Linux, Ubuntu Server, RHEL e Windows Server.

2. Habilite a marcação, se estiver usando tags para identificar instâncias em um grupo de implantação. OAWS CodeDeploy depende de tags para identificar e agrupar instâncias em grupos de implantação doAWS CodeDeploy. Embora os tutoriais de introdução usam ambas, você pode simplesmente usar umachave 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ânciasdo IAM deve ser anexado a uma instância do Amazon EC2 ao ser iniciado para que o agente do AWSCodeDeploy 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 expandiras tags na sua conta da AWS.

Para uma implantação inicial, o modelo do AWS CloudFormation faz tudo isso para você. Ele cria econfigura instâncias do Amazon EC2 únicas e novas com base no Amazon Linux e no Windows Servercom o agente do AWS CodeDeploy já instalado. Para obter mais informações, consulte Trabalhando cominstâncias para o AWS CodeDeploy (p. 155).

Note

Para uma implantação azul/verde, é possível optar entre usar instâncias que você já possui parao ambiente de substituição ou deixar que o AWS CodeDeploy provisione novas instâncias comoparte do processo de implantação.

Carregando sua revisão de aplicativoColoque um AppSpec file 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 (p. 28).

Agrupe a estrutura de pastas de conteúdo de origem do aplicativo em um formato de arquivamento, comozip, tar compactado. Carregue o arquivamento (a revisão) em um bucket do Amazon S3 ou repositórioGitHub.

Note

The tar and compressed tar archive file formats (.tar and .tar.gz) are not supported for WindowsServer instances.

Criando seus grupos de implantação e aplicativosUm grupo de implantação do AWS CodeDeploy identifica uma coleção de instâncias com base em suastags, nomes de grupo do Amazon EC2 Auto Scaling ou ambos. Várias revisões de aplicativos podem serimplantadas nas mesmas instâncias. Uma revisão de aplicativo pode ser implantada em várias instâncias.

Por exemplo, você pode adicionar uma tag "Prod" aos três servidores de produção e "Backup" aos doisservidores de backup. Essas duas tags podem ser usadas para criar dois grupos de implantação diferentes

Versão da API 2014-10-0626

Page 37: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioImplantações em uma EC2/No

local Plataforma de computação

no aplicativo AWS CodeDeploy, permitindo que você escolha 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 umpequeno conjunto de instâncias. Para obter informações, consulte Marcar instâncias para implantações noAWS CodeDeploy (p. 157).

Implantando sua revisão de aplicativoAgora, você está pronto para implantar sua revisão de aplicativo a partir do Amazon S3 ou GitHub nogrupo de implantação. Use o console do AWS CodeDeploy ou o comando create-deployment. Existemparâmetros que você pode especificar para controlar sua implantação, incluindo a revisão, o grupo deimplantação e a configuração de implantação.

Atualizar o aplicativoVocê pode fazer atualizações no seu aplicativo e usar o console do AWS CodeDeploy ou chamar ocomando create-deployment para enviar uma revisão.

Implantações interrompidas e com falhaVocê pode usar o console do AWS CodeDeploy ou o comando stop-deployment para interromper umaimplantação. Quando você tentar interromper a implantação, uma das três coisas acontecerá:

• A implantação é interrompida, e a operação retorna a um status de sucesso. Nesse caso, mais nenhumevento de ciclo de vida de implantação é executado no grupo de implantação para a implantaçãointerrompida. Alguns arquivos podem já ter sido copiados para uma ou mais instâncias no grupo deimplantação e alguns scripts talvez já tenham sido executados nessas instâncias.

• A implantação não é interrompida imediatamente, e a operação retorna um status pendente. Nessecaso, alguns eventos de ciclo de vida de implantação ainda podem estar em execução no grupo deimplantação. Alguns arquivos podem já ter sido copiados para uma ou mais instâncias no grupo deimplantação e alguns scripts talvez já tenham sido executados nessas instâncias. Após a conclusão daoperação pendente, as chamadas subsequentes para interromper a implantação retornam um status desucesso.

• A implantação não pode ser interrompida, e a operação retorna 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 ciclode 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, chameo comando get-deployment-instance ou analise 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. 137) eVisualizar dados de log para implantações de EC2/No local do AWS CodeDeploy (p. 281).

Reimplantações e reversões de implantaçãoO AWS CodeDeploy implementa reversões reimplantando como uma nova implantação uma revisãoanteriormente implantada.

Você pode configurar um grupo de implantação para reverter automaticamente as implementaçõesquando determinadas condições forem atendidas, inclusive quando uma implantação falhar ou umlimite de monitoramento de alarme for atingido. Você também pode substituir configurações de reversãoespecificadas 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ãoanteriormente implantada.

Versão da API 2014-10-0627

Page 38: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioArquivos de especificação de aplicativo

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

Para obter mais informações, consulte Reimplantar e reverter uma implantação com o AWSCodeDeploy (p. 285).

Arquivos de especificação de aplicativo do AWSCodeDeploy

Um application specification file (AppSpec file), exclusivo para o AWS CodeDeploy, é um arquivoformatado como YAML ou JSON. O AppSpec file é usado para gerenciar cada implantação como umasérie ganchos de eventos de ciclo de vida, que são definidos no arquivo.

Para obter informações sobre como criar um AppSpec file bem formado, consulte Referência AppSpec Filedo AWS CodeDeploy (p. 334).

Tópicos• Arquivos AppSpec em uma Amazon ECS Plataforma de computação (p. 28)• Arquivos AppSpec em uma plataforma de computação AWS Lambda (p. 28)• Arquivos AppSpec em uma plataforma de computação EC2/local (p. 29)• Como o agente do AWS CodeDeploy usa o arquivo AppSpec (p. 29)

Arquivos AppSpec em uma Amazon ECS Plataformade computaçãoSe o seu aplicativo usar a plataforma de computação Amazon ECS, o AppSpec file poderá ser formatadocom YAML ou JSON. Ele também poderá ser digitado diretamente em um editor no console. O AppSpecfile é usado para especificar:

• O nome do serviço do Amazon ECS, o nome do contêiner e a porta usada para direcionar o tráfego parao novo conjunto de tarefas.

• As funções a serem usadas como testes de validação.

É possível executar funções de validação do Lambda após os eventos de ciclo de vida da implantação.Para obter mais informações, consulte A seção 'hooks' AppSpec para uma implantação AmazonECS (p. 348), Estrutura de arquivos AppSpec para implantações de Amazon ECS (p. 335) e Exemplode AppSpec File para uma implantação Amazon ECS (p. 361).

Arquivos AppSpec em uma plataforma de computaçãoAWS LambdaSe o seu aplicativo usar a AWS Lambda Plataforma de computação, o AppSpec file poderá ser formatadocomo YAML ou JSON. Ele também poderá ser digitado diretamente em um editor no console. O AppSpecfile é usado para especificar:

• A versão de função do AWS Lambda a implantar.• As funções a serem usadas como testes de validação.

Versão da API 2014-10-0628

Page 39: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioArquivos AppSpec em uma

plataforma de computação EC2/local

É possível executar funções de validação do Lambda após os eventos de ciclo de vida da implantação.Para obter mais informações, consulte A seção 'hooks' AppSpec para uma implantação AWSLambda (p. 351).

Arquivos AppSpec em uma plataforma de computaçãoEC2/localSe o seu aplicativo usar a EC2/No local Plataforma de computação, o AppSpec file sempre será formatadocomo YAML. O AppSpec file será usado para especificar:

• Mapear os arquivos de origem na sua revisão de aplicativo para os respectivos destinos na instância.• Especificar permissões personalizadas para arquivos implantados.• Especificar scripts a serem executados em cada instância, em vários estágios do processo de

implantação.

Você pode executar scripts em uma instância após a maioria dos eventos individuais de ciclo de vida deimplantação. O AWS CodeDeploy executa apenas os scripts especificados no arquivo, mas esses scriptspodem chamar outros scripts na instância. Você pode executar qualquer tipo de script, desde que ele sejacompatível no sistema operacional em execução nas instâncias. Para obter mais informações, consulte Aseção 'hooks' AppSpec para uma implantação EC2/No local (p. 353).

Como o agente do AWS CodeDeploy usa o arquivoAppSpecDurante a implantação, o agente do AWS CodeDeploy procura o nome do evento atual na seção hooksdo AppSpec file. Se o evento não for encontrado, o agente do AWS CodeDeploy passará para a próximaetapa. Se o evento for encontrado, o agente do AWS CodeDeploy recuperará a lista de scripts paraexecução. Os scripts são executados sequencialmente, na ordem em que aparecem no arquivo. O statusde 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).

Note

O agente do AWS CodeDeploy não é usado em uma implantação da AWS Lambda ou AmazonECS.

Durante o evento Install, o agente do AWS CodeDeploy usa os mapeamentos definidos na seção files doAppSpec file 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á listadono AppSpec file, a implantação falhará.

Para obter informações sobre os arquivos de log do agente do AWS CodeDeploy, consulte Trabalhandocom o agente do AWS CodeDeploy (p. 132).

Versão da API 2014-10-0629

Page 40: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 1: provisionar um usuário do IAM

Introdução ao AWS CodeDeployPara usar a AWS CodeDeploy pela primeira vez, você deve concluir as etapas de configuração.

Para começar, você deve se inscrever para uma conta da AWS. Para se cadastrar, acesse https://aws.amazon.com/ e selecione Create an Account AWS (Criar uma conta da AWS).

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. 30)• Etapa 2: instalar ou atualizar e depois configurar a AWS CLI (p. 31)• Etapa 3: criar uma função de serviço para o AWS CodeDeploy (p. 32)• Etapa 4: criar um perfil de instância do IAM para as suas instâncias do Amazon EC2 (p. 36)

Etapa 1: provisionar um usuário do IAMSiga 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 associado à sua conta da AWS. Para obter mais informações,consulte Criar um usuário do IAM no Guia do usuário do IAM.

2. Conceda ao usuário do IAM acesso ao AWS CodeDeploy—e aos serviços e ações da AWSCodeDeploy dos quais o AWS depende—, copiando a seguinte política e anexando-a ao usuário doIAM.

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "autoscaling:*", "codedeploy:*", "ec2:*", "lambda:*", "ecs:*", "elasticloadbalancing:*", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:GetRolePolicy", "iam:ListInstanceProfilesForRole", "iam:ListRolePolicies", "iam:ListRoles", "iam:PassRole", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile",

Versão da API 2014-10-0630

Page 41: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 2: instalar ou atualizar e depois configurar a AWS CLI

"s3:*" ], "Resource" : "*" } ]}

A política anterior concede ao usuário do IAM o acesso necessário para implantar em uma AWSLambda Plataforma de computação, EC2/No local Plataforma de computação e Amazon ECSPlataforma de computação.

Para saber como anexar uma política a um usuário do IAM, consulte Trabalhar com políticas.Para aprender como restringir os usuários a um conjunto limitado de ações e recursos do AWSCodeDeploy, consulte Autenticação e controle de acesso do AWS CodeDeploy (p. 316).

Você pode usar os modelos do AWS CloudFormation fornecidos nesta documentação para ativar asinstâncias Amazon EC2 que são compatíveis com o AWS CodeDeploy. Para usar os modelos do AWSCloudFormation para criar aplicativos, grupos de implantação ou configurações de implantação, vocêdeve conceder ao usuário do IAM acesso ao AWS CloudFormation (e aos serviços e ações da AWSdos quais o AWS CloudFormation depende) anexando uma política adicional ao usuário do IAM:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*" ], "Resource": "*" } ]}

Para obter informações sobre outros serviços da AWS listados nestas instruções, consulte:

• Visão geral das políticas do AWS IAM• Controlando o acesso do usuário ao seu balanceador de carga• Controle de acesso aos seus recursos do Auto Scaling• Controle de acesso ao AWS CloudFormation com o AWS Identity and Access Management

Etapa 2: instalar ou atualizar e depois configurar aAWS CLI

Para chamar o AWS CodeDeploy comandos da AWS CLI em uma máquina de desenvolvimento local,você deve instalar os comandos AWS CLI AWS CodeDeploy disponibilizados pela primeira vez na versão1.6.1 dos comandos AWS CLI e AWS CodeDeploy por trabalhar com instâncias nos locais disponibilizadasna versão 1.7.19 da AWS CLI.

Se você tiver uma versão mais antiga da AWS CLI instalada, deverá atualizá-la para que os comandos doAWS CodeDeploy; fiquem disponíveis. Chame aws --version para verificar a versão.

Para instalar ou atualizar a AWS CLI:

1. Siga as instruções em Instalar a AWS Command Line Interface para instalar ou atualizar a AWS CLI.

Versão da API 2014-10-0631

Page 42: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 3: criar uma função de serviço

2. Para configurar a AWS CLI, consulte Configurar a AWS Command Line Interface e Gerenciar chavesde acesso para usuários do IAM.

Important

Quando configurar a AWS CLI, você será solicitado a especificar uma região da AWS.Escolha uma das regiões com suporte listada em Região e endpoints na AWS GeneralReference.

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 AWSCodeDeploy

Na AWS, funções de serviço são usadas para conceder permissões a um serviço da AWS para que elepossa acessar recursos da AWS. As políticas que você anexa à função de serviço determinam quaisrecursos 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 asinstâncias nas quais você implanta aplicativos. Essas permissões permitem que o AWS CodeDeploy leiaas tags aplicadas às instâncias ou aos nomes de grupo do Amazon EC2 Auto Scaling associados a essasinstâncias.

As permissões que você adiciona à função de serviço especificam as operações que o AWS CodeDeploypode executar quando acessa suas instâncias do Amazon EC2 e grupos do Amazon EC2 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çapara 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. 32)• Criar uma função de serviço (CLI) (p. 34)• Obter o ARN da função de serviço (console) (p. 36)• Obter o ARN da função de serviço (CLI) (p. 36)

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 https://

console.aws.amazon.com/iam/.2. No painel de navegação, escolha Roles e Create role.3. Na página Create role (Criar função), selecione AWS service (serviços da AWS) e na lista Choose the

service that will use this role (Escolha o serviço que usará essa função), selecione CodeDeploy.4. Em Select your use case (Selecionar o caso de uso), escolha CodeDeploy.5. Escolha Próximo: Permissões.

Versão da API 2014-10-0632

Page 43: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma função de serviço (console)

6. Na página Attached permissions policy, se houver uma caixa ao lado deAWSCodeDeployRole,selecione-a e, depois, escolha Next: Review.

A política AWSCodeDeployRole fornece as permissões necessárias para a função de serviço:

• Leia as tags nas instâncias ou identifique as instâncias do Amazon EC2 pelos nomes do grupo deAmazon EC2 Auto Scaling.

• Publique informações nos tópicos do Amazon SNS.• Recupere informações sobre os alarmes do CloudWatch.• Recupere informações sobre o Elastic Load Balancing.

7. Na página Review, em Role name, digite um nome para a função de serviço (por exemplo,CodeDeployServiceRole), and then choose Create role.

Você também pode digitar uma descrição para esta função de serviço na caixa Role description.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.

Para restringir o acesso a certos endpoints para essa função de serviço, na lista de funções, naveguee escolha a função que você criou e avance para a próxima etapa.

9. Na guia Trust relationships (Relações de confiança), escolha Edit trust relationship (Editar relação deconfiança).

10. Você verá a seguinte política, que fornece permissão à função de serviço para acessar todos osendpoints com suporte:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ]}

Para conceder à função de serviço acesso a apenas alguns endpoints com suporte, substitua oconteúdo da caixa Policy Document (Documento de política) pela seguinte política. Remova as linhasdos endpoints cujo acesso você deseja impedir e selecione Update Trust Policy (Atualizar política deconfiança).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.us-east-2.amazonaws.com", "codedeploy.us-east-1.amazonaws.com", "codedeploy.us-west-1.amazonaws.com", "codedeploy.us-west-2.amazonaws.com", "codedeploy.eu-west-3.amazonaws.com", "codedeploy.ca-central-1.amazonaws.com",

Versão da API 2014-10-0633

Page 44: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma função de serviço (CLI)

"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 Criar uma função para delegarpermissões a um serviço da AWS, no Guia do usuário do IAM.

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 é usado para permitir que o AWS CodeDeploytrabalhe 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": "2012-10-17", "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 noarquivo e remova as linhas para as regiões às quais você deseja excluir o acesso:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.us-east-2.amazonaws.com", "codedeploy.us-east-1.amazonaws.com", "codedeploy.us-west-1.amazonaws.com", "codedeploy.us-west-2.amazonaws.com", "codedeploy.eu-west-3.amazonaws.com",

Versão da API 2014-10-0634

Page 45: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma função de serviço (CLI)

"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" } ]}

Note

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 decriar:

aws iam create-role --role-name CodeDeployServiceRole --assume-role-policy-document file://CodeDeployDemo-Trust.json

Important

Be sure to include file:// before the file name. It is required in this command.

Na saída do comando, anote o valor da entrada Arn no objeto Role. Você precisará disso mais tardeao criar grupos de implantação. Se você se esquecer do valor, siga as instruções em Obter o ARN dafunção de serviço (CLI) (p. 36).

3. A política gerenciada que você usa depende da Plataforma de computação.

• Se sua implantação é para uma EC2/No local Plataforma de computação:

Chame o comando attach-role-policy para dar à função de serviço chamadaCodeDeployServiceRole as permissões com base na política gerenciada pelo IAM chamadaAWSCodeDeployRole. Por exemplo:

aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSCodeDeployRole

• Se sua implantação é para uma AWS Lambda Plataforma de computação:

Chame o comando attach-role-policy para dar à função de serviço chamadaCodeDeployServiceRole as permissões com base na política gerenciada pelo IAM chamadaAWSCodeDeployRoleForLambda. Por exemplo:

aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSCodeDeployRoleForLambda

• Se sua implantação é para uma Amazon ECS Plataforma de computação:

Chame o comando attach-role-policy para conceder à função de serviço chamadaCodeDeployServiceRole as permissões com base na política gerenciada pelo IAM chamadaAWSCodeDeployRoleForECS ou AWSCodeDeployRoleForECSLimited. Por exemplo:Versão da API 2014-10-06

35

Page 46: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioObter o ARN da função de serviço (console)

aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSCodeDeployRoleForECS

Para obter mais informações sobre como criar funções de serviço, consulte Criar uma função para umserviço da AWS, no documento Guia do usuário do IAM.

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 https://console.aws.amazon.com/iam/.

2. No painel de navegação, selecione Roles.3. Na caixa de texto Filter (Filtro), digite CodeDeployServiceRole e pressione Enter.4. Escolha CodeDeployServiceRole.5. Anote o valor do campo Role ARN (ARN da função).

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 deserviç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 assuas instâncias do Amazon EC2

Note

Se você estiver usando a Plataforma de computação Amazon ECS ou AWS Lambda, ignore estaetapa. As implantações da Amazon ECS implantam um serviço do Amazon ECS, e implantaçõesda AWS Lambda implantam uma versão de função Lambda, por isso, um perfil de instância deinstâncias do Amazon EC2 não é necessário.

Suas instâncias do Amazon EC2 precisam de permissão para acessar os buckets do Amazon S3 ou osrepositórios GitHub nos quais os aplicativos estão armazenados. Para executar instâncias do Amazon EC2compatíveis com o AWS CodeDeploy, você deve criar uma função adicional do IAM, um perfil de instância.Estas instruções mostram como criar um perfil de instância do IAM para anexar a suas instâncias doAmazon EC2. Essa função dá ao AWS CodeDeploy permissão para acessar os buckets do Amazon S3 ouos repositórios do GitHub nos quais seus aplicativos estão armazenados.

Você pode criar um perfil de instância do IAM com a AWS CLI, o console do IAM ou as APIs do IAM.Note

Você pode anexar um perfil de instâncias do IAM a uma instância do Amazon EC2 ao executá-la ou a uma instância executada anteriormente. Para obter mais informações, consulte Perfis deinstância.

Versão da API 2014-10-0636

Page 47: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um perfil de instância do IAM parasuas instâncias do Amazon EC2 (CLI)

Tópicos• Criar um perfil de instância do IAM para suas instâncias do Amazon EC2 (CLI) (p. 37)• Criar um perfil de instância do IAM para suas instâncias do Amazon EC2 (console) (p. 39)

Criar um perfil de instância do IAM para suasinstâncias do Amazon EC2 (CLI)Nestas etapas, partimos do princípio de que você já seguiu as instruções das três primeiras etapas emIntrodução ao AWS CodeDeploy (p. 30).

1. Na máquina de desenvolvimento, crie um arquivo de texto chamado CodeDeployDemo-EC2-Trust.json. Cole o seguinte conteúdo, que permite ao Amazon EC2 trabalhar em seu nome:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

2. No mesmo diretório, crie um arquivo de texto chamado CodeDeployDemo-EC2-Permissions.json. Cole o seguinte conteúdo:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ]}

Note

We recommend that you restrict this policy to only those Amazon S3 buckets your AmazonEC2 instances must access. Make sure to give access to the Amazon S3 buckets that containthe AWS CodeDeploy agent. Otherwise, an error may occur when the AWS CodeDeployagent is installed or updated on the instances. To grant the IAM instance profile access toonly some AWS CodeDeploy resource kit buckets in Amazon S3, use the following policy butremove the lines for buckets you want to prevent access to:

{ "Version": "2012-10-17", "Statement": [ {

Versão da API 2014-10-0637

Page 48: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um perfil de instância do IAM parasuas instâncias do Amazon EC2 (CLI)

"Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::replace-with-your-s3-bucket-name/*", "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-west-3/*", "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 de serviço do IAMdenominada CodeDeployDemo-EC2-Instance-Profile, com base nas informações do arquivo:

Important

Be sure to include file:// before the file name. It is required in this command.

aws iam create-role --role-name CodeDeployDemo-EC2-Instance-Profile --assume-role-policy-document file://CodeDeployDemo-EC2-Trust.json

4. No mesmo diretório, chame o comando put-role-policy para fornecer à função denominadaCodeDeployDemo-EC2-Instance-Profile as permissões com base nas informações do segundoarquivo:

Important

Be sure to include file:// before the file name. It is required in this command.

aws iam put-role-policy --role-name CodeDeployDemo-EC2-Instance-Profile --policy-name 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 criarum perfil de instância do IAM denominado CodeDeployDemo-EC2-Instance-Profile. O perfilda instância permite que o Amazon EC2 transmita a função do IAM denominada CodeDeployDemo-EC2-Instance-Profile para uma instância do Amazon EC2 quando essa instância for iniciadapela primeira vez:

aws iam create-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profileaws iam add-role-to-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile --role-name CodeDeployDemo-EC2-Instance-Profile

Se você precisar obter o nome do perfil da instância do IAM, consulte list-instance-profiles-for-role naseção IAM do documento Referência da AWS CLI.

Versão da API 2014-10-0638

Page 49: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um perfil de instância do IAM para

suas instâncias do Amazon EC2 (console)

Agora, você criou um perfil de instância do IAM a ser anexado a suas instâncias do Amazon EC2. Paraobter mais informações, consulte Funções do IAM para o Amazon EC2 no Guia do usuário do AmazonEC2.

Criar um perfil de instância do IAM para suasinstâncias do Amazon EC2 (console)1. Faça login no Console de gerenciamento da AWS e abra o console da IAM em https://

console.aws.amazon.com/iam/.2. No console do IAM, no painel de navegação, escolha Policies (Políticas) e Create policy (Criar

política). (Se aparecer um botão Get Started, selecione-o e, em seguida, Create Policy.)3. Na página Create policy (Criar política), cole o seguinte na guia JSON:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ]}

Note

We recommend that you restrict this policy to only those Amazon S3 buckets your AmazonEC2 instances must access. Make sure to give access to the Amazon S3 buckets that containthe AWS CodeDeploy agent. Otherwise, an error may occur when the AWS CodeDeployagent is installed or updated on the instances. To grant the IAM instance profile access toonly some AWS CodeDeploy resource kit buckets in Amazon S3, use the following policy butremove the lines for buckets you want to prevent access to:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::replace-with-your-s3-bucket-name/*", "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-west-3/*", "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/*",

Versão da API 2014-10-0639

Page 50: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um perfil de instância do IAM para

suas instâncias do Amazon EC2 (console)

"arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ]}

4. Escolha Revisar política.5. Na página Create policy (Criar política), digite CodeDeployDemo-EC2-Permissions na caixa Policy

Name (Nome da política).6. (Opcional) Em Descrição, digite uma descrição para a política.7. Selecione Create Policy (Criar política).8. No painel de navegação, escolha Roles e Create role.9. Na página Create role (Criar função), selecione AWS service (serviços da AWS) e na lista Choose the

service that will use this role (Escolha o serviço que usará essa função), selecione EC2.10. Na lista Selecione o caso de uso, selecione EC2.11. Escolha Próximo: Permissões.12. Na página Attached permissions policy, se houver uma caixa ao lado deCodeDeployDemo-EC2-

Permissions, selecione-a e, depois, escolha Next: Review.13. Na página Review, em Role name, digite um nome para a função de serviço (por exemplo,

CodeDeployDemo-EC2-Instance-Profile), and then choose Create role.

Você também pode digitar uma descrição para esta função de serviço na caixa Role description.

Agora, você criou um perfil de instância do IAM a ser anexado a suas instâncias do Amazon EC2. Paraobter mais informações, consulte Funções do IAM para o Amazon EC2 no Guia do usuário do AmazonEC2.

Versão da API 2014-10-0640

Page 51: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioIntegração com outros serviços da AWS

Integrações de produtos e serviçoscom o AWS CodeDeploy

Por padrão, o AWS CodeDeploy é integrado a vários serviços da AWS e a produtos e serviços deparceiros. A seguintes informações podem ajudá-lo a configurar o AWS CodeDeploy para integrar com osprodutos e os serviços que usa.

• Integração com outros serviços da AWS (p. 41)• Integração com produtos e serviços de parceiros (p. 52)• Exemplos de integração da comunidade (p. 59)

Integração com outros serviços da AWSO AWS CodeDeploy está integrado com os seguintes serviços da AWS:

Amazon CloudWatch Amazon CloudWatch é um serviço demonitoramento para os recursos da nuvem AWSe os aplicativos que você executa na AWS. Vocêpode usar o Amazon CloudWatch para coletar erastrear métricas, coletar e monitorar arquivos delog, e definir alarmes. O AWS CodeDeploy oferecesuporte às seguintes ferramentas do CloudWatch:

• Alarmes do CloudWatch para monitorar suasimplantações e interrompê-las quando suasmétricas de monitoramento especificadasexcederem ou estiverem abaixo dos limitesespecificados em uma regra de alarme doCloudWatch. Para usar o monitoramento dealarmes, você primeiro deve configurar umalarme no CloudWatch e depois adicioná-lo noAWS CodeDeploy ao aplicativo ou grupo deimplantação no qual as implantações devemparar quando o alarme for ativado.

Saiba mais:• Criar alarmes do CloudWatch Logs

• Eventos do Amazon CloudWatch para detectare reagir a alterações no estado de uma instânciaou implantação nas suas operações do AWSCodeDeploy. Em seguida, com base em regrasque você cria, o Eventos do CloudWatch chamauma ou mais ações de destino quando umaimplantação ou uma instância entrar no estadoespecificado em uma regra.

Saiba mais:• Monitoramento de implantações com o

Eventos do Amazon CloudWatch (p. 301)

Versão da API 2014-10-0641

Page 52: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioIntegração com outros serviços da AWS

• Amazon CloudWatch Logs para monitorar ostrês tipos de logs criados pelo agente do AWSCodeDeploy sem precisar fazer login em cadauma das instâncias.

Saiba mais:• Visualizar logs do AWS CodeDeploy no

console do CloudWatch Logs

Amazon EC2 Auto Scaling O AWS CodeDeploy oferece suporte ao AmazonEC2 Auto Scaling. Esse serviço da AWSpode executar instâncias do Amazon EC2automaticamente com base em critérios que vocêespecifica, por exemplo:

• Os limites excedidos para a utilizaçãoespecificada da CPU.

• Leituras/gravações de disco.• O tráfego de rede de entrada ou saída durante

um intervalo de tempo especificado.

Você pode ampliar um grupo de instâncias doAmazon EC2 sempre que você precisa delas e, emseguida, usar o AWS CodeDeploy para implantarrevisões de aplicativo nelas automaticamente. OAmazon EC2 Auto Scaling encerra as instânciasdo Amazon EC2 quando elas não são maisnecessárias.

Saiba mais:

• Integrar o AWS CodeDeploy ao Amazon EC2Auto Scaling (p. 46)

• Tutorial: use o AWS CodeDeploy para implantarum aplicativo em um grupo de Amazon EC2Auto Scaling (p. 102)

• Nos bastidores: integração entre o AWSCodeDeploy e o Auto Scaling

Versão da API 2014-10-0642

Page 53: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioIntegração com outros serviços da AWS

AWS CloudTrail O AWS CodeDeploy é integrado ao AWSCloudTrail. Esse serviço que captura chamadasde API feitas pelo AWS CodeDeploy ou em nomedele na sua conta da AWS e fornece os arquivosde log para um bucket do Amazon S3 que vocêespecifica. O CloudTrail captura chamadas de APIde um console do AWS CodeDeploy, de comandosdo AWS CodeDeploy por meio da AWS CLI ou dasAPIs do AWS CodeDeploy diretamente. Usando asinformações coletadas pelo CloudTrail, você podedeterminar:

• Qual solicitação foi feita para o AWSCodeDeploy.

• O endereço IP de origem do qual a solicitação foifeita.

• Quem fez a solicitação.• Quando ela foi feita.

Saiba mais:

• Monitoramento de implantações com o AWSCloudTrail (p. 303)

Versão da API 2014-10-0643

Page 54: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioIntegração com outros serviços da AWS

AWS Cloud9 AWS Cloud9 é um ambiente de desenvolvimentointegrado (IDE) baseado em nuvem online quevocê pode usar para gravar, executar, depurar eimplantar código usando apenas um navegador deuma máquina conectada à Internet. O AWS Cloud9inclui um editor de códigos, depurador, terminal eferramentas essenciais, como a AWS CLI e o Git.

• Você pode usar o IDE do AWS Cloud9 paraexecutar, depurar e criar o código que está emum repositório GitHub. Você pode visualizar,alterar e salvar o código usando as guias doeditor e a janela Environment (Ambiente) doIDE. Quando você estiver pronto, use o Git nasessão do terminal do AWS Cloud9 para enviarpor push alterações do código ao repositórioGitHub e, em seguida, use o AWS CodeDeploypara implantar as atualizações. Para obter maisinformações sobre como usar o AWS Cloud9com o GitHub, consulte Exemplo do GitHub parao AWS Cloud9.

• Você pode usar o IDE do AWS Cloud9 paraatualizar uma função do AWS Lambda. Emseguida, pode usar o AWS CodeDeploy paracriar uma implantação que passe o tráfego paraa nova versão da função AWS Lambda. Paraobter mais informações, consulte Trabalharcom funções do AWS Lambda no ambientede desenvolvimento integrado (IDE) do AWSCloud9.

Para obter mais informações sobre o AWS Cloud9,consulte O que é o AWS Cloud9 e Conceitosbásicos do AWS Cloud9.

Versão da API 2014-10-0644

Page 55: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioIntegração com outros serviços da AWS

AWS CodePipeline AWS CodePipeline é um serviço de entregacontínua que você pode usar para modelar,visualizar e automatizar as etapas necessáriaspara lançar seu software em um processode entrega contínua. Você pode usar o AWSCodePipeline para definir seu próprio processode lançamento, para que o serviço crie, teste eimplante seu código toda vez que houver umamudança de código. Por exemplo, você pode tertrês grupos de implantação para um aplicativo:Beta, Gamma e Prod. Você pode configurar umpipeline de forma que, cada vez que houver umamudança no código-fonte, as atualizações sejamimplantadas em cada grupo de implantação, uma auma.

Você pode configurar o AWS CodePipeline parausar o AWS CodeDeploy para implantar:

• Código para instâncias do Amazon EC2instâncias no local ou ambas.

• Versões da função da AWS Lambda semservidor

Você pode criar o aplicativo, implantação e grupode implantação do AWS CodeDeploy para usar emuma ação de implantação em uma etapa antes decriar o pipeline ou no assistente Create Pipeline(Criar pipeline).

Saiba mais:

• Guia de conceitos básicos da AWS para DevOps— Saiba como usar o AWS CodePipeline como AWS CodeDeploy para entregar e implantar ocódigo-fonte continuamente de repositórios doAWS CodeCommit em instâncias do AmazonEC2.

• Passo-a-passo de pipeline simples (bucket doAmazon S3)

• Passo-a-passo de pipeline simples (repositóriodo AWS CodeCommit)

• Tutorial de pipeline em quatro estágios

Versão da API 2014-10-0645

Page 56: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAmazon EC2 Auto Scaling

Modelo de aplicativo sem servidor da AWS Modelo de aplicativo sem servidor da AWS (AWSSAM) é um modelo para definir aplicativos semservidores. Ele estende o AWS CloudFormationpara fornecer uma maneira simplificada de definiras funções da AWS Lambda, APIs da AmazonAPI Gateway e tabelas do Amazon DynamoDBexigidas por um aplicativo sem servidor. Se vocêjá usa AWS SAM, pode adicionar preferênciasde implantação para começar a usar o AWSCodeDeploy para gerenciar a maneira pela qual otráfego é deslocado durante uma implantação doaplicativo AWS Lambda.

Para mais informações, consulte o Modelo deaplicativo sem servidor da AWS.

Elastic Load Balancing O AWS CodeDeploy oferece suporte ao ElasticLoad Balancing, um serviço que distribui o tráfegode aplicativos de entrada entre várias instâncias doAmazon EC2.

Para implantações do AWS CodeDeploy, os loadbalancers também impedem que o tráfego sejaroteado para instâncias quando elas não estiveremprontas, quanto estiverem sendo implantadas ounão forem mais necessárias como parte de umambiente.

Saiba mais:

• Integrar ao (p. 49)

Tópicos• Integrar o AWS CodeDeploy ao Amazon EC2 Auto Scaling (p. 46)• Integrar o AWS CodeDeploy ao Elastic Load Balancing (p. 49)

Integrar o AWS CodeDeploy ao Amazon EC2 AutoScalingO AWS CodeDeploy oferece suporte para Amazon EC2 Auto Scaling, um serviço da AWS que pode iniciarinstâncias do Amazon EC2 automaticamente de acordo com condições que você define. Essas condiçõespodem incluir limites excedidos em um intervalo de tempo especificado para utilização da CPU, leiturasou gravações de disco ou tráfego de rede de entrada ou saída. A Amazon EC2 Auto Scaling encerraas instâncias quando elas não são mais necessárias. Para obter mais informações, consulte O que é oAmazon EC2 Auto Scaling?

Quando novas instâncias do Amazon EC2 são iniciadas como parte de um grupo do Amazon EC2 AutoScaling, 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 AutoScaling registradas com balanceadores de carga do Elastic Load Balancing. Para obter mais informações,consulte Integrar ao (p. 49) e Configurar um load balancer no Elastic Load Balancing para implantaçõesdo AWS CodeDeploy (p. 242).

Versão da API 2014-10-0646

Page 57: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAmazon EC2 Auto Scaling

Note

Lembre-se de que você pode encontrar problemas se associar vários grupos de implantaçãocom um único grupo de Amazon EC2 Auto Scaling. Se uma implantação falhar, por exemplo, ainstância começará a ser desligada, mas as outras implementações que estavam em execuçãopoderã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 Amazon EC2 AutoScaling (p. 396) e Nos bastidores: integração entre o AWS CodeDeploy e o Amazon EC2 AutoScaling.

Tópicos• Implantar aplicativos AWS CodeDeploy em grupos de Amazon EC2 Auto Scaling (p. 47)• Comportamentos do Amazon EC2 Auto Scaling com o AWS CodeDeploy (p. 47)• Usando uma AMI personalizada com o AWS CodeDeploy e o Amazon EC2 Auto Scaling (p. 49)

Implantar aplicativos AWS CodeDeploy em grupos de AmazonEC2 Auto ScalingPara implantar uma revisão de aplicativo AWS CodeDeploy em um grupo de Amazon EC2 Auto Scaling doAmazon EC2:

1. Crie ou localize um perfil de instâncias do IAM que permita que o grupo de Amazon EC2 Auto Scalingfuncione com o Amazon S3.

Note

Você também pode usar o AWS CodeDeploy para implantar revisões de repositórios doGitHub em grupos de Amazon EC2 Auto Scaling. Embora as instâncias do Amazon EC2ainda exijam um perfil de instâncias do IAM, o perfil não precisa de permissões adicionaispara implantar a partir de um repositório GitHub. Para obter mais informações, consulte Etapa4: criar um perfil de instância do IAM para as suas instâncias do Amazon EC2 (p. 36).

2. Crie ou use um grupo de Amazon EC2 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 Amazon EC2 Auto Scaling.4. Crie um grupo de implantação com o AWS CodeDeploy especificando o nome do grupo de Amazon

EC2 Auto Scaling e a função de serviço.5. Use o AWS CodeDeploy para implantar sua revisão no grupo de implantação que contém o grupo de

Amazon EC2 Auto Scaling.

Para obter mais informações, consulte Tutorial: use o AWS CodeDeploy para implantar um aplicativo emum grupo de Amazon EC2 Auto Scaling (p. 102).

Comportamentos do Amazon EC2 Auto Scaling com o AWSCodeDeployA ordem de execução de eventos de gancho de ciclo de vida personalizados nãopode ser predeterminada

Você pode adicionar seus próprios ganchos de ciclo de vida a grupos de Amazon EC2 Auto Scaling nosquais o AWS CodeDeploy é implantado. No entanto, a ordem em que esses eventos de gancho de ciclode vida personalizados são executados não pode ser predeterminada. Por exemplo, se você adicionar umgancho de ciclo de vida personalizado chamado de ReadyForSoftwareInstall a um grupo de Amazon

Versão da API 2014-10-0647

Page 58: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAmazon EC2 Auto Scaling

EC2 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 Amazon EC2 AutoScaling, consulte Adicionar ganchos de ciclo de vida.

Eventos de dimensionamento durante uma implantação resultam em umambiente misto

Se um evento de aumento dimensionamento de Amazon EC2 Auto Scaling ocorrer enquanto umaimplantação estiver em andamento, as novas instâncias serão atualizadas com a revisão de aplicativoque foi implantada mais recentemente, e não com a revisão de aplicativo que está sendo implantadaatualmente. 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 aplicativomais recente nos grupos de implantação afetados.

Para evitar esse problema, recomendamos suspender os processos de dimensionamento do AmazonEC2 Auto Scaling enquanto as implantações estão ocorrendo. Você pode fazer isso através de umaconfiguração no script common_functions.sh que é usada para balanceamento de carga com o AWSCodeDeploy. Se HANDLE_PROCS=true, os seguintes eventos de Amazon EC2 Auto Scaling serãosuspensos automaticamente durante o processo de implantação:

• AZRebalance• AlarmNotification• ScheduledActions• ReplaceUnhealthy

Important

Somente a configuração de implantação CodeDeployDefault.OneAtATime oferece suporte paraessa funcionalidade. Se você estiver usando outras configurações de implantação, o grupo deimplantaçã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 deimplantação ao usar o Amazon EC2 Auto Scaling, consulte Aviso importante sobre como lidar comprocessos de AutoScaling em aws-codedeploy-samples no GitHub.

A ordem dos eventos deve ser controlada ao usar scripts cfn-init do AWSCloudFormation

Se você usar cfn-init (ou cloud-init) para executar scripts em instâncias Linux recém-provisionadas, suas implantações poderão falhar, a menos que você controle estritamente a ordem deeventos 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á iniciaruma implantação antes que todos os scripts tenham concluído a execução.

Versão da API 2014-10-0648

Page 59: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioElastic Load Balancing

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 osoutros 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 AWSCloudFormation.

Usando uma AMI personalizada com o AWS CodeDeploy e oAmazon EC2 Auto ScalingExistem duas opções para especificar a AMI base a ser usada quando novas instâncias do Amazon EC2são iniciadas em um grupo de Amazon EC2 Auto Scaling:

• Você pode especificar uma AMI base personalizada que já tenha o agente do AWS CodeDeployinstalado. Como o agente já está instalado, essa opção inicia novas instâncias do Amazon EC2 commais rapidez do que a outra opção. No entanto, com ela, são maiores as chances de que implantaçõesiniciais de instâncias do Amazon EC2 venham a falhar, especialmente se o agente do AWS CodeDeployestiver desatualizado. Se você escolher essa opção, recomendamos atualizar regularmente o agente doAWS CodeDeploy na sua AMI base personalizada.

• Você pode especificar uma AMI base que não tenha o agente do AWS CodeDeploy instalado e fazercom que o agente seja instalado à medida em que cada nova instância for iniciada em um grupo deAmazon EC2 Auto Scaling. Embora essa opção inicie novas instâncias do Amazon EC2 mais devagardo que a outra opção, com ela, são maiores as chances de que as implantações iniciais das instânciassejam bem-sucedidas. Essa opção usa a versão mais recente do agente do AWS CodeDeploy.

Integrar o AWS CodeDeploy ao Elastic LoadBalancingO Elastic Load Balancing fornece três tipos de load balancers que podem ser usados nas implantações doAWS CodeDeploy: Classic Load Balancers, Application Load Balancers e Network Load Balancers.

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 roteamentobaseado em trajeto. Ele pode encaminhar solicitações para portas em cada instância do EC2 ouinstância de contêiner na sua nuvem privada virtual (VPC).

Note

Os grupos de destino do Balanceador de carga de aplicações devem ter um tipo de destinode instance. Para obter mais informações, consulte Tipo de destino.

Network Load Balancer

Roteia e balanceia a carga na camada de transporte (Camada 4 TCP/UDP) com base nasinformações de endereço extraídas do cabeçalho do pacote TCP, e não do conteúdo do pacote.Network Load Balancers podem processar picos de tráfego, reter o IP de origem do cliente e usar umIP fixo durante a vida útil do load balancer.

Versão da API 2014-10-0649

Page 60: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioElastic Load Balancing

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 é um Classic Load Balancer?• O que é um Balanceador de carga de aplicações?• O que é um Network Load Balancer?

A função de um load balancer em uma implantação do AWSCodeDeployDurante implantações do AWS CodeDeploy, um load balancer impede que o tráfego da Internet sejaroteado para instâncias quando elas não estiverem prontas, quanto estiverem sendo implantadas ou nãoforem 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.

Note

O uso de load balancers do Elastic Load Balancing é obrigatório em implantações azuis/verdes eopcional em implantações no local.

Implantações azuis/verdesO roteamento do tráfego de instâncias por trás de um load balancer 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 novasinstâncias em um grupo de implantação nas quais a revisão de aplicativo mais recente tenha sidoimplantado (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 sendoexecutada (o ambiente original).

Após as instâncias em um ambiente de substituição serem registradas em um load balancer, o registro dasinstâ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, Balanceador decarga de aplicações ou Network Load Balancer em seu grupo de implantação. Você usa o console do AWSCodeDeploy 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 seguintestópicos:

• Configurar um load balancer no Elastic Load Balancing para implantações do AWSCodeDeploy (p. 242)

• Criar um aplicativo para uma implantação azul/verde (console) (p. 225)• Criar um grupo de implantação para uma implantação de EC2/No local azul/verde (console) (p. 238)

Implantações no localEm uma implantação no local, um balanceador de carga impede que o tráfego da Internet seja direcionadopara uma instância durante o processo, tornando-a novamente disponível para tráfego assim que essaimplantação é concluída.

Se o load balancer não for usado durante uma implantação, o tráfego da Internet ainda poderá serdirecionado para uma instância durante o processo de implantação. Como resultado, seus clientespoderão encontrar aplicativos web quebrados, incompletos ou desatualizados. Quando você usa umload balancer do Elastic Load Balancing com uma implantação no local, o registro das instâncias em umgrupo de implantação é cancelado de um load balancer, as instâncias são atualizadas com a revisão do

Versão da API 2014-10-0650

Page 61: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioElastic Load Balancing

aplicativo mais recente e, em seguida, são registradas novamente com o load balancer como parte domesmo 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, Balanceador de carga deaplicações ou Network Load Balancer. Você pode especificar o load balancer como parte da configuraçãodo grupo de implantação ou usar um script fornecido pelo AWS CodeDeploy para implantar o loadbalancer.

Para adicionar o load balancer a um grupo de implantação, use o console do AWS CodeDeploy ou a CLIda AWS. Para obter informações sobre como especificar um load balancer em um grupo de implantaçãopara as implantações no local, consulte os seguintes tópicos:

• Criar um aplicativo para uma implantação no local (console) (p. 223)• Criar um grupo de implantação para uma implantação no local (console) (p. 236)• Configurar um load balancer no Elastic Load Balancing para implantações do AWS

CodeDeploy (p. 242)

Para obter informações sobre como especificar um load balancer usando um script para as implantaçõesno local, consulte o seguinte tópico:

• Use um script para configurar um balanceador de carga para uma implantação no local (p. 51)

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 configuraro balanceamento de carga para implantações no local.

Note

Você deve usar a configuração de implantação CodeDeployDefault.OneAtATime somente quandoestiver usando um script para configurar um load balancer para uma implantação no local. Nãohá suporte para execuções simultâneas, e a configuração CodeDeployDefault.OneAtATimegarante uma execução em série dos scripts. Para obter mais informações sobre configuraçõesde implantação, consulte Trabalhando com configurações de implantação no AWSCodeDeploy (p. 214).

No repositório de amostras do AWS CodeDeploy, no GitHub, fornecemos instruções e amostras quevocê pode adaptar para usar os load balancers do Elastic Load Balancing AWS CodeDeploy. Essesrepositórios incluem três scripts de amostra—register_with_elb.sh, deregister_from_elb.sh ecommon_functions.sh—que fornecem todos os códigos necessários para você poder trabalhar. Bastaeditar 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 registradasem load balancers 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 nolocal:

• Classic Load Balancer• Balanceador de carga de aplicações ou Network Load Balancer (o mesmo script pode ser usado

para qualquer um desses tipos)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:*.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).

Versão da API 2014-10-0651

Page 62: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioIntegração com produtos e serviços de parceiros

5. No appspec.yml para a revisão de aplicativo, forneça instruções para o AWS CodeDeployexecutar o script register_with_elb.sh durante o evento ApplicationStart e o scriptderegister_from_elb.sh durante o evento ApplicationStop.

6. Se a instância fizer parte de um grupo de Amazon EC2 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 ElasticLoad Balancing em ELB_LIST="" e faça as alterações necessárias nas outras configurações deimplantação no arquivo.

• Se estiver usando o Balanceador de carga de aplicações ou Network Load Balancer, especifique osnomes dos grupos de destino do Elastic Load Balancing em TARGET_GROUP_LIST="" e faça asalteraçõ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 devida de implantação em uma revisão de aplicativo e faça o upload da revisão. Implante a revisãonas instâncias do Amazon EC2. Durante a implantação, os scripts de evento de ciclo de vida deimplantaçã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 nosbalanceadores de carga após a conclusão da implantação.

Integração com produtos e serviços de parceirosO 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 modelo para o Ansible e o AWS CodeDeploydemonstra como alguns ganchos de implantaçãosimples podem assegurar que o Ansible estejadisponível na instância de implantação locale execute os manuais. Se você já possui umprocesso para criar e manter seu inventário,também há um módulo Ansible que pode serusado para instalar e executar o agente do AWSCodeDeploy.

Saiba mais:

• Ansible e AWS CodeDeploy

Atlassian – Bamboo e Bitbucket A tarefa do AWS CodeDeploy para Bamboocompacta o diretório que contém um AppSpecfile em um arquivo .zip, carrega esse arquivono Amazon S3 e depois inicia a implantação deacordo com a configuração fornecida no aplicativoAWS CodeDeploy.

O suporte do Atlassian Bitbucket para AWSCodeDeploy permite enviar o código a instânciasdo Amazon EC2 diretamente da UI do Bitbucket,sob demanda, para qualquer um dos seus gruposde implantação. Isso significa que, depois deatualizar o código no seu repositório do Bitbucket,você não precisa fazer login na sua plataformade integração contínua (CI) ou em instâncias

Versão da API 2014-10-0652

Page 63: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioIntegração com produtos e serviços de parceiros

do Amazon EC2 para executar um processo deimplantação manual.

Saiba mais:

• Usar a tarefa do AWS CodeDeploy para Bamboo• Anunciar o suporte do Atlassian Bitbucket para o

AWS CodeDeploy

Chef A AWS fornece duas amostras de modelo paraintegração do Chef e do AWS CodeDeploy. Aprimeiro é um guia do Chef que instala e inicia oagente do AWS CodeDeploy. Isso permite quevocê continue gerenciando sua infraestruturade host com o Chef enquanto usa o AWSCodeDeploy. O segundo template de amostrademonstra como usar o AWS CodeDeploy paraorquestrar a execução de guias e receitas com umchef-solo em cada nó.

Saiba mais:

• Chef e AWS CodeDeploy

CircleCI O CircleCI fornece um conjunto de ferramentasde teste e integração contínua e implantaçãoautomatizada. Depois de criar uma função do IAMna AWS para uso com o CircleCI e configurarseus parâmetros de implantação no arquivocircle.yml, você poderá usar o CircleCI com o AWSCodeDeploy para criar revisões de aplicativos,carregá-las em um bucket do Amazon S3 e depoisiniciar e monitorar suas implantações.

Saiba mais:

• Implementação contínua com o AWSCodeDeploy

CloudBees Você pode usar o plugin Jenkins do AWSCodeDeploy, disponível em CloudBeesDEV@cloud, como ação pós-compilação. Porexemplo, no final de um pipeline de entregacontínua, você pode usá-lo para implantar umarevisão de aplicativo na sua frota de servidores.

Saiba mais:

• Plugin Jenkins do AWS CodeDeploy agoradisponível no DEV@cloud

Versão da API 2014-10-0653

Page 64: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioIntegração com produtos e serviços de parceiros

Codeship É possível usar o Codeship para implantar revisõesde aplicativos por meio do AWS CodeDeploy. Vocêpode usar a UI do Codeship para adicionar o AWSCodeDeploy a um pipeline de implantação parauma ramificação.

Saiba mais:

• Implantação no AWS CodeDeploy• Integração do AWS CodeDeploy no Codeship

GitHub É possível usar o AWS CodeDeploy para implantarrevisões de aplicativos de repositórios GitHub.Também é possível disparar uma implantação deum repositório GitHub sempre que o código-fontenesse repositório é alterado.

Saiba mais:

• Integrando o AWS CodeDeploy com oGitHub (p. 56)

• Tutorial: usar o AWS CodeDeploy para implantarum aplicativo do GitHub (p. 119)

• Implantar automaticamente do GitHub usando oAWS CodeDeploy

HashiCorp Consul Você pode usar a ferramenta de software abertoHashiCorp Consul para ajudar a garantir aintegridade e a estabilidade do seu ambientede aplicativo ao implantar aplicativos no AWSCodeDeploy. Você pode usar o Consul pararegistrar aplicativos que serão descobertos durantea implantação, colocar aplicativos e nós no modode manutenção para omiti-los de implantaçõese interromper implantações se as instâncias dedestino se tornarem não íntegras.

Saiba mais:

• Implantações do AWS CodeDeploy com oHashiCorp Consul

Jenkins O plugin do AWS CodeDeploy Jenkins forneceuma etapa pós-compilação para o seu projetoJenkins. Após uma compilação bem-sucedida,ele compacta o espaço de trabalho, faz upload noAmazon S3 e inicia uma nova implantação.

Saiba mais:

• Plug-in do AWS CodeDeploy Jenkins• Configurar o plug-in Jenkins para AWS

CodeDeploy

Versão da API 2014-10-0654

Page 65: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioIntegração com produtos e serviços de parceiros

Puppet Labs A AWS fornece modelos de exemplo para oPuppet e o AWS CodeDeploy. A primeiro é ummódulo Puppet que instala e inicia o agentedo AWS CodeDeploy. Isso permite que vocêcontinue gerenciando sua infraestrutura de hostcom o Puppet enquanto usa o AWS CodeDeploy.O segundo template de amostra demonstracomo usar o AWS CodeDeploy para orquestrara execução de módulos e manifestos com umPuppet sem mestre em cada nó.

Saiba mais:

• Puppet e AWS CodeDeploy

SaltStack Você pode integrar a infraestrutura SaltStack como AWS CodeDeploy. É possível usar o módulodo AWS CodeDeploy para instalar e executar oagente do AWS CodeDeploy em seus minions ou,com alguns ganchos de implantação simples, vocêpode usar o AWS CodeDeploy para orquestrar ofuncionamento dos seus Salt States.

Saiba mais:

• SaltStack e AWS CodeDeploy

Solano Labs Depois que sua compilação tiver aprovado seustestes no Solano CI, um script será executadopara preparar seu aplicativo para lançamento. Ocomando aws deploy push empacota e envia seuaplicativo pelo AWS CodeDeploy e, opcionalmente,implanta a revisão de aplicativo em um grupo deimplantação e confirma que ela foi implantada.Você também pode configurar implantações doAWS CodeDeploy automáticas a partir da suacompilação do CI.

Saiba mais:

• Implantações do AWS CodeDeploy a partir decompilações do Solano CI

TeamCity Você pode usar o plugin AWS CodeDeployRunner para implantar aplicativos diretamentedo TeamCity. O plug-in adiciona uma etapa deconstrução TeamCity que prepara e carrega umarevisão de aplicativo em um bucket do AmazonS3, registra essa revisão em um aplicativo AWSCodeDeploy, cria uma implantação do AWSCodeDeploy e, se você escolher, aguarda aconclusão dessa implantação.

Saiba mais:

• AWS CodeDeploy Runner (download)• Plug-in do AWS CodeDeploy Runner

(documentação)

Versão da API 2014-10-0655

Page 66: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioGitHub

Travis CI Você pode configurar o Travis CI para ativar umaimplantação no AWS CodeDeploy depois de umacompilação bem-sucedida.

Saiba mais:

• Travis CI e implantações do AWS CodeDeploy

Tópicos• Integrando o AWS CodeDeploy com o GitHub (p. 56)

Integrando o AWS CodeDeploy com o GitHubO AWS CodeDeploy oferece suporte ao GitHub, um serviço de hospedagem e compartilhamento decódigo baseado na Web. O AWS CodeDeploy pode implantar revisões de aplicativos armazenados emrepositórios do 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. 56)• Implantando revisões do AWS CodeDeploy a partir do GitHub (p. 56)• Comportamentos do GitHub com o AWS CodeDeploy (p. 57)

Introdução de vídeo à integração do AWS CodeDeploy com oGitHubEste curto vídeo (5:20) demonstra como automatizar implantações de aplicativos com o AWS CodeDeploya 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 GitHubPara 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 qualvocê fará a implantação.

Para criar uma revisão compatível, siga as instruções em Planejar uma revisão para o AWSCodeDeploy (p. 250) e Adicionar um arquivo de especificações de aplicativo a uma revisão para oAWS CodeDeploy (p. 251).

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 Create deployment (Criar implantação) no console do AWS CodeDeploy ou o comandocreate-deployment da AWS CLI para implantar sua revisão do seu repositório GitHub em instâncias dedestino configuradas para uso em implantações do AWS CodeDeploy.

Se você deseja chamar o comando create-deployment, primeiro é necessário usar a página Createdeployment (Criar implantação) do console para dar ao AWS CodeDeploy permissão para interagircom o GitHub em nome da sua conta do GitHub preferencial para o aplicativo especificado. Você sóprecisa fazer isso uma vez por aplicativo.

Versão da API 2014-10-0656

Page 67: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioGitHub

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. 267).

Para saber como chamar o comando create-deployment para implantar a partir de um repositório doGitHub, consulte Criar uma implantação EC2/No local Plataforma de computação (CLI) (p. 278).

Para saber como preparar instâncias para uso em implantações do AWS CodeDeploy, consulteTrabalhando com instâncias para o AWS CodeDeploy (p. 155).

Para obter mais informações, consulte Tutorial: usar o AWS CodeDeploy para implantar um aplicativo doGitHub (p. 119).

Comportamentos do GitHub com o AWS CodeDeployTópicos

• Autenticação do GitHub com aplicativos no AWS CodeDeploy (p. 57)• Interação do AWS CodeDeploy com repositórios GitHub particulares e públicos (p. 58)• Interação do AWS CodeDeploy com repositórios GitHub gerenciados pela organização (p. 58)• Implantar automaticamente do AWS CodePipeline com o AWS CodeDeploy (p. 59)

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 contado GitHub e o aplicativo é armazenada no AWS CodeDeploy. É possível vincular o aplicativo a uma contado GitHub diferente. Você também pode revogar a permissão para o AWS CodeDeploy interagir com oGitHub.

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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).3. Escolha o aplicativo que deseja vincular a uma conta do GitHub diferente.4. Se o aplicativo não tiver um grupo de implantação, selecione Create deployment group (Criar grupo

de implantação) para criar um. Para obter mais informações, consulte Criar um grupo de implantaçãocom o AWS CodeDeploy (p. 235). Um grupo de implantação é necessário para selecionar Createdeployment (Criar implantação) na próxima etapa.

5. Em Deployments (Implantações), selecione Create deployment (Criar implantação).

Note

Não é necessário criar uma nova implantação. Atualmente, esta é a única maneira devincular uma conta do GitHub diferente a um aplicativo.

6. Em Deployment settings (Configurações de implantação), para Revision type (Tipo de revisão),selecione My application is stored in GitHub (Meu aplicativo está armazenado no GitHub).

7. Siga um destes 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 GitHub token name (Nome do token do

Versão da API 2014-10-0657

Page 68: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioGitHub

GitHub), digite um nome para identificar essa conexão e, em seguida, selecione Connect to GitHub(Conectar-se ao GitHub). A página da Web solicita que você autorize o AWS CodeDeploy a interagircom o GitHub para o seu aplicativo. Continue na etapa 10.

• Para usar uma conexão já criada, em GitHub token name (Nome do token do GitHub), selecioneseu nome e, em seguida, selecione Connect to GitHub (Conectar-se ao GitHub). Continue na etapa8.

• Para criar uma conexão com uma conta do GitHub diferente, saia do GitHub em uma guia separadado navegador. Em GitHub token name (Nome do token do GitHub), digite um nome para identificara conexão e, em seguida, selecione Connect to GitHub (Conectar-se ao GitHub). A página daWeb solicita que você autorize o AWS CodeDeploy a interagir com o GitHub para o seu aplicativo.Continue na etapa 10.

8. Se você ainda não entrou no GitHub, siga as instruções na página Fazer login para fazer login com aconta do GitHub à qual deseja vincular o aplicativo.

9. Escolha Autorizar aplicativo. O GitHub dá ao AWS CodeDeploy permissão para interagir com o GitHubem nome da conta do GitHub conectada para o aplicativo selecionado.

10. Se não quiser criar uma implantação, escolha Cancelar.

Para revogar permissões para o AWS CodeDeploy interagir com o GitHub

1. Faça login no GitHub usando as credenciais da conta do GitHub na qual deseja revogar a permissãodo AWS CodeDeploy.

2. Abra a página Applications 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úblicosO AWS CodeDeploy dá suporte à implantação de aplicativos de repositórios GitHub particularese públicos. Ao dar permissão ao AWS CodeDeploy para acessar o GitHub em seu nome, o AWSCodeDeploy tem acesso de leitura e gravação a todos os repositórios GitHub particulares aos quais asua conta do GitHub tem acesso. No entanto, o AWS CodeDeploy somente faz leituras dos repositóriosGitHub. Ele não gravará em nenhum dos seus repositórios GitHub particulares.

Interação do AWS CodeDeploy com repositórios GitHub gerenciados pelaorganizaçãoPor padrão, os repositórios GitHub gerenciados por uma organização (ao contrário de repositóriosparticulares ou públicos da sua conta) não concedem acesso a aplicativos de terceiros, incluindo o AWSCodeDeploy. Sua implantação falhará se as restrições de aplicativos de terceiros de uma organizaçãoestiverem habilitadas no GitHub e você tentar implantar o código do seu repositório GitHub. Há duasmaneiras de resolver esse problema.

• Como membro da organização, você pode solicitar ao proprietário da organização que aprove o acessoao AWS CodeDeploy. As etapas para solicitar esse acesso dependem de você já ter autorizado o AWSCodeDeploy para sua conta individual:• Se você tiver autorizado o acesso ao AWS CodeDeploy na sua conta, consulte Solicitação de

aprovação da organização para seus aplicativos autorizados.• Se ainda não tiver autorizado o acesso ao AWS CodeDeploy na sua conta, consulte Solicitação de

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 parasua organização.

Para obter mais informações, consulte Sobre restrições de aplicativos de terceiros.

Versão da API 2014-10-0658

Page 69: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExemplos de integração da comunidade

Implantar automaticamente do AWS CodePipeline com o AWS CodeDeploy

É possível disparar uma implantação de um AWS CodePipeline sempre que o código-fonte é alterado.Para obter mais informações, consulte AWS CodePipeline.

Exemplos de integração da comunidadeAs seguintes seções fornecem links para publicações no blog, artigos e exemplos fornecidos pelacomunidade.

Note

Esses links são fornecidos apenas para fins informativos e não devem ser consideradoscomo uma lista abrangente ou como um endosso do conteúdo dos exemplos. A AWS não seresponsabiliza pelo conteúdo ou pela precisão de conteúdo externo.

Publicações no blog• Automatizar provisionamento do AWS CodeDeploy no AWS CloudFormation

Saiba como provisionar a implantação de um aplicativo no AWS CodeDeploy usando o AWSCloudFormation.

Publicado em janeiro de 2016• Integração do AWS Toolkit for Eclipse com o AWS CodeDeploy (parte 1)

Integração do AWS Toolkit for Eclipse com o AWS CodeDeploy (parte 2)

Integração do AWS Toolkit for Eclipse com o AWS CodeDeploy (parte 3)

Saiba como os desenvolvedores Java podem usar o plug-in do AWS CodeDeploy para Eclipse paraimplantar 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 umpipeline 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• Hospedar 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 servidorIIS (Serviços de Informações da Internet) em sistemas operacionais Microsoft Windows.

Hospedar aplicativos ASP.NET 5 na AWS com o Docker e o AWS CodeDeploy

Publicado em outubro de 2015

Duração: 47:37• Dominar o AWS CodeDeploy com o Jenkins e o Puppet

Versão da API 2014-10-0659

Page 70: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVídeos

Saiba como usar as ferramentas de software aberto Jenkins e Puppet com o AWS CodeDeploy.

Dominar o AWS CodeDeploy com o Jenkins e o Puppet

Publicado em maio de 2015

Duração: 49:31

Versão da API 2014-10-0660

Page 71: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioTutorial: Implantar o WordPressem uma instância não Windows

Tutoriais do AWS CodeDeployEsta seção inclui alguns tutoriais para ajudá-lo a aprender a usar o AWS CodeDeploy.

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 aos buckets, subpastas ou arquivos (por exemplo,codedeploydemobucket, HelloWorldApp e CodeDeployDemo-EC2-Trust.json, respectivamente), mas nãoé necessário usá-los. Certifique-se de substituir os nomes e locais dos seus arquivos enquanto realiza osprocedimentos.

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. 61)• Tutorial: implantar um aplicativo "Hello, World!" Aplicativo com AWS CodeDeploy (Windows

Server) (p. 80)• Tutorial: implantar um aplicativo em uma instância local com o AWS CodeDeploy (Windows Server,

Ubuntu Server ou Red Hat Enterprise Linux) (p. 95)• Tutorial: use o AWS CodeDeploy para implantar um aplicativo em um grupo de Amazon EC2 Auto

Scaling (p. 102)• Tutorial: usar o AWS CodeDeploy para implantar um aplicativo do GitHub (p. 119)

Tutorial: Implantar o WordPress em uma instânciado Amazon EC2 (Amazon Linux ou Red HatEnterprise Linux e Linux, macOS, or Unix)

Neste tutorial, você implanta o WordPress, uma ferramenta de blog de código aberto e sistema degerenciamento de conteúdo baseado em PHP e MySQL, em uma única instância do Amazon EC2executando o Amazon Linux ou o Red Hat Enterprise Linux (RHEL).

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!" Aplicativo com AWS CodeDeploy (WindowsServer) (p. 80).

• Para praticar a implantação em uma instância local, em vez de uma instância do Amazon EC2, consulteTutorial: implantar um aplicativo em uma instância local com o AWS CodeDeploy (Windows Server,Ubuntu Server ou Red Hat Enterprise Linux) (p. 95).

As etapas deste tutorial são apresentadas sob a perspectiva de uma máquina de desenvolvimento localexecutando o Linux, macOS, or Unix. Embora possa concluir a maioria dessas etapas em uma máquinalocal executando o Windows, você precisa adaptar as etapas que fazem referência a comandos, comochmod 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 Introdução ao AWSCodeDeploy (p. 30). Esses pré-requisitos incluem configurar sua conta de usuário do IAM, instalar ouatualizar a AWS CLI e criar uma função de serviço e um perfil de instâncias do IAM.

Tópicos

Versão da API 2014-10-0661

Page 72: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 1: iniciar uma instância do Amazon EC2

• Etapa 1: Iniciar e configurar uma instância do Amazon EC2 do Amazon Linux ou do Red Hat EnterpriseLinux (p. 62)

• Etapa 2: Configurar o conteúdo de origem a ser implantado na instância do Amazon Linux ou do RedHat Enterprise Linux Amazon EC2 (p. 64)

• Etapa 3: carregar seu aplicativo WordPress no Amazon S3 (p. 67)• Etapa 4: implantar seu aplicativo WordPress (p. 71)• Etapa 5: atualizar e reimplantar o aplicativo WordPress (p. 75)• Etapa 6: limpar seu aplicativo WordPress e recursos relacionados (p. 78)

Etapa 1: Iniciar e configurar uma instância do AmazonEC2 do Amazon Linux ou do Red Hat Enterprise LinuxPara implantar o aplicativo WordPress com o AWS CodeDeploy, você precisará de uma instânciado Amazon EC2 que executa o Amazon Linux ou o Red Hat Enterprise Linux (RHEL). A instância doAmazon EC2 requer uma nova regra de segurança de entrada que permita conexões HTTP. Essa regraé necessária para visualizar a página do WordPress em um navegador depois que ela é implantada comêxito.

Siga as instruções em Trabalhando com instâncias para o AWS CodeDeploy (p. 155). 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 da tag de Name e o valor da tag de CodeDeployDemo. (Se vocêespecificar uma chave de tag ou um valor de tag diferente, as instruções em Etapa 4: implantar seuaplicativo WordPress (p. 71) 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 continuena próxima seção. Não continue em Criar um aplicativo com o AWS CodeDeploy (p. 221) como próximaetapa.

Conectar-se à instância do Amazon EC2 do Amazon Linux ou doRHELDepois que a sua nova instância do Amazon EC2 for iniciada, siga essas instruções para praticar aconexão com ela.

1. Use o comando ssh (ou um emulador de terminal compatível com SSH, como o PuTTY) paraconectar-se à instância do Amazon EC2 do Amazon Linux ou do RHEL. Você precisará do endereçoDNS público da instância e da chave privada para o par de chaves usado na inicialização da instânciado Amazon EC2. Para obter mais informações, consulte Conecte-se à sua instância.

Por exemplo, se o endereço DNS público for ec2-01-234-567-890.compute-1.amazonaws.com,e o par de chaves da sua instância do Amazon EC2 para acesso SSH for denominadocodedeploydemo.pem, você poderá digitar:

ssh -i /path/to/codedeploydemo.pem [email protected]

Substitua /path/to/codedeploydemo.pem pelo caminho para o seu arquivo .pem e substitua oendereço DNS de exemplo pelo endereço de sua instância do Amazon EC2 do Amazon Linux ou doRHEL.

Note

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ê). Porexemplo, com o comando chmod no Linux, macOS, or Unix, digite:

Versão da API 2014-10-0662

Page 73: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 1: iniciar uma instância do Amazon EC2

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. Confirme se o agente do AWS CodeDeploy foi instalado corretamente, quando você configurou ainstância do Amazon EC2, digitando o seguinte:

sudo service codedeploy-agent status

Para obter mais informações sobre como determinar o status do agente do AWS CodeDeploy,consulte Verificar se o agente do AWS CodeDeploy está em execução (p. 140).

Se o agente do AWS CodeDeploy não estiver instalado, siga as instruções em Instalar ou reinstalar oagente do AWS CodeDeploy para Amazon Linux ou RHEL (p. 143).

4. 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 CodeDeploynão poderá fazer a implantação.

Adicionar regra de entrada para permitir tráfego HTTP para ainstância do Amazon EC2 do Amazon Linux ou do RHELA próxima etapa confirma se a instância do Amazon EC2 tem uma porta HTTP aberta para que você possaver em um navegadora página inicial do aplicativo WordPress implantado.

1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon EC2 em https://console.aws.amazon.com/ec2/.

2. Escolha Instances e selecione a instância.3. Em Security groups, escolha view inbound rules.

Você deve ver uma lista de regras em seu security group semelhante à seguinte:

Security Groups associated with i-1234567890abcdef0 Ports Protocol Source launch-wizard-N 22 tcp 0.0.0.0/0 ✔

4. Em Security groups (Grupos de segurança), escolha o grupo de segurança da instância do AmazonEC2. Ele pode ser chamado launch-wizard-N. O N no nome é um número atribuído ao grupo desegurança quando a instância foi criada.

Escolha a guia Inbound (Regras de entrada). O grupo de segurança da instância está configuradocorretamente quando você vê uma regra com os seguintes valores:

• Type: HTTP• Protocol (Protocolo): TCP• Port Range: 80

Versão da API 2014-10-0663

Page 74: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 2: Configurar o conteúdo de origem

• Source: Custom5. Se você não vir uma regra com os valores listados na etapa anterior, use os procedimentos em Como

adicionar regras a um security group para adicioná-los a uma nova regra de segurança.

Etapa 2: Configurar o conteúdo de origem a serimplantado na instância do Amazon Linux ou do RedHat Enterprise Linux Amazon EC2Agora é hora de configurar o conteúdo de origem do seu aplicativo, para que você tenha algo paraimplantar na instância.

Tópicos• Obter o código-fonte (p. 64)• Criar scripts para executar seu aplicativo (p. 65)• Adicionar um arquivo de especificação de aplicativo (p. 66)

Obter o código-fontePara este tutorial, você implantará a plataforma de publicação de conteúdo WordPress da sua máquina dedesenvolvimento na sua instância do Amazon EC2 de destino. Para obter o código-fonte do WordPress,você pode usar chamadas internas de linha de comando. Ou, se tiver o Git instalado na sua máquina dedesenvolvimento, poderá usá-lo como alternativa.

Para estas etapas, partimos do princípio de que você tenha feito download de uma cópia do código-fontedo WordPress no diretório /tmp da sua máquina de desenvolvimento. (É possível escolher qualquerdiretório desejado, mas lembre-se de substituir /tmp pela localização sempre que esse diretório forespecificado nas etapas.)

Escolha uma das duas opções a seguir para copiar os arquivos de código-fonte do WordPress em suamáquina de desenvolvimento. A primeira opção usa chamadas integradas de linha de comando. Asegunda opção usa o Git.

Tópicos• Para obter uma cópia do código-fonte do WordPress (chamadas internas de linha de

comando) (p. 64)• Para obter uma cópia do código-fonte do WordPress (Git) (p. 65)

Para obter uma cópia do código-fonte do WordPress (chamadas internas de linhade comando)

1. Chame o comando wget para fazer download de uma cópia do código-fonte do WordPress, como umarquivo .zip, no diretório atual:

wget https://github.com/WordPress/WordPress/archive/master.zip

2. Chame os comandos unzip, mkdir, cp e rm para:

• Descompactar o arquivo master .zip no /tmp/WordPress_Temp diretório (pasta).• Copiar seu conteúdo descompactado na pasta de destino /tmp/WordPress.• Excluir a pasta temporária /tmp/WordPress_Temp e o arquivo master.

Versão da API 2014-10-0664

Page 75: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 2: Configurar o conteúdo de origem

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 https://github.com/WordPress/WordPress.git /tmp/WordPress

Isso deixará você com um conjunto limpo de arquivos de código-fonte do WordPress na pasta /tmp/WordPress.

Criar scripts para executar seu aplicativoEm seguida, crie uma pasta e scripts no diretório. O AWS CodeDeploy usa esses scripts para configurare implantar sua revisão de aplicativo na instância de destino do Amazon EC2. É possível usar qualquereditor 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 asseguintes linhas ao arquivo. Este script install_dependencies.sh instala Apache, MySQL e PHP.Ele também adiciona suporte do MySQL ao PHP.

✔!/bin/bashsudo yum install -y httpd24 php70 mysql56-server php70-mysqlnd

3. Crie um arquivo start_server.sh no /tmp/WordPress/scripts. Adicione as seguintes linhasao arquivo. Este script start_server.sh inicia Apache e MySQL.

Versão da API 2014-10-0665

Page 76: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 2: Configurar o conteúdo de origem

✔!/bin/bashservice httpd startservice mysqld start

4. Crie um arquivo stop_server.sh no /tmp/WordPress/scripts. Adicione as seguintes linhas aoarquivo. Este script stop_server.sh para Apache e MySQL.

✔!/bin/bashisExistApp=`pgrep httpd`if [[ -n $isExistApp ]]; then service httpd stopfiisExistApp=`pgrep mysqld`if [[ -n $isExistApp ]]; then service mysqld stopfi

5. Crie um arquivo create_test_db.sh no /tmp/WordPress/scripts. Adicione as seguintes linhasao arquivo. Este script create_test_db.sh usa o MySQL para criar um banco de dados de testpara uso do WordPress.

✔!/bin/bashmysql -uroot <<CREATE_TEST_DBCREATE DATABASE test;CREATE_TEST_DB

6. Finalmente, crie um script change_permissions.sh em /tmp/WordPress/scripts. Ele é usadopara alterar as permissões de pastas no Apache.

Important

Este script mostra permissões atualizadas na pasta /tmp/WordPress para que qualquerpessoa possa gravar nele. Isso é necessário para que o WordPress possa gravar em seubanco de dados durante Etapa 5: atualizar e reimplantar o aplicativo WordPress (p. 75).Depois que o aplicativo do WordPress for configurado, execute o seguinte comando paraatualizar permissões em uma configuração mais segura:

chmod -R 755 /var/www/html/WordPress

✔!/bin/bashchmod -R 777 /var/www/html/WordPress

7. 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 aplicativoEm seguida, adicione um application specification file (AppSpec file), um arquivo formatado em YAMLusado pelo AWS CodeDeploy para:

• Mapear os arquivos de origem na sua revisão de aplicativo para os respectivos destinos na instância doAmazon EC2 de destino.

Versão da API 2014-10-0666

Page 77: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 3: carregar seu aplicativo no Amazon S3

• 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 AppSpec file deve ser nomeado appspec.yml. Ele deve ser colocado no diretório raiz do código-fontedo aplicativo. Neste tutorial, o diretório raiz é /tmp/WordPress.

Com seu editor de texto, crie um arquivo chamado appspec.yml. Adicione as seguintes linhas aoarquivo:

version: 0.0os: linuxfiles: - source: / destination: /var/www/html/WordPresshooks: 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 - location: scripts/create_test_db.sh timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root

O AWS CodeDeployusa esse AppSpec file para copiar todos os arquivos da pasta /tmp/WordPressna máquina de desenvolvimento na pasta /var/www/html/WordPress da instância do Amazon EC2de destino. Durante a implantação, o AWS CodeDeploy executa os scripts especificados como root napasta /var/www/html/WordPress/scripts da instância do Amazon EC2 de destino em eventosespecificados durante o ciclo de vida da implantação, como BeforeInstall e AfterInstall. Sealgum desses scripts demorar mais de 300 segundos (5 minutos) para ser executado, o AWS CodeDeployinterromperá a implantação e a marcará como falha.

Para obter mais informações sobre essas configurações, consulte o Referência AppSpec File do AWSCodeDeploy (p. 334).

Important

Os locais e números de espaços entre cada um dos itens desse arquivo são importantes. Seo espaçamento estiver incorreto, o AWS CodeDeploy gerará um erro que pode ser difícil dedepurar. Para obter mais informações, consulte Espaçamento de AppSpec File (p. 364).

Etapa 3: carregar seu aplicativo WordPress noAmazon S3Agora, você preparará e carregará seu conteúdo original em um local a partir de onde o AWS CodeDeploypossa implantá-lo. As instruções a seguir mostram como provisionar um bucket do Amazon S3, preparar

Versão da API 2014-10-0667

Page 78: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 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á-lapara esse bucket.

Note

Embora não discutido neste tutorial, você pode usar o AWS CodeDeploy para implantaraplicativos de repositórios GitHub em instâncias. Para obter mais informações, consulteIntegrando o AWS CodeDeploy com o GitHub (p. 56).

Tópicos• Provisionar um bucket do Amazon S3 (p. 68)• Preparar os arquivos do aplicativo para o bucket (p. 70)• Agrupar os arquivos do aplicativo em um único arquivamento e enviar o arquivamento (p. 70)

Provisionar um bucket do Amazon S3Crie um contêiner de armazenamento ou bucket no Amazon S3 — ou use um bucket existente. Certifique-se de que você possa carregar a revisão no bucket e de que as instâncias do Amazon EC2 usadas nasimplantaçõ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 doAmazon S3. Depois de criar o bucket, certifique-se de dar permissões de acesso a ele e ao seu usuário doIAM.

Note

Os nomes de buckets devem ser exclusivos no Amazon S3 para todas as contas da AWS.Se não for possível usar codedeploydemobucket, tente um nome de bucket diferente,como codedeploydemobucket, seguido por um traço e suas iniciais ou algum outroidentificador exclusivo. Em seguida, certifique-se de substituir o nome do bucket porcodedeploydemobucket 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 doAmazon EC2 de destino são executadas. 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 executadasem Leste dos EUA (Norte da Virgínia) Região.

Tópicos• Para criar um bucket do Amazon S3 (CLI) (p. 68)• Para criar um bucket do Amazon S3 (console) (p. 68)• Fornecer permissões ao bucket do Amazon S3 e ao usuário do IAM (p. 69)

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 https://console.aws.amazon.com/s3/.2. No console do Amazon S3, escolha Create bucket (Criar bucket).3. Na caixa Nome do bucket, digite um nome para o bucket.4. Na lista Região, escolha a região de destino e escolha Criar.

Versão da API 2014-10-0668

Page 79: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 3: carregar seu aplicativo no Amazon S3

Fornecer permissões ao bucket do Amazon S3 e ao usuário do IAM

Você deve ter permissões para fazer upload do bucket do Amazon S3. Você pode especificar essaspermissões com uma política de bucket do Amazon S3. Por exemplo, na política de bucket do AmazonS3 a seguir, o uso do caractere coringa (*) permite que a conta do AWS 111122223333 faça o upload dearquivos para qualquer diretório no bucket do Amazon S3 denominado codedeploydemobucket:

{ "Statement": [ { "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "111122223333" ] } } ]}

To view your AWS account ID, see Finding Your AWS Account ID.

Now is a good time to verify the Amazon S3 bucket will allow download requests from each participatingAmazon EC2 instance. You can specify this through an Amazon S3 bucket policy. For example, in thefollowing Amazon S3 bucket policy, using the wildcard character (*) allows any Amazon EC2 instancewith an attached IAM instance profile containing the ARN arn:aws:iam::80398EXAMPLE:role/CodeDeployDemo to download files from any directory in the Amazon S3 bucket namedcodedeploydemobucket:

{ "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, consulteExemplos de políticas de bucket.

Sua conta deve ter permissão para carregar a revisão no bucket do Amazon S3. Uma maneira deespecificar isso é por meio de uma política do IAM. A seguinte política de usuário do IAM personalizadapermite que seu usuário do IAM faça upload de revisões em qualquer lugar do bucket do Amazon S3denominado codedeploydemobucket:

{

Versão da API 2014-10-0669

Page 80: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 3: carregar seu aplicativo no Amazon S3

"Version":"2012-10-17", "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 Como trabalhar compolíticas.

Preparar os arquivos do aplicativo para o bucketCertifique-se de que os arquivos do aplicativo WordPress, o AppSpec file e os scripts estejam organizadosna sua máquina de desenvolvimento de maneira semelhante à seguinte:

/tmp/ |--WordPress/ |-- appspec.yml |-- scripts/ | |-- change_permissions.sh | |-- create_test_db.sh | |-- install_dependencies.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 eenviar o arquivamentoAgrupe os arquivos do aplicativo WordPress e o AppSpec file em um arquivamento (conhecido como umarevisão do aplicativo).

Note

Você pode ser cobrado por armazenar objetos em um bucket e por transferir revisões deaplicativos para dentro e fora de um bucket. Para obter mais informações, consulte a Definição depreço do Amazon S3.

1. Na máquina de desenvolvimento, mude para a pasta na qual os arquivos estão armazenados:

cd /tmp/WordPress

Note

Se você não mudar para essa pasta, o agrupamento de arquivos começará na suapasta atual. Por exemplo, se a sua pasta atual for /tmp em vez de /tmp/WordPress, o

Versão da API 2014-10-0670

Page 81: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 4: implantar seu aplicativo

empacotamento começará com arquivos e subpastas na pasta tmp, o que pode incluir maisdo 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 noAmazon S3 e registrar informações no AWS CodeDeploy sobre a revisão obtida por upload, tudo emuma ú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) emum único arquivamento denominado WordPressApp.zip, faz upload da revisão no bucketcodedeploydemobucket e registra informações no AWS CodeDeploy sobre a revisão obtida porupload.

Etapa 4: implantar seu aplicativo WordPressAgora, você implanta a revisão do aplicativo WordPress de amostra que carregou no Amazon S3. Usea AWS CLI ou o console do AWS CodeDeploy para implantar a revisão e monitorar o progresso daimplantação. Depois que a revisão do aplicativo for implementada com êxito, confira os resultados.

Tópicos• Implantar sua revisão de aplicativo com o AWS CodeDeploy (p. 71)• Monitorar sua implantação e solucionar problemas relacionados (p. 73)• Verificar sua implantação (p. 74)

Implantar sua revisão de aplicativo com o AWS CodeDeployTópicos

• Para implantar sua revisão de aplicativo (CLI) (p. 71)• Para implantar sua revisão de aplicativo (console) (p. 72)

Para implantar sua revisão de aplicativo (CLI)

1. A implantação precisa de um grupo de implantação. No entanto, antes de criar o grupo deimplantação, você precisa de um ARN de função de serviço. Uma função de serviço é uma função doIAM que dá a um serviço permissão para agir em seu nome. Nesse caso, a função de serviço concedeao AWS CodeDeploy permissão para acessar as instâncias do Amazon EC2 e expandir (ler) as tagsda instância do Amazon EC2.

Você já deve ter seguido as instruções em Criar uma função de serviço (CLI) (p. 34) para criar umafunçã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. 36).

2. Agora que você tem o ARN da função de serviço, chame o comando create-deployment-group paracriar um grupo de implantação chamado WordPress_DepGroup, associado ao aplicativo chamadoWordPress_App, usando a tag de instância do Amazon EC2 chamada CodeDeployDemo e a

Versão da API 2014-10-0671

Page 82: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 4: implantar seu aplicativo

configuração de implantação chamada CodeDeployDefault.OneAtATime, com o ARN de funçãode serviço:

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

Note

O comando create-deployment-group fornece suporte para criar os gatilhos que resultam noenvio de notificações do Amazon SNS aos assinantes do tópico sobre eventos especificadosem implementações e instâncias. O comando também oferece suporte a opções parareverter automaticamente implantações e configurar alarmes para interromper implantaçõesquando os limites de monitoramento nos alarmes do Amazon CloudWatch são atingidos. Oscomandos para essas ações não estão incluídos neste tutorial.

3. Agora, chame o comando create-deployment para criar uma implantação associada ao aplicativoWordPress_App, a configuração de implantação CodeDeployDefault.OneAtATime e o grupo deimplantação WordPress_DepGroup, usando a revisão de aplicativo WordPressApp.zip no bucketcodedeploydemobucket:

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 a revisão do aplicativo, você precisade um ARN de função de serviço. Uma função de serviço é uma função do IAM que dá a um serviçopermissão para agir em seu nome. Nesse caso, a função de serviço concede ao AWS CodeDeploypermissão para acessar as instâncias do Amazon EC2 e expandir (ler) as tags da instância doAmazon EC2.

Você já deve ter seguido as instruções em Criar uma função de serviço (console) (p. 32) para criaruma função de serviço. Para obter o ARN da função de serviço, consulte Obter o ARN da função deserviço (console) (p. 36).

2. Agora que você tem o ARN, use o console do AWS CodeDeploy para implantar a revisão doaplicativo:

Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

3. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).4. Na lista de aplicativos, selecione WordPress_App.5. Na guia Deployment groups (Grupos de implantação), selecione Create deployment group (Criar um

grupo de implantação).6. Em Deployment group name (Nome do grupo de implantação), insira WordPress_DepGroup.

Versão da API 2014-10-0672

Page 83: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 4: implantar seu aplicativo

7. Em Deployment type, escolha In-place deployment.8. Em Environment configuration (Configuração do ambiente), selecione Amazon EC2 instances

(Instâncias do EC2).9. Em Key (Chave), insira Name.10. Em Value (Valor), insira CodeDeployDemo.

Note

Após digitar CodeDeployDemo, um 1 deve aparecer em Matching instances (Instânciascorrespondentes) para confirmar que o AWS CodeDeploy encontrou uma instância doAmazon EC2 correspondente.

11. Em Deployment configuration (Configuração de implantação), selecioneCodeDeployDefault.OneAtATime.

12. Em Service role ARN (ARN da função de serviço), selecione o ARN da função de serviço e, emseguida, escolha Create deployment group (Criar grupo de implantação).

13. Escolha Criar implantação.14. Em Deployment group (Grupo de implantação), selecione WordPress_DepGroup.15. Ao lado de Repository type (Tipo de repositório), selecione My application is stored in Amazon

S3 (Meu aplicativo está armazenado no &S3;). Em Revision location (Local da revisão), insira alocalização da amostra de revisão do aplicativo WordPress cujo upload você fez anteriormente para oAmazon S3. Para obter a localização:

a. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.b. Na lista de buckets, selecione codedeploydemobucket (ou o nome do bucket no qual você fez

upload da sua revisão de aplicativo).c. Na lista de objetos, selecione WordPressApp.zip.d. Na guia Visão geral, copie o valor do campo Link na área de transferência.

A aparência pode ser semelhante a esta:

https://s3.amazonaws.com/codedeploydemobucket/WordPressApp.zip

e. Retorne ao console do AWS CodeDeploy e, em Revision location (Local da revisão), cole o valordo campo Link.

16. Se uma mensagem aparecer na lista File type (Tipo de arquivo), indicando que o tipo de arquivo nãopôde ser detectado, escolha .zip.

17. (Opcional) Digite um comentário na caixa Deployment description.18. Expanda Deployment group overrides (Substituições de grupos de implantação) e em Deployment

configuration (Configuração de implantação), selecione CodeDeployDefault.OneAtATime.19. Selecione Start deployment (Iniciar implantação). As informações sobre a implantação recém-criada

aparecem na página Deployments.

Monitorar sua implantação e solucionar problemas relacionadosTópicos

• Para monitorar e solucionar problemas de implantação (CLI) (p. 73)• Para monitorar e solucionar problemas de implantação (console) (p. 74)

Para monitorar e solucionar problemas de implantação (CLI)

1. Obtenha o ID de implantação chamando o comando list-deployments para o aplicativo chamadoWordPress_App e o grupo de implantação chamado WordPress_DepGroup:

Versão da API 2014-10-0673

Page 84: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 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 retorna o status geral da implantação. Se a implantação for bem-sucedida, o valor seráSucceeded.

Se o status geral for Failed, você poderá chamar comandos como list-deployment-instances e get-deployment-instance para solucionar problemas. Para mais opções de solução de problemas, consulteAnalisando arquivos de log para investigar falhas de implantação em instâncias (p. 393).

Para monitorar e solucionar problemas de implantação (console)

Na página Deployments (Implantações) no console do AWS CodeDeploy, você pode monitorar o status daimplantação na coluna Status.

Para obter mais informações sobre a implantação, especialmente se o valor da coluna Status tiverqualquer outro valor que não Succeeded:

1. Na tabela Deployments (Implantações), selecione o nome da implantação. Depois que umaimplantação falhar, uma mensagem descrevendo o motivo da falha será exibida.

2. Na Instance activity (Atividade da instância), mais informações sobre a implantação são exibidas.Depois que uma implantação apresentar falha, você possivelmente conseguirá determinar em quaisinstâncias do Amazon EC2 e em qual etapa ocorreu a falha.

3. Se quiser realizar outros procedimentos de solução de problemas, use uma técnica como a descritaem Exibir Detalhes da Instância (p. 208). Você também pode analisar os arquivos de log deimplantação em uma instância do Amazon EC2. Para obter mais informações, consulte Analisandoarquivos de log para investigar falhas de implantação em instâncias (p. 393).

Verificar sua implantaçãoDepois 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, paravisualizar seu site em um navegador da Web. (Para obter o valor DNS público, no console do AmazonEC2, selecione a instância do Amazon EC2 e, na guia Description (Descrição), procure o valor do PublicDNS (DNS público).)

Por exemplo, se o endereço DNS público da sua instância do Amazon EC2 forec2-01-234-567-890.compute-1.amazonaws.com, você usará o seguinte URL:

http://ec2-01-234-567-890.compute-1.amazonaws.com/WordPress

Quando você visualizar o site em seu navegador, verá uma página de boas-vindas do WordPresssemelhante à seguinte:

Versão da API 2014-10-0674

Page 85: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 5: atualizar e reimplantar seu aplicativo

Se a sua instância do Amazon EC2 não tiver uma regra de entrada HTTP adicionada a seu grupo desegurança, a página de boas-vindas do WordPress não será exibida. Se aparecer uma mensagemindicando que o servidor remoto não está respondendo, certifique-se de que o grupo de segurança desua instância do Amazon EC2 tenha a regra de entrada. Para obter mais informações, consulte Adicionarregra de entrada para permitir tráfego HTTP para a instância do Amazon EC2 do Amazon Linux ou doRHEL (p. 63).

Etapa 5: atualizar e reimplantar o aplicativoWordPressAgora que você implantou com êxito a sua revisão de aplicativo, atualize o código do WordPress namáquina de desenvolvimento e use o AWS CodeDeploy para reimplantar o site. Em seguida, você devever as alterações de código na instância do Amazon EC2.

Tópicos• Configurar o site do WordPress (p. 75)• Modificar o site (p. 76)• Reimplantar o site (p. 76)

Configurar o site do WordPressPara ver os efeitos da mudança de código, termine de configurar o site do WordPress para que você tenhauma instalação totalmente funcional.

Versão da API 2014-10-0675

Page 86: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 5: atualizar e reimplantar seu aplicativo

1. Digite a URL do seu site no navegador. O URL é o endereço DNS público da instância doAmazon EC2 mais a extensão /WordPress. Para este exemplo, o site do WordPress (eo exemplo de endereço DNS público da instância do Amazon EC2), o URL é http://ec2-01-234-567-890.compute-1.amazonaws.com/WordPress.

2. Se ainda não tiver configurado o site, a página de boas-vindas padrão do WordPress será exibida.Escolha Let's go!.

3. Na página de configuração do banco de dados, digite os seguintes valores para usar o banco dedados 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 da 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, faça login no seu painel.

Important

Durante a implantação do aplicativo WordPress, o script change_permissions.sh atualizouas permissões da pasta /tmp/WordPress para que qualquer pessoa possa gravar nela. Agoraé um bom momento para executar o comando a seguir e restringir permissões para que apenasvocê, o proprietário, possa gravar nele:

chmod -R 755 /var/www/html/WordPress

Modificar o sitePara 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 alterar ✔fff para ✔768331.

No Linux ou outros sistemas com o GNU sed, use:

sed -i 's/✔fff/✔768331/g' wp-content/themes/twentyfifteen/style.css

No macOS, Unix ou outros sistemas com o BSD sed, use:

sed -i '' 's/✔fff/✔768331/g' wp-content/themes/twentyfifteen/style.css

Reimplantar o siteAgora que você modificou o código do site, use o Amazon S3 e o AWS CodeDeploy para reimplantar osite.

Versão da API 2014-10-0676

Page 87: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 5: atualizar e reimplantar seu aplicativo

Empacote e faça upload as alterações no Amazon S3, conforme descrito em Agrupar os arquivos doaplicativo em um único arquivamento e enviar o arquivamento (p. 70). (Ao seguir essas instruções,lembre-se de que não é necessário criar um aplicativo.) Especifique a mesma chave de antes para a novarevisão (WordPressApp.zip). Faça upload dela 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. 77)• Para reimplantar o site (console) (p. 77)

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 de implantação WordPress_DepGroup, e a revisão WordPressApp.zip no bucketcodedeploydemobucket:

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 solucionarproblemas relacionados (p. 73).

Quando o AWS CodeDeploy tiver reimplantado o site, reveja-o no seu navegador da Web para verificar seas 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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).3. Na lista de aplicativos, selecione WordPress_App.4. Na guia Deployment groups (Grupos de implantação), escolha WordPress_DepGroup.5. Escolha Criar implantação.6. Na página Create deployment:

a. Em Deployment group (Grupo de implantação), selecione WordPress_DepGroup.b. Na área Repository type (Tipo de repositório), selecione My application is stored in Amazon S3

(Meu aplicativo está armazenado no &S3;) e copie o link do Amazon S3 da revisão para a caixaRevision location (Local da revisão). Para encontrar o valor do link:

i. Em uma guia separada do navegador:

Faça login no Console de gerenciamento da AWS e abra o console da Amazon S3 em https://console.aws.amazon.com/s3/.

Versão da API 2014-10-0677

Page 88: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 6: Limpeza

Navegue até codedeploydemobucket para abri-lo e selecione sua revisão:WordPressApp.zip.

ii. Se o painel Properties (Propriedades) não estiver visível no console do Amazon S3,selecione o botão Properties (Propriedades).

iii. No painel Properties (Propriedades), copie o valor do campo Link na caixa Revision location(Local da revisão) no console AWS CodeDeploy.

c. Se uma mensagem aparecer informando que o tipo de arquivo não pôde ser detectado, escolha.zip.

d. Deixe a caixa Descrição da implantação em branco.e. Expanda Deployment group overrides (Substituições de grupos de implantação) e em Deployment

configuration (Configuração de implantação), selecione CodeDeployDefault.OneAtATime.f. Selecione Start deployment (Iniciar implantação). As informações sobre a implantação recém-

criada aparecem na página Deployments.g. Você pode verificar o status da implantação conforme descrito em Monitorar sua implantação e

solucionar problemas relacionados (p. 73).

Quando o AWS CodeDeploy tiver reimplantado o site, reveja-o no seu navegador da Web paraverificar se as cores mudaram. (Talvez seja necessário atualizar o navegador.) Se as coresmudaram, parabéns! Você modificou e reimplantou seu site com sucesso!

Etapa 6: limpar seu aplicativo WordPress e recursosrelacionadosAgora, você atualizou com sucesso o código do WordPress e reimplantou o site. Para evitar cobrançascontí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ê atenha criado fora do AWS CloudFormation).

• Qualquer bucket do Amazon S3.• O aplicativo WordPress_App no AWS CodeDeploy.

Use a AWS CLI, os consoles do AWS CloudFormation, Amazon S3, Amazon EC2 e AWS CodeDeploy, ouas APIs da AWS para executar a limpeza.

Tópicos• Para limpar recursos (CLI) (p. 78)• Para limpar recursos (console) (p. 79)• E o próximo? (p. 80)

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 EC2acompanhantes 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 para o bucketdenominado codedeploydemobucket. Isso excluirá o bucket e todos os seus objetos:

Versão da API 2014-10-0678

Page 89: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 6: Limpeza

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 terminate-instances para encerrar qualquer instância do Amazon EC2 criada manualmente. Forneça o ID dainstâ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 AWSCloudFormation associada.

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS CloudFormation emhttps://console.aws.amazon.com/cloudformation.

2. Na caixa Filter (Filtro), digite o nome da pilha do AWS CloudFormation criada anteriormente (porexemplo, 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 EC2acompanhantes 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 https://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.

Repita essas etapas para cada instância.

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 https://console.aws.amazon.com/s3/.

2. Na lista de buckets, navegue e escolha o nome do bucket do Amazon S3 que você criouanteriormente (por exemplo, codedeploydemobucket).

3. Antes de poder excluir um bucket, você deve excluir seu conteúdo. Selecione todos os arquivos nobucket, como WordPressApp.zip. No menu Ações, escolha Excluir. Quando solicitado a confirmar aexclusão, escolha OK.

Versão da API 2014-10-0679

Page 90: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioTutorial: implantar um aplicativo Hello World

em uma instância do Windows Server

4. Depois que o bucket estiver vazio, você poderá excluí-lo. Na lista de buckets, escolha a linha dobucket (mas não o nome do bucket). Escolha Excluir bucket e quando solicitado a confirmar, escolhaOK.

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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).3. Na lista de aplicativos, selecione WordPress_App.4. Na página Detalhes do aplicativo, escolha Excluir aplicativo.5. Quando solicitado, digite o nome do aplicativo para confirmar que você deseja excluí-lo e, em seguida,

escolha Delete (Excluir).

E o próximo?Se você chegou até aqui, parabéns! Você concluiu com êxito uma implantação do AWS CodeDeploy edepois atualizou o código do seu site e o reimplantou.

Tutorial: implantar um aplicativo "Hello, World!"Aplicativo com AWS CodeDeploy (Windows Server)

Neste tutorial, você implanta uma única página da web em uma única instância do Windows Server doAmazon EC2 que executa o IIS (Serviços de Informações da Internet) como seu servidor web. Essa páginada web exibe uma simples mensagem "Hello, World!".

Não é o que você está procurando?

• Para praticar a implantação em uma instância do Amazon Linux ou Red Hat Enterprise Linux (RHEL)Amazon EC2, consulte Tutorial: Implantar o WordPress em uma instância do Amazon EC2 (AmazonLinux ou Red Hat Enterprise Linux e Linux, macOS, or Unix) (p. 61).

• Para praticar a implantação em uma instância local, consulte Tutorial: implantar um aplicativo emuma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat EnterpriseLinux) (p. 95).

As etapas deste tutorial são apresentadas sob a perspectiva do Windows. Embora você possa concluir amaioria dessas etapas em uma máquina local executando o Linux, macOS, or Unix, é necessário adaptaras etapas que fazem referência a caminhos de diretório baseados no Windows, como c:\temp. Alémdisso, se quiser se conectar à instância do Amazon EC2, você precisará de um aplicativo cliente que possaconectar via protocolo RDP à instância do Amazon EC2 que executa o Windows Server. (O Windows incluium aplicativo cliente de conexão RDP por padrão.)

Antes de iniciar este tutorial, você deve atender aos pré-requisitos em Introdução ao AWSCodeDeploy (p. 30), que incluem configurar seu usuário do IAM, instalar ou atualizar a AWS CLI e criaruma função de serviço e um perfil de instâncias do IAM.

Versão da API 2014-10-0680

Page 91: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 1: iniciar uma instância do Amazon EC2

Tópicos• Etapa 1: Executar uma instância do Amazon EC2 no Windows Server (p. 81)• Etapa 2: Configurar o conteúdo de origem para implantar na instância do Amazon EC2 do Windows

Server (p. 82)• Etapa 3: carregar seu aplicativo "Hello, World!" para o Amazon S3 (p. 84)• Etapa 4: implantar seu aplicativo "Hello, World!" Aplicativo (p. 87)• Etapa 5: atualizar e reimplantar o aplicativo "Hello, World!" Aplicativo (p. 91)• Etapa 6: limpar seu aplicativo "Hello, World!" e os recursos relacionados (p. 93)

Etapa 1: Executar uma instância do Amazon EC2 noWindows ServerPara implantar o aplicativo "Hello, World!" com o AWS CodeDeploy, você precisa de uma instância doAmazon EC2 em execução no Windows Server.

Siga as instruções em Trabalhando com instâncias para o AWS CodeDeploy (p. 155). Quando estiverpronto para atribuir uma tag de instância do Amazon EC2 à instância, especifique a chave da tag deName e o valor da tag de CodeDeployDemo. (Se você especificar uma chave de tag ou um valor de tagdiferente, as instruções em Etapa 4: implantar seu aplicativo "Hello, World!" Aplicativo (p. 87) poderãoproduzir resultados inesperados.)

Depois de iniciar a instância do Amazon EC2, retorne a essa página e continue na próxima seção. Nãocontinue em Criar um aplicativo com o AWS CodeDeploy (p. 221) como próxima etapa.

Conectar-se à sua instância do Amazon EC2Depois que a sua instância do Amazon EC2 for iniciada, siga essas instruções para praticar a conexãocom ela.

Note

Nestas instruções, partimos do princípio de que você esteja executando o Windows e o aplicativocliente de Conexão de Área de Trabalho do Windows. Para obter informações, consulteEstabelecendo uma conexão com a sua instância do Windows usando o RDP. Talvez sejanecessário adaptar essas instruções para outros sistemas operacionais ou outros aplicativoscliente de conexão RDP.

1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon EC2 em https://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 Windows Server na lista.4. Selecione Conectar.5. Escolha Get Password.6. Escolha Navegar. Procure e escolha o arquivo de par de chaves da instância do Amazon EC2

associado à instância do Amazon EC2 no Windows Server e escolha Open (Abrir).7. Escolha Decrypt Password. Anote a senha que é exibida. Você vai precisar dele na etapa 10.8. Escolha Download Remote Desktop File e 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.

Versão da API 2014-10-0681

Page 92: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 2: Configurar o conteúdo de origem

10. Digite a senha que você anotou na etapa 7 e continue. (Se seu aplicativo cliente de conexão RDPsolicitar um nome de usuário, digite Administrator.)

11. Se você for solicitado a se conectar, continue mesmo que a identidade do computador remoto nãopossa ser verificada.

12. Quando você estiver conectado, a área de trabalho da instância do Amazon EC2 em execução noWindows 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 conseguiráimplantar nela.

Etapa 2: Configurar o conteúdo de origem paraimplantar na instância do Amazon EC2 do WindowsServerAgora é hora de configurar o conteúdo de origem do seu aplicativo, para que você tenha algo que possaimplantar na instância do Amazon EC2. Para este tutorial, você implantará uma única página da Web nainstância do Amazon EC2 que executa o Windows Server, que executará o IIS (Serviços de Informaçõesda Internet) como seu servidor web. Essa página da Web exibirá uma simples mensagem "Hello, World!".

Tópicos• Criar página da Web (p. 82)• Crie um script para executar seu aplicativo (p. 83)• Adicionar um arquivo de especificação de aplicativo (p. 83)

Criar página da Web1. Crie um subdiretório (subpasta) chamado HelloWorldApp na pasta c:\temp e, em seguida, mude

para essa pasta.

mkdir c:\temp\HelloWorldAppcd c:\temp\HelloWorldApp

Note

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 aolongo 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" "http://www.w3.org/TR/html4/loose.dtd"><html><head> <title>Hello, World!</title>

Versão da API 2014-10-0682

Page 93: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 2: Configurar o conteúdo de origem

<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="https://aws.amazon.com/codedeploy">AWS CodeDeploy Documentation</a>.</p> </div></body></html>

Crie um script para executar seu aplicativoEm seguida, você criará um script que o AWS CodeDeploy usará para configurar o servidor web nainstância do Amazon EC2 de destino.

1. Na mesma subpasta em que o arquivo index.html está salvo, use um editor de texto para criaroutro 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 ServerManagerc:\Windows\Sysnative\WindowsPowerShell\v1.0\powershell.exe -Command Install-WindowsFeature Web-Server

Adicionar um arquivo de especificação de aplicativoEm seguida, você adicionará um application specification file (AppSpec file), além da página da web e doarquivo de script em lotes. O AppSpec file é um arquivo formatado em YAML usado pelo AWS CodeDeploypara:

• 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 AppSpec file deve ser nomeado appspec.yml. Ele deve ser colocado na pasta raiz do código-fonte doaplicativo.

1. Na mesma subpasta em que os arquivos index.html e before-install.bat estão salvos, useum 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.

Versão da API 2014-10-0683

Page 94: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 3: carregar seu aplicativo no Amazon S3

version: 0.0os: windowsfiles: - source: \index.html destination: c:\inetpub\wwwroothooks: BeforeInstall: - location: \before-install.bat timeout: 900

O AWS CodeDeploy usará esse AppSpec file 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. Durantea implantação, o AWS CodeDeploy executará o script em lotes before-install.bat na instância doAmazon EC2 de destino durante o evento de ciclo de vida de implantação BeforeInstall. Se essescript demorar mais de 900 segundos (15 minutos) para ser executado, o AWS CodeDeploy interromperá aimplantaçã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 AppSpec File do AWSCodeDeploy (p. 334).

Important

Os locais e números de espaços entre cada um dos itens desse arquivo são importantes. Seo espaçamento estiver incorreto, o AWS CodeDeploy gerará um erro que talvez seja difícil dedepurar. Para obter mais informações, consulte Espaçamento de AppSpec File (p. 364).

Etapa 3: carregar seu aplicativo "Hello, World!" para oAmazon S3Agora, você preparará e carregará seu conteúdo original em um local a partir de onde o AWS CodeDeploypossa implantá-lo. As instruções a seguir mostram como provisionar um bucket do Amazon S3, prepararos arquivos da revisão de aplicativo para o bucket, agrupar os arquivos da revisão e, em seguida, enviá-lapara esse bucket.

Note

Embora não discutido neste tutorial, você pode usar o AWS CodeDeploy para implantaraplicativos de repositórios GitHub em instâncias. Para obter mais informações, consulteIntegrando o AWS CodeDeploy com o GitHub (p. 56).

Tópicos• Provisionar um bucket do Amazon S3 (p. 84)• Preparar os arquivos do aplicativo para o bucket (p. 86)• Agrupar os arquivos do aplicativo em um único arquivamento e enviar o arquivamento (p. 87)

Provisionar um bucket do Amazon S3Crie um contêiner de armazenamento ou bucket no Amazon S3 — ou use um bucket existente. Certifique-se de que você possa carregar a revisão no bucket e de que as instâncias do Amazon EC2 usadas nasimplantaçõ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 doAmazon S3. Depois de criar o bucket, certifique-se de dar permissões de acesso a ele e ao seu usuário doIAM.

Versão da API 2014-10-0684

Page 95: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 3: carregar seu aplicativo no Amazon S3

Note

Os nomes de buckets devem ser exclusivos no Amazon S3 para todas as contas da AWS.Se não for possível usar codedeploydemobucket, tente um nome de bucket diferente,como codedeploydemobucket, seguido por um traço e suas iniciais ou algum outroidentificador exclusivo. Em seguida, certifique-se de substituir o nome do bucket porcodedeploydemobucket 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 doAmazon EC2 de destino são executadas. 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 executadasem Leste dos EUA (Norte da Virgínia) Região.

Tópicos• Para criar um bucket do Amazon S3 (CLI) (p. 85)• Para criar um bucket do Amazon S3 (console) (p. 85)• Fornecer permissões ao bucket do Amazon S3 e ao usuário do IAM (p. 85)

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 https://console.aws.amazon.com/s3/.2. No console do Amazon S3, escolha Create bucket (Criar bucket).3. Na caixa Nome do bucket, digite um nome para o bucket.4. Na lista Região, escolha a região de destino e escolha Criar.

Fornecer permissões ao bucket do Amazon S3 e ao usuário do IAM

Você deve ter permissões para fazer upload do bucket do Amazon S3. Você pode especificar essaspermissões com uma política de bucket do Amazon S3. Por exemplo, na política de bucket do AmazonS3 a seguir, o uso do caractere coringa (*) permite que a conta do AWS 111122223333 faça o upload dearquivos para qualquer diretório no bucket do Amazon S3 denominado codedeploydemobucket:

{ "Statement": [ { "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "111122223333" ] } } ]}

Versão da API 2014-10-0685

Page 96: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 3: carregar seu aplicativo no Amazon S3

To view your AWS account ID, see Finding Your AWS Account ID.

Now is a good time to verify the Amazon S3 bucket will allow download requests from each participatingAmazon EC2 instance. You can specify this through an Amazon S3 bucket policy. For example, in thefollowing Amazon S3 bucket policy, using the wildcard character (*) allows any Amazon EC2 instancewith an attached IAM instance profile containing the ARN arn:aws:iam::80398EXAMPLE:role/CodeDeployDemo to download files from any directory in the Amazon S3 bucket namedcodedeploydemobucket:

{ "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, consulteExemplos de políticas de bucket.

Sua conta deve ter permissão para carregar a revisão no bucket do Amazon S3. Uma maneira deespecificar isso é por meio de uma política do IAM. A seguinte política do IAM permite que seuusuário do IAM faça upload de revisões em qualquer lugar no bucket do Amazon S3 denominadocodedeploydemobucket:

{ "Version":"2012-10-17", "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 Como trabalhar compolíticas.

Preparar os arquivos do aplicativo para o bucketCertifique-se de que a página da Web, o AppSpec file e o script estejam organizados na sua máquina dedesenvolvimento da seguinte maneira:

c:\ |-- temp\ |--HelloWorldApp\ |-- appspec.yml |-- before-install.bat

Versão da API 2014-10-0686

Page 97: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 4: implantar seu aplicativo

|-- index.html

Agrupar os arquivos do aplicativo em um único arquivamento eenviar o arquivamentoAgrupe os arquivos em um arquivamento (conhecido como uma revisão de aplicativo).

Note

Você pode ser cobrado por armazenar objetos em um bucket e por transferir revisões deaplicativos para dentro e fora de um bucket. Para obter mais informações, consulte a Definição depreç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

Note

Se você não mudar para essa pasta, o agrupamento de arquivos começará na sua pastaatual. Por exemplo, se a sua pasta atual for c:\temp, e não c:\temp\HelloWorldApp, oempacotamento começará com os arquivos e as subpastas da pasta c:\temp, o que poderáincluir mais do que a subpasta HelloWorldApp.

2. Chame o comando create-application para registrar um novo aplicativo denominadoHelloWorld_App com o 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 noAmazon S3 e registrar informações no AWS CodeDeploy sobre a revisão obtida por upload, tudo emuma única ação.

aws deploy push --application-name HelloWorld_App --s3-location s3://codedeploydemobucket/HelloWorld_App.zip --ignore-hidden-files

Esse comando agrupa os arquivos do diretório atual (excluindo todos os arquivos ocultos) emum único arquivamento denominado HelloWorld_App.zip, faz upload da revisão no bucketcodedeploydemobucket e registra informações no AWS CodeDeploy sobre a revisão obtida porupload.

Etapa 4: implantar seu aplicativo "Hello, World!"AplicativoAgora, você implanta o exemplo da revisão de aplicativo "Hello, World!" que fez upload no Amazon S3.Use a AWS CLI ou o console do AWS CodeDeploy para implantar a revisão e monitorar o progresso daimplantação. Depois que a revisão do aplicativo for implementada com êxito, confira os resultados.

Tópicos• Implantar sua revisão de aplicativo com o AWS CodeDeploy (p. 88)• Monitorar sua implantação e solucionar problemas relacionados (p. 90)• Verificar sua implantação (p. 90)

Versão da API 2014-10-0687

Page 98: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 4: implantar seu aplicativo

Implantar sua revisão de aplicativo com o AWS CodeDeployVocê pode implantar seu aplicativo usando a CLI ou o console.

Tópicos• Para implantar sua revisão de aplicativo (CLI) (p. 88)• Para implantar sua revisão de aplicativo (console) (p. 88)

Para implantar sua revisão de aplicativo (CLI)

1. Primeiro, a implantação precisa de um grupo de implantação. No entanto, antes de criar o grupo deimplantação, você precisa de um ARN de função de serviço. Uma função de serviço é uma função doIAM que dá a um serviço permissão para agir em seu nome. Nesse caso, a função de serviço concedeao AWS CodeDeploy permissão para acessar as instâncias do Amazon EC2 e expandir (ler) as tagsda instância do Amazon EC2.

Você já deve ter seguido as instruções em Criar uma função de serviço (CLI) (p. 34) para criar umafunçã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. 36).

2. Agora que você tem o ARN de função de serviço, chame o comando create-deployment-group paracriar um grupo de implantação chamado HelloWorld_DepGroup, associado ao aplicativo chamadoHelloWorld_App, usando a tag de instância do Amazon EC2 chamada CodeDeployDemo e aconfiguração de implantação chamada CodeDeployDefault.OneAtATime, com o ARN de funçãode serviço:

aws deploy create-deployment-group --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --deployment-config-name CodeDeployDefault.OneAtATime --ec2-tag-filters Key=Name,Value=CodeDeployDemo,Type=KEY_AND_VALUE --service-role-arn serviceRoleARN

Note

O comando create-deployment-group fornece suporte para criar os gatilhos que resultam noenvio de notificações do Amazon SNS aos assinantes do tópico sobre eventos especificadosem implementações e instâncias. O comando também oferece suporte a opções parareverter automaticamente implantações e configurar alarmes para interromper implantaçõesquando os limites de monitoramento nos alarmes do Amazon CloudWatch são atingidos. Oscomandos para essas ações não estão incluídos neste tutorial.

3. Agora, chame o comando create-deployment para criar uma implantação associada ao aplicativoHelloWorld_App, a configuração de implantação CodeDeployDefault.OneAtATime e o grupode implantação HelloWorld_DepGroup, usando a revisão de aplicativo HelloWorld_App.zip nobucket 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 a revisão do aplicativo, você precisade um ARN de função de serviço. Uma função de serviço é uma função do IAM que dá a um serviçopermissão para agir em seu nome. Nesse caso, a função de serviço concede ao AWS CodeDeploypermissão para acessar as instâncias do Amazon EC2 e expandir (ler) as tags da instância doAmazon EC2.

Versão da API 2014-10-0688

Page 99: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 4: implantar seu aplicativo

Você já deve ter seguido as instruções em Criar uma função de serviço (console) (p. 32) para criaruma função de serviço. Para obter o ARN da função de serviço, consulte Obter o ARN da função deserviço (console) (p. 36).

2. Agora que você tem o ARN, pode usar o console do AWS CodeDeploy para implantar sua revisão deaplicativo.

Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

3. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).4. Escolha HelloWorld_App.5. Na guia Deployment groups (Grupos de implantação), selecione Create deployment group (Criar um

grupo de implantação).6. Em Deployment group name (Nome do grupo de implantação), insira HelloWorld_DepGroup.7. Em Service Role (Função do serviço), selecione o nome da função do serviço.8. Em Deployment type (Tipo de implantação), selecione In-place (No local).9. Em Environment configuration (Configuração do ambiente), selecione Amazon EC2 instances

(Instâncias do EC2).10. Em Key (Chave), insira Name.11. Em Value (Valor), insira CodeDeployDemo.12. Em Deployment configuration (Configuração de implantação), selecione

CodeDeployDefault.OneAtATime.13. Em Load Balancer, desmarque Enable load balancing (Habilitar balanceamento de carga).14. Selecione Create deployment group (Criar grupo de implantação).15. Escolha Criar implantação.16. Em Deployment group (Grupo de implantação), selecione HelloWorld_DepGroup.17. Em Revision type (Tipo de revisão), selecione My application is stored in Amazon S3 (Meu repositório

está armazenado no Amazon S3) e, em seguida, em Revision location (Local da revisão), digite o localda revisão do aplicativo de exemplo "Hello, World!" que você carregou no Amazon S3 anteriormente.Para obter a localização:

a. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.b. Na lista de buckets, selecione codedeploydemobucket (ou o nome do bucket no qual você fez

upload da sua revisão de aplicativo).c. Na lista de objetos, escolha HelloWorld_App.zip.d. Se o painel Properties não aparecer, escolha o botão Properties.e. No painel Properties, copie o valor do campo Link para a área de transferência.

A aparência pode ser semelhante a esta:

https://s3.amazonaws.com/codedeploydemobucket/HelloWorld_App.zip

f. Retorne ao console do AWS CodeDeploy e, em Revision Location (Local da revisão), cole o valordo campo Link.

18. Se for exibida uma mensagem na lista File type informando que o tipo de arquivo não pôde serdetectado, escolha .zip na lista de tipos de arquivos.

19. (Opcional) Insira um comentário em Deployment description (Descrição da implantação).

Versão da API 2014-10-0689

Page 100: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 4: implantar seu aplicativo

20. Escolha Criar implantação. As informações sobre a implantação recém-criada aparecem na páginaDeployments.

Monitorar sua implantação e solucionar problemas relacionadosTópicos

• Para monitorar e solucionar problemas de implantação (CLI) (p. 90)• Para monitorar e solucionar problemas de implantação (console) (p. 90)

Para monitorar e solucionar problemas de implantação (CLI)

1. Obtenha o ID de implantação chamando o comando list-deployments para o aplicativo chamadoHelloWorld_App e o grupo de implantação chamado 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 retorna o status geral da implantação. Se a implantação for bem-sucedida, o valor seráSucceeded.

Se o status geral for Failed, você poderá chamar comandos como list-deployment-instances e get-deployment-instance para solucionar problemas. Para mais opções de solução de problemas, consulteAnalisando arquivos de log para investigar falhas de implantação em instâncias (p. 393).

Para monitorar e solucionar problemas de implantação (console)

Na página Deployments (Implantações) no console do AWS CodeDeploy, você pode monitorar o status daimplantação na coluna Status.

Para obter mais informações sobre a implantação, especialmente se o valor da coluna Status tiverqualquer outro valor que não Succeeded:

1. Na tabela Deployments (Implantações), selecione o ID da implantação. Depois que uma implantaçãoapresentar falha, uma mensagem descrevendo o motivo da falha será exibida na página de detalhesda implantação.

2. . Serão exibidas mais informações sobre as instâncias de implantação. Depois que uma implantaçãoapresentar falha, você possivelmente conseguirá determinar em quais instâncias do Amazon EC2 eem qual etapa ocorreu a falha.

3. Se quiser realizar outros procedimentos de solução de problemas, use uma técnica como ExibirDetalhes da Instância (p. 208). Você também pode analisar os arquivos de log de implantação emuma instância do Amazon EC2. Para obter mais informações, consulte Analisando arquivos de logpara investigar falhas de implantação em instâncias (p. 393).

Verificar sua implantaçãoDepois que a sua implantação for bem-sucedida, verifique se a sua instalação está funcionando. Use oendereço DNS público da instância do Amazon EC2 para visualizar a página da Web em um navegador da

Versão da API 2014-10-0690

Page 101: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 5: atualizar e reimplantar seu aplicativo

Web. (Para obter o valor DNS público, no console do Amazon EC2, selecione a instância do Amazon EC2e, na guia Description (Descrição), procure o valor do Public DNS (DNS público).)

Por exemplo, se o endereço DNS público da sua instância do Amazon EC2 forec2-01-234-567-890.compute-1.amazonaws.com, você usará o seguinte URL:

http://ec2-01-234-567-890.compute-1.amazonaws.com/WordPress

Se o procedimento for bem-sucedido, você verá uma página da Web "Hello, World!".

Etapa 5: atualizar e reimplantar o aplicativo "Hello,World!" AplicativoAgora que você implantou com êxito sua revisão de aplicativo, na máquina de desenvolvimento, façauma atualização no código da página da web e use o AWS CodeDeploy para reimplantar o site. Após aredistribuição, você poderá ver as alterações na instância do Amazon EC2.

Tópicos• Modificar a página da web (p. 91)• Reimplantar o site (p. 92)

Modificar a página da web1. Vá para a subpasta c:\temp\HelloWorldApp e use um editor de texto para modificar o arquivo

index.html:

cd c:\temp\HelloWorldAppnotepad index.html

2. Revise o conteúdo do arquivo index.html para alterar a cor do plano de fundo e parte do texto napágina da web e depois salve o arquivo:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/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="https://aws.amazon.com/codedeploy">AWS CodeDeploy Documentation</a>.</p> </div></body></html>

Versão da API 2014-10-0691

Page 102: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 5: atualizar e reimplantar seu aplicativo

Reimplantar o siteAgora que você modificou o código, use o Amazon S3 e o AWS CodeDeploy para reimplantar a página daweb.

Agrupe e carregue as alterações no Amazon S3, conforme descrito em Agrupar os arquivos doaplicativo em um único arquivamento e enviar o arquivamento (p. 87). (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). Faça upload dela no mesmo bucket do Amazon S3 criado anteriormente (porexemplo, codedeploydemobucket).

Use a AWS CLI ou o console do AWS CodeDeploy para reimplantar o site.

Tópicos• Para redistribuir o site (CLI) (p. 92)• Para reimplantar o site (console) (p. 92)

Para redistribuir o site (CLI)

Chame o comando create-deployment para criar uma implantação baseada na revisão quefez upload, novamente usando o aplicativo HelloWorld_App, a configuração de implantaçãoCodeDeployDefault.OneAtATime, o grupo de implantação HelloWorld_DepGroup e a revisãoHelloWorld_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 esolucionar problemas relacionados (p. 90).

Quando o AWS CodeDeploy tiver redistribuído o site, reveja-o no seu navegador da Web para verificar sea 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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, selecione Applications (Aplicativos).3. Na lista Applications (Aplicativos), escolha HelloWorld_App.4. Na guia Deployments (Implantações), escolha Create deployment (Criar implantação).

a. Na lista Deployment group, escolha HelloWorld_DepGroup.b. Em Revision location (Local da revisão), digite o link Amazon S3 da revisão.

Para encontrar o valor do link:

i. Faça login no Console de gerenciamento da AWS e abra o console da Amazon S3 em https://console.aws.amazon.com/s3/.

Versão da API 2014-10-0692

Page 103: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 6: Limpeza

Navegue até codedeploydemobucket e, em seguida, selecione a revisão,HelloWorld_App.zip, no console do Amazon S3.

ii. Se o painel Properties (Propriedades) não estiver visível no console do Amazon S3,selecione o botão Properties (Propriedades).

iii. No painel Properties (Propriedades), copie o valor do campo Link.iv. Retorne ao console do AWS CodeDeploy e cole o link em Revision location (Local da

revisão).v.

c. Em Revision file type (Tipo de arquivo de revisão), se uma mensagem aparecer indicando que otipo de arquivo não pôde ser detectado, selecione .zip.

d. Deixe Deployment description (Descrição da implantação) em branco.e. Expanda Deployment group overrides (Revogações do grupo de implantação)Na lista Deployment

configuration (Configuração de implantação), selecione CodeDeployDefault.OneAtATime e, emseguida, escolha Create deployment (Criar implantação).

Você pode verificar o status da implantação conforme descrito em Monitorar sua implantação esolucionar problemas relacionados (p. 90).

Quando o AWS CodeDeploy tiver redistribuído o site, reveja-o no seu navegador da Web paraverificar se a cor de fundo e o texto na página da web foram alterados. (Talvez seja necessárioatualizar 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 osrecursos relacionadosAgora, você atualizou com sucesso o código "Hello, World!" e reimplantou o site. Para evitar cobrançascontínuas por recursos que você criou para concluir este tutorial, convém excluir qualquer pilha do AWSCloudFormation (ou encerrar qualquer instância do Amazon EC2, caso você a tenha criado manualmentefora do AWS CloudFormation). Você também deve excluir qualquer bucket do Amazon S3 criadoexclusivamente 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 AWSCodeDeploy, ou as APIs da AWS para limpar recursos.

Tópicos• Para usar recursos de limpeza (CLI) (p. 93)• Para limpar recursos (console) (p. 94)• Próximas etapas (p. 95)

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 encerra todas as instâncias doAmazon EC2 acompanhantes e exclui todas as funções do IAM acompanhantes originalmente criadaspela 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 para o bucketdenominado codedeploydemobucket. Isso exclui o bucket e todos os seus objetos.

Versão da API 2014-10-0693

Page 104: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 6: Limpeza

aws s3 rm s3://codedeploydemobucket --recursive

3. Para excluir o aplicativo HelloWorld_App do AWS CodeDeploy, chame o comando delete-application. Isso exclui todos os registros do grupo de implantação associados e os registros deimplantaçã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 terminate-instances para encerrar as instâncias do Amazon EC2 criadas manualmente. Forneça o ID dainstâ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 AWSCloudFormation associada.

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS CloudFormation emhttps://console.aws.amazon.com/cloudformation.

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 exclui 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 https://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 https://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 arquivosno bucket, como HelloWorld_App.zip. No menu Ações, escolha Excluir. Quando solicitado aconfirmar a exclusão, escolha OK.

4. Depois que o bucket estiver vazio, você poderá excluí-lo. Na lista de buckets, escolha a linha dobucket (mas não o nome do bucket). Escolha Excluir bucket e quando solicitado a confirmar, escolhaOK.

Versão da API 2014-10-0694

Page 105: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioTutorial: implantar um aplicativo em uma instância local

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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).3. Selecione HelloWorld_App.4. Selecione Delete application (Excluir aplicativo).5. Quando solicitado, digite Delete e escolha Delete (Excluir).

Próximas etapasSe você chegou aqui, concluiu com sucesso uma implantação com o AWS CodeDeploy. Parabéns!

Tutorial: implantar um aplicativo em uma instâncialocal 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 deimplantação de uma revisão de aplicativo de amostra em uma única instância local (ou seja, um dispositivofísico que não é uma instância do Amazon EC2) que executa o Windows Server, Ubuntu Server ou RedHat Enterprise Linux (RHEL).—— Para obter informações sobre instâncias locais e como elas funcionamcom o AWS CodeDeploy, consulte Trabalhando com instâncias locais (p. 180).

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 HatEnterprise Linux e Linux, macOS, or Unix) (p. 61).

• Para praticar a implantação em uma instância do Amazon EC2 executando o Windows Server,consulte Tutorial: implantar um aplicativo "Hello, World!" Aplicativo com AWS CodeDeploy (WindowsServer) (p. 80).

Tópicos• Pré-requisitos (p. 96)• Etapa 1: configurar a instância local (p. 96)• Etapa 2: criar uma revisão de aplicativo de amostra (p. 96)• Etapa 3: agrupar e carregar sua revisão de aplicativo no Amazon S3 (p. 100)• Etapa 4: implantar sua revisão de aplicativo (p. 100)• Etapa 5: verificar sua implantação (p. 100)• Etapa 6: limpar os recursos (p. 100)

Versão da API 2014-10-0695

Page 106: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioPré-requisitos

Pré-requisitosAntes de iniciar este tutorial, é necessário atender aos pré-requisitos em Introdução ao AWSCodeDeploy (p. 30), que incluem configurar seu usuário do IAM, instalar ou atualizar a AWS CLI e criaruma 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 dossistemas operacionais listados em Sistemas operacionais com suporte com o agente do AWSCodeDeploy (p. 132).

Etapa 1: configurar a instância localPara poder implantar na sua instância local, você deve configurá-la. Siga as instruções em Trabalhandocom instâncias locais (p. 180) e retorne para esta página.

Etapa 2: criar uma revisão de aplicativo de amostraNesta etapa, você criará uma revisão de aplicativo de amostra para implantação na sua instância local.

Como é difícil saber quais softwares e recursos já estão instalados (ou podem ser instalados de acordocom as políticas da sua organização) na sua instância local, a revisão de aplicativo de exemplo queoferecemos aqui usa simplesmente scripts em lote (para o Windows Server) ou scripts shell (para oUbuntu Server e o RHEL) para gravar arquivos de texto em um localização na sua instância local. —— Umarquivo é 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 deimplantação BeforeInstall, um script será executado para remover os arquivos antigos gravados duranteimplementações anteriores desta amostra e criar um localização em sua instância local onde os novosarquivos serão gravados.

Note

A implantação dessa revisão de aplicativo de amostra poderá falhar se qualquer uma dasseguintes condições for verdadeira:

• A conta de usuário que inicia o agente do AWS CodeDeploy na instância local não tempermissão para executar scripts.

• A conta de usuário não tem permissão para criar ou excluir pastas nas localizações listadas nosscripts.

• A conta de usuário não tem permissão para criar arquivos de texto nas localizações listadas nosscripts.

Note

Se você tiver configurado uma instância do Windows Server e quiser implantar uma amostradiferente, convém usar aquela em Etapa 2: Configurar o conteúdo de origem para implantarna instância do Amazon EC2 do Windows Server (p. 82) no tutorial Tutorial: implantar umaplicativo "Hello, World!" Aplicativo com AWS CodeDeploy (Windows Server) (p. 80).Se você tiver configurado uma instância do RHEL e quiser implantar uma amostra diferente,convém usar aquela em Etapa 2: Configurar o conteúdo de origem a ser implantado na instânciado Amazon Linux ou do Red Hat Enterprise Linux Amazon EC2 (p. 64) no tutorial Tutorial:Implantar o WordPress em uma instância do Amazon EC2 (Amazon Linux ou Red Hat EnterpriseLinux e Linux, macOS, or Unix) (p. 61).

Versão da API 2014-10-0696

Page 107: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 2: criar uma revisão de aplicativo de amostra

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 paraessa subpasta. Para este exemplo, assumimos que você usará c:\temp como a pasta raiz parao Windows Server ou /tmp como a pasta raiz para o Ubuntu Server e o RHEL. Se usar uma pastadiferente, certifique-se de usá-la no lugar das pastas acima neste tutorial:

Para Windows:

mkdir c:\temp\CodeDeployDemo-OnPremcd c:\temp\CodeDeployDemo-OnPrem

Para Linux, macOS, or Unix:

mkdir /tmp/CodeDeployDemo-OnPremcd /tmp/CodeDeployDemo-OnPrem

2. Na raiz da subpasta CodeDeployDemo-OnPrem, use um editor de texto para criar os dois seguintesarquivos appspec.yml e install.txt:

appspec.yml para Windows Server:

version: 0.0os: windowsfiles: - source: .\install.txt destination: c:\temp\CodeDeployExamplehooks: 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 Ubuntu Server e RHEL:

version: 0.0os: linuxfiles: - source: ./install.txt destination: /tmp/CodeDeployExamplehooks: 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

Versão da API 2014-10-0697

Page 108: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 2: criar uma revisão de aplicativo de amostra

timeout: 900

Para obter mais informações sobre arquivos AppSpec, consulte Adicionar um arquivo deespecificações de aplicativo a uma revisão para o AWS CodeDeploy (p. 251) e Referência AppSpecFile do AWS CodeDeploy (p. 334).

install.txt:

The Install deployment lifecycle event successfully completed.

3. Na raiz da subpasta CodeDeployDemo-OnPrem, crie uma subpasta scripts e, em seguida, mudepara ela:

Para Windows:

mkdir c:\temp\CodeDeployDemo-OnPrem\scriptscd c:\temp\CodeDeployDemo-OnPrem\scripts

Para Linux, macOS, or Unix:

mkdir -p /tmp/CodeDeployDemo-OnPrem/scriptscd /tmp/CodeDeployDemo-OnPrem/scripts

4. Na raiz da subpasta scripts, use um editor de texto para criar os quatro seguintes arquivosbefore-install.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 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. > after-install.txt

application-start.bat:

cd %HOMEDRIVE%\temp\CodeDeployExample

echo The ApplicationStart deployment lifecycle event successfully completed. > application-start.txt

validate-service.bat:

Versão da API 2014-10-0698

Page 109: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 2: criar uma revisão de aplicativo de amostra

cd %HOMEDRIVE%\temp\CodeDeployExample

echo The ValidateService deployment lifecycle event successfully completed. > validate-service.txt

Para Ubuntu Server e RHEL:

before-install.sh:

✔!/bin/bashexport FOLDER=/tmp/CodeDeployExample

if [ -d $FOLDER ]then rm -rf $FOLDERfi

mkdir -p $FOLDER

after-install.sh:

✔!/bin/bashcd /tmp/CodeDeployExample

echo "The AfterInstall deployment lifecycle event successfully completed." > after-install.txt

application-start.sh:

✔!/bin/bashcd /tmp/CodeDeployExample

echo "The ApplicationStart deployment lifecycle event successfully completed." > application-start.txt

validate-service.sh:

✔!/bin/bashcd /tmp/CodeDeployExample

echo "The ValidateService deployment lifecycle event successfully completed." > validate-service.txt

unset FOLDER

5. Somente para o Ubuntu Server e o RHEL, verifique se os quatro scripts de shell tenham permissõesde execução:

chmod +x ./scripts/*

Versão da API 2014-10-0699

Page 110: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 3: agrupar e carregar sua

revisão de aplicativo no Amazon S3

Etapa 3: agrupar e carregar sua revisão de aplicativono Amazon S3Para poder implantar sua revisão de aplicativo, você precisará agrupar os arquivos e depois carregar opacote de arquivos em um bucket do Amazon S3. Siga as instruções em Criar um aplicativo com o AWSCodeDeploy (p. 221) e Enviar uma revisão por push do AWS CodeDeploy para o Amazon S3 (somenteimplantações de EC2/No local) (p. 259). (Embora você possa dar qualquer nome ao aplicativo e aogrupo de implantação, recomendamos usar CodeDeploy-OnPrem-App para o nome do aplicativo eCodeDeploy-OnPrem-DG para o nome do grupo de implantação.) Depois de concluir essas instruções,retorna para esta página.

Note

Como alternativa, você pode carregar o pacote de arquivos em um repositório do GitHub eimplantá-lo a partir de lá. Para obter mais informações, consulte Integrando o AWS CodeDeploycom o GitHub (p. 56).

Etapa 4: implantar sua revisão de aplicativoDepois de carregar sua revisão de aplicativo em um bucket do Amazon S3, tente implantá-la na suainstância local. Siga as instruções em Criar uma implantação com o AWS CodeDeploy (p. 267) e retornepara esta página.

Etapa 5: verificar sua implantaçãoPara verificar se a implantação foi bem-sucedida, siga as instruções em Visualizar detalhes deimplantações do AWS CodeDeploy (p. 280) 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 eRHEL).

Se a implantação tiver falhado, siga as etapas de solução de problemas em Exibir Detalhes daInstância (p. 208) e Solução de problemas com a instância (p. 392). 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 recursosPara evitar cobranças contínuas pelos recursos criados para este tutorial, exclua o bucket do AmazonS3 caso ele não seja mais utilizado. Você também pode limpar recursos associados, como registros deaplicativo e grupo de implantação no AWS CodeDeploy e na instância local.

Use a AWS CLI ou uma combinação dos consoles do AWS CodeDeploy e do Amazon S3 junto com aAWS CLI para limpar recursos.

Limpar recursos (CLI)Para excluir o bucket do Amazon S3

• Chame o comando rm junto à 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

Versão da API 2014-10-06100

Page 111: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 6: limpar os recursos

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). Osregistros 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

Note

Se não quiser excluir o usuário do IAM associado a essa instância local, use a opção --no-delete-iam-user como alternativa.

Para desinstalar o agente do AWS CodeDeploy e remover o arquivo de configuração da instâncialocal

• Na instância local, chame o comando uninstall:

aws deploy uninstall

Você concluiu todas as etapas para limpar os recursos usados para esse tutorial.

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 https://console.aws.amazon.com/s3/.

2. Escolha o ícone ao lado do bucket que deseja excluir (por exemplo, codedeploydemobucket), masnã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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação selecione Applications (Aplicativos).3. Escolha o nome do aplicativo que você deseja excluir (por exemplo, CodeDeploy-OnPrem-App) e

escolha Delete application (Excluir aplicativo).Versão da API 2014-10-06

101

Page 112: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioTutorial: implantar em um grupode Amazon EC2 Auto Scaling

4. Quando solicitado, digite o nome do aplicativo para confirmar que você deseja excluí-lo e, em seguida,escolha Delete (Excluir).

Não é possível usar o console do AWS CodeDeploy para cancelar o registro da uma instância local oudesinstalar o agente do AWS CodeDeploy. Siga as instruções em Para cancelar o registro da instâncialocal e excluir o usuário do IAM (p. 101).

Tutorial: use o AWS CodeDeploy para implantarum aplicativo em um grupo de Amazon EC2 AutoScaling

Neste tutorial, você usará o AWS CodeDeploy para implantar uma revisão de aplicativo em um grupo deAmazon EC2 Auto Scaling. Para obter informações sobre a integração do Amazon EC2 Auto Scaling como AWS CodeDeploy, consulte Integrar o AWS CodeDeploy ao Amazon EC2 Auto Scaling (p. 46).

Tópicos• Pré-requisitos (p. 102)• Etapa 1: criar e configurar o grupo de Amazon EC2 Auto Scaling (p. 102)• Etapa 2: implantar o aplicativo no grupo do Amazon EC2 Auto Scaling (p. 108)• Etapa 3: verificar seus resultados (p. 114)• Etapa 4: Aumentar o número de instâncias do Amazon EC2 no grupo de Amazon EC2 Auto

Scaling (p. 115)• Etapa 5: verificar novamente seus resultados (p. 116)• Etapa 6: Limpeza (p. 118)

Pré-requisitosPara este tutorial, assumimos que você já concluiu todas as etapas em Introdução ao AWSCodeDeploy (p. 30), 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). Umafunção de serviço é um tipo especial de função do IAM que dá a um serviço permissão para agir em seunome.

Se você deseja implantar uma revisão de aplicativo em um grupo de Amazon EC2 Auto Scaling deinstâncias do Amazon EC2 do Ubuntu Server, crie e use o exemplo de revisão em Etapa 2: criar umarevisão de aplicativo de amostra (p. 96) no tutorial Tutorial: implantar um aplicativo em uma instâncialocal com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux) (p. 95).Caso contrário, será preciso criar e usar uma revisão compatível com o Ubuntu Server e uma instânciado AWS CodeDeploy. Também fornecemos exemplos de revisões para instâncias do Amazon EC2 doAmazon Linux, Windows Server e Red Hat Enterprise Linux (RHEL). Para criar uma revisão por contaprópria, consulte Trabalhando com revisões de aplicativos para o AWS CodeDeploy (p. 250).

Etapa 1: criar e configurar o grupo de Amazon EC2Auto ScalingNesta etapa, será criado um grupo de Amazon EC2 Auto Scaling que contém uma única instância doAmazon EC2 do Amazon Linux, RHEL ou Windows Server. Em uma etapa posterior, você instruirá

Versão da API 2014-10-06102

Page 113: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 1: criar e configurar o grupo

de Amazon EC2 Auto Scaling

a Amazon EC2 Auto Scaling a adicionar mais uma instância do Amazon EC2, e o AWS CodeDeployimplantará sua revisão nessa instância.

Tópicos• Para criar e configurar o grupo de Amazon EC2 Auto Scaling (CLI) (p. 103)• Para criar e configurar o grupo de Amazon EC2 Auto Scaling (console) (p. 106)

Para criar e configurar o grupo de Amazon EC2 Auto Scaling(CLI)1. Chame o comando create-launch-configuration para criar uma configuração de execução de Amazon

EC2 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 chavesde instância do Amazon EC2 para permitir o acesso à instância do Amazon EC2 representada peloespaço reservado key-name. Finalmente, serão precisas instruções para instalar a versão maisrecente do agente do AWS CodeDeploy.

AWS CodeDeploy: para obter o ID de uma AMI que funcione com este tutorial:

a. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.b. No painel de navegação, em Instâncias, escolha Instâncias e, em seguida, escolha Iniciar

instância.c. Na guia Quick Start (Início rápido) da página Choose an Amazon Machine Image (Escolher uma

imagem de máquina da Amazon), anote o ID da AMI ao lado de Amazon Linux AMI, Red HatEnterprise Linux 7.1, Ubuntu Server 14.04 LTS ou Microsoft Windows Server 2012 R2.

Note

Se você tiver uma versão personalizada de uma AMI compatível com o AWSCodeDeploy, selecione-a aqui em vez de navegar pela guia Quick Start (Iníciorápido). Para obter informações sobre como usar uma AMI personalizada com o AWSCodeDeploy e a Amazon EC2 Auto Scaling, consulte Usando uma AMI personalizadacom o AWS CodeDeploy e o Amazon EC2 Auto Scaling (p. 49).

Para o par de chaves da instância do Amazon EC2, use o nome do par de chaves da sua instância doAmazon 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 AmazonLinux, Ubuntu Server ou RHEL) ou instance-setup.txt (para uma instância do Amazon EC2 doWindows Server) com o seguinte conteúdo.

Note

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.

Em instâncias do Amazon EC2 do Amazon Linux e RHEL

✔!/bin/bashyum -y updateyum install -y rubycd /home/ec2-usercurl -O https://bucket-name.s3.amazonaws.com/latest/installVersão da API 2014-10-06

103

Page 114: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 1: criar e configurar o grupo

de Amazon EC2 Auto Scaling

chmod +x ./install./install auto

O nome de bucket é o nome do bucket do Amazon S3sds-s3-latest-bucket-name que contémos arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Regiãodo Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2.Para obter uma lista de nomes de buckets, consulte Nomes de bucket do kit de recursos porregião (p. 372).

Em instâncias do Amazon EC2 do Ubuntu Server

✔!/bin/bashapt-get -y updateapt-get -y install rubyapt-get -y install wgetcd /home/ubuntuwget https://bucket-name.s3.amazonaws.com/latest/installchmod +x ./install./install auto

O nome de bucket é o nome do bucket do Amazon S3sds-s3-latest-bucket-name que contémos arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Regiãodo Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2.Para obter uma lista de nomes de buckets, consulte Nomes de bucket do kit de recursos porregião (p. 372).

Em instâncias do Amazon EC2 do Windows Server

<powershell> New-Item -Path c:\temp -ItemType "directory" -Forcepowershell.exe -Command Read-S3Object -BucketName bucket-name/latest -Key codedeploy-agent.msi -File c:\temp\codedeploy-agent.msiStart-Process -Wait -FilePath c:\temp\codedeploy-agent.msi -WindowStyle Hidden</powershell>

O nome de bucket é o nome do bucket do Amazon S3sds-s3-latest-bucket-name que contémos arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Regiãodo Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2.Para obter uma lista de nomes de buckets, consulte Nomes de bucket do kit de recursos porregião (p. 372).

Chame o comando create-launch-configuration.

Em máquinas Linux, macOS, or Unix locais:

Important

Be sure to include file:// before the file name. It is required in this command.

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:Versão da API 2014-10-06

104

Page 115: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 1: criar e configurar o grupo

de Amazon EC2 Auto Scaling

Important

Be sure to include file:// before the file name. It is required in this command.

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

Note

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 Amazon EC2 Auto Scaling denominadaCodeDeployDemo-AS-Configuration, com base no ID de imagem especificado, aplicando o perfilde instâncias do IAM e o par de chaves da instância do Amazon EC2 especificados e executando ocomando para instalar a versão mais recente do agente do AWS CodeDeploy. Essa configuração deinicializaçã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 Amazon EC2 Auto Scaling. Seránecessário o nome de uma das zonas de disponibilidade em uma das regiões listadas em Região eendpoints na AWS General Reference, representado pelo espaço reservado availability-zone.

Note

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 Nomes de bucket do kitde recursos por região (p. 372).

Em máquinas Linux, macOS, or Unix locais:

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 --max-size 1 --desired-capacity 1 --availability-zones availability-zone

Esses comandos criam um grupo de Amazon EC2 Auto Scaling chamado CodeDeployDemo-AS-Group com base na configuração de execução de Amazon EC2 Auto Scaling chamada

Versão da API 2014-10-06105

Page 116: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 1: criar e configurar o grupo

de Amazon EC2 Auto Scaling

CodeDeployDemo-AS-Configuration. Esse grupo de Amazon EC2 Auto Scaling tem apenas umainstância do Amazon EC2 e é criado na Zona de disponibilidade especificada.

3. Chame o comando describe-auto-scaling-groups contra 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 Amazon EC2 Auto Scaling(console)1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.2. Na barra de navegação global, verifique se uma das regiões listadas em Região e endpoints na AWS

General Reference está selecionada. Os recursos do Amazon EC2 Auto Scaling estão vinculados àregião especificada e o AWS CodeDeploy é compatível somente em regiões selecionadas.

3. Na barra de navegação, em Auto Scaling, selecione Launch Configurations (Configurações deexecução).

4. Escolha Criar configuração de execução.5. Na guia Quick Start (Início rápido) da página Choose AMI (Selecionar AMI), ao lado de Amazon Linux

AMI, Red Hat Enterprise Linux 7.2, Ubuntu Server 14.04 LTS ou Microsoft Windows Server 2012 R2Base, escolha Select (Selecionar).

Note

Se você tiver uma versão personalizada de uma AMI na qual o agente do AWS CodeDeployjá esteja instalado, escolha-a aqui. Para obter informações sobre como usar uma AMIpersonalizada com o AWS CodeDeploy e a Amazon EC2 Auto Scaling, consulte Usando umaAMI personalizada com o AWS CodeDeploy e o Amazon EC2 Auto Scaling (p. 49).

6. Na página Escolher tipo de instância, deixe a opção padrão e escolha Próximo: configurar os detalhes7. Na página Configure details (Configurar detalhes), em Name (Nome), digite CodeDeployDemo-

AS-Configuration. Em IAM role (Função do IAM), selecione o perfil de instância do IAM criadoanteriormente (CodeDeployDemo-EC2-Instance-Profile).

Expanda Detalhes avançados e, em Dados do usuário, digite o seguinte.

Note

Se você estiver usando uma versão personalizada de uma AMI na qual o agente do AWSCodeDeploy já esteja instalado, ignore essa etapa.

Para instâncias do Amazon EC2 do Amazon Linux e RHEL

✔!/bin/bashyum -y updateyum install -y rubycd /home/ec2-usercurl -O https://bucket-name.s3.amazonaws.com/latest/installchmod +x ./install./install auto

O nome de bucket é o nome do bucket do Amazon S3sds-s3-latest-bucket-name que contémos arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Regiãodo Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2.

Versão da API 2014-10-06106

Page 117: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 1: criar e configurar o grupo

de Amazon EC2 Auto Scaling

Para obter uma lista de nomes de buckets, consulte Nomes de bucket do kit de recursos porregião (p. 372).

Para instâncias do Amazon EC2 do Ubuntu Server

✔!/bin/bashapt-get -y updateapt-get -y install rubyapt-get -y install wgetcd /home/ubuntuwget https://bucket-name.s3.amazonaws.com/latest/installchmod +x ./install./install auto

O nome de bucket é o nome do bucket do Amazon S3sds-s3-latest-bucket-name que contémos arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Regiãodo Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2.Para obter uma lista de nomes de buckets, consulte Nomes de bucket do kit de recursos porregião (p. 372).

Para instâncias do Amazon EC2 do Windows Server

<powershell> New-Item -Path c:\temp -ItemType "directory" -Forcepowershell.exe -Command Read-S3Object -BucketName bucket-name/latest -Key codedeploy-agent.msi -File c:\temp\codedeploy-agent.msiStart-Process -Wait -FilePath c:\temp\codedeploy-agent.msi -WindowStyle Hidden</powershell>

O nome de bucket é o nome do bucket do Amazon S3sds-s3-latest-bucket-name que contémos arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Regiãodo Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2.Para obter uma lista de nomes de buckets, consulte Nomes de bucket do kit de recursos porregião (p. 372).

Deixe o restante dos padrões escolha Ignorar revisão.8. Na página Revisão, selecione Criar configuração de execução.

Note

Em um ambiente de produção, recomendamos que você restrinja o acesso a instâncias doAmazon EC2. Para obter mais informações, consulte Dicas para proteger sua instância doEC2.

9. Na caixa de diálogo Selecionar um par de chaves existente ou criar um novo par de chaves, selecioneEscolher um par de chaves existente. Na lista suspensa Select a key pair (Selecione um par dechaves), selecione o par de chaves de instância do Amazon EC2 criado ou usado nas etapasanteriores. 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ãoescolha Criar configuração de execução.

10. Selecione Create an Auto Scaling group using this launch configuration (Criar um grupo de AutoScaling usando essa configuração de execução).

11. Na página Configure Auto Scaling group details (Configurar detalhes do grupo de Auto Scaling),em Group name (Nome do grupo), digite CodeDeployDemo-AS-Group. Em Tamanho do grupo,use o padrão. Na caixa Availability Zone(s) (Zona(s) de disponibilidade), selecione uma zona dedisponibilidade em uma das regiões listadas em Região e endpoints na AWS General Reference.Deixe o resto dos padrões e escolha Próximo: configurar políticas de escalabilidade.

Versão da API 2014-10-06107

Page 118: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 2: implantar o aplicativo no

grupo do Amazon EC2 Auto Scaling

Note

Se Iniciar no EC2-Classic não aparecer na lista Rede e você não conseguir selecionar umanuvem privada virtual (VPC) padrão, escolha ou crie uma VPC e uma sub-rede. Para obtermais 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 seutamanho 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 Create Auto Scaling group (Criar um grupo de Auto Scaling) e, em seguida, escolha Close

(Fechar).15. Na barra de navegação, com Auto Scaling Groups (Grupos de Auto Scaling) selecionada, escolha

CodeDeployDemo-AS-Group e, em seguida, selecione a guia Instances (Instâncias). Não prossigaaté que o valor de InService apareça na coluna Ciclo de vida e o valor de Íntegro apareça na colunaStatus de integridade.

Etapa 2: implantar o aplicativo no grupo do AmazonEC2 Auto ScalingNesta etapa, você implantará a revisão na instância do Amazon EC2 única do grupo de Amazon EC2 AutoScaling.

Tópicos• Para criar a implantação (CLI) (p. 108)• Para criar a implantação (console) (p. 110)

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çãode serviço para o AWS CodeDeploy (p. 32). A função de serviço dará permissão ao AWS CodeDeploypara acessar suas instâncias do Amazon EC2 a fim de expandir (ler) suas tags. Você precisará doARN da função de serviço. Para obter o ARN da função de serviço, siga as instruções em Obter oARN da função de serviço (CLI) (p. 36).

3. Agora que você tem um ARN de função de serviço, chame o comando create-deployment-grouppara criar um grupo de implantação chamado SimpleDemoDG, associado ao aplicativo chamadoSimpleDemoApp, usando o grupo de Amazon EC2 Auto Scaling chamado CodeDeployDemo-AS-Group e a configuração de implantação chamada CodeDeployDefault.OneAtATime, com o ARNde função de serviço especificado.

Note

O comando create-deployment-group fornece suporte para criar os gatilhos que resultam noenvio de notificações do Amazon SNS aos assinantes do tópico sobre eventos especificadosem implementações e instâncias. O comando também oferece suporte a opções parareverter automaticamente implantações e configurar alarmes para interromper implantaçõesquando os limites de monitoramento nos alarmes do Amazon CloudWatch são atingidos. Oscomandos para essas ações não estão incluídos neste tutorial.

Em máquinas Linux, macOS, or Unix locais:

Versão da API 2014-10-06108

Page 119: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 2: implantar o aplicativo no

grupo do Amazon EC2 Auto Scaling

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-scaling-groups CodeDeployDemo-AS-Group --deployment-group-name SimpleDemoDG --deployment-config-name CodeDeployDefault.OneAtATime --service-role-arn service-role-arn

4. Chame o comando create-deployment para criar uma implantação associada ao aplicativoSimpleDemoApp, a configuração de implantação CodeDeployDefault.OneAtATime, o grupo deimplantação SimpleDemoDG, usando a revisão na localização especificada.

Para instâncias do Amazon EC2 do Amazon Linux e RHEL, chamando a partir 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 S3sds-s3-latest-bucket-name que contémos arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Regiãodo Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2.Para obter uma lista de nomes de buckets, consulte Nomes de bucket do kit de recursos porregião (p. 372).

Para instâncias do Amazon EC2 do Amazon Linux e RHEL, chamando a partir de máquinas Windowslocais

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 S3sds-s3-latest-bucket-name que contémos arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Regiãodo Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2.Para obter uma lista de nomes de buckets, consulte Nomes de bucket do kit de recursos porregião (p. 372).

Para instâncias do Amazon EC2 do Windows Server, chamando a partir 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_Windows.zip

Versão da API 2014-10-06109

Page 120: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 2: implantar o aplicativo no

grupo do Amazon EC2 Auto Scaling

O nome de bucket é o nome do bucket do Amazon S3sds-s3-latest-bucket-name que contémos arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Regiãodo Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2.Para obter uma lista de nomes de buckets, consulte Nomes de bucket do kit de recursos porregião (p. 372).

Para instâncias do Amazon EC2 do Windows Server, chamando a partir de máquinas Windows 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_Windows.zip

O nome de bucket é o nome do bucket do Amazon S3sds-s3-latest-bucket-name que contémos arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Regiãodo Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2.Para obter uma lista de nomes de buckets, consulte Nomes de bucket do kit de recursos porregião (p. 372).

Note

Atualmente, o AWS CodeDeploy não fornece um exemplo de revisão para implantação eminstâ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. 250).

5. Chame o comando get-deployment para verificar se a implantação foi bem-sucedida.

Antes de chamar esse comando, será necessário o ID de implantação, que deve ter sido retornadopela chamada para o comando create-deployment. Se precisar obter o ID de implantação novamente,chame o comando list-deployments contra o aplicativo chamado SimpleDemoApp e o grupo deimplantação chamado 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 de 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 para o AWS CodeDeploy (p. 32). A função de serviço dará permissão ao AWS CodeDeploypara acessar suas instâncias a fim de expandir (ler) suas tags. Antes de usar o console do AWSCodeDeploy 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. 36).

2. Agora que você tem o ARN da função de serviço, pode usar o console do AWS CodeDeploy paraimplantar sua revisão de aplicativo.

Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Versão da API 2014-10-06110

Page 121: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 2: implantar o aplicativo no

grupo do Amazon EC2 Auto Scaling

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

3. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).4. Selecione Criar aplicativo.5. Selecione Custom application (Aplicativo personalizado).6. Em Application name (Nome do aplicativo), insira SimpleDemoApp.7. Em Compute platform (Plataforma de computação), selecione EC2/On-Premises (EC2/no local).8. Selecione Criar aplicativo.9. Na guia Deployment groups (Grupos de implantação), selecione Create deployment group (Criar um

grupo de implantação).10. Em Deployment group name (Nome do grupo de implantação), insira SimpleDemoDG.11. Em Service Role (Função do serviço), selecione o nome da função do serviço.12. Em Deployment type (Tipo de implantação), selecione In-place (No local).13. Em Environment configuration (Configuração do ambiente), selecione Amazon EC2 Auto Scaling

groups (Grupos do AS) e escolha CodeDeployDemo-AS-Group.14. Em Deployment configuration (Configuração de implantação), selecione

CodeDeployDefault.OneAtATime.15. Desmarque Enable load balancing (Habilitar o balanceamento de carga).16. Selecione Create deployment group (Criar grupo de implantação).17. Na página do grupo de implantação, selecione Create deployment (Criar implantação).18. Em Deployment group (Grupo de implantação), selecione SimpleDemoDG.19. Em Revision type (Tipo de revisão), selecione S3.20. Em Revision location (Local da revisão), insira o local do aplicativo de exemplo para o sistema

operacional e região.

Para instâncias do Amazon EC2 do Amazon Linux e RHEL

Região Local do aplicativo de amostra

Região do Leste dos EUA (Ohio) http://s3-us-east-2.amazonaws.com/aws-codedeploy-us-east-2/samples/latest/SampleApp_Linux.zip

Leste dos EUA (Norte da Virgínia) Região http://s3.amazonaws.com/aws-codedeploy-us-east-1/samples/latest/SampleApp_Linux.zip

Região do Oeste dos EUA (Norte da Califórnia) http://s3-us-west-1.amazonaws.com/aws-codedeploy-us-west-1/samples/latest/SampleApp_Linux.zip

Região Oeste dos EUA (Oregon) http://s3-us-west-2.amazonaws.com/aws-codedeploy-us-west-2/samples/latest/SampleApp_Linux.zip

Região do Canadá (Central) http://s3-ca-central-1.amazonaws.com/aws-codedeploy-ca-central-1/samples/latest/SampleApp_Linux.zip

Versão da API 2014-10-06111

Page 122: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 2: implantar o aplicativo no

grupo do Amazon EC2 Auto Scaling

Região Local do aplicativo de amostra

Região UE (Irlanda) http://s3-eu-west-1.amazonaws.com/aws-codedeploy-eu-west-1/samples/latest/SampleApp_Linux.zip

Região da UE (Londres) http://s3-eu-west-2.amazonaws.com/aws-codedeploy-eu-west-2/samples/latest/SampleApp_Linux.zip

  http://s3-eu-west-3.amazonaws.com/aws-codedeploy-eu-west-3/samples/latest/SampleApp_Linux.zip

Região UE (Frankfurt) http://s3-eu-central-1.amazonaws.com/aws-codedeploy-eu-central-1/samples/latest/SampleApp_Linux.zip

Região Ásia-Pacífico (Tóquio) http://s3-ap-northeast-1.amazonaws.com/aws-codedeploy-ap-northeast-1/samples/latest/SampleApp_Linux.zip

Região da Ásia-Pacífico (Seul) http://s3-ap-northeast-2.amazonaws.com/aws-codedeploy-ap-northeast-2/samples/latest/SampleApp_Linux.zip

Região Ásia-Pacífico (Cingapura) http://s3-ap-southeast-1.amazonaws.com/aws-codedeploy-ap-southeast-1/samples/latest/SampleApp_Linux.zip

Região Ásia-Pacífico (Sydney) http://s3-ap-southeast-2.amazonaws.com/aws-codedeploy-ap-southeast-2/samples/latest/SampleApp_Linux.zip

Região da Ásia-Pacífico (Mumbai) http://s3-ap-south-1.amazonaws.com/aws-codedeploy-ap-south-1/samples/latest/SampleApp_Linux.zip

Região América do Sul (São Paulo) http://s3-sa-east-1.amazonaws.com/aws-codedeploy-sa-east-1/samples/latest/SampleApp_Linux.zip

Para instâncias do Amazon EC2 do Windows Server

Região Local do aplicativo de amostra

Região do Leste dos EUA (Ohio) http://s3-us-east-2.amazonaws.com/aws-codedeploy-us-east-2/samples/latest/SampleApp_Windows.zip

Versão da API 2014-10-06112

Page 123: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 2: implantar o aplicativo no

grupo do Amazon EC2 Auto Scaling

Região Local do aplicativo de amostra

Leste dos EUA (Norte da Virgínia) Região http://s3.amazonaws.com/aws-codedeploy-us-east-1/samples/latest/SampleApp_Windows.zip

Região do Oeste dos EUA (Norte da Califórnia) http://s3-us-west-1.amazonaws.com/aws-codedeploy-us-west-1/samples/latest/SampleApp_Windows.zip

Região Oeste dos EUA (Oregon) http://s3-us-west-2.amazonaws.com/aws-codedeploy-us-west-2/samples/latest/SampleApp_Windows.zip

Região do Canadá (Central) http://s3-ca-central-1.amazonaws.com/aws-codedeploy-ca-central-1/samples/latest/SampleApp_Windows.zip

Região UE (Irlanda) http://s3-eu-west-1.amazonaws.com/aws-codedeploy-eu-west-1/samples/latest/SampleApp_Windows.zip

Região da UE (Londres) http://s3-eu-west-2.amazonaws.com/aws-codedeploy-eu-west-2/samples/latest/SampleApp_Windows.zip

  http://s3-eu-west-3.amazonaws.com/aws-codedeploy-eu-west-3/samples/latest/SampleApp_Windows.zip

Região UE (Frankfurt) http://s3-eu-central-1.amazonaws.com/aws-codedeploy-eu-central-1/samples/latest/SampleApp_Windows.zip

Região Ásia-Pacífico (Tóquio) http://s3-ap-northeast-1.amazonaws.com/aws-codedeploy-ap-northeast-1/samples/latest/SampleApp_Windows.zip

Região da Ásia-Pacífico (Seul) http://s3-ap-northeast-2.amazonaws.com/aws-codedeploy-ap-northeast-2/samples/latest/SampleApp_Windows.zip

Região Ásia-Pacífico (Cingapura) http://s3-ap-southeast-1.amazonaws.com/aws-codedeploy-ap-southeast-1/samples/latest/SampleApp_Windows.zip

Região Ásia-Pacífico (Sydney) http://s3-ap-southeast-2.amazonaws.com/aws-codedeploy-ap-southeast-2/samples/latest/SampleApp_Windows.zip

Região da Ásia-Pacífico (Mumbai) http://s3-ap-south-1.amazonaws.com/aws-codedeploy-ap-south-1/samples/latest/SampleApp_Windows.zip

Versão da API 2014-10-06113

Page 124: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 3: verificar seus resultados

Região Local do aplicativo de amostra

Região América do Sul (São Paulo) http://s3-sa-east-1.amazonaws.com/aws-codedeploy-sa-east-1/samples/latest/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 S3.21. Deixe Deployment description (Descrição da implantação) em branco.22. Expanda Advanced.23. Em Alarms (Alarmes), selecione Ignore alarm configuration (Ignorar configuração de alarme).24. Escolha Criar implantação.

Note

Se Falha aparecer no lugar de Bem-sucedido, convém tentar algumas das técnicas emMonitorar sua implantação e solucionar problemas relacionados (p. 73) (usando o nomede aplicativo SimpleDemoApp e o nome do grupo de implantação SimpleDemoDG).

Etapa 3: verificar seus resultadosNesta etapa, você verificará se o AWS CodeDeploy instalou a revisão SimpleDemoApp na instância doAmazon EC2 única do grupo de Amazon EC2 Auto Scaling.

Tópicos• Para verificar os resultados (CLI) (p. 114)• Para verificar os resultados (console) (p. 115)

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 Amazon EC2 AutoScaling, 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 contra CodeDeployDemo-AS-Group, conforme feito anteriormente:

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 doAmazon EC2 usando um URL como o seguinte:

http://ec2-01-234-567-890.compute-1.amazonaws.com

Versão da API 2014-10-06114

Page 125: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 4: Aumentar o número de instâncias do

Amazon EC2 no grupo de Amazon EC2 Auto Scaling

Se você vir a página de parabenização, significa que usou com sucesso o AWS CodeDeploy paraimplantar uma revisão em uma única instância do Amazon EC2 em um grupo de Amazon EC2 AutoScaling!

Em seguida, você adicionará uma instância do Amazon EC2 ao grupo de Amazon EC2 Auto Scaling.Depois que o Amazon EC2 Auto Scaling adicionar a instância do Amazon EC2, o AWS CodeDeployimplantará 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 https://console.aws.amazon.com/ec2/.

In the Amazon EC2 navigation pane, under Auto Scaling, choose Auto Scaling Groups, and then choosethe CodeDeployDemo-AS-Group entry.

Na guia Instances (Instâncias), selecione 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: ec2-01-234-567-890.compute-1.amazonaws.com.

Usando um navegador da Web, mostre a revisão de SimpleDemoApp implantada nessa instância doAmazon EC2 usando um URL como o seguinte:

http://ec2-01-234-567-890.compute-1.amazonaws.com

Se você vir a página de parabenização, significa que usou com sucesso o AWS CodeDeploy paraimplantar uma revisão em uma única instância do Amazon EC2 em um grupo de Amazon EC2 AutoScaling!

Em seguida, você adiciona uma instância do Amazon EC2 ao grupo de Amazon EC2 Auto Scaling. Depoisque o Amazon EC2 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 AmazonEC2 no grupo de Amazon EC2 Auto ScalingNesta etapa, você instrui o grupo de Amazon EC2 Auto Scaling para criar uma instância do Amazon EC2adicional. Depois que o Amazon EC2 Auto Scaling cria a instância, o AWS CodeDeploy implanta suarevisão nela.

Tópicos• Para escalar verticalmente o número de instâncias do Amazon EC2 no grupo de Amazon EC2 Auto

Scaling (CLI) (p. 115)• Para escalar verticalmente o número de instâncias do Amazon EC2 no grupo de implantação

(console) (p. 116)

Para escalar verticalmente o número de instâncias do AmazonEC2 no grupo de Amazon EC2 Auto Scaling (CLI)1. Chame o comando update-auto-scaling-group para aumentar as instâncias do Amazon EC2 no grupo

de Amazon EC2 Auto Scaling chamado CodeDeployDemo-AS-Group de um para dois.

Em máquinas Linux, macOS, or Unix locais:

Versão da API 2014-10-06115

Page 126: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 5: verificar novamente seus resultados

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. Verifique se o grupo de Amazon EC2 Auto Scaling agora possui duas instâncias do Amazon EC2.Chame o comando describe-auto-scaling-groups contra 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 AmazonEC2 no grupo de implantação (console)1. Na barra de navegação do Amazon EC2, em Auto Scaling, selecione Auto Scaling Groups (Grupos de

Auto Scaling) e, em seguida, escolha CodeDeployDemo-AS-Group.2. Escolha Ações e, em seguida, escolha Editar.3. Na guia Details (Detalhes), nas caixas Desired (Desejado), Min (Mín.) e Max (Máx.), digite 2 e, em

seguida, selecione Save (Salvar).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 ovalor de InService apareça na coluna Ciclo de vida e o valor de Íntegro apareça na coluna Status deintegridade.

Etapa 5: verificar novamente seus resultadosNesta etapa, você verificará se o AWS CodeDeploy instalou a revisão SimpleDemoApp na nova instânciado grupo de Amazon EC2 Auto Scaling.

Tópicos• Para verificar os resultados da implantação automática (CLI) (p. 116)• Para verificar os resultados da implantação automática (console) (p. 117)

Para verificar os resultados da implantação automática (CLI)1. Antes de chamar o comando get-deployment, será necessário o ID de implantação automática. Para

obter o ID, chame o comando list-deployments contra o aplicativo chamado SimpleDemoApp e ogrupo de implantação chamado SimpleDemoDG.

aws deploy list-deployments --application-name SimpleDemoApp --deployment-group-name SimpleDemoDG --query "deployments" --output text

Versão da API 2014-10-06116

Page 127: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 5: verificar novamente seus resultados

Deve haver dois ID de implantação. Use aquele que você ainda não usou em uma chamada para ocomando 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. (autoScalingsignifica que o Amazon EC2 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, será necessário o ID da nova instância do Amazon

EC2. Para obter este ID, faça outra chamada para o comando describe-auto-scaling-groups contraCodeDeployDemo-AS-Group:

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].InstanceId" --output text

Agora faça uma chamada para 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, anote 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 um URL como o seguinte:

http://ec2-01-234-567-890.compute-1.amazonaws.com

Se a página de parabenização for exibida, significa que você usou o AWS CodeDeploy para implantaruma revisão em uma instância do Amazon EC2 escalonada em um grupo de Amazon EC2 AutoScaling!

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 https://

console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Deployments(Implantações).

3. Selecione o ID de implantação da implantação que o Amazon EC2 Auto Scaling criou.

.4. A página Deployment (Implantação) exibe informações sobre a implantação. Normalmente, você

criaria uma implantação por conta própria, mas o Amazon EC2 Auto Scaling criou uma em seu nomepara implantar sua revisão na nova instância do Amazon EC2.

5. Depois que Succeeded (Bem-sucedida) for exibido na parte superior da página, verifique osresultados na instância. Em primeiro lugar, é necessário obter o DNS público da instância:

Versão da API 2014-10-06117

Page 128: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 6: Limpeza

6. In the Amazon EC2 navigation pane, under Auto Scaling, choose Auto Scaling Groups, and thenchoose the CodeDeployDemo-AS-Group entry.

7. Na guia Instances (Instâncias), selecione o ID da nova instância do Amazon EC2.8. Na página Instâncias, na guia Descrição, anote o valor DNS público. A aparência será semelhante à

seguinte: ec2-01-234-567-890.compute-1.amazonaws.com.

Mostre a revisão de SimpleDemoApp implantada na instância usando uma URL como a seguinte:

http://ec2-01-234-567-890.compute-1.amazonaws.com

Se a página de parabenização for exibida, significa que você usou o AWS CodeDeploy para implantar umarevisão em uma instância do Amazon EC2 escalonada em um grupo de Amazon EC2 Auto Scaling!

Etapa 6: LimpezaNesta etapa, você excluirá o grupo de Amazon EC2 Auto Scaling para evitar cobranças contínuas pelosrecursos usados durante este tutorial. Opcionalmente, é possível excluir os registros de configuração deAmazon EC2 Auto Scaling e de componentes da implantação do AWS CodeDeploy.

Tópicos• Para limpar recursos (CLI) (p. 118)• Para limpar recursos (console) (p. 118)

Para limpar recursos (CLI)1. Excluir o grupo de Amazon EC2 Auto Scaling chamando o comando delete-auto-scaling-group contra

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

2. Opcionalmente, exclua a configuração de execução de Amazon EC2 Auto Scaling chamandoo comando delete-launch-configuration contra a configuração de execução chamadaCodeDeployDemo-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-applicationcontra o aplicativo chamado SimpleDemoApp. Isso também excluirá todos os registros associados deimplantação, grupo de implantação e revisão.

aws deploy delete-application --application-name SimpleDemoApp

Para limpar recursos (console)1. Exclua o grupo de Amazon EC2 Auto Scaling. Isso também encerra as instâncias do Amazon EC2:

Faça login no Console de gerenciamento da AWS e abra o console da Amazon EC2 em https://console.aws.amazon.com/ec2/.

2. In the Amazon EC2 navigation pane, under Auto Scaling, choose Auto Scaling Groups, and thenchoose the CodeDeployDemo-AS-Group entry.

Versão da API 2014-10-06118

Page 129: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioTutorial: implantar um aplicativo do GitHub

3. Escolha Ações, Excluir e, em seguida, Sim, excluir.4. (Opcional) Exclua a configuração de execução. Na barra de navegação, em Auto Scaling, selecione

Launch Configurations (Configurações de execução) e, em seguida, 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 emhttps://console.aws.amazon.com/codedeploy.

7. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).8. Na lista de aplicativos, selecione SimpleDemoApp.9. Na página Detalhes do aplicativo, escolha Excluir aplicativo.10. Quando solicitado, digite Delete e escolha Delete (Excluir).

Tutorial: usar o AWS CodeDeploy para implantarum aplicativo do GitHub

Neste tutorial, você usará o AWS CodeDeploy para implantar um exemplo de revisão de aplicativo doGitHub em uma única instância do Amazon EC2 executando o Amazon Linux, uma única instância doRed Hat Enterprise Linux (RHEL) ou uma única instância do Windows Server. Para obter informaçõessobre a integração do GitHub com o AWS CodeDeploy, consulte Integrando o AWS CodeDeploy com oGitHub (p. 56).

Note

Você também pode usar o AWS CodeDeploy para implantar uma revisão de aplicativo doGitHub em uma instância do Ubuntu Server. Use o exemplo de revisão descrito em Etapa 2:criar uma revisão de aplicativo de amostra (p. 96)em Tutorial: implantar um aplicativo emuma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red HatEnterprise Linux) (p. 95), ou crie uma revisão compatível com uma instância do Ubuntu Servere AWS CodeDeploy. Para criar sua própria revisão, consulte Planejar uma revisão para o AWSCodeDeploy (p. 250) e Adicionar um arquivo de especificações de aplicativo a uma revisão parao AWS CodeDeploy (p. 251).

Tópicos• Pré-requisitos (p. 120)• Etapa 1: configurar uma conta do GitHub (p. 120)• Etapa 2: criar um repositório GitHub (p. 120)• Etapa 3: carregar um aplicativo de exemplo no seu repositório GitHub (p. 122)• Etapa 4: provisionar uma instância (p. 125)• Etapa 5: criar um aplicativo e um grupo de implantação (p. 125)• Etapa 6: implantar o aplicativo na instância (p. 126)• Etapa 7: monitorar e verificar a implantação (p. 129)• Etapa 8: limpar (p. 130)

Versão da API 2014-10-06119

Page 130: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioPré-requisitos

Pré-requisitosAntes 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 Introdução ao AWS CodeDeploy (p. 30), incluindo a instalação e a configuração

da AWS CLI. Isso é especialmente importante se você deseja usar a AWS CLI para implantar umarevisão do GitHub na instância.

Etapa 1: configurar uma conta do GitHubVocê 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órioGitHub (p. 120).

1. Acesse https://github.com/join.2. Digite um nome de usuário, seu endereço de e-mail e uma senha.3. Escolha Cadastre-se no GitHub e, em seguida, siga as instruções.

Etapa 2: criar um repositório GitHubVocê precisará de um repositório GitHub para armazenar a revisão.

Se você já possui um repositório do GitHub, lembre-se de substituir seu nome emCodeDeployGitHubDemo ao longo deste tutorial e, em seguida, continue em Etapa 3: carregar umaplicativo de exemplo no seu repositório GitHub (p. 122).

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 de texto Repository name (Nome do repositório), digite CodeDeployGitHubDemo.• Selecione Public.

Note

Selecionar a opção Público padrão significa que qualquer pessoa pode ver esserepositório. Embora você possa selecionar a opção Privado para limitar quem pode ver econfirmar 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 arquivoREADME.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.

Note

Se você habilitou a autenticação de dois fatores no GitHub, certifique-se de inserir seu tokende 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çãode dois fatores.

Versão da API 2014-10-06120

Page 131: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 2: criar um repositório GitHub

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 dousuá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 https://github.com/user-name/CodeDeployGitHubDemo.git

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

notepad README.md

2. No bloco de notas, salve o arquivo README.md. Feche o Bloco de notas. Execute os seguintescomandos, 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 https://github.com/user-name/CodeDeployGitHubDemo.git

Versão da API 2014-10-06121

Page 132: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 3: carregar um aplicativo deexemplo no seu repositório GitHub

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 seurepositório GitHubNesta etapa, você copiará uma revisão de amostra de um bucket do Amazon S3 público para o seudepósito GitHub. (Para simplificar, as revisões de amostra fornecidas para este tutorial são páginas daWeb exclusivas.)

Note

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. 250) e Adicionarum arquivo de especificações de aplicativo a uma revisão para o AWS CodeDeploy (p. 251).

• 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 grupode implantação (p. 125).Se você estiver implantando em uma instância do Ubuntu Server, será necessário fazer uploadde uma revisão no seu repositório do GitHub compatível com uma instância do Ubuntu Server eo AWS CodeDeploy. Para obter mais informações, consulte Planejar uma revisão para o AWSCodeDeploy (p. 250) e Adicionar um arquivo de especificações de aplicativo a uma revisão parao AWS CodeDeploy (p. 251).

Tópicos• Enviar uma revisão de amostra de uma máquina Linux, macOS, or Unix local (p. 122)• Enviar uma revisão de amostra de uma máquina Windows local (p. 123)

Enviar uma revisão de amostra de uma máquina Linux, macOS,or Unix localCom seu terminal ainda aberto, por exemplo, na localização /tmp/CodeDeployGitHubDemo, execute osseguintes comandos, um de cada vez:

Note

Se você planeja implantar em uma instância do Windows Server, substituaSampleApp_Windows.zip por SampleApp_Linux.zip nos comandos.

(Amazon S3 copy command)

unzip SampleApp_Linux.zip

rm SampleApp_Linux.zip

Versão da API 2014-10-06122

Page 133: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 3: carregar um aplicativo deexemplo no seu repositório GitHub

git add .

git commit -m "Added sample app"

git push

Onde (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 us-east-2 para a região Leste dos EUA (Ohio)

• aws s3 cp s3://aws-codedeploy-us-east-1/samples/latest/SampleApp_Linux.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_Linux.zip .--region us-west-1 para a 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 us-west-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 a Região do Canadá (Central)

• aws s3 cp s3://aws-codedeploy-eu-west-1/samples/latest/SampleApp_Linux.zip .--region eu-west-1 para a região UE (Irlanda)

• aws s3 cp s3://aws-codedeploy-eu-west-2/samples/latest/SampleApp_Linux.zip .--region eu-west-2 para a região UE (Londres)

• aws s3 cp s3://aws-codedeploy-eu-west-3/samples/latest/SampleApp_Linux.zip .--region eu-west-3 para a região UE (Paris)

• aws s3 cp s3://aws-codedeploy-eu-central-1/samples/latest/SampleApp_Linux.zip . --region eu-central-1 para a 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 a 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 sa-east-1 para a Região América do Sul (São Paulo)

Enviar uma revisão de amostra de uma máquina Windows localCom sua solicitação de comando ainda aberta, por exemplo, na localização c:\temp\CodeDeployGitHubDemo, execute os seguintes comandos, um de cada vez:

Note

Se você planeja implantar em uma instância do Amazon Linux ou RHEL, substituaSampleApp_Linux.zip por SampleApp_Windows.zip nos comandos.

(Amazon S3 copy command)

Versão da API 2014-10-06123

Page 134: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 3: carregar um aplicativo deexemplo no seu repositório GitHub

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

Onde (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 daVirgínia)

• aws s3 cp s3://aws-codedeploy-us-west-1/samples/latest/SampleApp_Windows.zip . --region us-west-1 para a Região do Oeste dos EUA (Norte daCalifó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 a 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-west-3/samples/latest/SampleApp_Windows.zip . --region eu-west-3 para a região UE (Paris)

• aws s3 cp s3://aws-codedeploy-eu-central-1/samples/latest/SampleApp_Windows.zip . --region eu-central-1 para a 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 a 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 a Região América do Sul (São Paulo)

Para enviar sua própria revisão a uma instância do Ubuntu Server, copie-a no seu repositório local edepois chame o seguinte:

git add .git commit -m "Added Ubuntu app"git push

Versão da API 2014-10-06124

Page 135: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 4: provisionar uma instância

Etapa 4: provisionar uma instânciaNesta etapa, você criará ou configurará a instância na qual implantará o aplicativo de amostra. Implanteem uma instância do Amazon EC2 ou em uma instância local que esteja executando um dos sistemasoperacionais compatíveis com o AWS CodeDeploy. Para obter informações, consulte Sistemasoperacionais com suporte com o agente do AWS CodeDeploy (p. 132). (Se você já tiver uma instânciaconfigurada 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 para o AWSCodeDeploy (p. 165) e, em seguida, volte para esta página.

Note

Para criar rapidamente uma nova instância para este tutorial, recomendamos o uso do console doAmazon EC2. Consulte Iniciar uma instância do Amazon EC2 (console) (p. 165).

Para verificar se o agente do AWS CodeDeploy está em execução na instância, consulte Verificar se oagente do AWS CodeDeploy está em execução (p. 140).

Depois de ter iniciado ou configurado a instância com sucesso e verificado se o agente do AWSCodeDeploy está em execução, vá para a próxima etapa.

Etapa 5: criar um aplicativo e um grupo deimplantaçãoNesta etapa, você usará o console do AWS CodeDeploy ou a AWS CLI para criar um aplicativo e umgrupo de implantação a serem usados para implantar o exemplo de revisão no seu repositório do 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 https://

console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).3. Escolha Create application (Criar aplicativo) e selecione Custom application (Aplicativo personalizado).4. Em Application name (Nome do aplicativo), insira CodeDeployGitHubDemo-App.5. Em Compute platform (Plataforma de computação), selecione EC2/On-Premises (EC2/no local).6. Selecione Criar aplicativo.7. Na guia Deployment groups (Grupos de implantação), selecione Create deployment group (Criar um

grupo de implantação).8. Em Deployment group name (Nome do grupo de implantação), insira CodeDeployGitHubDemo-

DepGrp.9. Em Service Role (Função do serviço), selecione o nome da função do serviço do AWS CodeDeploy.10. Em Deployment type (Tipo de implantação), selecione In-place (No local).11. Em Environment configuration (Configuração do ambiente), dependendo do tipo de instância que

você estiver usando, selecione Amazon EC2 instances (Instâncias do EC2) ou On-premises instances(Instâncias locais). Em Key (Chave) e Value (Valor), digite a chave de tag da instância e o valor que foiaplicado à instância como parte de Etapa 4: provisionar uma instância (p. 125).

Versão da API 2014-10-06125

Page 136: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 6: implantar o aplicativo na instância

12. Em Deployment configuration (Configuração de implantação), selecioneCodeDeployDefault.AllatOnce.

13. Em Load Balancer, desmarque Enable load balancing (Habilitar balanceamento de carga).14. Expanda Advanced.15. Em Alarms (Alarmes), selecione Ignore alarm configuration (Ignorar configuração de alarme).16. Selecione Create deployment group (Criar grupo de implantação) 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 chamado

CodeDeployGitHubDemo-App:

aws deploy create-application --application-name CodeDeployGitHubDemo-App

2. Chame o comando create-deployment-group para criar um grupo de implantação chamadoCodeDeployGitHubDemo-DepGrp:

• Se você estiver implantando em uma instância do Amazon EC2, ec2-tag-key será a chave de tagde instância do Amazon EC2 que foi aplicada à sua instância do Amazon EC2 como parte de Etapa4: provisionar uma instância (p. 125).

• Se você estiver implantando em uma instância do Amazon EC2, ec2-tag-value será o valor datag de instância do Amazon EC2 que foi aplicado à sua instância do Amazon EC2 como parte deEtapa 4: provisionar uma instância (p. 125).

• Se você estiver implantando em uma instância local, on-premises-tag-key será a chave detag de instância local que foi aplicada à sua instância local como parte de Etapa 4: provisionar umainstância (p. 125).

• Se você estiver implantando em uma instância local, on-premises-tag-value será o valor detag de instância local que foi aplicado à sua instância local como parte de Etapa 4: provisionar umainstância (p. 125).

• service-role-arn é um ARN de função de serviço. (Siga as instruções em Obter o ARN dafunção de serviço (CLI) (p. 36) 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-premises-tag-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

Note

O comando create-deployment-group fornece suporte para criar os gatilhos que resultam noenvio de notificações do Amazon SNS aos assinantes do tópico sobre eventos especificadosem implementações e instâncias. O comando também oferece suporte a opções parareverter automaticamente implantações e configurar alarmes para interromper implantaçõesquando os limites de monitoramento nos alarmes do Amazon CloudWatch são atingidos. Oscomandos para essas ações não estão incluídos neste tutorial.

Etapa 6: implantar o aplicativo na instânciaNesta etapa, você usa o console do AWS CodeDeploy ou a AWS CLI para implantar a revisão de amostrado seu repositório do GitHub na sua instância.

Versão da API 2014-10-06126

Page 137: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 6: implantar o aplicativo na instância

Para implantar a revisão (console)1. Na página Deployment group details (Detalhes do grupo de implantação), selecione Create

deployment (Criar implantação).2. Em Deployment group (Grupo de implantação), selecione CodeDeployGitHubDemo-DepGrp.3. Em Revision type (Tipo de revisão), selecione 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, saiado GitHub em uma guia separada do navegador. Em GitHub account (Conta do GitHub), digite umnome para identificar essa conexão e escolha Connect to GitHub (Conectar-se ao GitHub). A páginada web solicita que você autorize o AWS CodeDeploy a interagir com o GitHub para o aplicativochamado CodeDeployGitHubDemo-App. Continue na etapa 5.

• Para usar uma conexão já criada, em Conta do GitHub, selecione seu nome e escolha Conectar-seao GitHub. Continue na etapa 7.

• Para criar uma conexão com uma conta do GitHub diferente, saia do GitHub em uma guia separadado navegador. Escolha Conectar-se a uma conta do GitHub e escolha Conectar-se ao GitHub.Continue na etapa 5.

5. 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 Create deployment (Criar implantação) do AWS CodeDeploy, em Repository name (Nome

do repositório), digite o nome de usuário do GitHub usado para fazer login, seguido por uma barra(/) e depois pelo nome do repositório ao qual você enviou a 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óriodiferente:

a. Em uma guia separada do navegador da Web, acesse o dashboard do GitHub.b. 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 em Repositoryname (Nome do repositório).

Note

Se o nome do repositório de destino não for exibido em Your repositories (Seusrepositórios), use a caixa Search GitHub (Pesquisar no GitHub) para localizar o nome dorepositório de destino e o usuário ou organização do GitHub.

8. Na caixa Commit ID (ID de confirmação), digite o ID da confirmação associada ao envio da suarevisão de aplicativo ao GitHub.

Caso não tenha certeza do valor que deve ser digitado:

a. Em uma guia separada do navegador da Web, acesse o dashboard do GitHub.b. Em Your repositories (Seus repositórios), selecione CodeDeployGitHubDemo.c. 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 porletras e números. (Não use a versão mais curta do ID de confirmação, que é normalmente os 10primeiros caracteres da versão mais longa.)

d. Cole o ID de confirmação na caixa ID de confirmação.9. Escolha Implantar e continue até a próxima etapa.

Versão da API 2014-10-06127

Page 138: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 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 ocomando create-deployment, que será chamado em seguida), é necessário dar permissão ao AWSCodeDeploy para usar sua conta de usuário do GitHub a fim de interagir com o GitHub para o aplicativoCodeDeployGitHubDemo-App. Atualmente, você deve usar o console do AWS CodeDeploy para fazerisso.

1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).3. Selecione CodeDeployGitHubDemo-App.4. Na guia Deployments (Implantações), selecione Create deployment (Criar implantação).

Note

Você não criará uma nova implantação. No momento, essa é a única maneira de darpermissão ao AWS CodeDeploy para interagir com o GitHub em nome da sua conta deusuário do GitHub.

5. Em Deployment group (Grupo de implantação), selecione CodeDeployGitHubDemo-DepGrp.6. Em Revision type (Tipo de revisão), selecione 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 nomepara identificar essa conexão e escolha Conectar-se ao GitHub. A página da Web solicitaque você autorize o AWS CodeDeploy a interagir com o GitHub para o aplicativo chamadoCodeDeployGitHubDemo-App. Continue na etapa 8.

• Para usar uma conexão já criada, em Conta do GitHub, selecione seu nome e escolha Conectar-seao GitHub. Continue na etapa 10.

• Para criar uma conexão com uma conta do GitHub diferente, saia do GitHub em uma guia separadado navegador. Escolha Conectar-se a uma conta do GitHub e escolha Conectar-se ao GitHub.Continue na etapa 8.

8. Siga as instruções na página Fazer login para entrar com seu nome de usuário/e-mail e sua senha doGitHub.

9. Na página para Autorizar aplicativo, escolha Autorizar aplicativo.10. Na página Create deployment (Criar implantação) do AWS CodeDeploy, selecione Cancel (Cancelar).11. Chame o comando create-deployment para implantar a revisão do seu repositório do GitHub na

instância, onde:

• repository é o nome da sua conta do GitHub, seguido por uma barra (/) e depois pelonome 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óriodiferente:

1. Em uma guia separada do navegador da Web, acesse o dashboard do GitHub.

Versão da API 2014-10-06128

Page 139: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 7: monitorar e verificar a implantação

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.

Note

Se o nome do repositório de destino não aparecer em Seus repositórios, use a caixaPesquisar no GitHub para localizar o nome do repositório de destino e o usuário ouorganização correspondente do GitHub.

• commit-id é a confirmação associada à versão da revisão de aplicativo que você enviou ao seurepositó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. Em Your repositories (Seus repositórios), selecione 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 porletras e números. (Não use a versão mais curta do ID de confirmação, que é normalmente os10 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" --github-location repository=repository,commitId=commit-id

Etapa 7: monitorar e verificar a implantaçãoNesta etapa, você usará o console do AWS CodeDeploy ou a AWS CLI para verificar o sucesso daimplantação. Você usará seu navegador da Web para visualizar a página da Web que foi implantada nainstância que você criou ou configurou.

Note

Se estiver implantando em uma instância do Ubuntu Server, use sua própria estratégia de testepara determinar se a revisão implantada funciona conforme esperado na instância e depoiscontinue na próxima etapa.

Para monitorar e verificar a implantação (console)

1. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Deployments(Implantações).

2. Na lista de implantações, procure a linha com um valor de Application (Aplicativo) deCodeDeployGitHubDemo-App e um valor de Deployment Group (Grupo de implantação) de

Versão da API 2014-10-06129

Page 140: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 8: limpar

CodeDeployGitHubDemo-DepGrp. Se Bem-sucedido ou Falha não aparecer na coluna Status, aperteo botão Atualizar periodicamente.

3. Se Falha aparecer na coluna Status, siga as instruções em Exibir Detalhes da Instância(console) (p. 208) para solucionar problemas com a implantação.

4. Se Bem-sucedido aparecer na coluna Status, você poderá verificar a implantação no seunavegador da Web. Nossa revisão de amostra implanta uma única página da Web nainstância. Se estiver implantando em uma instância do Amazon EC2, no seu navegadorda Web, acesse http://public-dns para a instância (por exemplo, http://ec2-01-234-567-890.compute-1.amazonaws.com).

5. Se conseguir ver a página da Web, parabéns! Agora que você usou com o AWS CodeDeploy comsucesso para implantar uma revisão do GitHub, será possível avançar até Etapa 8: limpar (p. 130).

Para monitorar e verificar a implantação (CLI)

1. Chame o comando list-deployments para obter o ID de implantação do aplicativo chamadoCodeDeployGitHubDemo-App e o grupo de implantação chamado CodeDeployGitHubDemo-DepGrp:

aws deploy list-deployments --application-name CodeDeployGitHubDemo-App --deployment-group-name CodeDeployGitHubDemo-DepGrp --query "deployments" --output text

2. Chame o comando get-deployment, fornecendo o ID de implantação na saída do comando list-deployments:

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. 208) parasolucionar a implantação.

4. Se Bem-sucedido for retornado, você poderá tentar verificar a implantação no seu navegador daWeb. Nossa revisão de amostra é uma única página da Web implantada na instância. Se você estiverimplantando em uma instância do Amazon EC2, poderá visualizar essa página no seu navegador daWeb acessando http://public-dns para a instância do Amazon EC2 (por exemplo, http://ec2-01-234-567-890.compute-1.amazonaws.com).

5. Se conseguir ver a página da Web, parabéns! Você usou com sucesso o AWS CodeDeploy paraimplantar a partir do seu repositório GitHub.

Etapa 8: limparPara evitar cobranças adicionais pelos recursos usados durante esse tutorial, você deve encerrar ainstância do Amazon EC2 e seus recursos associados. Opcionalmente, você pode excluir os registrosde componentes de implantação do AWS CodeDeploy associados a esse tutorial. Caso tenha usado umrepositório GitHub apenas para este tutorial, você também pode excluí-lo agora.

Para excluir uma pilha do AWS CloudFormation (se tiver usadoo template do AWS CloudFormation para criar uma instância doAmazon EC2)1. Faça login no Console de gerenciamento da AWS e abra o console do AWS CloudFormation em

https://console.aws.amazon.com/cloudformation.2. Na coluna Nome da pilha, marque a caixa ao lado da pilha que começa com

CodeDeploySampleStack.

Versão da API 2014-10-06130

Page 141: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 8: limpar

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.

Para cancelar o registro manualmente e limpar uma instâncialocal (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

your-instance-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 (casovocê tenha iniciado manualmente uma instância do AmazonEC2)1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon EC2 em https://

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 doAWS CodeDeploy1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://

console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).3. Selecione CodeDeployGitHubDemo-App.4. Selecione Delete application (Excluir aplicativo).5. Quando solicitado, digite Delete e escolha Delete (Excluir).

Para excluir seu repositório GitHubConsulte o tópico sobre como excluir um repositório na Ajuda do GitHub.

Versão da API 2014-10-06131

Page 142: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSistemas operacionais com suportecom o agente do AWS CodeDeploy

Trabalhando com o agente do AWSCodeDeploy

O agente do AWS CodeDeploy é um pacote de software que, quando instalado e configurado em umainstância, permite que esta seja usada em implantações do AWS CodeDeploy.

Note

O agente do AWS CodeDeploy será necessário somente se você implantar em uma EC2/No localPlataforma de computação. O agente não é necessário para implantações que usam a Plataformade computação Amazon ECS ou AWS Lambda.

Um arquivo de configuração é colocado na instância quando o agente é instalado. Este arquivo é usadopara especificar como o agente funciona. Esse arquivo de configuração especifica caminhos do diretórioe outras configurações AWS CodeDeploy usar à medida que este interage com a instância. É possívelalterar algumas das opções de configuração no arquivo. Para obter informações sobre como trabalhar como arquivo de configuração do agente do AWS CodeDeploy, consulte Referência de configuração do agentedo AWS CodeDeploy (p. 367).

Para obter mais informações sobre como trabalhar com o agente do AWS CodeDeploy, como etapaspara instalar, atualizar e verificar versões, consulte Gerenciando operações do agente do AWSCodeDeploy (p. 139).

Tópicos• Sistemas operacionais com suporte com o agente do AWS CodeDeploy (p. 132)• Protocolo de comunicação e porta do agente do AWS CodeDeploy (p. 133)• Suporte da SDK da AWS para Ruby (aws-sdk-core) para o agente do AWS CodeDeploy (p. 133)• Histórico de versões do agente do AWS CodeDeploy (p. 133)• Limpeza de revisões de aplicativo e arquivos de log (p. 137)• Arquivos instalados pelo agente do AWS CodeDeploy (p. 137)• Gerenciando operações do agente do AWS CodeDeploy (p. 139)

Sistemas operacionais com suporte com o agentedo AWS CodeDeploy

Sistemas operacionais Amazon EC2 AMI com suporteO agente do AWS CodeDeploy foi testado nos seguintes sistemas operacionais Amazon EC2 AMI:

• Amazon Linux 2017.03.x, 2016.09.0, 2016.03.1, 2016.03.0, 2015.03, 2014.09.1• Ubuntu Server 16.04 LTS e 14.04 LTS• Microsoft Windows Server 2016, 2012 R2, e 2008 R2• Red Hat Enterprise Linux (RHEL) 7.x

Versão da API 2014-10-06132

Page 143: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSistemas operacionais locais com suporte

O agente do AWS CodeDeploy está disponível como software livre para você adaptá-los às suasnecessidades. Ele pode ser usado com outros sistemas operacionais Amazon EC2 AMI. Para obter maisinformações, acesse o repositório do Agente do AWS CodeDeploy no GitHub.

Sistemas operacionais locais com suporteO agente do AWS CodeDeploy foi testado nos seguintes sistemas operacionais locais:

• Ubuntu Server 14.04 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 suasnecessidades. Ele pode ser usado com outros sistemas operacionais de instâncias locais. Para obter maisinformações, acesse o repositório do Agente do AWS CodeDeploy no GitHub.

Protocolo de comunicação e porta do agente doAWS 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 1.0.1.880 são compatíveis apenas com a versão2.1.2 e anteriores do AWS SDK para Ruby (aws-sdk-core 2.1.2). Se você estiver usando uma versão doagente do AWS CodeDeploy anterior a 1.0.1.880, 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. 141)• Instalar ou reinstalar o agente do AWS CodeDeploy (p. 142)

A versão mais recente da SDK do AWS para Ruby compatível com o agente do AWS CodeDeploy é aws-sdk-core 2.3.

Histórico de versões do agente do AWSCodeDeploy

Suas instâncias devem estar executando uma versão com suporte do agente do AWS CodeDeploy.Atualmente, a versão mínima compatível é 1.0.1.1458. Se você estiver executando uma versão anterior, asimplantações nas instâncias poderão falhar.

A tabela a seguir lista todas as versões do agente do AWS CodeDeploy, bem como os recursos eaprimoramentos incluídos em cada versão.

Versão da API 2014-10-06133

Page 144: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioHistórico de versões do agente do AWS CodeDeploy

Versão Data de lançamento Detalhes

1.0.1.1597 15 de novembro de2018

Melhoria: AWS CodeDeploy compatível com Ubuntu 18.04.

Melhoria: AWS CodeDeploy compatível com Ruby 2.5.

Melhoria: AWS CodeDeploy compatível com endpoints do FIPS.Para obter mais informações sobre os endpoints do FIPS, consulteVisão geral da publicação 140-2 da FIPS. Para obter os endpointsque podem ser usados com o AWS CodeBuild, consulte Regiões eendpoints do AWS CodeDeploy.

1.0.1.1518 12 de junho de 2018 Melhoria: corrigido um problema que causava um erro quando oagente do AWS CodeDeploy é encerrado enquanto está aceitandosolicitações de consulta.

Melhoria: adicionado um recurso de acompanhamento deimplantação que impede que o agente do AWS CodeDeploy sejaencerrado quando uma implantação estiver em andamento.

Melhoria: melhoria no desempenho ao excluir arquivos.

1.0.1.1458 6 de março de 2018 Important

The minimum supported version of the AWS CodeDeployAgent is 1.0.1.1458. Use of an earlier AWS CodeDeployagent may cause deployments to fail.

Melhoria: validações de certificado aprimoradas para oferecersuporte a mais autoridades confiáveis.

Melhoria: corrigido um problema que fazia com que a CLI localfalhasse durante uma implantação que inclui um evento de ciclode vida BeforeInstall.

Melhoria: corrigido um problema que fazia com que umaimplantação ativa falhasse quando o agente do AWS CodeDeployé atualizado.

1.0.1.1352 16 de novembro de2017

Recurso: adicionado um novo recurso para testar e depurar umaimplantação de EC2/No local em uma máquina ou instância localem que o agente do AWS CodeDeploy esteja instalado.

1.0.1.1106 16 de maio de 2017 Recurso: introdução de um novo suporte para manipular oconteúdo em um local de destino que não faz parte da revisão deaplicativo da implantação bem-sucedida mais recente. As opçõesde implantação de conteúdo existente agora incluem manter oconteúdo, substituir o conteúdo ou marcar a implantação comofalha.

Melhoria: o agente do AWS CodeDeploy agora é compatível coma versão 2.9.2 do AWS SDK para Ruby (aws-sdk-core 2.9.2).

1.0.1.1095 29 de março de 2017 Aprimoramento: suporte ao agente do AWS CodeDeploy noRegião China (Pequim).

Melhoria: o Puppet pode ser executado em instâncias do WindowsServer quando invocado por um gancho de evento de ciclo devida.

Versão da API 2014-10-06134

Page 145: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioHistórico de versões do agente do AWS CodeDeploy

Versão Data de lançamento DetalhesMelhoria: a manipulação de operações untar foi aprimorada.

1.0.1.1067 6 de janeiro de 2017 Melhoria: revisão de muitas mensagens de erro para incluircausas mais específicas de falhas de implantação.

Melhoria: correção de um problema que impediu o agente do AWSCodeDeploy de identificar a revisão de aplicativo correta paraimplantar durante algumas implantações.

Melhoria: reversão do uso de pushd e popd antes e depois daoperação untar.

1.0.1.1045 21 de novembro de2016

Melhoria: o agente do AWS CodeDeploy agora é compatível coma versão 2.6.11 do AWS SDK para Ruby (aws-sdk-core 2.6.11).

1.0.1.1037 19 de outubro de2016

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 recentecontinua a ser 1.0.1.998.

Melhoria: o agente agora pode determinar qual versão do Rubyestá instalada em uma instância, para que ele possa invocar oscript codedeploy-agent usando essa versão.

1.0.1.1011.1 17 de agosto de2016

Melhoria: remoção das alterações introduzidas pela versão1.0.1.1011 devido a problemas com suporte de shell. Essa versãodo agente é funcionalmente equivalente à versão 1.0.1.998,lançada em 11 de julho de 2016.

1.0.1.1011 15 de agosto de2016

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 recentecontinua a ser 1.0.1.998.

Recurso: inclusão de suporte para invocar o agente do AWSCodeDeploy usando o shell bash em sistemas operacionais nosquais systemd init system está em uso.Melhoria: suporte habilitado para todas as versões do Ruby 2.xno agente do AWS CodeDeploy e no atualizador do agente doAWS CodeDeploy. Agentes do AWS CodeDeploy atualizadosnã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 doAWS CodeDeploy.)

1.0.1.998 11 de julho de 2016 Melhoria: suporte corrigido para executar o agente do AWSCodeDeploy com perfis de usuário diferentes de root. A variáveldenominada USER foi substituída por CODEDEPLOY_USER paraevitar conflitos com variáveis ambientais.

Versão da API 2014-10-06135

Page 146: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioHistórico de versões do agente do AWS CodeDeploy

Versão Data de lançamento Detalhes

1.0.1.966 16 de junho de 2016 Recurso: suporte introduzido para executar o agente do AWSCodeDeploy com perfis de usuário diferentes de root.

Melhoria: suporte corrigido para especificar o número de revisõesde aplicativo que você deseja que o agente do AWS CodeDeployarquive para um grupo de implantação.

Melhoria: o agente do AWS CodeDeploy agora é compatível coma versão 2.3 do AWS SDK para Ruby (aws-sdk-core 2.3).

Melhoria: problemas corrigidos com a codificação UTF-8 duranteimplantações.

Melhoria: melhor precisão ao identificar nomes de processos.

1.0.1.950 24 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 oagente do AWS CodeDeploy se a versão mais recente já estiverinstalada.

1.0.1.934 11 de fevereiro de2016

Recurso: suporte introduzido para especificar o número derevisões de aplicativo que você deseja que o agente do AWSCodeDeploy arquive para um grupo de implantação.

1.0.1.880 11 de janeiro de2016

Melhoria: o agente do AWS CodeDeploy agora é compatível coma versão 2.2 do AWS SDK para Ruby (aws-sdk-core 2.2). Aindahá suporte para a versão 2.1.2.

1.0.1.854 17 de novembro de2015

Recurso: suporte introduzido para o algoritmo hash SHA-256.

Important

Após 17 de outubro de 2016, todas as instalações doagente do AWS CodeDeploy devem ser atualizadas pelomenos para a versão 1.0.1.854. Caso contrário, haveráfalha nas implantações. Para obter mais informações,consulte A implantação falha com a mensagem"Validation of PKCS7 signed message failed" (p. 385).

Recurso: suporte para controle de versão introduzido em arquivos.version.

Recurso: o ID do grupo de implantação foi disponibilizado com ouso de uma variável de ambiente.

Melhoria: suporte adicionado para o monitoramento de logs doagente do AWS CodeDeploy com o uso do Amazon CloudWatchLogs.

Para obter informações relacionadas, consulte o seguinte:

• Determinar a versão do agente do AWS CodeDeploy (p. 141)• Instalar ou reinstalar o agente do AWS CodeDeploy (p. 142)

Versão da API 2014-10-06136

Page 147: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioLimpeza de revisões de aplicativo e arquivos de log

Para obter um histórico versões do agente do AWS CodeDeploy, consulte o Repositório de versões noGitHub.

Limpeza de revisões de aplicativo e arquivos de logO agente do AWS CodeDeploy arquiva revisões e arquivos de log em instâncias. O agente do AWSCodeDeploy 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 deconfiguração do agente para especificar o número de revisões de aplicativo a serem arquivadas, inserindoqualquer número inteiro positivo. O AWS CodeDeploy também arquiva os arquivos de log dessas revisões.Todos os outros são excluídos, com exceção do arquivo de log da última implantação bem-sucedida. Essearquivo de log sempre é mantido, mesmo que o número de implantações com falha exceda o número derevisões mantidas. Se nenhum valor for especificado, o AWS CodeDeploy mantém as cinco revisões maisrecentes, além da revisão implantada atualmente.

Logs do AWS CodeDeploy: para instâncias do Amazon Linux, do Ubuntu Server e do RHEL, o agentedo 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ãoexcluídos após sete dias. O padrão de nomeação para arquivos de log em rodízio é codedeploy-agent.YYYYMMDD.log.

Arquivos instalados pelo agente do AWSCodeDeploy

O agente do AWS CodeDeploy armazena revisões, o histórico de implantação e scripts de implantação emseu diretório raiz em uma instância. O nome e o local padrão desse diretório é:

'/opt/codedeploy-agent/deployment-root' para instâncias do Amazon Linux, Ubuntu Server eRHEL.

'C:\ProgramData\Amazon\CodeDeploy' para instâncias do Windows Server.

Você pode usar a configuração root_dir no arquivo de configuração do agente do AWS CodeDeploy paraconfigurar o nome e o local do diretório. Para obter mais informações, consulte Referência de configuraçãodo agente do AWS CodeDeploy (p. 367).

Veja a seguir um exemplo do arquivo e da estrutura do diretório no diretório raiz. A estrutura pressupõeque há N números de grupos de implantação, e que cada grupo de implantação contém N números deimplantações.

|--deployment-root/|-- deployment group 1 ID | |-- deployment 1 ID | | |-- Contents and logs of the deployment's revision| |-- deployment 2 ID| | |-- Contents and logs of the deployment's revision| |-- deployment N ID| | |-- Contents and logs of the deployment's revision|-- deployment group 2 ID| |-- deployment 1 ID| | |-- bundle.tar| | |-- deployment-archive

Versão da API 2014-10-06137

Page 148: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioArquivos instalados pelo agente do AWS CodeDeploy

| | | | -- contents of the deployment's revision| | |-- logs| | | | -- scripts.log | |-- deployment 2 ID| | |-- bundle.tar| | |-- deployment-archive| | | | -- contents of the deployment's revision| | |-- logs| | | | -- scripts.log | |-- deployment N ID| | |-- bundle.tar| | |-- deployment-archive| | | | -- contents of the deployment's revision| | |-- logs| | | | -- scripts.log |-- deployment group N ID| |-- deployment 1 ID| | |-- Contents and logs of the deployment's revision| |-- deployment 2 ID| | |-- Contents and logs of the deployment's revision| |-- deployment N ID| | |-- Contents and logs of the deployment's revision|-- deployment-instructions| |-- [deployment group 1 ID]_cleanup| |-- [deployment group 2 ID]_cleanup| |-- [deployment group N ID]_cleanup| |-- [deployment group 1 ID]_install.json| |-- [deployment group 2 ID]_install.json| |-- [deployment group N ID]_install.json| |-- [deployment group 1 ID]_last_successful_install| |-- [deployment group 2 ID]_last_successful_install| |-- [deployment group N ID]_last_successful_install| |-- [deployment group 1 ID]_most_recent_install| |-- [deployment group 2 ID]_most_recent_install| |-- [deployment group N ID]_most_recent_install|-- deployment-logs| |-- codedeploy-agent-deployments.log

• As pastas do ID do grupo de implantação representam cada um de seus grupos de implantação.Um nome de diretório do grupo de implantação é o seu ID (por exemplo, acde1916-9099-7caf-fd21-012345abcdef). Cada diretório do grupo de implantação contém um subdiretório para cadatentativa de implantação nesse grupo de implantação.

Você pode usar o comando batch-get-deployments para localizar um ID de grupo de implantação.• As pastas do ID de implantação representam cada implantação em um grupo de implantação. Cada

nome de diretório de implantação é o seu ID. Cada pasta contém:• bundle.tar, um arquivo compactado com o conteúdo da revisão da implantação. Use um utilitário de

descompactação zip caso você queira ver a revisão.• deployment-archive, um diretório com o conteúdo da revisão da implantação.• logs, um diretório que contém um arquivo scripts.log. Esse arquivo lista a saída de todos os

scripts especificados na implantação do AppSpec file.

Se você deseja localizar a pasta de uma implantação, mas não sabe o ID de implantação ou ID do grupode implantação, você pode usar o console do AWS CodeDeploy ou a AWS CLI para localizá-los. Paraobter mais informações, consulte Visualizar detalhes de implantações do AWS CodeDeploy (p. 280).

O número máximo padrão de implantações que podem ser arquivadas em um grupo de implantação écinco. Quando esse número é atingido, as implementações futuras são arquivadas, e o arquivo maisantigo é excluído. Você pode usar a configuração max_revisions no arquivo de configuração do agentedo AWS CodeDeploy para alterar o padrão. Para obter mais informações, consulte Referência deconfiguração do agente do AWS CodeDeploy (p. 367).

Versão da API 2014-10-06138

Page 149: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioGerenciando operações do agente do AWS CodeDeploy

Note

Se você deseja recuperar o espaço em disco usado por implantações arquivadas, atualize aconfiguração max_revisions para um número baixo, como um ou dois. A próxima implantaçãoexclui as implantações arquivadas para que o número seja igual ao especificado.

• deployment-instructions contém quatro arquivos de texto para cada grupo de implantação:• [ID do grupo de implantação]-cleanup, um arquivo de texto com uma versão anterior de cada

comando que é executado durante uma implantação. Um nome de arquivo de exemplo éacde1916-9099-7caf-fd21-012345abcdef-cleanup.

• [ID do grupo de implantação]-install.json, um arquivo JSON criado durante a implantação maisrecente. Ele contém os comandos executados durante a implantação. Um nome de arquivo deexemplo é acde1916-9099-7caf-fd21-012345abcdef-install.json.

• [ID do grupo de implantação]_last_successfull_install, um arquivo de texto que lista o diretório doarquivo da última implantação bem-sucedida. Esse arquivo é criado quando o agente do AWSCodeDeploy tiver copiado todos os arquivos no aplicativo de implantação para a instância. Ele éusado pelo agente do AWS CodeDeploy durante a próxima implantação para determinar quais scriptsApplicationStop e BeforeInstall serão executados. Um nome de arquivo de exemplo éacde1916-9099-7caf-fd21-012345abcdef_last_successfull_install.

• [ID do grupo de implantação]_most_recent_install, um arquivo de texto que lista o nome do diretório doarquivo da implantação mais recente. Esse arquivo é criado quando os arquivos na implantação sãobaixados com sucesso. O arquivo [ID de grupo de implantação]_last_successfull_install é criado apósesse arquivo, quando os arquivos baixados são copiados para seu destino final. Um nome de arquivode exemplo é acde1916-9099-7caf-fd21-012345abcdef_most_recent_install.

• deployment-logs contém os seguintes arquivos de log:• Os arquivos codedeploy-agent.yyyymmdd.log são criados para cada dia em que há uma implantação.

Cada arquivo de log contém informações sobre as implantações do dia. Esses arquivos de log podemser úteis para a depuração de problemas, como um problema de permissões. O arquivo de log éinicialmente nomeado codedeploy-agent.log. No dia seguinte, a data de suas implantações éinserida no nome do arquivo. Por exemplo, se hoje é 3 de janeiro de 2018, você pode ver informaçõesde todas as implantações de hoje em codedeploy-agent.log. Amanhã, 4 de janeiro de 2018, oarquivo de log será renomeado codedeploy-agent.20180103.log.

• O codedeploy-agent-deployments.log compila o conteúdo dos arquivos scripts.log para cadaimplantação. Os arquivos scripts.log estão localizados na subpasta logs em cada pastaDeployment ID. As entradas nesse arquivo tem um ID de implantação no prefixo. Por exemplo,"[d-ABCDEF123]LifecycleEvent - BeforeInstall" pode ser gravado durante umaimplantação com um ID de d-ABCDEF123. Quando codedeploy-agent-deployments.log atingirseu tamanho máximo, o agente do AWS CodeDeploy continuará a gravar nele e excluirá o conteúdoantigo.

Gerenciando operações do agente do AWSCodeDeploy

As instruções nesta seção mostram como instalar, desinstalar, reinstalar ou atualizar o agente do AWSCodeDeploy e verificar se ele está em execução.

Important

The minimum supported version of the AWS CodeDeploy Agent is 1.0.1.1458. Use of an earlierAWS CodeDeploy agent may cause deployments to fail.

Tópicos• Verificar se o agente do AWS CodeDeploy está em execução (p. 140)

Versão da API 2014-10-06139

Page 150: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVerificar se o agente do AWS

CodeDeploy está em execução

• Determinar a versão do agente do AWS CodeDeploy (p. 141)• Instalar ou reinstalar o agente do AWS CodeDeploy (p. 142)• Atualizar o agente do AWS CodeDeploy (p. 149)• Desinstalar o agente do AWS CodeDeploy (p. 153)

Verificar se o agente do AWS CodeDeploy está emexecuçãoEsta seção descreve comandos a serem executados se você suspeitar de que o agente do AWSCodeDeploy 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. 140)• Verificar se o agente do AWS CodeDeploy para Ubuntu Server está em execução (p. 140)• Verificar se o agente do AWS CodeDeploy para Windows Server está em execução (p. 141)

Verificar se o agente do AWS CodeDeploy para Amazon Linux ouRHEL está em execuçãoPara ver se o agente do AWS CodeDeploy está instalado e em execução, entre na instância e execute oseguinte comando:

sudo service codedeploy-agent status

Se o comando retornar um erro, o agente do AWS CodeDeploy não está instalado. Instale-o conformedescrito em Instalar ou reinstalar o agente do AWS CodeDeploy para Amazon Linux ou RHEL (p. 143).

Se o agente do AWS CodeDeploy estiver instalado e em execução, você verá uma mensagem semelhantea The AWS CodeDeploy agent is running.

Se você vir uma mensagem como error: No AWS CodeDeploy agent running, inicie o serviço eexecute 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 Serverestá em execuçãoPara ver se o agente do AWS CodeDeploy está instalado e em execução, entre na instância e execute oseguinte comando:

sudo service codedeploy-agent status

Se o comando retornar um erro, o agente do AWS CodeDeploy não está instalado. Instale-o conformedescrito em Instalar ou reinstalar o agente do AWS CodeDeploy para o Ubuntu Server (p. 144).

Versão da API 2014-10-06140

Page 151: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioDeterminar a versão do agente do AWS CodeDeploy

Se o agente do AWS CodeDeploy estiver instalado e em execução, você verá uma mensagem semelhantea The AWS CodeDeploy agent is running.

Se você vir uma mensagem como error: No AWS CodeDeploy agent running, inicie o serviço eexecute 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 Serverestá em execuçãoPara ver se o agente do AWS CodeDeploy está instalado e em execução, entre na instância e execute oseguinte comando:

powershell.exe -Command Get-Service -Name codedeployagent

Você deve ver saída semelhante a:

Status Name DisplayName------ ---- -----------Running codedeployagent CodeDeploy Host Agent Service

Se o comando retornar um erro, o agente do AWS CodeDeploy não está instalado. Instale-o conformedescrito em Instalar ou reinstalar o agente do AWS CodeDeploy para o Windows Server (p. 145).

Se Status mostrar algo diferente de Running, inicie o serviço com o seguinte comando:

powershell.exe -Command Start-Service -Name codedeployagent

É 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 CodeDeployVocê pode determinar a versão do agente do AWS CodeDeploy em execução na sua instância de duasmaneiras.

Important

The minimum supported version of the AWS CodeDeploy Agent is 1.0.1.1458. Use of an earlierAWS CodeDeploy agent may cause deployments to fail.

Primeiro, com a versão 1.0.1.854 do agente do AWS CodeDeploy, é possível visualizar o número daversão em um arquivo .version na instância. A tabela a seguir mostra a localização e a string da versãode exemplo de cada um dos sistemas operacionais com suporte.

Versão da API 2014-10-06141

Page 152: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioInstalar ou reinstalar o agente do AWS CodeDeploy

Sistema operacional Local do arquivo Exemplo da string agent_version

Amazon Linux e Red HatEnterprise Linux (RHEL)

/opt/codedeploy-agent/.version

OFFICIAL_1.0.1.854_rpm

Ubuntu Server /opt/codedeploy-agent/.version

OFFICIAL_1.0.1.854_deb

Windows Server C:\ProgramData\Amazon\CodeDeploy\.version

OFFICIAL_1.0.1.854_msi

Em segundo lugar, é possível executar um comando em uma instância para determinar a versão do agentedo AWS CodeDeploy.

Tópicos• Determinar a versão no Amazon Linux ou RHEL (p. 142)• Determinar a versão no Ubuntu Server (p. 142)• Determinar a versão no Windows Server (p. 142)

Determinar a versão no Amazon Linux ou RHELEntre na instância e execute o seguinte comando:

sudo yum info codedeploy-agent

Determinar a versão no Ubuntu ServerEntre na instância e execute o seguinte comando:

sudo dpkg -s codedeploy-agent

Determinar a versão no Windows ServerEntre na instância e execute o seguinte comando:

sc qdescription codedeployagent

Instalar ou reinstalar o agente do AWS CodeDeploySe você suspeitar de que o agente do AWS CodeDeploy está ausente ou não está funcionando, podeexecutar 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émos arquivos de instalação do agente para sua região deve ser anexado a cada instância doAmazon EC2. Sem as permissões fornecidas pelo perfil de instância do IAM, a instância nãopoderá fazer download dos arquivos de instalação do agente do AWS CodeDeploy. Para obterinformações, consulte Etapa 4: criar um perfil de instância do IAM para as suas instâncias doAmazon EC2 (p. 36) e Configurar uma instância do Amazon EC2 para trabalhar com o AWSCodeDeploy (p. 177).

Versão da API 2014-10-06142

Page 153: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioInstalar ou reinstalar o agente do AWS CodeDeploy

Tópicos• Instalar ou reinstalar o agente do AWS CodeDeploy para Amazon Linux ou RHEL (p. 143)• Instalar ou reinstalar o agente do AWS CodeDeploy para o Ubuntu Server (p. 144)• Instalar ou reinstalar o agente do AWS CodeDeploy para o Windows Server (p. 145)

Instalar ou reinstalar o agente do AWS CodeDeploy para AmazonLinux ou RHELEntre na instância e execute os seguintes comandos, um por vez.

Note

No quarto comando, /home/ec2-user representa o nome de usuário padrão para umainstância do Amazon Linux ou RHEL Amazon EC2. Se a sua instância foi criada usando um AMIpersonalizado, 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 https://bucket-name.s3.amazonaws.com/latest/install

chmod +x ./install

sudo ./install auto

O nome de bucket é o nome do bucket do Amazon S3sds-s3-latest-bucket-name que contém osarquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Região do Lestedos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2. Para obter uma listade nomes de buckets, consulte Nomes de bucket do kit de recursos por região (p. 372).

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 semelhantea The AWS CodeDeploy agent is running.

Se você vir uma mensagem como error: No AWS CodeDeploy agent running, inicie o serviço eexecute os dois comandos a seguir, um de cada vez:

sudo service codedeploy-agent start

sudo service codedeploy-agent status

Versão da API 2014-10-06143

Page 154: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioInstalar ou reinstalar o agente do AWS CodeDeploy

Instalar ou reinstalar o agente do AWS CodeDeploy para oUbuntu ServerEntre na instância e execute os seguintes comandos, um por vez.

Note

No quinto comando, /home/ubuntu representa o nome de usuário padrão para uma instância doUbuntu Server. Se a sua instância foi criada usando um AMI personalizado, o proprietário do AMIpode 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 https://bucket-name.s3.amazonaws.com/latest/install

chmod +x ./install

sudo ./install auto

O nome de bucket é o nome do bucket do Amazon S3sds-s3-latest-bucket-name que contém osarquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Região do Lestedos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2. Para obter uma listade nomes de buckets, consulte Nomes de bucket do kit de recursos por região (p. 372).

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 semelhantea The AWS CodeDeploy agent is running.

Se você vir uma mensagem como error: No AWS CodeDeploy agent running, inicie o serviço eexecute os dois comandos a seguir, um de cada vez:

sudo service codedeploy-agent start

sudo service codedeploy-agent status

Versão da API 2014-10-06144

Page 155: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioInstalar ou reinstalar o agente do AWS CodeDeploy

Instalar ou reinstalar o agente do AWS CodeDeploy para oWindows ServerNas instâncias do Windows Server, você pode usar um dos seguintes métodos para fazer download einstalar 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.

Note

Em instâncias novas e existentes, recomendamos instalar o atualizador do agente do AWSCodeDeploy para o Windows Server. O atualizador verifica periodicamente se existem novasversões do agente e faz a instalação quando uma nova versão está disponível. Em novasinstâ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 oagente do AWS CodeDeploy no Windows Server (p. 149).

Tópicos• Usar Windows Powershell (p. 145)• Usar um link direto (p. 146)• Usar um comando de cópia do Amazon S3 (p. 147)

Usar Windows Powershell

Faça login na instância e execute os seguintes comandos no Windows PowerShell:

1. Exija que todos os scripts e arquivos de configuração baixados da Internet sejam assinados por umeditor confiável. Se você precisar alterar a política de execução, digite "Y".

Set-ExecutionPolicy RemoteSigned

2. Carregue o AWS Tools para Windows PowerShell.

Import-Module AWSPowerShell

3. Crie um diretório em que o arquivo de instalação do agente do AWS CodeDeploy é baixado.

New-Item -Path "c:\temp" -ItemType "directory" -Force

4. Faça download do arquivo de instalação do agente do AWS CodeDeploy.

powershell.exe -Command Read-S3Object -BucketName bucket-name -Key latest/codedeploy-agent.msi -File c:\temp\codedeploy-agent.msi

5. Execute o arquivo de instalação do 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 S3sds-s3-latest-bucket-name que contémos arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Regiãodo Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2.

Versão da API 2014-10-06145

Page 156: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioInstalar ou reinstalar o agente do AWS CodeDeploy

Para obter uma lista de nomes de buckets, consulte Nomes de bucket do kit de recursos porregião (p. 372).

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 tiver sido instalado, mas ainda não foi iniciado, após a execução docomando Get-Service, em Status, você verá Start...:

Status Name DisplayName------ ---- -----------Start... codedeployagent CodeDeploy Host Agent Service

Se o agente do AWS CodeDeploy já estiver em execução, após a execução do comando Get-Service, emStatus, você verá Running:

Status Name DisplayName------ ---- -----------Running codedeployagent CodeDeploy Host Agent Service

Usar um link direto

Se as configurações de segurança do navegador na instância do Windows Server concederem aspermissões (por exemplo, para http://*.s3.amazonaws.com), você poderá usar um link diretoda região para fazer download do agente do AWS CodeDeploy e, em seguida, executar o instaladormanualmente.

Nome da região Link para fazer download

Leste dos EUA (Ohio) https://aws-codedeploy-us-east-2.s3.amazonaws.com/latest/codedeploy-agent.msi

Leste dos EUA (Norte da Virgínia) https://aws-codedeploy-us-east-1.s3.amazonaws.com/latest/codedeploy-agent.msi

Oeste dos EUA (Norte da Califórnia) https://aws-codedeploy-us-west-1.s3.amazonaws.com/latest/codedeploy-agent.msi

Oeste dos EUA (Oregon) https://aws-codedeploy-us-west-2.s3.amazonaws.com/latest/codedeploy-agent.msi

Canadá (Central) https://aws-codedeploy-ca-central-1.s3.amazonaws.com/latest/codedeploy-agent.msi

UE (Irlanda) https://aws-codedeploy-eu-west-1.s3.amazonaws.com/latest/codedeploy-agent.msi

Versão da API 2014-10-06146

Page 157: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioInstalar ou reinstalar o agente do AWS CodeDeploy

Nome da região Link para fazer download

UE (Londres) https://aws-codedeploy-eu-west-2.s3.amazonaws.com/latest/codedeploy-agent.msi

UE (Paris) https://aws-codedeploy-eu-west-3.s3.amazonaws.com/latest/codedeploy-agent.msi

UE (Frankfurt) https://aws-codedeploy-eu-central-1.s3.amazonaws.com/latest/codedeploy-agent.msi

Ásia-Pacífico (Tóquio) https://aws-codedeploy-ap-northeast-1.s3.amazonaws.com/latest/codedeploy-agent.msi

Ásia-Pacífico (Seul) https://aws-codedeploy-ap-northeast-2.s3.amazonaws.com/latest/codedeploy-agent.msi

Ásia-Pacífico (Cingapura) https://aws-codedeploy-ap-southeast-1.s3.amazonaws.com/latest/codedeploy-agent.msi

Ásia-Pacífico (Sydney) https://aws-codedeploy-ap-southeast-2.s3.amazonaws.com/latest/codedeploy-agent.msi

Ásia Pacífico (Mumbai) https://aws-codedeploy-ap-south-1.s3.amazonaws.com/latest/codedeploy-agent.msi

América do Sul (São Paulo) https://aws-codedeploy-sa-east-1.s3.amazonaws.com/latest/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 fazerdownload do agente do AWS CodeDeploy e, em seguida, executar o instalador manualmente. Para obterinformações, consulte Instalar a AWS Command Line Interface no Microsoft Windows.

Nome da região Comando de cópia do Amazon S3

Leste dos EUA (Ohio)aws s3 cp s3://aws-codedeploy-us-east-2/latest/codedeploy-agent.msi codedeploy-agent.msi

Leste dos EUA (Norte da Virgínia)aws s3 cp s3://aws-codedeploy-us-east-1/latest/codedeploy-agent.msi codedeploy-agent.msi

Versão da API 2014-10-06147

Page 158: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioInstalar ou reinstalar o agente do AWS CodeDeploy

Nome da região Comando de cópia do Amazon S3

Oeste dos EUA (Norte da Califórnia)aws s3 cp s3://aws-codedeploy-us-west-1/latest/codedeploy-agent.msi codedeploy-agent.msi

Oeste dos EUA (Oregon)aws s3 cp s3://aws-codedeploy-us-west-2/latest/codedeploy-agent.msi codedeploy-agent.msi

Canadá (Central)aws s3 cp s3://aws-codedeploy-ca-central-1/latest/codedeploy-agent.msi codedeploy-agent.msi

UE (Irlanda)aws s3 cp s3://aws-codedeploy-eu-west-1/latest/codedeploy-agent.msi codedeploy-agent.msi

UE (Londres)aws s3 cp s3://aws-codedeploy-eu-west-2/latest/codedeploy-agent.msi codedeploy-agent.msi

UE (Paris)aws s3 cp s3://aws-codedeploy-eu-west-3/latest/codedeploy-agent.msi codedeploy-agent.msi

UE (Frankfurt)aws s3 cp s3://aws-codedeploy-eu-central-1/latest/codedeploy-agent.msi codedeploy-agent.msi

Ásia-Pacífico (Tóquio)aws s3 cp s3://aws-codedeploy-ap-northeast-1/latest/codedeploy-agent.msi codedeploy-agent.msi

Ásia-Pacífico (Seul)aws s3 cp s3://aws-codedeploy-ap-northeast-2/latest/codedeploy-agent.msi codedeploy-agent.msi

Ásia-Pacífico (Cingapura)aws s3 cp s3://aws-codedeploy-ap-southeast-1/latest/codedeploy-agent.msi codedeploy-agent.msi

Ásia-Pacífico (Sydney)aws s3 cp s3://aws-codedeploy-ap-southeast-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 codedeploy-agent.msi

Versão da API 2014-10-06148

Page 159: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizar o agente do AWS CodeDeploy

Nome da região Comando de cópia do Amazon S3

América do Sul (São Paulo)aws s3 cp s3://aws-codedeploy-sa-east-1/latest/codedeploy-agent.msi codedeploy-agent.msi

Atualizar o agente do AWS CodeDeployPara os sistemas operacionais Amazon Linux, RHEL e Ubuntu Server o agente do AWS CodeDeployé atualizado quando uma nova versão é lançada. Você pode instalar o atualizador do agente do AWSCodeDeploy para Windows Server depois ou em vez de instalar o agente do AWS CodeDeploy. O agenteé atualizado sempre que uma nova versão é detectada. Você também pode forçar atualizações em todosos 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. 149)• Atualizar o agente do AWS CodeDeploy no Ubuntu Server (p. 149)• Atualizar o agente do AWS CodeDeploy no Windows Server (p. 149)

Atualizar o agente do AWS CodeDeploy no Amazon Linux ouRHELApós a instalação do agente do AWS CodeDeploy (codedeploy-agent.noarch.rpm) em umainstância, ele será atualizado automaticamente em até 24 horas depois do lançamento de uma novaversão. O tempo de atualização não pode ser facilmente cancelado ou reprogramado. Se uma implantaçãoestiver 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 é retomada com o próximo evento de ciclo devida de implantação.

Se quiser forçar uma atualização do agente do AWS CodeDeploy, entre na instância e execute o seguintecomando:

sudo /opt/codedeploy-agent/bin/install auto

Atualizar o agente do AWS CodeDeploy no Ubuntu ServerApós a instalação do agente do AWS CodeDeploy (codedeploy-agent_all.deb) em uma instância,ele será atualizado automaticamente em até 24 horas depois do lançamento de uma nova versão. Otempo de atualização não pode ser facilmente cancelado ou reprogramado. Se uma implantação estiverem 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 é retomada com o próximo evento de ciclo de vida deimplantação.

Se quiser forçar uma atualização do agente do AWS CodeDeploy, entre na instância e execute o seguintecomando:

sudo /opt/codedeploy-agent/bin/install auto

Atualizar o agente do AWS CodeDeploy no Windows ServerPara habilitar atualizações automáticas do agente do AWS CodeDeploy, instale o atualizador do agentedo AWS CodeDeploy para Windows Server em instâncias novas ou existentes. O atualizador verifica

Versão da API 2014-10-06149

Page 160: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizar o agente do AWS CodeDeploy

periodicamente se há novas versões. Quando uma nova versão é detectada, o atualizador desinstala aversã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, aimplantação continuará até ser concluída. Se uma implantação tentar começar durante o processo deatualização, ela falhará.

Se quiser forçar uma atualização do agente do AWS CodeDeploy, siga as instruções em Instalar oureinstalar o agente do AWS CodeDeploy para o Windows Server (p. 145).

Nas instâncias do Windows Server, você pode baixar e instalar o atualizador do agente do AWSCodeDeploy executando uma série de comandos do Windows PowerShell, usando um link de downloaddireto ou executando um comando de cópia do Amazon S3.

Tópicos• Usar Windows Powershell (p. 150)• Usar um link direto (p. 150)• Usar um comando de cópia do Amazon S3 (p. 152)

Usar Windows PowershellEntre na instância e execute os seguintes comandos no Windows PowerShell, um por vez:

Set-ExecutionPolicy RemoteSigned

Se você precisar alterar a política de execução, escolha Y para que o Windows PowerShell exija que todosos scripts e arquivos de configuração obtidos por download da Internet sejam assinados por um editorconfiável.

Import-Module AWSPowerShell

New-Item -Path "c:\temp" -ItemType "directory" -Force

powershell.exe -Command Read-S3Object -BucketName bucket-name -Key latest/codedeploy-agent-updater.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 S3sds-s3-latest-bucket-name que contém osarquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Região do Lestedos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2. Para obter uma listade nomes de buckets, consulte Nomes de bucket do kit de recursos por região (p. 372).

Se precisar solucionar um erro no processo de atualização, digite o seguinte comando para abrir o arquivode log do atualizador do agente do AWS CodeDeploy:

notepad C:\ProgramData\Amazon\CodeDeployUpdater\log\codedeploy-agent.updater.log

Usar um link diretoSe as configurações de segurança do navegador na instância do Windows Server concederem aspermissões necessárias (por exemplo, para http://*.s3.amazonaws.com), você poderá usar um link

Versão da API 2014-10-06150

Page 161: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizar o agente do AWS CodeDeploy

direto para baixar o atualizador do agente do AWS CodeDeploy. Insira o seguinte na barra de endereço doseu navegador e, em seguida, baixe e execute o instalador manualmente.

Nome da região Link para fazer download

Leste dos EUA (Ohio) https://aws-codedeploy-us-east-2.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Leste dos EUA (Norte da Virgínia) https://aws-codedeploy-us-east-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Oeste dos EUA (Norte da Califórnia) https://aws-codedeploy-us-west-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Oeste dos EUA (Oregon) https://aws-codedeploy-us-west-2.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Canadá (Central) https://aws-codedeploy-ca-central-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

UE (Irlanda) https://aws-codedeploy-eu-west-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

UE (Londres) https://aws-codedeploy-eu-west-2.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

UE (Paris) https://aws-codedeploy-eu-west-3.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

UE (Frankfurt) https://aws-codedeploy-eu-central-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Ásia-Pacífico (Tóquio) https://aws-codedeploy-ap-northeast-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Ásia-Pacífico (Seul) https://aws-codedeploy-ap-northeast-2.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Ásia-Pacífico (Cingapura) https://aws-codedeploy-ap-southeast-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Ásia-Pacífico (Sydney) https://aws-codedeploy-ap-southeast-2.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Versão da API 2014-10-06151

Page 162: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizar o agente do AWS CodeDeploy

Nome da região Link para fazer download

Ásia Pacífico (Mumbai) https://aws-codedeploy-ap-south-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

América do Sul (São Paulo) https://aws-codedeploy-sa-east-1.s3.amazonaws.com/latest/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 fazerdownload do atualizador de agente do AWS CodeDeploy e, em seguida, executar o instaladormanualmente. Para obter informações, consulte Instalar a AWS Command Line Interface no MicrosoftWindows.

Nome da região Comando de cópia do Amazon S3

Leste dos EUA (Ohio)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

Oeste dos EUA (Norte da Califórnia)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 (Paris)aws s3 cp s3://aws-codedeploy-eu-west-3/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

Versão da API 2014-10-06152

Page 163: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioDesinstalar o agente do AWS CodeDeploy

Nome da região Comando de cópia do Amazon S3

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-ap-northeast-1/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

Ásia-Pacífico (Seul)aws s3 cp s3://aws-codedeploy-ap-northeast-2/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

Ásia-Pacífico (Cingapura)aws s3 cp s3://aws-codedeploy-ap-southeast-1/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

Ásia-Pacífico (Sydney)aws s3 cp s3://aws-codedeploy-ap-southeast-2/latest/codedeploy-agent-updater.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

Desinstalar o agente do AWS CodeDeployÉ possível remover o agente do AWS CodeDeploy de instâncias quando ele não é mais necessário ouquando você deseja realizar uma nova instalação.

Desinstalar o agente do AWS CodeDeploy no Amazon Linux ouRHELPara 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 no Ubuntu ServerPara desinstalar o agente do AWS CodeDeploy, entre na instância e execute o seguinte comando:

sudo dpkg --purge codedeploy-agent

Versão da API 2014-10-06153

Page 164: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioDesinstalar o agente do AWS CodeDeploy

Desinstalar o agente do AWS CodeDeploy no Windows ServerPara 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

Você também pode fazer login na instância e, no Control Panel (Painel de controle), abra Programs andFeatures (Programas e recursos), selecione CodeDeploy Host Agent (Agente de host do CodeDeploy) e,em seguida, selecione Uninstall (Desinstalar).

Versão da API 2014-10-06154

Page 165: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioComparando instâncias do

Amazon EC2 com instâncias locais

Trabalhando com instâncias para oAWS CodeDeploy

O AWS CodeDeploy oferece suporte a implantações em instâncias que executam o Amazon Linux, oUbuntu 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ânciaslocais. Uma instância local é qualquer dispositivo físico que não seja uma instância do Amazon EC2 eque possa executar o agente do AWS CodeDeploy e conectar-se a endpoints públicos de serviços daAWS. Você pode usar o AWS CodeDeploy para implantar simultaneamente um aplicativo em instânciasdo Amazon EC2 na nuvem e em PCs de desktop no seu escritório ou nos servidores do seu própriodatacenter.

Comparando instâncias do Amazon EC2 cominstâ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 eexecute uma versão do agentedo AWS CodeDeploy compatívelcom o sistema operacionalexecutado na instância.

Sim Sim

Requer que a instância sejacapaz de se conectar ao serviçodo AWS CodeDeploy.

Sim Sim

Requer que um perfil deinstâncias do IAM seja anexadoà instância. O perfil de instânciasdo IAM deve ter permissão paraparticipar de implantações doAWS CodeDeploy. Para obtermais informações, consulteEtapa 4: criar um perfil deinstância do IAM para assuas instâncias do AmazonEC2 (p. 36).

Sim Não

Requer que você siga um destesprocedimentos para autenticar eregistrar instâncias:

• Criar um usuário do IAM paracada instância e armazenaras credenciais de conta desse

Não Sim

Versão da API 2014-10-06155

Page 166: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioTarefas de instâncias para o AWS CodeDeploy

Subject Instâncias do Amazon EC2 Instâncias locaisusuário do IAM em texto semformatação na instância.

• Criar uma função do IAMque possa ser assumidapor um usuário do IAM emcada instância para recuperarcredenciais temporáriasperiodicamente atualizadasque são geradas pelo AWSSecurity Token Service.

Requer que você registre cadainstância no AWS CodeDeployantes de poder implantar nela.

Não Sim

Requer que você marque cadainstância antes que o AWSCodeDeploy possa implantarnela.

Sim Sim

Pode participar de cenários deAmazon EC2 Auto Scaling e doElastic Load Balancing comoparte de implantação do AWSCodeDeploy.

Sim Não

Pode ser implantado a partirde buckets do Amazon S3 erepositórios GitHub.

Sim Sim

Pode dar suporte a gatilhosque solicitam o envio denotificações por SMS ou e-mailquando eventos específicosocorrerem em implementaçõesou instâncias.

Sim Sim

Está sujeito a cobrança porimplantações associadas.

Não Sim

Tarefas de instâncias para o AWS CodeDeployPara iniciar ou configurar instâncias para uso em implantações, escolha uma das seguintes instruções:

Quero iniciar uma nova instância do Amazon EC2Amazon Linux ou Windows Server.

Para iniciar a instância do Amazon EC2 com omínimo de esforço, consulte Criar uma instância doAmazon EC2 para o AWS CodeDeploy (modelo doAWS CloudFormation) (p. 171).

Para iniciar a instância do Amazon EC2principalmente por sua conta, consulte Criaruma instância do Amazon EC2 para o AWSCodeDeploy (AWS CLI ou console do AmazonEC2) (p. 165).

Versão da API 2014-10-06156

Page 167: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioMarcar instâncias para implantações no AWS CodeDeploy

Quero iniciar uma nova instância do Amazon EC2Ubuntu Server ou RHEL.

Consulte Criar uma instância do Amazon EC2para o AWS CodeDeploy (AWS CLI ou console doAmazon EC2) (p. 165).

Quero configurar uma instância do Amazon EC2Amazon Linux, Windows Server, Ubuntu Server, ouRHEL.

Consulte Configurar uma instância doAmazon EC2 para trabalhar com o AWSCodeDeploy (p. 177).

Quero configurar uma instância local paraWindows Server, Ubuntu Server ou RHEL(dispositivos físicos que não são instâncias doAmazon EC2).

Consulte Trabalhando com instânciaslocais (p. 180).

Quero que o AWS CodeDeploy o provisione umafrota de substituição de instâncias durante umaimplantação azul/verde.

Consulte Trabalhando com implantações no AWSCodeDeploy (p. 266).

Para preparar instâncias do Amazon EC2 em grupos de Amazon EC2 Auto Scaling, você deve seguiralgumas etapas adicionais. Para obter mais informações, consulte Integrar o AWS CodeDeploy ao AmazonEC2 Auto Scaling (p. 46).

Tópicos

• Marcar instâncias para implantações no AWS CodeDeploy (p. 157)• Como trabalhar com instâncias do Amazon EC2 (p. 164)• Trabalhando com instâncias locais (p. 180)• Exibir Detalhes da Instância (p. 208)• Integridade da instância (p. 209)

Como marcar instâncias para grupos deimplantação no AWS CodeDeploy

Para ajudar a gerenciar as instâncias do Amazon EC2 e instâncias locais, você pode usar tags paraatribuir seus próprios metadados a cada recurso. As tags permitem categorizar suas instâncias dediferentes formas (como por finalidade, por proprietário ou por ambiente). Isso é útil quando você temvárias instâncias. Você pode identificar rapidamente uma instância ou grupo de instâncias com base nastags que você tiver atribuído a elas. Cada tag consiste de uma chave e um valor opcional, ambos definidospor você. Para obter mais informações, consulte Marcar seus recursos do Amazon EC2.

Para especificar quais instâncias são incluídas em um grupo de implementação do AWS CodeDeploy,você especifica tags em um ou mais grupos de tags. As instâncias que atendem aos critérios de tag sãoaquelas nas quais a revisão de aplicativo mais recente esteja instalada quando uma implantação para ogrupo de implementação for criado

Note

Você também pode incluir grupos do Amazon EC2 Auto Scaling em grupos de implantação,mas eles são identificados por seus nomes em vez de tags aplicadas a instâncias. Para obterinformações, consulte Integrar o AWS CodeDeploy ao Amazon EC2 Auto Scaling (p. 46).

Os critérios para instâncias em um grupo de implementação podem ser tão simples quanto uma única tagem um grupo de tag única. Pode ser complexo como 10 tags, cada uma em um máximo de três grupos detags.

Versão da API 2014-10-06157

Page 168: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExemplo 1: grupo de tag única, tag única

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ãoidentificadas por pelo menos uma tag em cada um dos grupos de tags serão incluídas.

Os exemplos a seguir ilustram como tags e grupos de tags podem ser usados para selecionar asinstâncias de um grupo de implantação.

Tópicos• Exemplo 1: grupo de tag única, tag única (p. 158)• Exemplo 2: grupo de tag única, várias tags (p. 158)• Exemplo 3: grupos de várias tags, tags únicas (p. 159)• Exemplo 4: grupos de várias tags, várias tags (p. 161)

Exemplo 1: grupo de tag única, tag únicaVocê pode especificar uma tag única em um grupo de tag única:

Grupo de tags 1

Chave Valor

Nome AppVersion-ABC

Cada instância marcada com Name=AppVersion-ABC faz parte do grupo de implantação, mesmo se tiveroutras tags aplicadas.

Exibição de configuração do console do AWS CodeDeploy:

Estrutura do JSON:

"ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Key": "Name", "Value": "AppVersion-ABC" } ],

Exemplo 2: grupo de tag única, várias tagsVocê também pode especificar várias tags em um grupo de tag única:

Versão da API 2014-10-06158

Page 169: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExemplo 3: grupos de várias tags, tags únicas

Grupo de tags 1

Chave Valor

Região Norte

Região Sul

Região Leste

Uma instância marcada com qualquer dessas três tags faz parte do grupo de implantação, mesmo se tiveroutras tags aplicadas. Se, por exemplo, você tiver outras instâncias com Region=West, elas não seriamincluídas no grupo de implantação.

Exibição de configuração do console do AWS CodeDeploy:

Estrutura do JSON:

"ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "North" }, { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "South" }, { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "East" } ],

Exemplo 3: grupos de várias tags, tags únicasVocê também pode usar vários conjuntos de grupos de tags com um par de chave/valor único em cadapara especificar os critérios para instâncias em um grupo de implantação. Quando você usa grupos devárias tags em um grupo de implantação, apenas as instâncias que são identificadas por todos os gruposde tags são incluídas no grupo de implantação.

Versão da API 2014-10-06159

Page 170: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExemplo 3: grupos de várias tags, tags únicas

Grupo de tags 1

Chave Valor

Nome AppVersion-ABC

Grupo de tags 2

Chave Valor

Região Norte

Grupo de tags 3

Chave Valor

Tipo t2.medium

Você pode ter instâncias em várias regiões e de vários tipos de instância marcados comName=AppVersion-ABC. Neste exemplo, apenas as instâncias também marcadas com Region=North eType=t2.medium fazem parte do grupo de implantação.

Exibição de configuração do console do AWS CodeDeploy:

Versão da API 2014-10-06160

Page 171: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExemplo 4: grupos de várias tags, várias tags

Estrutura do JSON:

"ec2TagSet": { "ec2TagSetList": [ [ { "Key": "KEY_AND_VALUE", "Type": "Name", "Value": "AppVersion-ABC" } ], [ { "Key": "KEY_AND_VALUE", "Type": "Region", "Value": "North" } ], [ { "Key": "KEY_AND_VALUE", "Type": "Type", "Value": "t2.medium" } ], ] },

Exemplo 4: grupos de várias tags, várias tagsQuando você usa grupos de várias tags com várias tags em um ou mais grupos, uma instância devecorresponder a pelo menos uma das tags em cada um dos grupos.

Grupo de tags 1

Chave Valor

Ambiente Beta

Ambiente Preparação

Grupo de tags 2

Chave Valor

Região Norte

Região Sul

Região Leste

Grupo de tags 3

Chave Valor

Tipo t2.medium

Tipo t2.large

Versão da API 2014-10-06161

Page 172: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExemplo 4: grupos de várias tags, várias tags

Neste exemplo, uma instância a ser incluída no grupo de implantação deve ser marcada com (1)Environment=Beta ou Environment=Staging, com (2) Region=North, Region=SouthouRegion=East e com (3) Type=t2.medium ou Type=t2.large.

Para ilustrar, instâncias com os seguintes grupos de tags estariam entre as inclusas no grupo deimplantação:

• Environment=Beta, Region=North,Type=t2.medium• Environment=Staging,Region=East,Type=t2.large• Environment=Staging,Region=South,Type=t2.large

Instâncias com os seguintes grupos de tags não estariam inclusas no grupo de implantação: Os valores dechave destacados fazem com que as instâncias sejam excluídas:

• Environment=Beta, Region=West,Type=t2.medium• Environment=Staging,Region=East,Type=t2.micro• Environment=Production,Region=South,Type=t2.large

Exibição de configuração do console do AWS CodeDeploy:

Versão da API 2014-10-06162

Page 173: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExemplo 4: grupos de várias tags, várias tags

Estrutura do JSON:

"ec2TagSet": { "ec2TagSetList": [ [ { "Key": "KEY_AND_VALUE", "Type": "Environment", "Value": "Beta" }, { "Key": "KEY_AND_VALUE", "Type": "Environment", "Value": "Staging" }

Versão da API 2014-10-06163

Page 174: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioTrabalhando com instâncias do Amazon EC2

], [ { "Key": "KEY_AND_VALUE", "Type": "Region", "Value": "North" }, { "Key": "KEY_AND_VALUE", "Type": "Region", "Value": "South" }, { "Key": "KEY_AND_VALUE", "Type": "Region", "Value": "East" } ], [ { "Key": "KEY_AND_VALUE", "Type": "Type", "Value": "t2.medium" }, { "Key": "KEY_AND_VALUE", "Type": "Type", "Value": "t2.large" } ], ] },

Como trabalhar com instâncias do Amazon EC2para o AWS CodeDeploy

Uma instância do Amazon EC2 é um ambiente de computação virtual que você cria e configura usandoo Amazon Elastic Compute Cloud. O Amazon EC2 oferece capacidade de computação dimensionável nanuvem da AWS. Você pode usar o Amazon EC2 para iniciar quantos servidores virtuais forem necessáriospara suas implantações do AWS CodeDeploy.

Para obter mais informações sobre o Amazon EC2, consulte Guia de conceitos básicos do &EC2.

As instruções desta seção mostram como criar e configurar instâncias do Amazon EC2 para uso em suasimplantaçõ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. 165)• Criar uma instância do Amazon EC2 para o AWS CodeDeploy (modelo do AWS

CloudFormation) (p. 171)• Configurar uma instância do Amazon EC2 para trabalhar com o AWS CodeDeploy (p. 177)

Versão da API 2014-10-06164

Page 175: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma instância do Amazon EC2

(AWS CLI ou console do Amazon EC2)

Criar uma instância do Amazon EC2 para o AWSCodeDeploy (AWS CLI ou console do Amazon EC2)Essas instruções mostram como iniciar uma nova instância do Amazon EC2 configurada para uso emimplantações do AWS CodeDeploy.

Você pode usar nosso modelo do AWS CloudFormation para iniciar uma instância do Amazon EC2executando o Amazon Linux ou o Windows Server que já esteja configurada para uso em implantações doAWS CodeDeploy. Não fornecemos um modelo do AWS CloudFormation para instâncias do Amazon EC2executando o Ubuntu Server ou o Red Hat Enterprise Linux (RHEL). Para alternativas ao uso do template,consulte Trabalhando com instâncias para o AWS CodeDeploy (p. 155).

Você pode usar o console do Amazon EC2, a AWS CLI ou APIs do Amazon EC2 para iniciar uma instânciado Amazon EC2.

Iniciar uma instância do Amazon EC2 (console)Se você ainda não fez isso, siga as instruções em Introdução ao AWS CodeDeploy (p. 30) para instalar econfigurar 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 https://console.aws.amazon.com/ec2/.

2. No painel de navegação, escolha Instances (Instâncias) e Launch Instance (Iniciar instância).3. Na página Step 1: Choose an Amazon Machine Image (AMI) (Etapa 1: escolher uma imagem de

máquina da Amazon (AMI)), na guia Quick Start (Início rápido), localize o sistema operacional e aversão que você deseja usar, e escolha Select (Selecionar).

4. Na página Step 2: Choose an Instance Type (Etapa 2: escolher um tipo de instância), escolhaqualquer tipo de instância do Amazon EC2 disponível e Next: Configure Instance Details (Próximo:configurar os detalhes da instância).

5. Na página Step 3: Configure Instance Details (Etapa 3: Configurar os detalhes da instância), na listaIAM role (Função do IAM), escolha a função da instância do IAM criada em Etapa 4: criar um perfilde instância do IAM para as suas instâncias do Amazon EC2 (p. 36). Se você tiver usado o nome defunção sugerido, escolherá CodeDeployDemo-EC2-Instance-Profile. Caso tenha criado seupróprio nome de função, selecione-o.

Note

Se Iniciar no EC2-Classic ou uma nuvem privada virtual (VPC) padrão não são exibidosna lista Network (Rede), e você não pode selecionar um tipo de instância do Amazon EC2diferente que ofereça suporte à inicialização no EC2-Classic, você deve selecionar ou criarum Amazon VPC e sub-rede. Selecione Create new VPC (Criar nova VPC) ou Create newsubnet (Criar nova sub-rede) ou ambos. Para obter mais informações, consulte Sua VPC esuas sub-redes.

6. Expanda Advanced Details (Detalhes avançados).7. Ao lado de User data (Dados do usuário), com a opção As text (Como texto) selecionada, digite

o seguinte para instalar o agente do AWS CodeDeploy quando a instância do Amazon EC2 forexecutada.

Para Amazon Linux e RHEL

✔!/bin/bashyum -y updateyum install -y rubycd /home/ec2-usercurl -O https://bucket-name.s3.amazonaws.com/latest/installchmod +x ./install

Versão da API 2014-10-06165

Page 176: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma instância do Amazon EC2

(AWS CLI ou console do Amazon EC2)

./install auto

O nome de bucket é o nome do bucket do Amazon S3sds-s3-latest-bucket-name que contémos arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Regiãodo Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2.Para obter uma lista de nomes de buckets, consulte Nomes de bucket do kit de recursos porregião (p. 372).

Para Ubuntu Server

Important

Se você estiver instalando o agente do AWS CodeDeploy no Ubuntu Server 14.04, altere aterceira linha para o seguinte:apt-get -y install ruby2.0

✔!/bin/bashapt-get -y updateapt-get -y install rubyapt-get -y install wgetcd /home/ubuntuwget https://bucket-name.s3.amazonaws.com/latest/installchmod +x ./install./install auto

O nome de bucket é o nome do bucket do Amazon S3sds-s3-latest-bucket-name que contémos arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Regiãodo Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2.Para obter uma lista de nomes de buckets, consulte Nomes de bucket do kit de recursos porregião (p. 372).

Para Windows Server

<powershell> New-Item -Path c:\temp -ItemType "directory" -Forcepowershell.exe -Command Read-S3Object -BucketName bucket-name/latest -Key codedeploy-agent.msi -File c:\temp\codedeploy-agent.msiStart-Process -Wait -FilePath c:\temp\codedeploy-agent.msi -WindowStyle Hidden</powershell>

O nome de bucket é o nome do bucket do Amazon S3sds-s3-latest-bucket-name que contémos arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Regiãodo Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2.Para obter uma lista de nomes de buckets, consulte Nomes de bucket do kit de recursos porregião (p. 372).

8. Deixe o restante dos itens dessa página inalterados e escolha Next: Add Storage (Próximo: adicionararmazenamento).

9. Deixe a página Step 4: Add Storage (Etapa 4: adicionar armazenamento) inalterada e escolha Next:Add Tags (Próximo: adicionar tags).

10. Na página Step 5: Add Tags (Etapa 5: Adicionar tags), escolha Add Tag (Adicionar tag).11. Na caixa Key (Chave), digite Name. Na caixa Value (Valor), digite CodeDeployDemo.

Important

O conteúdo das caixas Key (Chave) e Value (Valor) faz distinção entre maiúsculas eminúsculas.

12. Selecione Próximo: configurar security group.Versão da API 2014-10-06166

Page 177: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma instância do Amazon EC2

(AWS CLI ou console do Amazon EC2)

13. Na página Step 6: Configure Security Group (Etapa 6: configurar o grupo de segurança), deixe aopção Create a new security group (Criar novo grupo de segurança) selecionada.

Uma função SSH padrão é configurada para instâncias do Amazon EC2 que executam o AmazonLinux, o Ubuntu Server ou o RHEL. Uma função do RDP padrão é configurada para instâncias doAmazon EC2 que executam o Windows Server.

14. Para abrir a porta HTTP, escolha o botão Add Rule (Adicionar regra) e, na lista suspensa Type(Tipo), escolha HTTP. Aceite o valor padrão Anywhere 0.0.0.0/0 (Qualquer lugar 0.0.0.0/0) em Source(Origem) e escolha Review and Launch (Revisar e iniciar).

Note

Em um ambiente de produção, recomendamos restringir acesso às portas SSH, RDPe HTTP, em vez de especificar Anywhere 0.0.0.0/0 (Qualquer lugar 0.0.0.0/0). O AWSCodeDeploy não exige acesso sem restrições a portas nem acesso HTTP. Para obter maisinformações, consulte Dicas para proteger sua instância do Amazon EC2.

Se uma caixa de diálogo Boot from General Purpose (SSD) (Inicialização de uso geral (SSD)) forexibida, siga as instruções e escolha Next (Próximo).

15. Deixe a página Step 7: Review Instance Launch (Etapa 7: revisar o lançamento da instância)inalterada e escolha Launch (Iniciar).

16. Na caixa de diálogo Select an existing key pair or create a new key pair (Selecionar um par de chavesexistente ou criar um novo par de chaves), escolha Choose an existing key pair (Selecionar um par dechaves existente) ou Create a new key pair (Criar um novo par de chaves). Se já tiver configurado umpar de chaves de instância do Amazon EC2, você pode escolhê-lo aqui.

Caso você ainda não tenha um par de chaves da instância do Amazon EC2, escolha Create a new keypair (Criar um novo par de chaves) e atribua a ele um nome reconhecível. Escolha Download Key Pair(Fazer download do par de chaves) para fazer download do par de chaves da instância do AmazonEC2 no computador.

Important

Você deve ter um par de chaves se deseja acessar sua instância do Amazon EC2 com oSSH ou o RDP.

17. Selecione Launch Instances.18. 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 oagente do AWS CodeDeploy está em execução (p. 140) 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 Introdução ao AWS CodeDeploy (p. 30) para instalar econfigurar a AWS CLI e criar um perfil de instâncias do IAM.

1. Apenas para Windows Server Caso você esteja criando uma instância do Amazon EC2 executandoWindows Server, chame os comandos create-security-group e authorize-security-group-ingress paracriar um grupo de segurança que permita acesso RDP (não permitido por padrão) e, como alternativa,acesso HTTP. Por exemplo, para criar um grupo de segurança chamado CodeDeployDemo-Windows-Security-Group, execute os seguintes comandos, um de cada vez:

aws ec2 create-security-group --group-name CodeDeployDemo-Windows-Security-Group --description "For launching Windows Server images for use with AWS CodeDeploy"

Versão da API 2014-10-06167

Page 178: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma instância do Amazon EC2

(AWS CLI ou console do Amazon EC2)

aws ec2 authorize-security-group-ingress --group-name CodeDeployDemo-Windows-Security-Group --to-port 3389 --ip-protocol tcp --cidr-ip 0.0.0.0/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.0.0.0/0 --from-port 80

Note

Para fins de demonstração, esses comandos criam um grupo de segurança que permiteacesso irrestrito para o RDP por meio da porta 3389 e, alternativamente, para o HTTP pormeio da porta 80. Como melhor prática, recomendamos restringir o acesso às portas RDPe HTTP. O AWS CodeDeploy não exige acesso irrestrito a portas nem acesso HTTP. Paraobter mais informações, consulte Dicas para proteger sua instância do Amazon EC2.

2. Na máquina de desenvolvimento, crie um arquivo chamado instance-setup.sh (para instânciasdo Amazon EC2 que executem o Amazon Linux, o Ubuntu Server ou o RHEL) ou instance-setup.txt (para instâncias do Amazon EC2 que executem o Windows Server) que inclua o conteúdoa seguir.

À medida que a instância do Amazon EC2 for iniciada, esse script baixarás o agente do AWSCodeDeploy na localização do Amazon S3 especificada e, em seguida, o instalarás na instância.

Para Amazon Linux e RHEL

Este é o conteúdo de instance-setup.sh para Amazon Linux e RHEL:

✔!/bin/bashyum -y updateyum install -y rubycd /home/ec2-usercurl -O https://bucket-name.s3.amazonaws.com/latest/installchmod +x ./install./install auto

O nome de bucket é o nome do bucket do Amazon S3sds-s3-latest-bucket-name que contémos arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Regiãodo Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2.Para obter uma lista de nomes de buckets, consulte Nomes de bucket do kit de recursos porregião (p. 372).

Para Ubuntu Server

Este é o conteúdo de instance-setup.sh para Ubuntu Server:

Important

Se você estiver instalando o agente do AWS CodeDeploy no Ubuntu Server 14.04, altere aterceira linha do arquivo para o seguinte:apt-get -y install ruby2.0

✔!/bin/bashapt-get -y updateapt-get -y install rubyapt-get -y install wgetcd /home/ubuntuwget https://bucket-name.s3.amazonaws.com/latest/installchmod +x ./install

Versão da API 2014-10-06168

Page 179: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma instância do Amazon EC2

(AWS CLI ou console do Amazon EC2)

./install auto

O nome de bucket é o nome do bucket do Amazon S3sds-s3-latest-bucket-name que contémos arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Regiãodo Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2.Para obter uma lista de nomes de buckets, consulte Nomes de bucket do kit de recursos porregião (p. 372).

Para Windows Server

Este é o conteúdo de instance-setup.txt para Windows Server:

<powershell> New-Item -Path c:\temp -ItemType "directory" -Forcepowershell.exe -Command Read-S3Object -BucketName bucket-name/latest -Key codedeploy-agent.msi -File c:\temp\codedeploy-agent.msiStart-Process -Wait -FilePath c:\temp\codedeploy-agent.msi -WindowStyle Hidden</powershell>

O nome de bucket é o nome do bucket do Amazon S3sds-s3-latest-bucket-name que contémos arquivos do kit de recursos do AWS CodeDeploy para sua região. Por exemplo, para o Regiãodo Leste dos EUA (Ohio), substitua o nome de bucket por aws-codedeploy-us-east-2.Para obter uma lista de nomes de buckets, consulte Nomes de bucket do kit de recursos porregião (p. 372).

3. No mesmo diretório em que criou o arquivo instance-setup.sh or instance-setup.txt, chameo comando run-instances cara criar e executar 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ê usa para a instância. Paraobter o ID, consulte Encontrar uma AMI adequada.

• O nome do tipo de instância do Amazon EC2 (instance-type) que você cria, como t1.micro.Para ver uma lista, consulte Tipos de instâncias do Amazon EC2.

• O nome de um perfil de instância do IAM com permissão para acessar o bucket do Amazon S3 noqual os arquivos de instalação do agente do AWS CodeDeploy da sua região são armazenados.

Para obter informações sobre como criar um perfil de instância do IAM, consulte Etapa 4: criar umperfil de instância do IAM para as suas instâncias do Amazon EC2 (p. 36).

• O nome de um par de chaves de instância do Amazon EC2 (key-name) para habilitar o acessoSSH a uma instância do Amazon EC2 que executa o Amazon Linux, Ubuntu Server ou RHEL ou oacesso RDP a uma instância do Amazon EC2 que executa o Windows Server.

Important

Digite apenas o nome do par de chaves, e não sua extensão de arquivo. Por exemplo, my-keypair, e não my-keypair.pem.

Para encontrar um nome de par de chaves, abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2. No painel de navegação, em Network & Security (Rede esegurança), escolha Key Pairs (Pares de chaves) e anote o nome do par de chaves na lista.

Para gerar um par de chaves, consulte Criar seu par de chaves com o Amazon EC2. Certifique-sede criar o par de chaves em uma das regiões listadas em Região e endpoints, no documento AWSGeneral Reference. Caso contrário, você não poderá usar o par de chaves de instância do AmazonEC2 com o AWS CodeDeploy.

Para Amazon Linux, RHEL, e Ubuntu ServerVersão da API 2014-10-06169

Page 180: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma instância do Amazon EC2

(AWS CLI ou console do Amazon EC2)

Para chamar o comando run-instances para iniciar uma instância do Amazon EC2 que executa oAmazon Linux, Ubuntu Server ou RHEL e anexar o perfil de instâncias do IAM criado em Etapa 4: criarum perfil de instância do IAM para as suas instâncias do Amazon EC2 (p. 36). Por exemplo:

Important

Be sure to include file:// before the file name. It is required in this command.

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=iam-instance-profile

Note

Esse comando cria um grupo de segurança padrão para a instância do Amazon EC2 quepermite acesso a várias portas, incluindo acesso irrestrito para SSH por meio da porta22 e, alternativamente, acesso para HTTP por meio da porta 80. Como melhor prática,recomendamos restringir o acesso apenas às portas SSH e HTTP. O AWS CodeDeploy nãoexige acesso irrestrito a portas nem acesso à porta HTTP. Para obter mais informações,consulte Dicas para proteger sua instância do Amazon EC2.

Para Windows Server

Para chamar o comando run-instances a fim de executar uma instância do Amazon EC2 que executeo Windows Server, anexar o perfil de instância do IAM criado em Etapa 4: criar um perfil de instânciado IAM para as suas instâncias do Amazon EC2 (p. 36) e especificar o nome do grupo de segurançaque você criou na Etapa 1. Por exemplo:

Important

Be sure to include file:// before the file name. It is required in this command.

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=iam-instance-profile --security-groups CodeDeploy-Windows-Security-Group

Esses comandos iniciam uma única instância do Amazon EC2 com o par de chaves, a AMI e otipo de instância especificados, com o perfil de instâncias do IAM especificado, e executam o scriptespecificado durante a inicialização.

4. Observe o valor de InstanceID na saída. Se você esquecer esse valor, poderá obtê-lo mais tardechamando 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 deforma que o AWS CodeDeploy possa encontrá-la mais tarde durante uma implantação. No exemploa seguir, a tag se chama CodeDeployDemo, mas você pode especificar qualquer tag de instância doAmazon EC2 que desejar.

aws ec2 create-tags --resources instance-id --tags Key=Name,Value=CodeDeployDemo

Versão da API 2014-10-06170

Page 181: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma instância do Amazon EC2(modelo do AWS CloudFormation)

Você pode aplicar várias tags a uma instância ao mesmo tempo. Por exemplo:

aws ec2 create-tags --resources instance-id --tags Key=Name,Value=testInstance Key=Region,Value=West Key=Environment,Value=Beta

Para verificar se a instância do Amazon EC2 foi iniciada e aprovada em todas as verificações, use oID 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 executada e aprovada em todas as verificações, ok aparecerás na saída:

Para verificar se o agente do AWS CodeDeploy está em execução na instância, consulte Verificar se oagente do AWS CodeDeploy está em execução (p. 140) 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 AWSCodeDeploy (modelo do AWS CloudFormation)Você pode usar nosso modelo do AWS CloudFormation para executar rapidamente uma instância doAmazon EC2 executando o Amazon Linux ou o Windows Server. É possível usar a AWS CLI, o console doAWS CodeDeploy ou as APIs da AWS para executar 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 AWSCodeDeploy.

• 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. Paraconhecer alternativas, consulte Trabalhando com instâncias para o AWS CodeDeploy (p. 155).

Não fornecemos um modelo do AWS CloudFormation para instâncias do Amazon EC2 executando oUbuntu Server ou o Red Hat Enterprise Linux (RHEL).

Important

Se você usar o modelo do AWS CloudFormation para executar instâncias do AmazonEC2, o usuário do IAM que está chamando deve ter acesso aos serviços e ações do AWSCloudFormation e do AWS dos quais o AWS CloudFormation depende. Se você não acompanhouas etapas em Etapa 1: provisionar um usuário do IAM (p. 30) para provisionar o usuário do IAMresponsável pela chamada, você deve pelo menos anexar a seguinte política:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*", "codedeploy:*", "ec2:*", "iam:AddRoleToInstanceProfile",

Versão da API 2014-10-06171

Page 182: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma instância do Amazon EC2(modelo do AWS CloudFormation)

"iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PassRole", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile" ], "Resource": "*" } ]}

Tópicos• Executar uma instância do Amazon EC2 com o modelo do AWS CloudFormation (console) (p. 172)• Iniciar uma instância do Amazon EC2 com o modelo do AWS CloudFormation (AWS CLI) (p. 175)

Executar uma instância do Amazon EC2 com o modelo do AWSCloudFormation (console)Antes de começar, você precisa ter um par de chaves de instância para habilitar o acesso SSH à instânciado Amazon EC2 que executa o Amazon Linux ou o acesso RDP à instância que executa o WindowsServer. 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 https://console.aws.amazon.com/ec2. No painel de navegação, em Network & Security (Rede e segurança),escolha Key Pairs (Pares de chaves) e anote o nome do par de chaves na lista.

Para gerar um novo par de chaves, consulte Criação de seu par de chaves com o Amazon EC2. Verifiquese o par de chaves foi criado em uma das regiões listadas em Região e endpoints na AWS GeneralReference. 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 do AWS CloudFormation emhttps://console.aws.amazon.com/cloudformation.

Important

Faça login no Console de gerenciamento da AWS com a mesma conta usada em Introduçãoao AWS CodeDeploy (p. 30). Na barra de navegação, no seletor de região, escolha uma dasregiões listadas em Região e endpoints na AWS General Reference. O AWS CodeDeployoferece suporte apenas a essas regiões.

2. Selecione Criar Stack.3. Em Choose a template (Escolher um modelo), escolha Specify an Amazon S3 template URL

(Especificar uma URL de modelo do Amazon S3). Na caixa, digite o local do modelo do AWSCloudFormation para sua região e, em seguida, escolha Next (Avançar).

Region Location of AWS CloudFormation template

Região do Leste dos EUA (Ohio) http://s3-us-east-2.amazonaws.com/aws-codedeploy-us-east-2/templates/latest/CodeDeploy_SampleCF_Template.json

Leste dos EUA (Norte da Virgínia) Região http://s3.amazonaws.com/aws-codedeploy-us-

Versão da API 2014-10-06172

Page 183: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma instância do Amazon EC2(modelo do AWS CloudFormation)

Region Location of AWS CloudFormation templateeast-1/templates/latest/CodeDeploy_SampleCF_Template.json

Região do Oeste dos EUA (Norte da Califórnia) http://s3-us-west-1.amazonaws.com/aws-codedeploy-us-west-1/templates/latest/CodeDeploy_SampleCF_Template.json

Região Oeste dos EUA (Oregon) http://s3-us-west-2.amazonaws.com/aws-codedeploy-us-west-2/templates/latest/CodeDeploy_SampleCF_Template.json

Região do Canadá (Central) http://s3-ca-central-1.amazonaws.com/aws-codedeploy-ca-central-1/templates/latest/CodeDeploy_SampleCF_Template.json

Região UE (Irlanda) http://s3-eu-west-1.amazonaws.com/aws-codedeploy-eu-west-1/templates/latest/CodeDeploy_SampleCF_Template.json

Região da UE (Londres) http://s3-eu-west-2.amazonaws.com/aws-codedeploy-eu-west-2/templates/latest/CodeDeploy_SampleCF_Template.json

  http://s3-eu-west-3.amazonaws.com/aws-codedeploy-eu-west-3/templates/latest/CodeDeploy_SampleCF_Template.json

Região UE (Frankfurt) http://s3-eu-central-1.amazonaws.com/aws-codedeploy-eu-central-1/templates/latest/CodeDeploy_SampleCF_Template.json

Região Ásia-Pacífico (Tóquio) http://s3-ap-northeast-1.amazonaws.com/aws-codedeploy-ap-northeast-1/templates/latest/CodeDeploy_SampleCF_Template.json

Região da Ásia-Pacífico (Seul) http://s3-ap-northeast-2.amazonaws.com/aws-codedeploy-ap-northeast-2/templates/latest/CodeDeploy_SampleCF_Template.json

Região Ásia-Pacífico (Cingapura) http://s3-ap-southeast-1.amazonaws.com/aws-codedeploy-ap-southeast-1/templates/latest/CodeDeploy_SampleCF_Template.json

Versão da API 2014-10-06173

Page 184: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma instância do Amazon EC2(modelo do AWS CloudFormation)

Region Location of AWS CloudFormation template

Região Ásia-Pacífico (Sydney) http://s3-ap-southeast-2.amazonaws.com/aws-codedeploy-ap-southeast-2/templates/latest/CodeDeploy_SampleCF_Template.json

Região da Ásia-Pacífico (Mumbai) http://s3-ap-south-1.amazonaws.com/aws-codedeploy-ap-south-1/templates/latest/CodeDeploy_SampleCF_Template.json

Região América do Sul (São Paulo) http://s3-sa-east-1.amazonaws.com/aws-codedeploy-sa-east-1/templates/latest/CodeDeploy_SampleCF_Template.json

4. Na caixa Stack name (Nome da pilha), digite um nome para a pilha (por exemplo,CodeDeployDemoStack).

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 deixaro 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.• Na caixa OperatingSystem, digite Windows para executar instâncias que executam no 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.0.0.0/0).

Important

O padrão de 0.0.0.0/0 é fornecido apenas para fins de demonstração. O AWSCodeDeploy não exige que as instâncias do Amazon EC2 tenham acesso irrestrito aportas. 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 doAmazon EC2.

• Em TagKey, digite a chave de tag de instância que o AWS CodeDeploy usará para identificar asinstâncias durante a implantação (ou deixe o padrão de Name (Nome)).

• Em TagValue, digite o valor da tag da instância que o AWS CodeDeploy usará para identificar asinstâ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

As tags do AWS CloudFormation são diferentes das tags do AWS CodeDeploy. O AWSCloudFormation usa tags para simplificar a administração da sua infraestrutura. O AWSCodeDeploy usa tags para identificar instâncias do Amazon EC2. Você especificou tags doAWS CodeDeploy na página Specify Parameters (Especificar parâmetros).

7. Na página Review (Rever), em Capabilities (Capacidades), selecione a caixa I acknowledge thatAWS CloudFormation might create IAM resources (Reconheço que o AWS CloudFormation pode criarrecursos do IAM) e, em seguida, selecione Create (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 será exibido na coluna Status. Esseprocesso pode levar alguns minutos.

Versão da API 2014-10-06174

Page 185: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma instância do Amazon EC2(modelo do AWS CloudFormation)

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. 139) e, em seguida, continue emCriar um aplicativo com o AWS CodeDeploy (p. 221).

Iniciar uma instância do Amazon EC2 com o modelo do AWSCloudFormation (AWS CLI)Siga as instruções em Introdução ao AWS CodeDeploy (p. 30) para instalar e configurar a AWS CLI parauso com o AWS CodeDeploy.

Antes de chamar o comando create-stack você precisa ter um par de chaves da instância do Amazon EC2para habilitar o acesso SSH à instância do Amazon EC2 que executa o Amazon Linux ou o acesso RDP àinstância do Amazon EC2 que executa o Windows Server. Digite apenas o nome do par de chaves, e nãosua extensão de arquivo.

Para encontrar um nome de par de chaves, abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2. No painel de navegação, em Network & Security (Rede e segurança),escolha Key Pairs (Pares de chaves) e anote o nome do par de chaves na lista.

Para gerar um par de chaves, consulte Criar seu par de chaves com o Amazon EC2. Verifique se o par dechaves foi criado em uma das regiões listadas em Região e endpoints na AWS General Reference. Casocontrário, você não poderá usar o par de chaves de instância com o AWS CodeDeploy.

1. Use nosso modelo do AWS CloudFormation em uma chamada para o comando create-stack. Essapilha executará uma nova instância do Amazon EC2 com o agente do AWS CodeDeploy instalado.

Para executar uma instância do Amazon EC2 que executa 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.0.0.0/0 ParameterKey=TagKey,ParameterValue=Name \ ParameterKey=TagValue,ParameterValue=CodeDeployDemo \ --capabilities CAPABILITY_IAM

Para executar uma instância do Amazon EC2 que executa o Windows Server:

aws cloudformation create-stack --stack-name CodeDeployDemoStack --template-url template-url --parameters ParameterKey=InstanceCount,ParameterValue=1 ParameterKey=InstanceType,ParameterValue=t1.micro ParameterKey=KeyPairName,ParameterValue=keyName ParameterKey=OperatingSystem,ParameterValue=Windows ParameterKey=SSHLocation,ParameterValue=0.0.0.0/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 Location of AWS CloudFormation template

Região do Leste dos EUA (Ohio) http://s3-us-east-2.amazonaws.com/aws-codedeploy-us-

Versão da API 2014-10-06175

Page 186: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma instância do Amazon EC2(modelo do AWS CloudFormation)

Region Location of AWS CloudFormation templateeast-2/templates/latest/CodeDeploy_SampleCF_Template.json

Leste dos EUA (Norte da Virgínia) Região http://s3.amazonaws.com/aws-codedeploy-us-east-1/templates/latest/CodeDeploy_SampleCF_Template.json

Região do Oeste dos EUA (Norte da Califórnia) http://s3-us-west-1.amazonaws.com/aws-codedeploy-us-west-1/templates/latest/CodeDeploy_SampleCF_Template.json

Região Oeste dos EUA (Oregon) http://s3-us-west-2.amazonaws.com/aws-codedeploy-us-west-2/templates/latest/CodeDeploy_SampleCF_Template.json

Região do Canadá (Central) http://s3-ca-central-1.amazonaws.com/aws-codedeploy-ca-central-1/templates/latest/CodeDeploy_SampleCF_Template.json

Região UE (Irlanda) http://s3-eu-west-1.amazonaws.com/aws-codedeploy-eu-west-1/templates/latest/CodeDeploy_SampleCF_Template.json

Região da UE (Londres) http://s3-eu-west-2.amazonaws.com/aws-codedeploy-eu-west-2/templates/latest/CodeDeploy_SampleCF_Template.json

  http://s3-eu-west-3.amazonaws.com/aws-codedeploy-eu-west-3/templates/latest/CodeDeploy_SampleCF_Template.json

Região UE (Frankfurt) http://s3-eu-central-1.amazonaws.com/aws-codedeploy-eu-central-1/templates/latest/CodeDeploy_SampleCF_Template.json

Região Ásia-Pacífico (Tóquio) http://s3-ap-northeast-1.amazonaws.com/aws-codedeploy-ap-northeast-1/templates/latest/CodeDeploy_SampleCF_Template.json

Região da Ásia-Pacífico (Seul) http://s3-ap-northeast-2.amazonaws.com/aws-codedeploy-ap-northeast-2/templates/latest/CodeDeploy_SampleCF_Template.json

Versão da API 2014-10-06176

Page 187: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioConfigurar uma instância do Amazon EC2

Region Location of AWS CloudFormation template

Região Ásia-Pacífico (Cingapura) http://s3-ap-southeast-1.amazonaws.com/aws-codedeploy-ap-southeast-1/templates/latest/CodeDeploy_SampleCF_Template.json

Região Ásia-Pacífico (Sydney) http://s3-ap-southeast-2.amazonaws.com/aws-codedeploy-ap-southeast-2/templates/latest/CodeDeploy_SampleCF_Template.json

Região da Ásia-Pacífico (Mumbai) http://s3-ap-south-1.amazonaws.com/aws-codedeploy-ap-south-1/templates/latest/CodeDeploy_SampleCF_Template.json

Região América do Sul (São Paulo) http://s3-sa-east-1.amazonaws.com/aws-codedeploy-sa-east-1/templates/latest/CodeDeploy_SampleCF_Template.json

Esse comando cria uma pilha do AWS CloudFormation denominada CodeDeployDemoStack usandoo modelo do AWS CloudFormation no bucket especificado do Amazon S3. A instância do AmazonEC2 se baseia no tipo de instância t1.micro, mas você pode usar qualquer tipo. Ela é marcada como valor CodeDeployDemo, mas você pode marcá-la com qualquer valor. Ela tem o par de chaves deinstância especificado aplicado.

2. Chame o comando describe-stacks para verificar se a pilha do AWS CloudFormation denominadaCodeDeployDemoStack foi criada com êxito.

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, consulteGerenciando operações do agente do AWS CodeDeploy (p. 139) e, em seguida, continue em Criar umaplicativo com o AWS CodeDeploy (p. 221).

Configurar uma instância do Amazon EC2 paratrabalhar com o AWS CodeDeployEstas 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 doAWS CodeDeploy.

Note

Se você não tiver uma instância do Amazon EC2, poderá usar o modelo do AWS CloudFormationpara iniciar uma executando o Amazon Linux ou o Windows Server. Não fornecemos um modelopara o Ubuntu Server ou o RHEL.

Para realizar as etapas neste tópico:

Versão da API 2014-10-06177

Page 188: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioConfigurar uma instância do Amazon EC2

• Um perfil de instâncias do IAM com permissões para participar de implantações do AWS CodeDeploydeve estar conectado a sua instância.

Para obter informações, consulte Criar uma instância do Amazon EC2 para o AWS CodeDeploy(AWS CLI ou console do Amazon EC2) (p. 165), Criar uma instância do Amazon EC2 para o AWSCodeDeploy (modelo do AWS CloudFormation) (p. 171) e Anexar 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 em execução na instância do Amazon EC2.

Se o agente não estiver em execução, as implantações serão exibidas como paralisadas em um estadopendente.

Etapa 1: Verificar se um perfil de instância do IAM está anexadoa sua instância do Amazon EC21. Faça login no Console de gerenciamento da AWS e abra o console da Amazon EC2 em https://

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 Description (Descrição), anote o valor no campo IAM role (Função do

IAM) e 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 obterinformações, consulte Anexar uma função do IAM a uma instância.

Etapa 2: verificar se o perfil de instâncias do IAM tem aspermissões de acesso corretas1. Abra o console do IAM em https://console.aws.amazon.com/iam/.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.

Note

Para usar a função de serviço gerada pelo modelo do AWS CloudFormation em vez deuma criada seguindo as instruções em Etapa 3: criar uma função de serviço para o AWSCodeDeploy (p. 32), observe o seguinte:Em algumas versões de nosso modelo do AWS CloudFormation, o nome para exibiçãodo perfil de instância 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ânciado IAM pode ter um nome para exibição de CodeDeploySampleStack-expnyi6-InstanceRoleInstanceProfile-IK8J8A9123EX, enquanto o perfil de instância doIAM no console do IAM pode ter um nome para exibição de CodeDeploySampleStack-expnyi6-InstanceRole-C5P33V1L64EX.Para ajudar a identificar o perfil de instância no console do IAM, você verá que o prefixo deCodeDeploySampleStack-expnyi6-InstanceRole é o mesmo para ambos. Para obterinformações sobre por que esses nomes para exibição podem ser diferentes, consulte Perfisde instâncias.

4. Selecione a guia Relacionamentos de confiança. Se não houver uma entrada em Trusted Entities(Entidades de confiança) que indique The identity provider(s) ec2.amazonaws.com (O(s) provedor(es)de identidade ec2.amazonaws.com), não será possível usar essa instância do Amazon EC2. Pare e

Versão da API 2014-10-06178

Page 189: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioConfigurar uma instância do Amazon EC2

crie uma instância do Amazon EC2 usando as informações em Trabalhando com instâncias para oAWS CodeDeploy (p. 155).

Se há uma entrada indicando The identity provider(s) ec2.amazonaws.com (Os provedores deidentidade ec2.amazonaws.com), e você armazena seus aplicativos somente em repositórios GitHub,vá para Etapa 3: marcar a instância do Amazon EC2 (p. 180).

Se há uma entrada indicando The identity provider(s) ec2.amazonaws.com (Os provedores deidentidade ec2.amazonaws.com), e você está armazenando seus aplicativos somente em buckets doAmazon S3, selecione a guia Permissions (Permissões).

5. Se houver uma política na área Políticas gerenciadas, escolha o nome da política e escolha Editar. Sehouver uma política em Políticas em linha, em Ações, escolha Editar política.

6. Se você está armazenando seus aplicativos em buckets do Amazon S3, na caixa Policy Document(Documento de política), certifique-se de que "s3:Get*" e "s3:List*" estejam na lista das açõesespecificadas.

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": "2012-10-17", "Statement": [ { "Action": [ ... Some actions may already be listed here ... "s3:Get*", "s3:List*" ... Some more actions may already be listed here ... ], ... } ] }

Se "s3:Get*" e "s3:List*" não estiverem na lista de ações especificadas, escolha Editar paraadicioná-las e escolha Salvar. (Se nem "s3:Get*" nem "s3:List*" for 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.)

Note

We recommend that you restrict this policy to only those Amazon S3 buckets your AmazonEC2 instances must access. Make sure to give access to the Amazon S3 buckets that containthe AWS CodeDeploy agent. Otherwise, an error may occur when the AWS CodeDeployagent is installed or updated on the instances. To grant the IAM instance profile access toonly some AWS CodeDeploy resource kit buckets in Amazon S3, use the following policy butremove the lines for buckets you want to prevent access to:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow",Versão da API 2014-10-06

179

Page 190: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioTrabalhando com instâncias locais

"Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::replace-with-your-s3-bucket-name/*", "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-west-3/*", "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 EC2Para obter instruções sobre como marcar a instância do Amazon EC2 para que o AWS CodeDeploypossa encontrá-la durante uma implantação, consulte Como trabalhar com tags no console e, em seguida,retorne a esta página.

Note

Você pode marcar a instância do Amazon EC2 com qualquer chave e valor desejado. Certifique-se de especificar essa chave e esse valor quando fizer a implantação.

Etapa 4: instalar o agente AWS CodeDeploy na instância doAmazon EC2Para obter instruções sobre como instalar o agente do AWS CodeDeploy na instância do AmazonEC2 e verificar se ele está em execução, consulte Gerenciando operações do agente do AWSCodeDeploy (p. 139) e, em seguida, continue em Criar um aplicativo com o AWS CodeDeploy (p. 221).

Trabalhando com instâncias locais para o AWSCodeDeploy

Uma instância local é qualquer dispositivo físico que não seja uma instância do Amazon EC2 e que possaexecutar o agente do AWS CodeDeploy e conectar-se a endpoints públicos de serviços da AWS.

A implantação de uma revisão de aplicativo AWS CodeDeploy em uma instância local envolve duas etapasprincipais:

• Etapa 1 – Configurar cada instância local, registrá-la no AWS CodeDeploy e, em seguida, marcá-la.

Versão da API 2014-10-06180

Page 191: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioPré-requisitos para configurar uma instância local

• Etapa 2 – Implantar revisões de aplicativos na instância local.

Note

Para fazer testes com a criação e implantação de uma revisão de aplicativo de amostra em umainstância local corretamente configurada e registrada, consulte Tutorial: implantar um aplicativoem uma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red HatEnterprise Linux) (p. 95). Para obter informações sobre instâncias locais e como elas funcionamcom o AWS CodeDeploy, consulte Trabalhando com instâncias locais (p. 180).

Se não quiser mais que uma instância local seja usada em implementações, basta remover as tags deinstâncias locais dos grupos de implantação. Para uma abordagem mais robusta, remova as tags deinstâncias locais da instância. Você também pode cancelar explicitamente o registro de uma instância localpara que ela não possa mais ser usada em nenhuma implantação. Para obter mais informações, consulteGerenciando operações de instâncias locais no AWS CodeDeploy (p. 203).

As instruções nesta seção mostram como configurar uma instância local e, em seguida, registrá-la emarcá-la com o AWS CodeDeploy para que ela possa ser usada em implantações. Esta seção tambémdescreve como usar o AWS CodeDeploy para obter informações sobre instâncias locais e cancelar oregistro 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. 181)• Registrar uma instância local no AWS CodeDeploy (p. 182)• Gerenciando operações de instâncias locais no AWS CodeDeploy (p. 203)

Pré-requisitos para configurar uma instância localOs 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 as credenciais temporáriasgeradas com o AWS Security Token Service (AWS STS) forem atualizadas periodicamente,haverá outros pré-requisitos. Para obter mais informações, consulte Pré-requisitos de registro doARN de sessão do IAM (p. 197).

Requisitos do dispositivo

O dispositivo que você deseja preparar, registrar e marcar como instância local no AWS CodeDeploy deveestar executando um sistema operacional com suporte. Para ver uma lista, consulte Sistemas operacionaiscom suporte com o agente do AWS CodeDeploy (p. 132).

Se o seu sistema operacional não tiver suporte, o agente do AWS CodeDeploy estará disponível comosoftware livre para você adaptá-lo às suas necessidades. Para obter mais informações, consulte orepositório do Agente do AWS CodeDeploy no GitHub.

Comunicação de saída

A instância local deve poder conectar-se a endpoints públicos de serviços da AWS para comunicar-se como AWS CodeDeploy.

O agente do AWS CodeDeploy comunica a saída usando HTTPS via porta 443.

Controle administrativo

Versão da API 2014-10-06181

Page 192: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

A conta local ou de rede usada na instância local para configurar a instância local deve poder serexecutada 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 oregistro (e cancelar o registro da instância local, conforme necessário).

Além da política descrita em Introdução ao AWS CodeDeploy (p. 30), verifique se a identidade do IAMresponsável pela chamada também tem a seguinte política adicional anexada:

{ "Version": "2012-10-17", "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 CodeDeployPara registrar uma instância local, você deve usar uma identidade do IAM para autenticar suassolicitações. É possível escolher entre as seguintes opções para o método de identidade e registro do IAMutilizado:

• 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 doIAM) para registrar uma instância local (p. 183).

• Use o comando register-on-premises-instance para configurar manualmente a maioria das opçõesde registro. Adequado para registrar um pequeno número de instâncias locais. Para obter maisinformações, consulte Usar o comando register-on-premises-instance (ARN de Usuário do IAM) pararegistrar uma instância local (p. 187).

• 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 maioriadas opções de registro. Ideal para registrar um grande número de instâncias locais. Para obter maisinformações, consulte Usar o comando register-on-premises-instance (ARN de sessão do IAM) pararegistrar uma instância local (p. 196).

Tópicos• Usar o comando register (ARN de usuário do IAM) para registrar uma instância local (p. 183)• Usar o comando register-on-premises-instance (ARN de Usuário do IAM) para registrar uma instância

local (p. 187)

Versão da API 2014-10-06182

Page 193: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

• Usar o comando register-on-premises-instance (ARN de sessão do IAM) para registrar uma instâncialocal (p. 196)

Usar o comando register (ARN de usuário do IAM) para registraruma instância localEsta seção descreve como configurar uma instância local e registrá-la e marcá-la com o AWS CodeDeploycom o mínimo de esforço. O comando register é mais útil quando você está trabalhando com frotas únicasou pequenas de instâncias locais. Você pode usar o comando register somente quando está usando umARN de usuário do IAM para autenticar uma instância. Você não pode usar o comando register com umARN de sessão do IAM para autenticação.

Quando você usa o comando register, pode deixar o AWS CodeDeploy fazer o seguinte:

• Criar um usuário do IAM no AWS Identity and Access Management para a instância local se você nãoespecificar um 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.

Note

O comando register-on-premises-instance é uma alternativa ao comando register. Você usa ocomando register-on-premises-instance para configurar uma instância local e registrá-la e marcá-la no AWS CodeDeploy principalmente por sua conta. O comando register-on-premises-instancetambém fornece a opção de usar um ARN de sessão do IAM para registrar instâncias em vezde um ARN de usuário do IAM. Essa abordagem proporciona uma grande vantagem quandovocê tem grandes frotas de instâncias locais. Especificamente, é possível usar um único ARN desessão do IAM para autenticar várias instâncias em vez de criar um usuário do IAM para cadainstância local, uma a uma. 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. 187) e Usaro comando register-on-premises-instance (ARN de sessão do IAM) para registrar uma instâncialocal (p. 196).

Tópicos• Etapa 1: instalar e configurar a AWS CLI na instância local (p. 183)• Etapa 2: chamar o comando register (p. 185)• Etapa 3: chamar o comando install (p. 186)• Etapa 4: implantar revisões de aplicativos na instância local (p. 187)• Etapa 5: acompanhar implantações na instância local (p. 187)

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 em Começar a configurar com a interface dalinha de comando da AWS, no Guia do usuário da interface da linha de comando da AWS.

Note

Os comandos do AWS CodeDeploy para trabalhar com instâncias locais estão disponíveis naAWS CLI versão 1.7.19 e posterior. Se a AWS CLI já estiver instalada, chame aws --versionpara verificar sua versão.

2. Configure a AWS CLI na instância local. Siga as instruções em Configuração da interface da linha decomando da AWS no Guia do usuário da interface da linha de comando da AWS.

Versão da API 2014-10-06183

Page 194: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

Important

Ao configurar a AWS CLI (por exemplo, chamando o comando aws configure), certifique-se de especificar o ID da chave secreta e a chave de acesso secreta de um usuário do IAMque tenha pelo menos as seguintes permissões de acesso da AWS, além das permissõesespecificadas em Pré-requisitos para configurar uma instância local (p. 181). Isso permitebaixar e instalar o agente do AWS CodeDeploy na instância local. As permissões de acessopodem parecer semelhantes a estas:

{ "Version": "2012-10-17", "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/*", "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-west-3/*", "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/*" ] } ]}

Versão da API 2014-10-06184

Page 195: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

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 AWSCLI 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ísticasexclusivas da instância local (por exemplo, o número de série ou algum identificador de ativointerno 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, comodois pontos (:). Para obter uma lista de caracteres permitidos, consulte Limites do AWSCodeDeploy (p. 377).

• Opcionalmente, o ARN de um usuário existente do IAM 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-userou escolha o nome do usuário do IAM na seção Users (Usuários) do console do IAM e localize o valor doUser ARN (ARN do usuário) na seção Summary (Resumo). Se essa opção não for especificada, o AWSCodeDeploy criará um usuário do IAM em seu nome em sua conta da AWS e o associará à instâncialocal.

Important

Se você especificar a opção --iam-user-arn, também deverá criar manualmente o arquivode configuração da instância local, conforme descrito em Etapa 4: adicionar um arquivo deconfiguração à instância local (p. 192).É possível associar apenas um usuário do IAM a apenas uma instância local. Tentar associarum único usuário do IAM com várias instâncias locais pode resultar em erros, implantações comfalhas nessas instâncias locais ou implementações em instâncias locais que estão presas emum estado pendente perpétuo.

• Opcionalmente, um conjunto de tags de instância local (com a opção --tags) que o AWS CodeDeployusará para identificar o conjunto de instâncias do Amazon EC2 nas quais implantar. Especifiquecada tag com Key=tag-key,Value=tag-value (por exemplo, Key=Name,Value=BetaKey=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.

• Opcionalmente, a região da AWS na qual a instância local será registrada no AWS CodeDeploy (com aopção --region). Essa deve ser uma das regiões compatíveis listadas em Região e endpoints na AWSGeneral Reference (por exemplo, us-west-2). Se essa opção não for especificada, a região da AWSpadrão associada ao usuário do IAM responsável pela chamada será usada.

Por exemplo:

aws deploy register --instance-name AssetTag12010298EX --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 existente do IAM for especificado, cria um usuário do IAM, anexa as permissõesnecessárias a ele e gera uma chave secreta e uma chave de acesso secreta correspondentes. A

Versão da API 2014-10-06185

Page 196: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

instância local usará esse usuário do IAM e suas permissões e credenciais para autenticar-se e interagircom 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

com o 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ê podeconcluir 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 aopção --region). Essa deve ser uma das regiões compatíveis listadas em Região e endpoints na AWSGeneral Reference (por exemplo, us-west-2). Se essa opção não for especificada, a região da AWSpadrã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 aopção --agent-installer). Essa opção é útil para instalar uma versão personalizada do agente doAWS CodeDeploy para a qual o AWS CodeDeploy não oferece suporte oficialmente (como uma versãopersonalizada com base no repositório do Agente do AWS CodeDeploy no GitHub). O valor deve ser ocaminho 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 partirde seu próprio local uma versão oficialmente com suporte do agente do AWS CodeDeploy que sejacompatível com o sistema operacional na instância local.

Por exemplo:

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 alocalização na qual o agente do AWS CodeDeploy espera encontrá-lo, desde que o arquivo ainda nãoesteja nesse localização.

Para Ubuntu Server e Red Hat Enterprise Linux (RHEL), trata-se do /etc/codedeploy-agent/conf/codedeploy.onpremises.yml.

Versão da API 2014-10-06186

Page 197: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

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 localAgora, 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çãode revisões de aplicativos em instâncias do Amazon EC2. Para obter instruções, consulte Criar umaimplantação com o AWS CodeDeploy (p. 267). 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. Sevocê precisa de uma simples revisão de aplicativo de amostra para implantar, poderá criar aquela descritoem Etapa 2: criar uma revisão de aplicativo de amostra (p. 96), no Tutorial: implantar um aplicativo emuma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat EnterpriseLinux) (p. 95).

Important

Se você reutilizar uma função de serviço existente do AWS CodeDeploy como parte da criaçãode um grupo de implantação direcionado a instâncias locais, deverá incluir Tag:get* na parteAction da instrução da política dessa função de serviço. Para obter mais informações, consulteEtapa 3: criar uma função de serviço para o AWS CodeDeploy (p. 32).

Etapa 5: acompanhar implantações na instância localDepois 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 deimplantações em instâncias do Amazon EC2. Para obter instruções, consulte Visualizar detalhes deimplantações do AWS CodeDeploy (p. 280).

Para obter mais opções, consulte Gerenciando operações de instâncias locais no AWSCodeDeploy (p. 203).

Usar o comando register-on-premises-instance (ARN de Usuáriodo IAM) para registrar uma instância localSiga essas instruções para configurar uma instância local e registrá-la e marcá-la no AWS CodeDeployprincipalmente por conta própria, usando credenciais estáticas de usuário do IAM para autenticação.

Tópicos• Etapa 1: criar um usuário do IAM para a instância local (p. 188)• Etapa 2: atribuir permissões ao usuário do IAM (p. 188)• Etapa 3: obter as credenciais do usuário do IAM (p. 190)• Etapa 4: adicionar um arquivo de configuração à instância local (p. 192)• Etapa 5: instalar e configurar a AWS CLI (p. 193)• Etapa 6: Definir a variável de ambiente AWS_REGION (somente para o Ubuntu Server e

RHEL) (p. 194)• Etapa 7: instalar o agente do AWS CodeDeploy (p. 194)• Etapa 8: registrar a instância local no AWS CodeDeploy (p. 194)• Etapa 9: marcar a instância local (p. 195)

Versão da API 2014-10-06187

Page 198: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

• Etapa 10: implantar revisões de aplicativos na instância local (p. 196)• Etapa 11: acompanhar implantações na instância local (p. 196)

Etapa 1: criar um usuário do IAM para a instância localCrie um usuário do IAM que será usado pela instância local para autenticar e interagir com o AWSCodeDeploy.

Important

Você deve criar um usuário do IAM separado para cada instância local participante. Se vocêtentar usar novamente um usuário do IAM individual para várias instâncias locais, talvez nãoseja possível registrar ou marcar essas instâncias locais com êxito no AWS CodeDeploy. Asimplementações nessas instâncias locais podem estar presas em um estado pendente perpétuoou podem falhar completamente.

Recomendamos atribuir um nome ao usuário do IAM que identifique sua finalidade, comoCodeDeployUser-OnPrem.

Use a AWS CLI ou o console do IAM para criar um usuário do IAM. Para obter informações, consulteCriação de 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 ARNfornecido para esse usuário. Você precisará dessas informações mais tarde em Etapa 4: adicionarum arquivo de configuração à instância local (p. 192) e Etapa 8: registrar a instância local noAWS CodeDeploy (p. 194).

Etapa 2: atribuir permissões ao usuário do IAMSe a instância local for implantar revisões de aplicativos de buckets do Amazon S3, será necessárioatribuir ao usuário do IAM as permissões apropriadas para interagir com esses buckets. Use a AWS CLI ouo console do IAM para atribuir permissões.

Note

Se estiver implantando revisões de aplicativos apenas de repositórios GitHub, ignore essa etapae vá diretamente para Etapa 3: obter as credenciais do usuário do IAM (p. 190). (Você aindaprecisará de informações sobre o usuário do IAM criado em Etapa 1: criar um usuário do IAM paraa instância local (p. 188). 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 dispositivoque está usando para chamar a AWS CLI. Nomeie o arquivo de algo como CodeDeploy-OnPrem-Permissions.json e, em seguida, salve-o.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ]}

Versão da API 2014-10-06188

Page 199: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

Note

Recomendamos que você restrinja essa política somente para os buckets do Amazon S3 quea sua instância local precisa acessar. Se você restringir essa política, lembre-se também dedar acesso aos buckets do Amazon S3 que contêm o agente do AWS CodeDeploy. Casocontrário, um erro poderá ocorrer sempre que o agente do AWS CodeDeploy for instalado ouatualizado na instância local associada.Por exemplo:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::replace-with-your-s3-bucket-name/*", "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-west-3/*", "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 --user-name), um nome para a política (com a opção --policy-name) e o caminho para o documento depolítica recém-criado (com a opção --policy-document). Por exemplo, supondo que o arquivoCodeDeploy-OnPrem-Permissions.json esteja no mesmo diretório (pasta) a partir do qual vocêestá chamando esse comando:

Important

Be sure to include file:// before the file name. It is required in this command.

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 https://console.aws.amazon.com/iam/.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.

Versão da API 2014-10-06189

Page 200: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

4. Na caixa Policy Name (Nome da política), digite um nome para essa política (por exemplo,CodeDeploy-OnPrem-Permissions).

5. Na caixa Policy Document (Documento da política), digite ou cole a seguinte expressão depermissões, que possibilita ao AWS CodeDeploy implantar revisões de aplicativos de qualquer bucketdo Amazon S3 especificado na política na instância local em nome da conta de usuário do IAM:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ]}

6. Selecione Create Policy (Criar política).7. No painel de navegação, escolha Usuários.8. Na lista de usuários, navegue até o nome do usuário do IAM criado em Etapa 1: criar um usuário do

IAM para a instância local (p. 188).9. Na guia Permissões, em Políticas gerenciadas, escolha Anexar política.10. Selecione a política chamada CodeDeploy-OnPrem-Permissions e, em seguida, escolha Attach

Policy (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á delespara Etapa 4: adicionar um arquivo de configuração à instância local (p. 192). Use a AWS CLI ou oconsole do IAM para obter o ID de chave secreta e a chave de acesso secreta.

Note

Se você já tem o ID de chave secreta e a chave de acesso secreta, pula etapa e vá diretamentepara Etapa 4: adicionar um arquivo de configuração à instância local (p. 192).

Para obter as credenciais (CLI)

1. Chame o comando list-access-keys, especificando o nome do usuário do IAM (com a opção --user-name) e consultando apenas os IDs de chave de acesso (com as opções --query e --output). Porexemplo:

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 nasaí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, anote os valores dos camposAccessKeyId e SecretAccessKey. Você precisará dessas informações em Etapa 4: adicionar umarquivo de configuração à instância local (p. 192).

Versão da API 2014-10-06190

Page 201: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

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. 190).

3. Se duas chaves de acesso já estiverem listadas, será necessário excluir uma delas, chamando ocomando delete-access-key, especificando o nome do usuário do IAM (com a opção --user-name)e o ID da chave de acesso a ser excluída (com a opção --access-key-id). Em seguida, chame ocomando create-access-key, conforme descrito anteriormente nessa etapa. Aqui está um exemplo decomo chamar o comando delete-access-key:

aws iam delete-access-key --user-name CodeDeployUser-OnPrem --access-key-id access-key-ID

Important

Se você selecionar 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 Etapa4: adicionar um arquivo de configuração à instância local (p. 192), será necessário seguirnovamente as instruções em Etapa 4: adicionar um arquivo de configuração à instâncialocal (p. 192) para especificar um ID de chave de acesso diferente e a chave de acessosecreta associada a esse usuário do IAM. Caso contrário, quaisquer implementaçõesnessa instância local poderão ficar presas em um estado pendente perpétuo ou falharcompletamente.

Para obter as credenciais (console)

1. a. Abra o console do IAM em https://console.aws.amazon.com/iam/.b. Se a lista de usuários não for exibida, no painel de navegação, escolha Usuários.c. Na lista de usuários, navegue até o nome do usuário do IAM criado em Etapa 1: criar um usuário

do IAM para a instância local (p. 188).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 ladode uma das chaves de acesso e, em seguida, escolha Criar chave de acesso.

Important

Se você selecionar Delete (Excluir) ao lado de uma dessas chaves de acesso, e umainstância local já estiver usando essa chave de acesso conforme descrito em Etapa 4:adicionar um arquivo de configuração à instância local (p. 192), será necessário seguirnovamente as instruções em Etapa 4: adicionar um arquivo de configuração à instâncialocal (p. 192) para especificar um ID de chave de acesso diferente e a chave de acessosecreta associada a esse usuário do IAM. Caso contrário, as implementações nessa instâncialocal 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 doarquivo .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 chavede 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áriodo IAM (p. 190).

Versão da API 2014-10-06191

Page 202: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

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. Essearquivo de configuração será usado para declarar as credenciais do usuário do IAM e a região da AWSde destino a ser usada para o AWS CodeDeploy. O arquivo deve ser adicionado a um local específico nainstância local. O arquivo deve incluir o ARN do usuário do IAM, o ID de chave secreta, a chave de acessosecreta 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 UbuntuServer ou RHEL) ou conf.onpremises.yml (para uma instância local do Windows Server) naseguinte localização da instância local:

• Para Ubuntu Server: /etc/codedeploy-agent/conf• Para Windows Server: C:\ProgramData\Amazon\CodeDeploy

2. Use um editor de texto para adicionar as seguintes informações ao arquivocodedeploy.onpremises.yml ou conf.onpremises.yml recém-criado:

---aws_access_key_id: secret-key-idaws_secret_access_key: secret-access-keyiam_user_arn: iam-user-arnregion: supported-region

Onde:

• secret-key-id é o ID de chave secreta do usuário do IAM correspondente anotado em Etapa 1:criar um usuário do IAM para a instância local (p. 188) ou Etapa 3: obter as credenciais do usuáriodo IAM (p. 190).

• secret-access-key é a chave de acesso secreta do usuário do IAM correspondente anotada emEtapa 1: criar um usuário do IAM para a instância local (p. 188) ou Etapa 3: obter as credenciaisdo usuário do IAM (p. 190).

• iam-user-arn é o ARN do usuário do IAM anotado anteriormente em Etapa 1: criar um usuário doIAM para a instância local (p. 188).

• supported-region é o identificador de uma região com suporte pelo AWS CodeDeploy, naqual seus aplicativos, grupos de implantação e revisões de aplicativo do AWS CodeDeploy estãolocalizados (por exemplo, us-west-2). Para obter uma lista de regiões, consulte Região eendpoints, na AWS General Reference.

Important

Se você selecionou Delete (Excluir) ao lado de uma das chaves de acesso em Etapa 3:obter as credenciais do usuário do IAM (p. 190) e sua instância local já estiver usando oID da chave de acesso e a chave de acesso secreta associados, será necessário seguir asinstruções em Etapa 4: adicionar um arquivo de configuração à instância local (p. 192) paraespecificar um ID de chave de acesso e uma chave de acesso secreta diferentes associadosa esse usuário do IAM. Caso contrário, quaisquer implementações na sua instância localpoderão ficar presas em um estado pendente perpétuo ou falhar completamente.

Versão da API 2014-10-06192

Page 203: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

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 doAWS CodeDeploy (p. 194) para fazer download e instalar o agente do AWS CodeDeploy na instâncialocal.)

1. Para instalar a AWS CLI na instância local, siga as instruções em Configuração com a interface delinha de comando da AWS no Guia do usuário da interface de linha de comando da AWS.

Note

Os comandos do AWS CodeDeploy para trabalhar com instâncias locais tornaram-sedisponíveis na versão 1.7.19 da AWS CLI. Se tiver uma versão da AWS CLI já instalada,verifique a versão chamando aws --version.

2. Para configurar a AWS CLI na instância local, siga as instruções em Configuração da interface dalinha de comando da AWS no Guia do usuário da interface da linha de comando da AWS.

Important

À medida que você configurar a AWS CLI (por exemplo, chamando o comando awsconfigure), certifique-se de especificar o ID de chave secreta e a chave de acesso secreta deum usuário do IAM que tenha pelo menos as seguintes permissões de acesso da AWS, alémdas permissões de acesso especificadas no Pré-requisitos para configurar uma instâncialocal (p. 181). Isso permite baixar e instalar o agente do AWS CodeDeploy na instâncialocal:

{ "Version": "2012-10-17", "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/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "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/*" ] } ]}

Versão da API 2014-10-06193

Page 204: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

Essas permissões de acesso podem ser atribuídas ao usuário do IAM criado em Etapa 1:criar um usuário do IAM para a instância local (p. 188) 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 umusuário do IAM para a instância local (p. 188), usando essas permissões de acesso em vezdas especificadas nesta etapa.

Etapa 6: Definir a variável de ambiente AWS_REGION (somente para o UbuntuServer e 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. 194).

Instale o agente do AWS CodeDeploy em uma instância local do Ubuntu Server ou RHEL e permita que ainstâ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 dasregiões com suporte pelo AWS CodeDeploy. Recomendamos definir o valor como a região na qual seusaplicativos, grupos de implantação e revisões de aplicativo do AWS CodeDeploy estão localizados (porexemplo, us-west-2). Para obter uma lista de regiões, consulte Região e endpoints, na AWS GeneralReference.

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 doAWS CodeDeploy para o Ubuntu Server (p. 144) e, em seguida, retorne a esta página.

• Para uma instância local do RHEL, siga as instruções em Instalar ou reinstalar o agente do AWSCodeDeploy para Amazon Linux ou RHEL (p. 143) e, em seguida, retorne a esta página.

• Para uma instância local do Windows Server, siga as instruções em Instalar ou reinstalar o agente doAWS CodeDeploy para o Windows Server (p. 145) e, em seguida, 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 CLIinstalada e configurada, conforme descrito em Etapa 5: instalar e configurar a AWS CLI (p. 193).

Use a AWS CLI; para registrar a instância local no AWS CodeDeploy, para que ela possa ser usada emimplantações.

1. Antes de poder usar a AWS CLI, será necessário do ARN do usuário do IAM criado em Etapa 1: criarum usuário do IAM para a instância local (p. 188). 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) econsultando 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:

Versão da API 2014-10-06194

Page 205: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

• 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 algumacaracterística exclusiva da instância local (por exemplo, o número de série ou umidentificador interno de ativo, se aplicável). Se você especificar um endereço MAC comoum nome, lembre-se de que endereços MAC contêm caracteres não permitidos pelo AWSCodeDeploy, como o caractere de dois pontos (:). Para obter uma lista de caracterespermitidos, consulte Limites do AWS CodeDeploy (p. 377).

• O ARN do usuário do IAM criado em Etapa 1: criar um usuário do IAM para a instâncialocal (p. 188) (com a opção --iam-user-arn).

Por exemplo:

aws deploy register-on-premises-instance --instance-name AssetTag12010298EX --iam-user-arn arn:aws:iam::80398EXAMPLE:user/CodeDeployUser-OnPrem

Etapa 9: marcar a instância local

Use a AWS CLI ou o console do AWS CodeDeploy para marcar a instância local. (o AWS CodeDeploy usatags 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 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). É necessário especificar o nome e o valor. O AWS CodeDeploy não permite tags deinstância local que possuem somente valores.

Por exemplo:

aws deploy add-tags-to-on-premises-instances --instance-names AssetTag12010298EX --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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No menu do AWS CodeDeploy, selecione On-premises instances (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 insira a chave e o valor da tag desejados. Após inserir a chave e o

valor da tag, outra linha será exibida. Isso pode ser repetido para até 10 tags. Para remover uma tag,

selecione o ícone de exclusão ( ).5. Depois de adicionar as tags, escolha Atualizar tags.

Versão da API 2014-10-06195

Page 206: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

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çãode revisões de aplicativos em instâncias do Amazon EC2. Para obter instruções, consulte Criar umaimplantação com o AWS CodeDeploy (p. 267). 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. Sevocê precisa de uma simples revisão de aplicativo de amostra para implantar, poderá criar aquela descritoem Etapa 2: criar uma revisão de aplicativo de amostra (p. 96), no Tutorial: implantar um aplicativo emuma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat EnterpriseLinux) (p. 95).

Important

Se você reutilizar uma função de serviço do AWS CodeDeploy como parte da criação de umgrupo de implantação direcionado a instâncias locais, deverá incluir Tag:get* na parte Actionda 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 para o AWS CodeDeploy (p. 32).

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 deimplantações em instâncias do Amazon EC2. Para obter instruções, consulte Visualizar detalhes deimplantações do AWS CodeDeploy (p. 280).

Usar o comando register-on-premises-instance (ARN de sessãodo IAM) para registrar uma instância localPara obter o controle máximo sobre a autenticação e o registro das suas instâncias locais, use o comandoregister-on-premises-instance e credenciais temporárias periodicamente atualizadas geradas com oAWS Security Token Service (AWS STS). Uma função do IAM estática para a instância pressupõe afunção dessas credenciais atualizadas do AWS STS para executar operações de implantação do AWSCodeDeploy.

Esse método é mais útil quando você precisa registrar um grande número de instâncias. Ele permite quevocê automatize o processo de registro no AWS CodeDeploy. Você pode usar seu próprio sistema deidentidade e autenticação para autenticar instâncias locais e distribuir credenciais de sessão do IAM doserviço para as instâncias, para uso com o AWS CodeDeploy.

Note

Como alternativa, use um usuário do IAM compartilhado, distribuído em todas as instânciaslocais, para chamar a API AssumeRole do AWS STS para recuperar credenciais de sessãopara instâncias locais. Esse método é menos seguro e não é recomendado para ambientes deprodução ou críticos.

Use as informações nos tópicos a seguir para configurar uma instância local usando credenciais desegurança temporárias geradas com o AWS STS.

Tópicos• Pré-requisitos de registro do ARN de sessão do IAM (p. 197)• Etapa 1: criar a função do IAM que as instâncias locais assumirão (p. 197)• Etapa 2: gerar credenciais temporárias para uma instância individual usando o AWS STS (p. 198)

Versão da API 2014-10-06196

Page 207: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

• Etapa 3: adicionar um arquivo de configuração à instância local (p. 199)• Etapa 4: preparar uma instância local para implantações do AWS CodeDeploy (p. 200)• Etapa 5: registrar a instância local no AWS CodeDeploy (p. 201)• Etapa 6: marcar a instância local (p. 202)• Etapa 7: implantar revisões de aplicativos na instância local (p. 202)• Etapa 8: acompanhar implantações na instância local (p. 203)

Pré-requisitos de registro do ARN de sessão do IAMAlém dos pré-requisitos listados em Pré-requisitos para configurar uma instância local (p. 181), osseguintes 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 realizaroperações do AWS CodeDeploy. Verifique se a política gerenciada AWSCodeDeployFullAccess estáanexada à identidade do IAM. Para obter informações, consulte Políticas gerenciadas pela AWS no Guiado 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 vigorpara atualizar periodicamente as credenciais temporárias. As credenciais temporárias expiram depois deuma hora ou antes quando um período mais curto é especificado no momento em que as credenciais sãogeradas. 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 scriptCRON que faça uma sondagem periódica do sistema de identidade e autenticação e que copie ascredenciais da última sessão para a instância. Isso permite que você integre sua estrutura de identidadee autenticação à AWS sem precisar fazer alterações no agente do AWS CodeDeploy ou no serviço paradar suporte aos tipos de autenticação utilizados na sua organização.

• Método 2: execute periodicamente um trabalho CRON na instância para chamar a ação AssumeRole doAWS STS e grave as credenciais da sessão em um arquivo que o agente do AWS CodeDeploy possaacessar. 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 deinstâncias locais.

Para obter informações sobre como criar e trabalhar com credenciais do AWS STS, consulte AWS SecurityToken Service API Reference e Uso de credenciais de segurança temporárias para solicitar acesso arecursos da AWS.

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 pelasinstâ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çãopara recuperar as credenciais de segurança temporárias que fornecem as permissões concedidas a essafunção.

A função que você criar exigirá as seguintes permissões para acessar os arquivos necessários parainstalar o agente do AWS CodeDeploy:

{ "Version": "2012-10-17", "Statement": [

Versão da API 2014-10-06197

Page 208: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

{ "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ]}

Recomendamos que você restrinja essa política somente para os buckets do Amazon S3 que a suainstância local precisa acessar. Se você restringir essa política, lembre-se de fornecer acesso aos bucketsdo Amazon S3 que contêm o agente do AWS CodeDeploy. Caso contrário, um erro poderá ocorrer sempreque o agente do AWS CodeDeploy for instalado ou atualizado na instância local. Para obter informaçõessobre como controlar o acesso a buckets do Amazon S3, consulte Gerenciamento das permissões deacesso aos 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 afunçã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 nomeCodeDeployInstanceRole e incluir as permissões necessárias em um arquivo chamadoCodeDeployRolePolicy.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::123456789012:role/CodeDeployInstanceRole

O ARN da função será necessário ao usar a API AssumeRole do AWS STS para gerar credenciais decurto prazo para cada instância.

Para obter mais informações sobre como criar funções do IAM, consulte Criação de uma função paradelegar permissões a um serviço da AWS, no Guia do usuário do IAM.

Para obter informações sobre como atribuir permissões a uma função existente, consulte put-role-policy, no AWS CLI Command Reference.

Etapa 2: gerar credenciais temporárias para uma instância individual usando oAWS STSAntes 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 credenciaistemporárias. A permissão sts:AssumeRole deve ser incluída nas configurações de política para essaidentidade do IAM.

Para obter informações sobre como conceder permissões sts:AssumeRole a uma identidade do IAM,consulte Criar 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 assume-role com a CLI da AWS. Por exemplo:

Versão da API 2014-10-06198

Page 209: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

aws sts assume-role --role-arn arn:aws:iam::12345ACCOUNT:role/role-arn --role-session-name 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. 197).• session-name é o nome que você deseja dar à sessão de função que está criando agora.

Note

Se você usar um script CRON que faz sondagens periódicas no sistema de identidade eautenticação e copia as credenciais da sessão mais recente para a instância (método 1 deatualização de credenciais temporárias, descrito em Pré-requisitos de registro do ARN desessão do IAM (p. 197)), existe a opção de usar qualquer SDK da AWS com suporte parachamar AssumeRole.

• Use uma ferramenta fornecida pela AWS.

A ferramenta aws-codedeploy-session-helper gera credenciais do AWS STS e as grava em um arquivoque você coloca na instância. Essa ferramenta é mais adequada para o método 2 de atualização decredenciais temporárias, descrito em Pré-requisitos de registro do ARN de sessão do IAM (p. 197).Nesse método, a ferramenta aws-codedeploy-session-helper é colocada em cada instância e executa ocomando usando as permissões de um usuário do IAM. Cada instância usa as mesmas credenciais dousuário do IAM em conjunto com essa ferramenta.

Para obter mais informações, consulte o repositório GitHub de aws-codedeploy-session-helper.Note

Depois de ter criado as credenciais de sessão do IAM, coloque-as em qualquer parte dainstância local. Na próxima etapa, você configurará o agente do AWS CodeDeploy para acessaras credenciais nesse local.

Antes de continuar, verifique se o sistema que você usará para atualizar periodicamente as credenciaistemporárias está em vigor. Se as credenciais temporárias não forem atualizadas, as implantações nainstância local falharão. Para obter mais informações, consulte "Sistema para atualizar credenciaistemporárias", em Pré-requisitos de registro do ARN de sessão do IAM (p. 197).

Etapa 3: adicionar um arquivo de configuração à instância localAdicione um arquivo de configuração à instância local usando permissões raiz ou de administrador. Essearquivo de configuração é usado para declarar as credenciais do IAM e a região da AWS de destino aser usada para o AWS CodeDeploy. O arquivo deve ser adicionado a um local específico na instâncialocal. Ele deve incluir o ARN da sessão temporária do IAM, seu ID de chave secreta e a chave de acessosecreta, 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 UbuntuServer ou RHEL) ou conf.onpremises.yml (para uma instância local do Windows Server) naseguinte localização da instância local:

• Para Ubuntu Server: /etc/codedeploy-agent/conf• Para Windows Server: C:\ProgramData\Amazon\CodeDeploy

2. Use um editor de texto para adicionar as seguintes informações ao arquivocodedeploy.onpremises.yml ou conf.onpremises.yml recém-criado:

Versão da API 2014-10-06199

Page 210: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

---iam_session_arn: iam-session-arnaws_credentials_file: credentials-fileregion: supported-region

Onde:

• iam-session-arn é o ARN da sessão do IAM anotado em Etapa 2: gerar credenciais temporáriaspara uma instância individual usando o AWS STS (p. 198).

• 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 AWSSTS (p. 198).

• supported-region é uma das regiões para as quais o AWS CodeDeploy oferece suporte,conforme listado em Região e endpoints, na AWS General Reference.

Etapa 4: preparar uma instância local para implantações do AWS CodeDeployInstalar 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 oagente do AWS CodeDeploy na instância local.)

1. Para instalar a AWS CLI na instância local, siga as instruções em Configuração com a interface de linhade comando da AWS no Guia do usuário da interface de linha de comando da AWS.

Note

Os comandos do AWS CodeDeploy para trabalhar com instâncias locais tornaram-sedisponíveis na versão 1.7.19 da AWS CLI. Se tiver uma versão da AWS CLI já instalada,verifique a versão chamando aws --version.

2. Para configurar a AWS CLI na instância local, siga as instruções em Configuração da interface da linhade comando da AWS no Guia do usuário da interface da linha de comando da AWS.

Important

À medida que você configura a AWS CLI (por exemplo, chamando o comando aws configure),lembre-se de especificar o ID de chave secreta e a chave de acesso secreta de um usuário doIAM que tenha pelo menos acesso às permissões descritas em Pré-requisitos de registro doARN de sessão do IAM (p. 197).

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 ainstâ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 dasregiões com suporte pelo AWS CodeDeploy. Recomendamos definir o valor como a região na qual seusaplicativos, grupos de implantação e revisões de aplicativo do AWS CodeDeploy estão localizados (porexemplo, us-west-2). Para obter uma lista de regiões, consulte Região e endpoints, na AWS GeneralReference.

Para definir a variável de ambiente, chame o seguinte usando o terminal:

export AWS_REGION=supported-region

Versão da API 2014-10-06200

Page 211: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

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 doAWS CodeDeploy para o Ubuntu Server (p. 144) e, em seguida, retorne a esta página.

• Para uma instância local do RHEL, siga as instruções em Instalar ou reinstalar o agente do AWSCodeDeploy para Amazon Linux ou RHEL (p. 143) e, em seguida, retorne a esta página.

• Para uma instância local do Windows Server, siga as instruções em Instalar ou reinstalar o agente doAWS CodeDeploy para o Windows Server (p. 145) e, em seguida, retorne a esta página.

Etapa 5: registrar a instância local no AWS CodeDeployAs 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 CLIinstalada e configurada.

Use a AWS CLI; para registrar a instância local no AWS CodeDeploy, para que ela possa ser usada emimplantações.

Antes de poder usar a AWS CLI, será necessário o ARN das credenciais de sessão temporária criadasem Etapa 3: adicionar um arquivo de configuração à instância local (p. 199). Por exemplo, para umainstância identificada como AssetTag12010298EX:

arn:sts:iam::123456789012:assumed-role/CodeDeployInstanceRole/AssetTag12010298EX

Chame o comando register-on-premises-instance, especificando:

• 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ísticaexclusiva da instância local (por exemplo, o nome da sessão das credenciais do STS e onúmero de série ou um identificador interno de ativo, se aplicável). Se você especificar umendereço MAC como um nome, lembre-se de que endereços MAC contêm caracteres nãopermitidos pelo AWS CodeDeploy, como o caractere de dois pontos (:). Para obter uma lista decaracteres permitidos, consulte Limites do AWS CodeDeploy (p. 377).

• O ARN da sessão do IAM que você configurou para autenticar várias instâncias locais em Etapa 1: criara função do IAM que as instâncias locais assumirão (p. 197).

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 AssetTag12010298EX.• account-id é o ID da conta de 12 dígitos da sua organização, como 111222333444.• role-to-assume é o nome da função do IAM que você criou para a instância, comoCodeDeployInstanceRole.

• session-name é o nome da função de sessão que você especificou em Etapa 2: gerar credenciaistemporárias para uma instância individual usando o AWS STS (p. 198).

Versão da API 2014-10-06201

Page 212: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma instância local

Etapa 6: marcar a instância local

Use a AWS CLI ou o console do AWS CodeDeploy para marcar a instância local. (o AWS CodeDeploy usatags 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 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). É necessário especificar o nome e o valor. O AWS CodeDeploy não permite tags deinstância local que possuem somente valores.

Por exemplo:

aws deploy add-tags-to-on-premises-instances --instance-names AssetTag12010298EX --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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda Deploy (Implantar) e selecione On-premises instances (Instânciasno local).

3. Na lista de instâncias locais, selecione nome da instância local que deseja marcar.4. Na lista de tags, selecione ou insira a chave e o valor da tag desejados. Após inserir a chave e o

valor da tag, outra linha será exibida. Isso pode ser repetido para até 10 tags. Para remover uma tag,selecione Remove (Remover).

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çãode revisões de aplicativos em instâncias do Amazon EC2. Para obter instruções, consulte Criar umaimplantação com o AWS CodeDeploy (p. 267). 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. Sevocê precisa de uma simples revisão de aplicativo de amostra para implantar, poderá criar aquela descritoem Etapa 2: criar uma revisão de aplicativo de amostra (p. 96), no Tutorial: implantar um aplicativo emuma instância local com o AWS CodeDeploy (Windows Server, Ubuntu Server ou Red Hat EnterpriseLinux) (p. 95).

Important

Se você reutilizar uma função de serviço do AWS CodeDeploy como parte da criação de umgrupo de implantação direcionado a instâncias locais, deverá incluir Tag:get* na parte Actionda 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 para o AWS CodeDeploy (p. 32).

Versão da API 2014-10-06202

Page 213: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioGerenciando operações de instâncias locais

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 deimplantações em instâncias do Amazon EC2. Para obter instruções, consulte Visualizar detalhes deimplantações do AWS CodeDeploy (p. 280).

Gerenciando operações de instâncias locais no AWSCodeDeploySiga 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 registrode instâncias locais.

Tópicos• Obter informações sobre uma única instância local (p. 203)• Obter informações sobre várias instâncias locais (p. 204)• Remova manualmente tags de instância local de uma instância local (p. 204)• Desinstalar automaticamente o agente do AWS CodeDeploy e remover o arquivo de configuração de

uma instância local (p. 205)• Cancelar automaticamente o registro de uma instância local (p. 206)• Cancelar manualmente o registro de uma instância local (p. 207)

Obter informações sobre uma única instância localVocê pode obter informações sobre uma única instância local, seguindo as instruções em Visualizardetalhes de implantações do AWS CodeDeploy (p. 280). Você pode usar a AWS CLI ou o console doAWS CodeDeploy para obter mais informações sobre uma única instância no local.

Para obter informações sobre uma única instância local (CLI)

• Chame o comando get-on-premises-instance, especificando o nome que identifica as instâncias nolocal (com a opção --instance-name):

aws deploy get-on-premises-instance --instance-name AssetTag12010298EX

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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda Deploy (Implantar) e selecione On-premises instances (Instânciasno local).

3. Na lista de instâncias no local, escolha a nome de um nas instâncias locais para visualizar seusdetalhes.

Versão da API 2014-10-06203

Page 214: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioGerenciando operações de instâncias locais

Obter informações sobre várias instâncias locaisVocê pode obter informações sobre instâncias locais seguindo as instruções em Visualizar detalhesde implantações do AWS CodeDeploy (p. 280). Você pode usar a AWS CLI ou o console do AWSCodeDeploypara obter mais informações sobre as instâncias no local.

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ê omitirisso, 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 localespecí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 localcom 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 osnomes das instâncias no local (com a opção --instance-names):

aws deploy batch-get-on-premises-instances --instance-names AssetTag12010298EX AssetTag09920444EX

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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda Deploy (Implantar) e selecione On-premises instances (Instânciasno local).

Informações sobre as instâncias locais são exibidas.

Remova manualmente tags de instância local de uma instâncialocalNormalmente, 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 quedependa dessa tag. É possível usar a AWS CLI ou o console do AWS CodeDeploy para remover tags deinstâncias no local.

Versão da API 2014-10-06204

Page 215: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioGerenciando operações 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 deinstâ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 arquivode 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 registrode uma instância local (p. 206).

Para cancelar manualmente o registro da instância local, consulte Cancelar manualmente o registro deuma instância local (p. 207).

Para desinstalar automaticamente o agente do AWS CodeDeploy e remover o arquivo de configuraçãoda instância no local, consulte Desinstalar automaticamente o agente do AWS CodeDeploy e remover oarquivo de configuração de uma instância local (p. 205)

Para desinstalar manualmente apenas o agente do AWS CodeDeploy da instância no local, consulteGerenciando operações do agente do AWS CodeDeploy (p. 139)

Para excluir manualmente o usuário do IAM, consulte Excluir 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 AssetTag12010298EX --tags Key=Name,Value=CodeDeployDemo-OnPrem

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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda Deploy (Implantar) e selecione On-premises instances (Instânciasno local).

3. Na lista de instâncias locais, escolha a nome da instância no local da qual você deseja remover tags.4. Nas seções Tags, escolha Remove (Remover) próximo a cada tag que você deseja remover.5. Depois de excluir as tags, escolha Atualizar tags.

Desinstalar automaticamente o agente do AWS CodeDeploy eremover o arquivo de configuração de uma instância localNormalmente, você desinstala o agente do AWS CodeDeploy e remove o arquivo de configuração de umainstância local quando não planeja mais fazer uma implantação nessa instância.

Versão da API 2014-10-06205

Page 216: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioGerenciando operações de instâncias locais

Note

O processo de desinstalar automaticamente o agente do AWS CodeDeploy e remover o arquivode configuração de uma instância local não cancela o registro de uma instância local. Ele nãodesassocia nenhuma tag de instância local associada à instância local. Ele não exclui o usuáriodo IAM associado à instância local.Para cancelar automaticamente o registro da instância local, consulte Cancelar automaticamenteo registro de uma instância local (p. 206).Para cancelar manualmente o registro da instância local, consulte Cancelar manualmente oregistro de uma instância local (p. 207).Para desassociar manualmente qualquer tag de instância local associada, consulte Removamanualmente tags de instância local de uma instância local (p. 204).Para desinstalar manualmente o agente do AWS CodeDeploy. da instância no local, consulteGerenciando operações do agente do AWS CodeDeploy (p. 139)Para excluir manualmente o usuário do IAM, consulte Excluir um usuário do IAM da sua conta daAWS.

Na instância no 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.)

Cancelar automaticamente o registro de uma instância localNormalmente, 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 partedas 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.

Note

Não é possível usar o console do AWS CodeDeploy para cancelar o registro de uma instâncialocal. Além disso, cancelar o registro de uma instância local não desassocia tags de instâncialocal que estejam associadas à instância local. O processo também não desinstala o agente doAWS 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 atividadesdesta seção, consulte a seção do console AWS CodeDeploy Cancelar manualmente o registro deuma instância local (p. 207)Para desassociar manualmente qualquer tag de instância local associada, consulte Removamanualmente tags de instância local de uma instância local (p. 204).Para desinstalar automaticamente o agente do AWS CodeDeploy e remover o arquivo deconfiguração da instância no local, consulte Desinstalar automaticamente o agente do AWSCodeDeploy e remover o arquivo de configuração de uma instância local (p. 205)Para desinstalar manualmente apenas o agente do AWS CodeDeploy nas instâncias no local,consulte Gerenciando operações do agente do AWS CodeDeploy (p. 139).

Use a AWS CLI para chamar o comando deregister especificando:

Versão da API 2014-10-06206

Page 217: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioGerenciando operações de instâncias locais

• O nome que identifica de forma exclusiva a instância no local no AWS CodeDeploy (com a opção --instance-name).

• Opcionalmente, para excluir ou não o usuário do IAM associado à instância no local (com a opção --delete-iam-user, o padrão). Se não desejar excluir o usuário do IAM associado com as instância nolocal, 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 aopção --region). Esta deve ser uma das regiões compatíveis listadas em Região e endpoints na AWSGeneral Reference (por exemplo, us-west-2). Se essa opção não for especificada, a região da AWSpadrão associada ao usuário do IAM responsável pela chamada será usada.

Por exemplo:

aws deploy deregister --instance-name AssetTag12010298EX --delete-iam-user --region us-west-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:

• Ela não é mais exibida no console imediatamente.• Você pode criar outra instância com o mesmo nome imediatamente.

Se esse comando encontrar erros, será exibida uma mensagem de erro descrevendo como você podeconcluir manualmente as etapas restantes. Caso contrário, será exibida uma mensagem de sucesso,descrevendo como chamar o comando uninstall.

Cancelar manualmente o registro de uma instância localNormalmente, 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 AWSCodeDeploy. Ele não remove o arquivo de configuração da instância. Ele não exclui o usuário do IAMassociado à instância. Ele não remove tags associadas à instância.

Para desinstalar automaticamente o agente do AWS CodeDeploy e remover o arquivo de configuraçãoda instância no local, consulte Desinstalar automaticamente o agente do AWS CodeDeploy e remover oarquivo de configuração de uma instância local (p. 205)

Para desinstalar manualmente apenas o agente do AWS CodeDeploy, consulte Gerenciando operaçõesdo agente do AWS CodeDeploy (p. 139).

Para excluir manualmente o usuário do IAM, consulte Excluir um usuário do IAM da sua conta da AWS.

Para remover manualmente apenas as tags de instância local associadas, consulte Remova manualmentetags de instância local de uma instância local (p. 204).

• Chame o comando deregister-on-premises-instance, especificando o nome que identifica as instânciasno local (com a opção --instance-name):

aws deploy deregister-on-premises-instance --instance-name AssetTag12010298EX

Versão da API 2014-10-06207

Page 218: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExibir Detalhes da Instância

Depois de cancelar o registro de uma instância local:

• Ela não é mais exibida no console imediatamente.• Você pode criar outra instância com o mesmo nome imediatamente.

Exibir Detalhes da Instância com o AWSCodeDeploy

Use o console do AWS CodeDeploy, a AWS CLI ou as APIs do AWS CodeDeploy para visualizar detalhessobre instâncias usadas em uma implantação.

Para obter informações sobre como usar ações da API do AWS CodeDeploy para visualizar instâncias,consulte GetDeploymentInstance, ListDeploymentInstances e ListOnPremisesInstances.

Tópicos• Exibir Detalhes da Instância (console) (p. 208)• Exibir Detalhes da Instância (CLI) (p. 209)

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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Deployments (Implantações).

Note

Se não for exibida nenhuma entrada, verifique se a região correta está selecionada. Na barrade 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 tem suporte somente nessas regiões.

3. Para visualizar os detalhes da implantação, escolha o ID de implantação da instância.4. Visualize todas as instâncias na seção Instance activity (Atividade da instância) da página de

implantação.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.

Note

Se Falha for exibido para qualquer um dos eventos de ciclo de vida, na página de detalhes dainstância, escolha Exibir logs, Exibir no EC2 ou ambos. Você pode encontrar dicas de soluçãode problemas em Solução de problemas com a instância (p. 392).

6. Se quiser ver mais informações sobre uma instância do Amazon EC2, selecione o ID da instância nacoluna Instance ID (ID da instância).

Versão da API 2014-10-06208

Page 219: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExibir Detalhes da Instância (CLI)

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-deployment-instances, 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 CodeDeployO AWS CodeDeploy monitora o status da integridade das instâncias em um grupo de implantação. Elereprovará 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, se85% das instâncias precisarem permanecer íntegras durante uma implantação e o grupo de implantaçãocontiver 10 instâncias, a implantação geral falhará se a implementação em uma única instância falhar. Issoocorre porque, quando uma instância é desconectada para que a última revisão de aplicativo possa serinstalada, a contagem de instâncias íntegras disponíveis já cai para 90%. Uma instância com falha maisoutra instância offline significaria que apenas 80% das instâncias estão íntegras e disponíveis. O AWSCodeDeploy falharia a implantação geral.

É importante recordar que a implantação total terá sucesso se os itens a seguir forem alcançados:

• O AWS CodeDeploy pode implantar em cada instância na implantação.• A implantação em pelo menos uma instância precisa ser bem-sucedida. Isso significa que, mesmo se

o valor mínimo de hosts íntegros for 0, a implantação em pelo menos uma instância deve ser bem-sucedida, ou seja, no mínimo uma instância precisa estar íntegra. Dessa maneira, a implantação geralserá bem-sucedida.

O número mínimo necessário de instâncias íntegras é definido como parte de uma configuração deimplantaçã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. Noentanto, 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ânciaoriginal 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:

Versão da API 2014-10-06209

Page 220: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEstado de integridade

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 comconfigurações de implantação no AWS CodeDeploy (p. 214).

Você pode criar configurações de implantação personalizadas no AWS CodeDeploy para definir seuspróprios valores mínimos de hosts íntegros. Você pode definir esses valores como números inteiros ouporcentagens usando as seguintes operações:

• Como minimum-healthy-hosts quando você usa o comando create-deployment-config na CLI daAWS.

• Como Value no tipo de dados MinimumHealthyHosts na API do AWS CodeDeploy.• Como MinimumHealthyHosts quando você usa AWS::CodeDeploy::DeploymentConfig em um modelo

do AWS CloudFormation.

Tópicos• Estado de integridade (p. 210)• Instâncias e implantações mínimas íntegras (p. 211)

Estado de integridadeO AWS CodeDeploy atribui dois valores de estado de integridade a cada instância: integridade da revisãoe 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 temos 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.• 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çãonas instâncias do grupo de implantação, na seguinte ordem:

1. Integridade de instância - não íntegra.2. Integridade da revisão - desconhecida.

Versão da API 2014-10-06210

Page 221: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioInstâncias e implantações mínimas íntegras

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 integridadedo 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. Casocontrário, elas se tornarão desconhecidas.

• Todas as instâncias antigas ou desconhecidas que tiveram uma implantação bem-sucedida se tornarãoatuais. Caso contrário, eles permanecerão antigas ou desconhecidas.

• Todas as instâncias íntegras que tiveram uma implantação bem-sucedida permanecerão íntegras. Casocontrá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 integridadede instância definida como íntegra ou não íntegra, dependendo de a tentativa de implantação dessainstâ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á seuvalor de integridade de instância atual.

• A revisão do grupo de implantação permanecerá a mesma.

Instâncias e implantações mínimas íntegrasO AWS CodeDeploy permite que você especifique um número mínimo de instâncias íntegras para aimplantação, para duas finalidades principais:

• Para determinar se a implantação geral foi bem-sucedida ou falhou. A implantação será bem-sucedidase a revisão de aplicativo tiver sido implantada com sucesso pelo menos no número mínimo deinstâncias íntegras.

• Para determinar o número de instâncias que devem ser íntegras durante uma implantação para permitirque essa implantação continue.

Você pode especificar o número mínimo de instâncias íntegras para o seu grupo de implantação comoum número de instâncias ou como uma porcentagem do número total de instâncias. Se você especificaruma porcentagem, no início da implantação, o AWS CodeDeploy a converterá no número equivalente deinstâ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 oprocesso de implantação e usa o número mínimo especificado de instâncias íntegras da implantaçãopara determinar se deve continuar a implantação. O princípio básico é que uma implantação nunca devefazer 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úmeromínimo especificado de instâncias íntegras. Nesse caso, o processo de implantação não reduz ainda maiso número de instâncias íntegras.

Note

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 dehosts íntegros, uma instância interrompida tem o mesmo impacto que uma instância com falha.

Versão da API 2014-10-06211

Page 222: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioInstâncias e implantações mínimas íntegras

Para resolver falhas de implantação devido a muitas instâncias interrompidas, reinicie instânciasou 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 aplicativonas instâncias não íntegras do grupo de implantação. Para cada implantação bem-sucedida, o AWSCodeDeploy altera o status da integridade da instância para íntegra e a adiciona às instâncias íntegras dogrupo de implantação. Em seguida, o AWS CodeDeploy compara o número atual de instâncias íntegrascom 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 íntegrasnã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 íntegrasem pelo menos um, o AWS CodeDeploy implantará a revisão de aplicativo no conjunto original deinstâncias íntegras.

Se uma implantação em uma instância íntegra falhar, o AWS CodeDeploy mudará o status da integridadedessa instância para não íntegra. À medida que a implantação avançar, o AWS CodeDeploy atualizará onú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 pontodo processo de implantação, o AWS CodeDeploy interromperá a implantação. Essa prática impede apossibilidade de falha da próxima implantação, diminuindo o número de instâncias íntegrasabaixo domínimo especificado.

Note

Certifique-se de que o número mínimo de instâncias íntegras que você especificar seja menor queo 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, onúmero de instâncias íntegras já será menor que ou igual ao número mínimo especificado deinstâ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 realde 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ânciassem correr o risco de que o número de instâncias íntegras caia abaixo do número mínimo especificado deinstâ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.

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 aonúmero de instâncias íntegras. A implantação global falhará imediatamente sem implantar a revisãoem uma instância.

Instâncias mínimas íntegras: 9

O AWS CodeDeploy implanta a revisão em uma instância de cada vez. Se a implantação em algumadas instâncias falhar, o AWS CodeDeploy falhará imediatamente a implantação geral, porque onúmero de instâncias íntegras é igual o número mínimo de instâncias íntegras. A exceção a essaregra é que, se a última instância falhar, a implantação ainda será bem-sucedida.

Versão da API 2014-10-06212

Page 223: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioInstâncias e implantações mínimas íntegras

AWS CodeDeploy continuará a implantação, uma instância por vez, até que qualquer implantaçãofalhe ou até que a implantação geral seja concluída. Se todas as 10 implantações forem bem-sucedidas, o grupo de implantação tem 10 instâncias íntegras.

Instâncias mínimas íntegras: 8

O AWS CodeDeploy implanta a revisão em duas instâncias de cada vez. Se duas dessasimplementações falharem, o AWS CodeDeploy reprovará imediatamente a implantação geral. Aexceçã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. A menosuma implantação a uma instância deve suceder para implantação total suceda. Se 0 instânciasestiverem íntegras, então a implantação falhará. Isso ocorre porque, para marcar uma implantaçãogeral como bem-sucedida, no mínimo uma instância precisa estar íntegra quando a implantação geralfor concluída, mesmo que o valor mínimo de instâncias íntegras seja 0.

Versão da API 2014-10-06213

Page 224: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioConfigurações de implantação em uma

plataforma de computação EC2/No local

Trabalhando com configurações deimplantação no AWS CodeDeploy

Uma configuração de implantação é um conjunto de regras e condições de sucesso e falha que é usadopelo AWS CodeDeploy durante uma implantação. Essas regras e condições variam, dependendo se aimplantação for em uma EC2/No local Plataforma de computação ou uma AWS Lambda Plataforma decomputação.

Configurações de implantação em uma plataformade computação EC2/No local

Quando você implanta em uma EC2/No local Plataforma de computação, a configuração de implantaçãoespecifica, com o uso de um valor mínimo de hosts íntegros, o número ou a porcentagem de instânciasque 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 umaconfiguração de implantação personalizada. Se você não especificar uma configuração de implantação, oAWS 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 dainstância durante uma implantação, consulte Integridade da instância (p. 209). Para visualizar uma listade configurações de implantação já registradas na sua conta da AWS, consulte Visualizar detalhes deconfigurações de implantação (p. 219).

Configurações de implantação predefinidas para umaplataforma de computação EC2/No localA tabela a seguir lista as configurações de implantação predefinidas.

Configuração de implantação Descrição

CodeDeployDefault.AllAtOnce Implantações no local:Tenta implantar uma revisão de aplicativo emquantas instâncias for possível de uma só vez.O status da implantação geral é exibido comoSucceeded (Bem-sucedido) se a revisão doaplicativo é implantada em uma ou mais dasinstâncias. O status da implantação geral éexibido como Failed (Com falha) se a revisãode aplicativo não é implantada em nenhumadas instâncias. Usando um exemplo de noveinstâncias, CodeDeployDefault.AllAtOnce tentaimplantar em todas as nove instâncias de umasó vez. A implantação geral será bem-sucedidase a implantação em até mesmo em uma únicainstância for bem-sucedida. Ele falhará somente seas implementações nas nove instâncias falharem.

Versão da API 2014-10-06214

Page 225: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioConfigurações de implantação predefinidas

Configuração de implantação DescriçãoImplantações azuis/verdes:

• Implantação no ambiente de substituição:segue as mesmas regras de implantação queCodeDeployDefault.AllAtOnce para implantaçõesno local.

• Redirecionamento do tráfego: direciona otráfego para todas as instâncias no ambientede substituição ao mesmo tempo. Será bem-sucedido se o tráfego for redirecionado comêxito para pelo menos uma instância. Falharáse o redirecionamento para todas as instânciasfalhar.

CodeDeployDefault.HalfAtATime Implantações no local:

Implementa em até metade das instâncias decada vez (com frações arredondadas para baixo).A implantação geral será bem-sucedida se arevisão de aplicativo for implantada em pelomenos metade das instâncias (com fraçõesarredondadas). Caso contrário, ocorrerá uma falhana implantação. No exemplo de nove instâncias,ele implanta em até quatro instâncias de cadavez. A implantação geral será bem-sucedida se forfeita com êxito em cinco ou mais instâncias. Casocontrário, ocorrerá uma falha na implantação.

Implantações azuis/verdes:

• Implantação no ambiente de substituição:segue as mesmas regras de implantaçãoque CodeDeployDefault.HalfAtATime paraimplantações no local.

• Redirecionamento do tráfego: direciona o tráfegopara metade das instâncias no ambiente desubstituição de cada vez. Será bem-sucedidose o redirecionamento para pelo menos metadedas instâncias for bem-sucedido. Caso contrário,ocorrerá uma falha.

Versão da API 2014-10-06215

Page 226: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioConfigurações de implantação predefinidas

Configuração de implantação Descrição

CodeDeployDefault.OneAtATime Implantações no local:

Implanta a revisão de aplicativo em apenas umainstância de cada vez.

Para grupos de implantação que contêm mais deuma instância:

• A implantação geral será bem-sucedida sea revisão de aplicativo for implantada emtodas as instâncias. A exceção a essa regraé que, se ocorrer uma falha na implantaçãoda última instância, a implantação geral aindaserá bem-sucedida. Isso ocorre porque oAWS CodeDeploy permite que apenas umainstância de cada vez seja colocada offline coma configuração CodeDeployDefault.OneAtATime.

• A implantação geral falhará se a revisão deaplicativo não conseguir ser implantada emqualquer outra instância que não seja a última.

• Em um exemplo usando nove instâncias,ele implanta em uma instância de cada vez.A implantação geral será bem-sucedida sea implantação nas primeiras oito instânciasfor bem-sucedida. Ocorrerá uma falha naimplantação geral se ocorrer uma falha emqualquer uma das primeiras oito instâncias.

Para grupos de implantação que contêm apenasuma instância, a implantação geral apenas serábem-sucedida se a implantação na instância únicafor bem-sucedida.

Implantações azuis/verdes:

• Implantação no ambiente de substituição:segue as mesmas regras de implantaçãoque CodeDeployDefault.OneAtATime paraimplantações no local.

• Redirecionamento do tráfego: direciona o tráfegopara uma instância no ambiente de substituiçãode cada vez. Será bem-sucedido se o tráfego forredirecionado com êxito para todas as instânciasde substituição. Falhará após a primeira falhade redirecionamento. A exceção a essa regra éque, se ocorrer uma falha no registro da últimainstância, a implantação geral ainda será bem-sucedida.

Versão da API 2014-10-06216

Page 227: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioConfigurações de implantação em uma

plataforma de computação do Amazon ECS

Configurações de implantação em uma plataformade computação do Amazon ECS

Quando você implanta em uma Amazon ECS Plataforma de computação, a configuração de implantaçãoespecifica a maneira como o tráfego é deslocado para o contêiner do Amazon ECS atualizado. Asimplantações do Amazon ECS oferecem suporte a uma configuração de implantação.

Configuração de implantação Descrição

CodeDeployDefault.AllAtOnce Desloca todo o tráfego para um contêiner doAmazon ECS atualizado de uma só vez.

Configurações de implantação em uma AWSLambda Compute Platform

Quando você implanta em uma AWS Lambda Plataforma de computação, a configuração de implantaçãoespecifica a maneira como o tráfego é deslocado para as novas versões da função do Lambda no seuaplicativo.

Existem três maneiras pelas quais o tráfego pode ser deslocado durante uma implantação:

• Canary: O tráfego é deslocado em dois incrementos. Você pode escolher entre opções do canarypredefinidas que especificam a porcentagem de tráfego deslocada para a versão da função do Lambdaatualizada no primeiro incremento e no intervalo, em minutos, antes que o tráfego restante sejadeslocado no segundo incremento.

• Linear: O tráfego é deslocado em incrementos iguais com um número igual de minutos entre cadaincremento. Você pode escolher entre opções lineares predefinidas que especificam a porcentagem detráfego deslocado em cada incremento e o número de minutos entre cada incremento.

• All-at-once: todo o tráfego é deslocado da função original do Lambda para a versão atualizada da funçãodo Lambda de uma única vez.

Você também pode criar sua própria configuração de implantação linear ou canary personalizada.

Configurações de implantação predefinidas para umaplataforma de computação AWS LambdaA tabela a seguir lista as configurações predefinidas disponíveis para implantações do AWS Lambda.

Configuração de implantação Descrição

CodeDeployDefault.LambdaCanary10Percent5MinutesDesloca 10 por cento do tráfego no primeiroincremento. Os 90 por cento restantes sãoimplantados cinco minutos depois.

CodeDeployDefault.LambdaCanary10Percent10MinutesDesloca 10 por cento do tráfego no primeiroincremento. Os 90 por cento restantes sãoimplantados 10 minutos depois.

Versão da API 2014-10-06217

Page 228: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma configuração de implantação

Configuração de implantação Descrição

CodeDeployDefault.LambdaCanary10Percent15MinutesDesloca 10 por cento do tráfego no primeiroincremento. Os 90 por cento restantes sãoimplantados 15 minutos depois.

CodeDeployDefault.LambdaCanary10Percent30MinutesDesloca 10 por cento do tráfego no primeiroincremento. Os 90 por cento restantes sãoimplantados 30 minutos depois.

CodeDeployDefault.LambdaLinear10PercentEvery1MinuteDesloca 10 por cento do tráfego a cada minuto atéque todo o tráfego seja deslocado.

CodeDeployDefault.LambdaLinear10PercentEvery2MinutesDesloca 10 por cento do tráfego a cada doisminutos até que todo o tráfego seja deslocado.

CodeDeployDefault.LambdaLinear10PercentEvery3MinutesDesloca 10 por cento do tráfego a cada trêsminutos até que todo o tráfego seja deslocado.

CodeDeployDefault.LambdaLinear10PercentEvery10MinutesDesloca 10 por cento do tráfego a cada 10 minutosaté que todo o tráfego seja deslocado.

CodeDeployDefault.LambdaAllAtOnce Desloca todo o tráfego para as funções do Lambdaatualizadas de uma única vez.

Tópicos

• Criar uma configuração de implantação (p. 218)• Visualizar detalhes de configurações de implantação (p. 219)• Excluir uma configuração de implantação (p. 220)

Criar uma configuração de implantação com o AWSCodeDeploy

É possível usar a AWS CLI, as APIs do AWS CodeDeploy ou um modelo do AWS CloudFormation paracriar configurações de implantação personalizadas.

Note

Você não pode criar uma configuração de implantação personalizada para uma implantação daAmazon ECS Plataforma de computação.

Para obter informações sobre como usar um modelo do AWS CloudFormation para criar umaconfiguração de implantação, consulte Referência de modelos do AWS CloudFormation para o AWSCodeDeploy (p. 370).

Para usar a AWS CLI para criar uma configuração de implantação, chame o comando create-deployment-config, especificando:

• Um nome que identifique de forma exclusiva a configuração de implantação. Esse nome deve serexclusivo 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 aqualquer momento durante a implantação. Para obter mais informações, consulte Integridade dainstância (p. 209).

Versão da API 2014-10-06218

Page 229: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisualizar detalhes de configurações de implantação

O exemplo a seguir cria uma configuração de implantação da EC2/No local denominadaThreeQuartersHealthy, que exige que 75% das instâncias de destino permaneçam íntegras durante umaimplantação:

aws deploy create-deployment-config --deployment-config-name ThreeQuartersHealthy --minimum-healthy-hosts type=FLEET_PERCENT,value=75

O exemplo a seguir cria uma configuração de implantação da AWS Lambda chamadaCanary25Percent45Minutes. Ela usa o deslocamento de tráfego canário para deslocar 25% do tráfico noprimeiro incremento. Os 75 por cento restantes são deslocados para 45 minutos depois:

aws deploy create-deployment-config --deployment-config-name Canary25Percent45Minutes --traffic-routing-config "type="TimeBasedCanary",timeBasedCanary={canaryPercentage=25,canaryInterval=45}" --compute-platform Lambda

Visualizar: detalhes de configurações deimplantação com o AWS CodeDeploy

Você pode usar o console do AWS CodeDeploy, a AWS CLI ou as APIs do AWS CodeDeploy paravisualizar detalhes sobre configurações de implantação associadas à sua conta da AWS. Para obterdescrições das configurações de implantação do AWS CodeDeploy predefinidas, consulte Configuraçõesde implantação predefinidas para uma plataforma de computação EC2/No local (p. 214).

Tópicos• Visualizar detalhes de configurações de implantação (console) (p. 219)• Visualizar configuração de implantação (CLI) (p. 220)

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 deimplantação:

1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda Deploy (Implantar) e selecione Deployment configurations(Configurações de implantação).

Aqui você pode ver nomes e critérios de configuração de implantação para cada configuração deimplantação.

Note

Se não for exibida nenhuma entrada, verifique se a região correta está selecionada. Na barrade 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 tem suporte somente nessas regiões.

Versão da API 2014-10-06219

Page 230: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisualizar configuração de implantação (CLI)

Visualizar configuração de implantação (CLI)Para usar a AWS CLI para visualizar detalhes de configurações de implantação, chame o comando get-deployment-config ou list-deployment-configs.

Para ver detalhes sobre uma única configuração de implantação, chame o comando get-deployment-config, 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 oAWS CodeDeploy

Você pode usar a AWS CLI ou as APIs do AWS CodeDeploy para excluir configurações personalizadasde uma implantação associada à sua conta da AWS. Não é possível excluir configurações de implantaçãointernas, como CodeDeployDefault.AllAtOnce, CodeDeployDefault.HalfAtATime eCodeDeployDefault.OneAtATime.

Warning

Não é possível excluir uma configuração de implantação personalizada que ainda esteja emuso. 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 serdesfeita.

Para usar a AWS CLI para excluir a configuração de uma implantação, chame o comando delete-deployment-config especificando o nome da configuração de implantação. Para visualizar uma lista denomes 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

Versão da API 2014-10-06220

Page 231: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um aplicativo

Trabalhando com aplicativos no AWSCodeDeploy

Depois de configurar instâncias, mas antes de poder implantar uma revisão, você deve criar um aplicativono AWS CodeDeploy. Um aplicativo é simplesmente um nome ou contêiner usado pelo AWS CodeDeploypara garantir que a revisão, a configuração da implantação e o grupo de implantação corretos sejamreferenciados durante uma implantação.

Use as informações da tabela a seguir nas próximas etapas:

Plataforma de computação Cenário Informações para a próximaetapa

EC2/No local Ainda não criei instâncias. Consulte Trabalhando cominstâncias para o AWSCodeDeploy (p. 155) e depoisretorne a esta página.

EC2/No local Eu criei instâncias, mas nãoterminei de marcá-las.

Consulte Marcar instânciaspara implantações no AWSCodeDeploy (p. 157) e depoisretorne a esta página.

EC2/No local, AWS Lambda eAmazon ECS

Ainda não criei um aplicativo. Consulte Criar um aplicativo como AWS CodeDeploy (p. 221)

EC2/No local, AWS Lambda eAmazon ECS

Já criei um aplicativo, mas nãocriei um grupo de implantação.

Consulte Criar um grupo deimplantação com o AWSCodeDeploy (p. 235).

EC2/No local, AWS Lambda eAmazon ECS

Já criei um aplicativo e um grupode implantação, mas não crieiuma revisão de aplicativo.

Consulte Trabalhando comrevisões de aplicativos para oAWS CodeDeploy (p. 250).

EC2/No local, AWS Lambda eAmazon ECS

Já criei um aplicativo e um grupode implantação e já carregueiminha revisão de aplicativo.Estou pronto para implantar.

Consulte Criar umaimplantação com o AWSCodeDeploy (p. 267).

Tópicos• Criar um aplicativo com o AWS CodeDeploy (p. 221)• Visualizar detalhes de aplicativos com o AWS CodeDeploy (p. 231)• Renomear um aplicativo do AWS CodeDeploy (p. 232)• Excluir um aplicativo no AWS CodeDeploy (p. 232)

Criar um aplicativo com o AWS CodeDeployUm aplicativo é simplesmente um nome ou contêiner usado pelo AWS CodeDeploy para garantir quea revisão, a configuração de implantação e o grupo de implantação corretos sejam referenciados

Versão da API 2014-10-06221

Page 232: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um aplicativo

durante uma implantação. Você pode usar o console do AWS CodeDeploy, a AWS CLI, as APIs do AWSCodeDeploy ou um modelo do AWS CloudFormation para criar aplicativos.

Seu código, ou revisão de aplicativo, é instalado em instâncias por meio de um processo chamado deimplantação.O AWS CodeDeploy oferece suporte a dois tipos de implantação.

• Implantação no local: o aplicativo em cada instância no grupo de implantação é interrompido, a últimarevisão de aplicativo é instalada, e a nova versão do aplicativo é iniciada e validada. Você pode usarum load balancer 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. Somente implantações queusam o EC2/No local Plataforma de computação podem usar implantações no local. Para obter maisinformações sobre implantações no local, consulte Visão geral de uma implantação no local (p. 8).

• Implantação verde/azul: o comportamento da implantação depende de qual Plataforma de computaçãovocê usa:• Azul/verde em uma EC2/No local Plataforma de computação: as instâncias em um grupo de

implantação (o ambiente original) são substituídas por um conjunto diferente de instâncias (o ambientede 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 ambienteoriginal serão canceladas e podem ser interrompidas ou mantidas em execução para outros usos.

Note

Se você usar uma EC2/No local Plataforma de computação, esteja ciente de que asimplantações azul/verde funcionam somente com instâncias do Amazon EC2.

• Azul/verde em uma AWS Lambda Plataforma de computação: o tráfego é deslocado do seu ambientesem servidor atual para um com suas versões atualizadas da função do Lambda. Você podeespecificar as funções Lambda que realizam testes de validação e escolher a maneira como ocorreo deslocamento do tráfego. Todas as implantações AWS Lambda Plataforma de computação sãoimplantações azul/verde. Por esse motivo, você não precisa especificar um tipo de implantação.

• Azul/verde em uma Amazon ECS Plataforma de computação: o tráfego é deslocado do conjunto detarefas com a versão original de um aplicativo em contêineres em um serviço do Amazon ECS paraum conjunto de tarefas de substituição no mesmo serviço. O protocolo e a porta de um listener deload balancer especificado são usados para rotear novamente o tráfego de produção. Durante umaimplantação, um listener de teste pode ser usado para fornecer o tráfego ao conjunto de tarefas desubstituição enquanto testes de validação são executados.

Para obter mais informações sobre implantações azul/verde, consulte Visão geral de uma implantaçãoazul/verde (p. 9).

Ao usar o console do AWS CodeDeploy para criar um aplicativo, você configura seu primeiro grupo deimplantação ao mesmo tempo. Ao usar a AWS CLI para criar um aplicativo, você cria seu primeiro grupode implantação em uma etapa separada.

Para visualizar uma lista de aplicativos já registrados na sua conta da AWS, consulte Visualizar detalhesde aplicativos com o AWS CodeDeploy (p. 231). Para obter informações sobre como usar um modelo doAWS CloudFormation para criar um aplicativo, consulte Referência de modelos do AWS CloudFormationpara o AWS CodeDeploy (p. 370).

Os dois tipos de implantação não se aplicam a todos os destinos. A tabela a seguir relaciona quais tipos deimplantação funcionam com implantações nos três tipos de destinos de implantação.

Versão da API 2014-10-06222

Page 233: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um aplicativo para uma implantação no local (console)

Destino da implantação No local Azul/verde

Amazon EC2 Sim Sim

Infraestrutura Sim Não

Funções da AWS Lambda semservidor

Não Sim

Aplicativos do Amazon ECS Não Sim

Tópicos• Criar um aplicativo para uma implantação no local (console) (p. 223)• Criar um aplicativo para uma implantação azul/verde (console) (p. 225)• Criar um aplicativo para uma implantação do serviço do Amazon ECS (console) (p. 228)• Criar um aplicativo para uma implantação de função do AWS Lambda (console) (p. 229)• Criar um aplicativo (CLI) (p. 231)

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:

Warning

Não siga essas etapas se:

• Você não preparou suas instâncias para uso em implantações do AWS CodeDeploy. Paraconfigurar suas instâncias, siga as instruções em Trabalhando com instâncias para o AWSCodeDeploy (p. 155) 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 umaconfiguração de implantação (p. 218) 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ínimosnecessários de confiança e permissões. Para criar e configurar uma função de serviço com aspermissões necessárias, siga as instruções em Etapa 3: criar uma função de serviço para oAWS CodeDeploy (p. 32) e depois volte para as etapas deste tópico.

• Você deseja selecionar um Classic Load Balancer, um Balanceador de carga de aplicações ouum Network Load Balancer no Elastic Load Balancing para a implantação no local, mas aindanão o criou.

Para criar um aplicativo para uma implantação no local usando o console do AWS CodeDeploy:

1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda Deploy (Implantar) e escolha Getting started (Conceitos básicos).3. Selecione Criar aplicativo.

Versão da API 2014-10-06223

Page 234: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um aplicativo para uma implantação no local (console)

4. Em Application name (Nome do aplicativo), digite o nome do aplicativo.5. Em Compute platform (Plataforma de computação), selecione EC2/On-premises (EC2/no local).6. Selecione Criar aplicativo.7. Na página do aplicativo, na guia Deployment groups (Grupos de implantação), selecione Create

deployment group (Criar grupo de implantação).8. Em Deployment group name (Nome do grupo de implantação) digite um nome que descreva o grupo

de implantação.

Note

Se quiser usar as mesmas configurações usadas em outro grupo de implantação (incluindoo nome do grupo de implantação, tags e/ou nomes de grupos do Amazon EC2 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 omesmo nome, o AWS CodeDeploy os tratará como grupos de implantação separados,porque cada um deles está associado a aplicativos separados.

9. Em Service role (Função de serviço), escolha uma função de serviço que conceda acesso do AWSCodeDeploy à sua instância de destino.

10. Em Deployment type (Tipo de implantação), selecione In-place (No local).11. Em Environment configuration (Configuração do ambiente), selecione uma das opções a seguir:

a. Amazon EC2 Auto Scaling groups (Grupos do AS): insira ou escolha o nome de um grupo doAmazon EC2 Auto Scaling no qual implantar sua revisão do aplicativo. Quando novas instânciasdo Amazon EC2 são iniciadas como parte de um grupo do Amazon EC2 Auto Scaling, o AWSCodeDeploy pode implantar suas revisões nessas novas instâncias automaticamente. É possíveladicionar até 10 grupos do Amazon EC2 Auto Scaling a um grupo de implantação.

b. Amazon EC2 instances (Instâncias do EC2) ou On-premises instances (Instâncias no local): noscampos Key (Chave) e Value (Valor), digite os valores do par de chaves/valores usados paramarcar as instâncias. É possível marcar até 10 pares de chave/valor em um único grupo de tags.

i. Você pode usar caracteres curinga no campo Value (Valor) para identificar todas asinstâncias marcadas em determinados padrões, como instâncias do Amazon EC2, centros decusto e nomes de grupos semelhantes e assim por diante. Por exemplo, se você selecionarName (Nome) no campo Key (Chave) e inserir GRP-*a no campo Value (Valor), o AWSCodeDeploy identificará todas as instâncias que enquadram nesse padrão, como a GRP-1a,a GRP-2a e a GRP-XYZ-a.

ii. O campo Value (Valor) diferencia maiúsculas de minúsculas.iii. Para remover um par de chave/valor da lista, escolha o ícone Remove tag (Remover tag).

À medida que o AWS CodeDeploy encontrar instâncias que correspondam a cada par de chave/valor ou nome de grupo do Amazon EC2 Auto Scaling especificado, ele exibirá o número deinstâncias correspondentes. Escolha o número para ver mais informações sobre as instâncias.

Se você deseja refinar os critérios para a implantação de instâncias, escolha Adicionar grupode tags para criar um grupo de tags. É possível criar até três grupos de tags com até dez pareschave/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 deimplantação. Isso significa que uma instância deve corresponder pelo menos a uma das tags emcada 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 deimplantação, consulte Marcar instâncias para implantações no AWS CodeDeploy (p. 157).

12. Em Deployment settings (Configurações da implantação), escolha uma configuração de implantaçãopara controlar a taxa em que os aplicativos são implantados nas instâncias, por exemplo, uma de cada

Versão da API 2014-10-06224

Page 235: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um aplicativo para uma

implantação azul/verde (console)

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. 214).

13. (Opcional) Em Load balancer, escolha Enable load balancing (Habilitar balanceamento de carga) e,em seguida, escolha um Classic Load Balancer, Balanceador de carga de aplicações ou NetworkLoad Balancer existente para gerenciar o tráfego para as instâncias durante os processos deimplantação.

O registro de cada instância é cancelado a partir do load balancer (Classic Load Balancers) ougrupo de destino (Application Load Balancers e Network Load Balancers) para impedir que o tráfegoseja roteado para ele durante a implantação. Ela é registrada novamente mediante a conclusão daimplementação.

Para obter mais informações sobre load balancers para implantações do AWS CodeDeploy, consulteIntegrar ao (p. 49)

14. (Opcional) Expanda Advanced (Avançado) e configure as opções que você deseja incluir naimplantação, como gatilhos de notificações do Amazon SNS, alarmes do Amazon CloudWatch oureversões automáticas.

Para obter mais informações, consulte Configurar opções avançadas para um grupo deimplantação (p. 246).

15. Selecione Create deployment group (Criar grupo de implantação).

A próxima etapa é preparar uma revisão a ser implantada no aplicativo e grupo de implantação. Para obterinstruções, consulte Trabalhando com revisões de aplicativos para o AWS CodeDeploy (p. 250).

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:

Note

Uma implantação para AWS Lambda Plataforma de computação é sempre uma implantação azul/verde. Não especifique uma opção de tipo de implantação.

Warning

Não siga essas etapas se:

• Você não tem instâncias instaladas com o agente do AWS CodeDeploy que deseja substituirdurante o processo de implantação azul/verde. Para configurar suas instâncias, siga asinstruções em Trabalhando com instâncias para o AWS CodeDeploy (p. 155) e depois siga asetapas 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 umaconfiguração de implantação (p. 218) 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 osníveis de confiança e permissões descritos em Etapa 3: criar uma função de serviço para oAWS CodeDeploy (p. 32). Para criar e configurar uma função de serviço, siga as instruções emEtapa 3: criar uma função de serviço para o AWS CodeDeploy (p. 32) e depois siga as etapasneste tópico.

• Você não criou um Classic Load Balancer, um Balanceador de carga de aplicações ou umNetwork Load Balancer no Elastic Load Balancing para o registro das instâncias no ambiente

Versão da API 2014-10-06225

Page 236: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um aplicativo para uma

implantação azul/verde (console)

de substituição. Para obter mais informações, consulte Configurar um load balancer no ElasticLoad Balancing para implantações do AWS CodeDeploy (p. 242).

1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda Deploy (Implantar) e escolha Getting started (Conceitos básicos).3. Em Application name (Nome do aplicativo), digite o nome do aplicativo.4. Em Compute platform (Plataforma de computação), selecione EC2/On-Premises (EC2/no local).5. Selecione Criar aplicativo.6. Na página do aplicativo, na guia Deployment groups (Grupos de implantação), selecione Create

deployment group (Criar grupo de implantação).7. Em Deployment group name (Nome do grupo de implantação) digite um nome que descreva o grupo

de implantação.

Note

Se quiser usar as mesmas configurações usadas em outro grupo de implantação (incluindo onome do grupo de implantação, as tags, os nomes de grupos do Amazon EC2 Auto Scalinge a configuração de implantação), escolha essas configurações nessa página. Embora essenovo grupo de implantação e o grupo de implantação existente tenham o mesmo nome, oAWS CodeDeploy os tratará como grupos de implantação separados, porque cada um delesestá associado a um aplicativo separado.

8. Em Service role (Função de serviço), escolha uma função de serviço que conceda acesso do AWSCodeDeploy à sua instância de destino.

9. Escolha Blue/green (Azul/verde) em Deployment type (Tipo de implantação).10. Em Configuração de ambiente, escolha o método que você deseja usar para fornecer instâncias ao

seu ambiente de substituição:

a. Copiar grupo do Amazon EC2 Auto Scaling automaticamente: o AWS CodeDeploy cria um grupodo Amazon EC2 Auto Scaling copiando o especificado por você.

b. Fornecer instâncias manualmente: você apenas especificará as instâncias para o seu ambientede substituição depois de criar uma implantação. Você deve criar as instâncias antes de iniciar aimplantação. Em vez disso, aqui, você especifica as instâncias que deseja substituir.

11. Dependendo da sua escolha na etapa 10, siga um destes procedimentos:

• Se tiver escolhido Automatically copy Amazon EC2 Auto Scaling group (Cópia automática do grupodo AS): em Amazon EC2 Auto Scaling group (Grupo do AS), escolha ou insira o nome do grupo doAmazon EC2 Auto Scaling que você deseja usar como modelo para o grupo do Amazon EC2 AutoScaling para as instâncias no seu ambiente de substituição. O número de instâncias atualmenteíntegras no grupo do Amazon EC2 Auto Scaling que você selecionar é criado no seu ambiente desubstituição.

• Se você optar por Manually provision instances (Fornecer instâncias manualmente): habilite AmazonEC2 Auto Scaling groups (Grupos do AS), Amazon EC2 intances (Instâncias do EC2) ou ambospara especificar instâncias a serem adicionadas nesse grupo de implantação. Insira valores de tagsdo Amazon EC2 ou nomes de grupo do Amazon EC2 Auto Scaling para identificar as instânciasno ambiente original (ou seja, as instâncias que você deseja substituir ou que estão executando arevisão de aplicativo atual).

12. (Opcional) Em Load balancer (Balanceador de carga), escolha Enable load balancing (Ativarbalanceamento de carga) e, em seguida, escolha um Classic Load Balancer, Balanceador de carga de

Versão da API 2014-10-06226

Page 237: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um aplicativo para uma

implantação azul/verde (console)

aplicações ou Network Load Balancer existente para gerenciar o tráfego para as instâncias durante osprocessos de implantação.

O registro de cada instância é cancelado a partir do load balancer (Classic Load Balancers) ougrupo de destino (Application Load Balancers e Network Load Balancers) para impedir que o tráfegoseja roteado para ele durante a implantação. Ela é registrada novamente mediante a conclusão daimplementação.

Para obter mais informações sobre load balancers para implantações do AWS CodeDeploy, consulteIntegrar ao (p. 49)

13. Em Configurações de implantação, reveja as opções padrão para o redirecionamento do tráfegoao ambiente de substituição, qual configuração de implantação usar para a implantação e como asinstâncias no ambiente original serão tratadas após a implantação.

Se quiser alterar as configurações, continue na próxima etapa. Caso contrário, vá para a etapa 15.14. Para alterar as configurações de implantação da implantação azul/verde, altere qualquer uma das

seguintes configurações.

Configuração Opções

Redirecionamento de tráfego • Rotear novamente o tráfego imediatamente:assim que as instâncias no ambiente desubstituição forem provisionadas e receberema instalação da revisão mais recente doaplicativo, elas serão registradas no loadbalancer automaticamente, fazendo com queo tráfego seja roteado novamente para elas.O registro das instâncias no ambiente originalserá então cancelado.

• Decidirei sobre rotear novamente o tráfego: asinstâncias no ambiente de substituição apenasserão registradas no load balancer se vocêrotear novamente o tráfego manualmente. Seo tempo de espera especificado passar semque o tráfego seja redirecionado, o status daimplantação será alterado para parado.

Configuração de implantação Escolha em que taxa as instâncias no ambientede substituição são registradas no balanceadorde carga, por exemplo, uma de cada vez outodos ao mesmo tempo.

Note

Depois que o tráfego for direcionadocom sucesso ao ambiente desubstituição, o registro de todasas instâncias no ambiente originalserá cancelado de uma só vez,independentemente da configuração deimplantação selecionada.

Para obter mais informações, consulteTrabalhando com configurações de implantaçãono AWS CodeDeploy (p. 214).

Versão da API 2014-10-06227

Page 238: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um aplicativo para uma implantação

do serviço do Amazon ECS (console)

Configuração Opções

Instâncias originais • Encerrar as instâncias originais no grupode implantação: quando o tráfego tiversido roteado novamente ao ambiente desubstituição, as instâncias cujo registro foicancelado do load balancer serão encerradasapós o período de espera especificado.

• Manter as instâncias originais executandono grupo de implantação: quando o tráfegotiver sido roteado novamente ao ambientede substituição, as instâncias cujo registro foicancelado do load balancer continuarão a serexecutadas.

15. (Opcional) Em Advanced (Avançado), 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õesautomá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. 246).

16. Selecione Create deployment group (Criar grupo de implantação).

A próxima etapa é preparar uma revisão a ser implantada no aplicativo e grupo de implantação. Para obterinstruções, consulte Trabalhando com revisões de aplicativos para o AWS CodeDeploy (p. 250).

Criar um aplicativo para uma implantação do serviçodo Amazon ECS (console)Use o console do AWS CodeDeploy para criar um aplicativo para uma implantação de serviço do AmazonECS.

1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Getting started (Conceitosbásicos).

3. Na página Create Application (Criar aplicativo), escolha Use CodeDeploy (Usar CodeDeploy).4. Em Application name (Nome do aplicativo), digite o nome do aplicativo.5. Em Compute platform (Plataforma de computação), selecione Amazon ECS.6. Selecione Criar aplicativo.7. Na página do aplicativo, na guia Deployment groups (Grupos de implantação), selecione Create

deployment group (Criar grupo de implantação). Para obter mais informações sobre o que énecessário para criar um grupo de implantação para uma implantação do Amazon ECS, consulteAntes de começar uma implantação do Amazon ECS (p. 19).

8. Em Deployment group name (Nome do grupo de implantação) digite um nome que descreva o grupode implantação.

Versão da API 2014-10-06228

Page 239: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um aplicativo para uma implantação

de função do AWS Lambda (console)

Note

Se quiser usar as mesmas configurações usadas em outro grupo de implantação (incluindoo nome do grupo de implantação e a configuração de implantação), escolha essasconfigurações nessa página. Embora esse novo grupo e o grupo existente possam ter omesmo nome, o AWS CodeDeploy os tratará como grupos de implantação separados,porque cada um deles está associado a um aplicativo separado.

9. Em Service role (Função de serviço), escolha uma função de serviço que conceda para o AWSCodeDeploy acesso ao Amazon ECS. Para obter mais informações, consulte Etapa 3: criar umafunção de serviço para o AWS CodeDeploy (p. 32).

10. Em Load balancer name (Nome do load balancer), escolha o nome do load balancer que fornece otráfego para o serviço do Amazon ECS.

11. Em Production listener port (Porta do listener de produção), escolha a porta e o protocolo para olistener que fornece o tráfego de produção para o serviço do Amazon ECS.

12. (Opcional) Em Test listener port (Porta do listener de teste), escolha a porta e o protocolo de umlistener de teste que fornece o tráfego para o conjunto de tarefas de substituição no serviço doAmazon ECS durante a implantação. Você pode especificar um ou mais funções do Lambda noAppSpec file que são executadas durante o gancho AfterAllowTestTraffic. As funçõespodem executar testes de validação. Se um teste de validação falhar, uma reversão da implantaçãoserá acionada. Se o teste de validação for bem-sucedido, o próximo gancho no ciclo de vida daimplantação, BeforeAllowTestTraffic, será acionado. Se uma porta do listener de teste nãofor especificada, nada acontecerá durante o gancho AfterAllowTestTraffic. Para obter maisinformações, consulte A seção 'hooks' AppSpec para uma implantação Amazon ECS (p. 348).

13. Em Target group 1 nome (Nome do grupo de destino 1) e Target group 2 name (Nome do grupo dedestino 2), escolha os grupos de destino utilizados para rotear o tráfego durante a implantação. OAWS CodeDeploy vincula um grupo de destino ao conjunto de tarefas original do serviço do AmazonECS e outro ao conjunto de tarefas de substituição. Para obter mais informações, consulte Grupos dedestino para os Application Load Balancers.

14. Selecione Reroute traffic immediately (Redirecionar tráfego imediatamente) ou Specify when to reroutetraffic (Especificar quando rotear o tráfego novamente) para determinar quando rotear o tráfegonovamente para o serviço atualizado do Amazon ECS.

Se você optar por especificar quando rotear o tráfego novamente, escolha o número de dias, horase minutos para aguardar após uma implantação bem-sucedida antes do tráfego ser roteado para oconjunto de tarefas de substituição no serviço do Amazon ECS.

15. Em Original revision termination (Encerramento da revisão original) escolha o número de dias, horase minutos para aguardar após uma implantação bem-sucedida antes do conjunto de tarefas originaldefinido no serviço do Amazon ECS ser encerrado.

16. (Opcional) Em Advanced (Avançado), 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õesautomáticas.

Para obter mais informações, consulte Configurar opções avançadas para um grupo deimplantação (p. 246).

Criar um aplicativo para uma implantação de funçãodo AWS Lambda (console)Use o console do AWS CodeDeploy para criar um aplicativo para uma implantação de função do AWSLambda.

1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Versão da API 2014-10-06229

Page 240: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um aplicativo para uma implantação

de função do AWS Lambda (console)

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Getting started (Conceitosbásicos).

3. Na página Create Application (Criar aplicativo), escolha Use CodeDeploy (Usar CodeDeploy).4. Insira o nome do aplicativo em Application name (Nome do aplicativo).5. Em Compute platform (Plataforma de computação), selecione AWS Lambda.6. Selecione Criar aplicativo.7. Na página do aplicativo, na guia Deployment groups (Grupos de implantação), selecione Create

deployment group (Criar grupo de implantação).8. Em Deployment group name (Nome do grupo de implantação) digite um nome que descreva o grupo

de implantação.

Note

Se quiser usar as mesmas configurações usadas em outro grupo de implantação (incluindoo nome do grupo de implantação e a configuração de implantação), escolha essasconfigurações nessa página. Embora esse novo grupo de implantação e o grupo deimplantação existente podem ter o mesmo nome, o AWS CodeDeploy os tratará como gruposde implantação separados, porque cada um deles está associado a um aplicativo separado.

9. Em Service role (Função de serviço), escolha uma função de serviço que conceda acesso do AWSLambda ao AWS CodeDeploy. Para obter mais informações, consulte Etapa 3: criar uma função deserviço para o AWS CodeDeploy (p. 32).

10. Se você deseja usar uma configuração de implantação predefinida, selecione uma opção emDeployment configuration (Configuração de implantação) e vá para a etapa 12. Para criar umaconfiguração personalizada, vá para a próxima etapa.

Para obter mais informações sobre configurações de implantação, consulte Configurações deimplantação em uma AWS Lambda Compute Platform (p. 217).

11. Para criar uma configuração personalizada, escolha Create deployment configuration (Criar umaconfiguração de implantação) e faça o seguinte:

a. Em Deployment configuration name (Nome da configuração de implantação), digite um nome paraa configuração.

b. Em Type (Tipo), escolha um tipo de configuração. Se você escolher Canário, o tráfego serádeslocado em dois incrementos. Se você escolher Linear, o tráfego será deslocado emincrementos iguais com um número igual de minutos entre cada incremento.

c. Em Etapa, digite uma porcentagem do tráfego, entre 1 e 99, que será deslocada. Se o seu tipode configuração é Canário, essa é a porcentagem do tráfego que será deslocada no primeiroincremento. O tráfego restante é deslocado após o intervalo selecionado no segundo incremento.Se o seu tipo de configuração é Linear, essa é a porcentagem do tráfego que será deslocada noinício de cada intervalo.

d. Em Interval (lntervalo), digite um valor em minutos. Se o seu tipo de configuração é Canário, esseé o número de minutos entre o primeiro e o segundo deslocamento de tráfego. Se o seu tipo deconfiguração é Linear, esse é o número de minutos entre cada deslocamento incremental.

Note

O comprimento máximo da implantação do AWS Lambda é de dois dias ou 2.880minutos. Portanto, o valor máximo especificado por Intervalo para uma configuraçãocanário é 2.800 minutos. O valor máximo de uma configuração linear depende do valorde Etapa. Por exemplo, se a porcentagem de etapa de um deslocamento de tráfego

Versão da API 2014-10-06230

Page 241: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um aplicativo (CLI)

linear for 25%, haverá quatro deslocamentos de tráfego. O valor máximo do intervalo é2.880 dividido por quatro, ou 720 minutos.

e. Selecione Create deployment configuration (Criar uma configuração de implantação).12. (Opcional) Em Advanced (Avançado), 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õesautomáticas.

Para obter mais informações, consulte Configurar opções avançadas para um grupo deimplantação (p. 246).

13. Selecione Create deployment group (Criar grupo de implantação).

Criar um aplicativo (CLI)Para usar a AWS CLI para criar um aplicativo, chame o comando create-application, especificando umnome que represente exclusivamente o aplicativo. (Em uma conta da AWS, um nome de aplicativo doAWS CodeDeploy pode ser usado apenas uma vez por região. É possível reutilizar um nome de aplicativoem diferentes regiões.)

Após usar o AWS CLI para criar um aplicativo, a próxima etapa será criar um grupo de implantação queespecifique as instâncias nas quais as revisões serão implantadas. Para obter instruções, consulte Criarum grupo de implantação com o AWS CodeDeploy (p. 235).

Depois de criar o grupo de implantação, a próxima etapa é preparar uma revisão a ser implantada noaplicativo e grupo de implantação. Para obter instruções, consulte Trabalhando com revisões de aplicativospara o AWS CodeDeploy (p. 250).

Visualizar detalhes de aplicativos com o AWSCodeDeploy

Você pode usar o console do AWS CodeDeploy, a AWS CLI ou as APIs do AWS CodeDeploy paravisualizar detalhes sobre todos os aplicativos associados à sua conta da AWS.

Tópicos• Visualizar detalhes de aplicativos (console) (p. 231)• Visualizar detalhes de aplicativos (CLI) (p. 232)

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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Getting started (Conceitosbásicos).

3. Para visualizar detalhes de aplicativos adicionais, escolha o nome do aplicativo na lista.

Versão da API 2014-10-06231

Page 242: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisualizar detalhes de aplicativos (CLI)

Visualizar detalhes de aplicativos (CLI)Para usar a AWS CLI para visualizar detalhes de aplicativo, chame o comando get-application, batch-get-application ou list-applications.

Para visualizar detalhes sobre um único aplicativo, chame o comando get-application, especificando onome do aplicativo.

Para visualizar detalhes sobre vários aplicativos, chame o comando batch-get-applications, especificandová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 visualizar 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 o nome de um aplicativo, consulteupdate-application.

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 CodeDeploypara 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 daimplantação. A exclusão de um aplicativo criado para uma implantação EC2/No local não removequalquer revisão de aplicativo de instâncias nem revisões dos buckets do Amazon S3. A exclusãode um aplicativo criado para uma implantação EC2/No local não encerra nenhuma instânciado Amazon EC2 ou cancela o registro de qualquer instância no local. Esta ação não pode serdesfeita.

Tópicos• Excluir um aplicativo (console) (p. 232)• Excluir um aplicativo (AWS CLI) (p. 233)

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 https://console.aws.amazon.com/codedeploy.

Versão da API 2014-10-06232

Page 243: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExcluir um aplicativo (AWS CLI)

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).3. Na lista de aplicativos, escolha o botão ao lado do aplicativo que você deseja excluir e escolha Delete

(Excluir).4. Quando solicitado, digite o nome do aplicativo para confirmar que você deseja excluí-lo e, em seguida,

escolha Delete (Excluir).

Excluir um aplicativo (AWS CLI)Para usar a AWS CLI para excluir um aplicativo, chame o comando delete-application, especificando onome do aplicativo. Para ver uma lista de nomes de aplicativos, chame o comando list-applications.

Versão da API 2014-10-06233

Page 244: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioGrupos de implantação em implantações da

plataforma de computação Amazon ECS

Trabalhando com grupos deimplantação no AWS CodeDeploy

Você pode especificar um ou mais grupos de implantação para um aplicativo do AWS CodeDeploy. Cadaimplantação de aplicativo usa um de seus grupos de implantação. O grupo de implantação contém asdefinições e configurações usadas durante a implantação. A maioria das configurações do grupo deimplantação depende da Plataforma de computação usada pelo seu aplicativo. Algumas configurações,como reversões, triggers e alarmes, podem ser definidas para grupos de implantação para qualquerPlataforma de computação.

Grupos de implantação em implantações daplataforma de computação Amazon ECS

Em uma implantação da Amazon ECS, um grupo de implantação especifica o serviço do AmazonECS, load balancer, listener de teste opcional e dois grupos de destino. Ele também especifica quandoredirecionar o tráfego para o conjunto de tarefas de substituição e quando encerrar o conjunto de tarefasoriginal definida e o aplicativo do Amazon ECS após uma implantação bem-sucedida.

Grupos de implantação em implantações daplataforma de computação AWS Lambda

Em uma implantação da AWS Lambda, um grupo de implantação define um conjunto de configuraçõesdo AWS CodeDeploy para implantações futuras de uma função AWS Lambda. Por exemplo, o grupo deimplantação especifica como rotear o tráfego para uma nova versão de uma função Lambda. Ele tambémpode especificar alarmes e reversões. Uma única implantação em um grupo de implantação AWS Lambdapode sobrescrever uma ou mais configurações de grupo.

Grupos de implantação em implantações EC2/Nolocal Plataforma de computação

Em uma implantação EC2/No local, um grupo de implantação é um conjunto de instâncias individuaisvisadas 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 Amazon EC2 Auto Scaling.

Em uma implantação no local, as instâncias no grupo de implantação são atualizadas com a última revisãode aplicativo.

Em uma implantação azul/verde, o tráfego é redirecionado de um conjunto de instâncias para outro pormeio do cancelamento do registro das instâncias originais de um balanceador de carga e do registro de umconjunto de instâncias de substituição que geralmente possui a última revisão de aplicativo já instalada.

Versão da API 2014-10-06234

Page 245: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um grupo de implantação

É possível associar mais de um grupo de implantação a um aplicativo no AWS CodeDeploy. Isso permiteimplantar 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 umconjunto 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 Stagingpara verificação adicional. Finalmente, quando estiver pronto para lançar o aplicativo mais recente aosclientes, você implantará em um grupo de implantação que inclua instâncias marcadas Production.

Você também pode usar vários grupos de tags para refinar ainda mais os critérios das instâncias incluídasem um grupo de implantação. Para obter informações, consulte Marcar instâncias para implantações noAWS CodeDeploy (p. 157).

Ao usar o console do AWS CodeDeploy para criar um aplicativo, você configura seu primeiro grupo deimplantação ao mesmo tempo. Ao usar a AWS CLI para criar um aplicativo, você cria seu primeiro grupode implantação em uma etapa separada.

Para ver uma lista de grupos de implantação já associados à sua conta da AWS, consulte Visualizardetalhes do grupo de implantação com o AWS CodeDeploy (p. 243).

Para obter informações sobre tags de instâncias do Amazon EC2, consulte Trabalhar com tags usandoo console. Para obter informações sobre instâncias locais, consulte Trabalhando com instânciaslocais (p. 180). Para obter informações sobre o Amazon EC2 Auto Scaling, consulte Integrar o AWSCodeDeploy ao Amazon EC2 Auto Scaling (p. 46).

Tópicos

• the section called “Criar um grupo de implantação” (p. 235)• the section called “Visualizar detalhes do grupo de implantação.” (p. 243)• the section called “Altere as configurações do grupo de implantação.” (p. 244)• the section called “Configurar opções avançadas para um grupo de implantação” (p. 246)• the section called “Exclua um grupo de implantação” (p. 248)

Criar um grupo de implantação com o AWSCodeDeploy

Você pode usar o console do AWS CodeDeploy, a AWS CLI, as APIs do AWS CodeDeploy ou um modelodo AWS CloudFormation para criar grupos de implantação. Para obter informações sobre como usar ummodelo do AWS CloudFormation para criar um grupo de implantação, consulte Referência de modelos doAWS CloudFormation para o AWS CodeDeploy (p. 370).

Ao usar o console do AWS CodeDeploy para criar um aplicativo, você configura seu primeiro grupo deimplantação ao mesmo tempo. Ao usar a AWS CLI para criar um aplicativo, você cria seu primeiro grupode 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. Paraobter mais informações, consulte Etapa 3: criar uma função de serviço para o AWS CodeDeploy (p. 32).

Tópicos• Criar um grupo de implantação para uma implantação no local (console) (p. 236)• Criar um grupo de implantação para uma implantação de EC2/No local azul/verde (console) (p. 238)• Criar um grupo de implantação para uma implantação da Amazon ECS (console) (p. 241)

Versão da API 2014-10-06235

Page 246: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um grupo de implantação parauma implantação no local (console)

• Configurar um load balancer no Elastic Load Balancing para implantações do AWSCodeDeploy (p. 242)

• Criar um grupo de implantação (CLI) (p. 243)

Criar um grupo de implantação para uma implantaçãono local (console)Para usar o console do AWS CodeDeploy para criar um grupo de implantação para uma implantação nolocal:

Warning

Não siga essas etapas se:

• Você não preparou suas instâncias para serem usadas na primeira implantação do AWSCodeDeploy de um aplicativo. Para configurar suas instâncias, siga as instruções emTrabalhando com instâncias para o AWS CodeDeploy (p. 155) e depois siga as etapas nestetópico.

• Você deseja criar um grupo de implantação que usa uma configuração de implantaçãopersonalizada, mas ainda não criou essa configuração de implantação. Siga as instruções emCriar uma configuração de implantação (p. 218) 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 osníveis de confiança e permissões descritos em Etapa 3: criar uma função de serviço para oAWS CodeDeploy (p. 32). Para criar e configurar uma função de serviço, siga as instruções emEtapa 3: criar uma função de serviço para o AWS CodeDeploy (p. 32) e depois siga as etapasneste tópico.

• Você deseja selecionar um Classic Load Balancer, um Balanceador de carga de aplicações ouum Network Load Balancer no Elastic Load Balancing para a implantação no local, mas aindanão o criou.

1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).3. Na página Aplicativos, escolha o nome do aplicativo para o qual você deseja criar um grupo de

implantação.4. Na página do aplicativo, na guia Deployment groups (Grupos de implantação), selecione Create

deployment group (Criar grupo de implantação).5. Em Deployment group name (Nome do grupo de implantação) digite um nome que descreva o grupo

de implantação.

Note

Se quiser usar as mesmas configurações usadas em outro grupo de implantação (incluindoo nome do grupo de implantação, tags e/ou nomes de grupos do Amazon EC2 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 omesmo nome, o AWS CodeDeploy os tratará como grupos de implantação separados,porque cada um deles está associado a aplicativos separados.

Versão da API 2014-10-06236

Page 247: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um grupo de implantação parauma implantação no local (console)

6. Em Service role (Função de serviço), escolha uma função de serviço que conceda acesso do AWSCodeDeploy à sua instância de destino.

7. Em Deployment type (Tipo de implantação), selecione In-place (No local).8. Em Environment configuration (Configuração do ambiente), selecione uma das opções a seguir:

a. Amazon EC2 Auto Scaling groups (Grupos do AS): insira ou escolha o nome de um grupo doAmazon EC2 Auto Scaling no qual implantar sua revisão do aplicativo. Quando novas instânciasdo Amazon EC2 são iniciadas como parte de um grupo do Amazon EC2 Auto Scaling, o AWSCodeDeploy pode implantar suas revisões nessas novas instâncias automaticamente. É possíveladicionar até 10 grupos do Amazon EC2 Auto Scaling a um grupo de implantação.

b. Amazon EC2 instances (Instâncias do EC2) ou On-premises instances (Instâncias no local): noscampos Key (Chave) e Value (Valor), digite os valores do par de chaves/valores usados paramarcar as instâncias. É possível marcar até 10 pares de chave/valor em um único grupo de tags.

i. Você pode usar caracteres curinga no campo Value (Valor) para identificar todas asinstâncias marcadas em determinados padrões, como instâncias do Amazon EC2, centros decusto e nomes de grupos semelhantes e assim por diante. Por exemplo, se você selecionarName (Nome) no campo Key (Chave) e inserir GRP-*a no campo Value (Valor), o AWSCodeDeploy identificará todas as instâncias que enquadram nesse padrão, como a GRP-1a,a GRP-2a e a GRP-XYZ-a.

ii. O campo Value (Valor) diferencia maiúsculas de minúsculas.iii. 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 Amazon EC2 Auto Scaling especificado, ele exibirá o número deinstâ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 grupode tags para criar um grupo de tags. É possível criar até três grupos de tags com até 10 pareschave/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 deimplantação. Isso significa que uma instância deve corresponder pelo menos a uma das tags emcada 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 deimplantação, consulte Marcar instâncias para implantações no AWS CodeDeploy (p. 157).

9. Em Deployment configuration (Configuração da implantação), escolha uma configuração deimplantação para controlar a taxa em que as instâncias são implantadas, por exemplo, uma de cadavez 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. 214).

10. (Opcional) Em Load balancer, escolha Enable load balancing (Habilitar balanceamento de carga) e,em seguida, escolha um Classic Load Balancer, Balanceador de carga de aplicações ou NetworkLoad Balancer existente para gerenciar o tráfego para as instâncias durante os processos deimplantação.

O registro de cada instância é cancelado a partir do load balancer (Classic Load Balancers) ougrupo de destino (Application Load Balancers e Network Load Balancers) para impedir que o tráfegoseja roteado para ele durante a implantação. Ela é registrada novamente mediante a conclusão daimplementação.

Para obter mais informações sobre load balancers para implantações do AWS CodeDeploy, consulteIntegrar ao (p. 49)

11. (Opcional) Expanda Advanced (Avançado) e configure as opções que você deseja incluir naimplantação, como gatilhos de notificações do Amazon SNS, alarmes do Amazon CloudWatch oureversões automáticas.

Versão da API 2014-10-06237

Page 248: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um grupo de implantação para uma

implantação de EC2/No local azul/verde (console)

Para obter mais informações, consulte Configurar opções avançadas para um grupo deimplantação (p. 246).

12. Selecione Create deployment group (Criar grupo de implantação).

Criar um grupo de implantação para uma implantaçãode EC2/No local 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 substituirdurante o processo de implantação azul/verde. Para configurar suas instâncias, siga asinstruções em Trabalhando com instâncias para o AWS CodeDeploy (p. 155) e depois siga asetapas 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 umaconfiguração de implantação (p. 218) 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 osníveis de confiança e permissões descritos em Etapa 3: criar uma função de serviço para oAWS CodeDeploy (p. 32). Para criar e configurar uma função de serviço, siga as instruções emEtapa 3: criar uma função de serviço para o AWS CodeDeploy (p. 32) e depois siga as etapasneste tópico.

• Você não criou um Classic Load Balancer ou um Balanceador de carga de aplicações noElastic Load Balancingpara o registro das instâncias no ambiente de substituição. Para obtermais informações, consulte Configurar um load balancer no Elastic Load Balancing paraimplantações do AWS CodeDeploy (p. 242).

1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).3. Na página Aplicativos, escolha o nome do aplicativo para o qual você deseja criar um grupo de

implantação.4. Na página do aplicativo, na guia Deployment groups (Grupos de implantação), selecione Create

deployment group (Criar grupo de implantação).5. Em Deployment group name (Nome do grupo de implantação) digite um nome que descreva o grupo

de implantação.

Note

Se quiser usar as mesmas configurações usadas em outro grupo de implantação (incluindo onome do grupo de implantação, as tags, os nomes de grupos do Amazon EC2 Auto Scalinge a configuração de implantação), escolha essas configurações nessa página. Embora essenovo grupo de implantação e o grupo de implantação existente tenham o mesmo nome, o

Versão da API 2014-10-06238

Page 249: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um grupo de implantação para uma

implantação de EC2/No local azul/verde (console)

AWS CodeDeploy os tratará como grupos de implantação separados, porque eles estãoassociados a aplicativos separados.

6. Em Service role (Função de serviço), escolha uma função de serviço que conceda acesso do AWSCodeDeploy à sua instância de destino.

7. Escolha Blue/green (Azul/verde) em Deployment type (Tipo de implantação).8. Em Configuração de ambiente, escolha o método que você deseja usar para fornecer instâncias ao

seu ambiente de substituição:

a. Copiar grupo do Amazon EC2 Auto Scaling automaticamente: o AWS CodeDeploy cria um grupodo Amazon EC2 Auto Scaling copiando o especificado por você.

b. Fornecer instâncias manualmente: você apenas especificará as instâncias para o seu ambientede substituição depois de criar uma implantação. Você deve criar as instâncias antes de iniciar aimplantação. Em vez disso, aqui, você especifica as instâncias que deseja substituir.

9. Dependendo da sua escolha na etapa 8, siga um destes procedimentos:

• Se tiver escolhido Automatically copy Amazon EC2 Auto Scaling group (Cópia automática do grupodo AS): em Amazon EC2 Auto Scaling group (Grupo do AS), escolha ou insira o nome do grupodo Amazon EC2 Auto Scaling que você deseja usar como modelo para o grupo do Amazon EC2Auto Scaling criado para as instâncias no seu ambiente de substituição. O número de instânciasatualmente íntegras no grupo do Amazon EC2 Auto Scaling que você selecionar é criado no seuambiente de substituição.

• Se você optar por Manually provision instances (Provisionar instâncias manualmente): selecioneAmazon EC2 Auto Scaling groups (Grupos do AS), Amazon EC2 Auto Scaling intances (Instânciasdo AS) ou ambos para especificar instâncias a serem adicionadas nesse grupo de implantação.Insira valores de tags do Amazon EC2 Auto Scaling ou nomes de grupo do Amazon EC2 AutoScaling para identificar as instâncias no ambiente original (ou seja, as instâncias que você desejasubstituir ou que estão executando a revisão de aplicativo atual).

10. (Opcional) Em Load balancer, escolha Enable load balancing (Habilitar balanceamento de carga) e,em seguida, escolha um Classic Load Balancer, Balanceador de carga de aplicações ou NetworkLoad Balancer existente para gerenciar o tráfego para as instâncias durante os processos deimplantação.

O registro de cada instância é cancelado a partir do load balancer (Classic Load Balancers) ougrupo de destino (Application Load Balancers e Network Load Balancers) para impedir que o tráfegoseja roteado para ele durante a implantação. Ela é registrada novamente mediante a conclusão daimplementação.

Para obter mais informações sobre load balancers para implantações do AWS CodeDeploy, consulteIntegrar ao (p. 49)

11. Em Configurações de implantação, reveja as opções padrão para o redirecionamento do tráfegoao ambiente de substituição, qual configuração de implantação usar para a implantação e como asinstâncias no ambiente original serão tratadas após a implantação.

Se quiser alterar as configurações, continue na próxima etapa. Caso contrário, vá para a etapa 13.12. Para alterar as configurações de implantação da implantação azul/verde, escolha qualquer uma das

seguintes configurações.

Configuração Opções

Redirecionamento de tráfego • Rotear novamente o tráfego imediatamente:assim que as instâncias no ambiente desubstituição forem provisionadas e receberema instalação da revisão mais recente doaplicativo, elas serão registradas no loadbalancer automaticamente, fazendo com que

Versão da API 2014-10-06239

Page 250: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um grupo de implantação para uma

implantação de EC2/No local azul/verde (console)

Configuração Opçõeso tráfego seja roteado novamente para elas.O registro das instâncias no ambiente originalserá então cancelado.

• Decidirei sobre rotear novamente o tráfego: asinstâncias no ambiente de substituição apenasserão registradas no load balancer se vocêrotear novamente o tráfego manualmente. Seo tempo de espera especificado passar semque o tráfego seja redirecionado, o status daimplantação será alterado para parado.

Configuração de implantação Escolha em que taxa as instâncias no ambientede substituição são registradas no balanceadorde carga, por exemplo, uma de cada vez outodos ao mesmo tempo.

Note

Depois que o tráfego for direcionadocom sucesso ao ambiente desubstituição, o registro de todasas instâncias no ambiente originalserá cancelado de uma só vez,independentemente da configuração deimplantação selecionada.

Para obter mais informações, consulteTrabalhando com configurações de implantaçãono AWS CodeDeploy (p. 214).

Instâncias originais • Encerrar as instâncias originais no grupode implantação: quando o tráfego tiversido roteado novamente ao ambiente desubstituição, as instâncias cujo registro foicancelado do load balancer serão encerradasapós o período de espera especificado.

• Manter as instâncias originais executandono grupo de implantação: quando o tráfegotiver sido roteado novamente ao ambientede substituição, as instâncias cujo registro foicancelado do load balancer continuarão a serexecutadas.

13. (Opcional) Em Advanced (Avançado), 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õesautomá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. 246).

14. Selecione Create deployment group (Criar grupo de implantação).

Versão da API 2014-10-06240

Page 251: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um grupo de implantação para umaimplantação da Amazon ECS (console)

Criar um grupo de implantação para uma implantaçãoda Amazon ECS (console)1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://

console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).3. Em Applications table (Tabela de aplicativos), escolha o nome do aplicativo que está associado ao

grupo de implantação que você deseja editar.4. Na página de seu aplicativo, em Deployment groups (Grupos de implantação), escolha o nome do

grupo de implantação que você deseja editar.5. Na página do aplicativo, na guia Deployment groups (Grupos de implantação), selecione Create

deployment group (Criar grupo de implantação). Para obter mais informações sobre o que énecessário para criar um grupo de implantação para uma implantação do Amazon ECS, consulteAntes de começar uma implantação do Amazon ECS (p. 19).

6. Em Deployment group name (Nome do grupo de implantação) digite um nome que descreva o grupode implantação.

Note

Se quiser usar as mesmas configurações usadas em outro grupo de implantação (incluindoo nome do grupo de implantação e a configuração de implantação), escolha essasconfigurações nessa página. Embora esse novo grupo e o grupo existente possam ter omesmo nome, o AWS CodeDeploy os tratará como grupos de implantação separados,porque cada um deles está associado a um aplicativo separado.

7. Em Service role (Função de serviço), escolha uma função de serviço que conceda para o AWSCodeDeploy acesso ao Amazon ECS. Para obter mais informações, consulte Etapa 3: criar umafunção de serviço para o AWS CodeDeploy (p. 32).

8. Em Load balancer name (Nome do load balancer), escolha o nome do load balancer que fornece otráfego para o serviço do Amazon ECS.

9. Em Production listener port (Porta do listener de produção), escolha a porta e o protocolo para olistener que fornece o tráfego de produção para o serviço do Amazon ECS.

10. (Opcional) Em Test listener port (Porta do listener de teste), escolha a porta e o protocolo de umlistener de teste que fornece o tráfego para o conjunto de tarefas de substituição no serviço doAmazon ECS durante a implantação. Você pode especificar um ou mais funções do Lambda noAppSpec file que são executadas durante o gancho AfterAllowTestTraffic. As funçõespodem executar testes de validação. Se um teste de validação falhar, uma reversão da implantaçãoserá acionada. Se o teste de validação for bem-sucedido, o próximo gancho no ciclo de vida daimplantação, BeforeAllowTestTraffic, será acionado. Se uma porta do listener de teste nãofor especificada, nada acontecerá durante o gancho AfterAllowTestTraffic. Para obter maisinformações, consulte A seção 'hooks' AppSpec para uma implantação Amazon ECS (p. 348).

11. Em Target group 1 nome (Nome do grupo de destino 1) e Target group 2 name (Nome do grupo dedestino 2), escolha os grupos de destino utilizados para rotear o tráfego durante a implantação. OAWS CodeDeploy vincula um grupo de destino ao conjunto de tarefas original do serviço do AmazonECS e outro ao conjunto de tarefas de substituição. Para obter mais informações, consulte Grupos dedestino para os Application Load Balancers.

12. Selecione Reroute traffic immediately (Redirecionar tráfego imediatamente) ou Specify when to reroutetraffic (Especificar quando rotear o tráfego novamente) para determinar quando rotear o tráfegonovamente para o serviço atualizado do Amazon ECS.

Versão da API 2014-10-06241

Page 252: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioConfigurar um load balancer no Elastic Load

Balancing para implantações do AWS CodeDeploy

Se você optar por especificar quando rotear o tráfego novamente, escolha o número de dias, horase minutos para aguardar após uma implantação bem-sucedida antes do tráfego ser roteado para oconjunto de tarefas de substituição no serviço do Amazon ECS.

13. Em Original revision termination (Encerramento da revisão original) escolha o número de dias, horase minutos para aguardar após uma implantação bem-sucedida antes do conjunto de tarefas originaldefinido no serviço do Amazon ECS ser encerrado.

14. (Opcional) Em Advanced (Avançado), 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õesautomáticas.

Para obter mais informações, consulte Configurar opções avançadas para um grupo deimplantação (p. 246).

Configurar um load balancer no Elastic LoadBalancing para implantações do AWS CodeDeployAntes de executar qualquer implantação azul/verde, ou uma implantação no local para a qual você desejaespecificar um balanço de carga opcional no grupo de implantação, é necessário criar um Classic LoadBalancer, Balanceador de carga de aplicações, ou Network Load Balancer em Elastic Load Balancing.Para balanceador de carga, você usa esse balanceador de carga para registrar as instâncias quecompõem seu ambiente de substituição. As instâncias no seu ambiente original podem, opcionalmente, serregistradas nesse mesmo balanceador de carga.

Para configurar um Classic Load Balancer, siga as instruções em Tutorial: criar um Classic Load Balancerno Guia do usuário para Classic Load Balancers. 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ãoatualmente no seu grupo de implantação (implantações no local) ou que você tenha designado paraestar 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 decarga.

Por exemplo, se você chamou seu balanceador de carga de my-load-balancer, oendereço DNS apareceria em um formato como my-load-balancer-1234567890.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: criar um Balanceador de carga de aplicações usando a AWS CLI

Para configurar um Network Load Balancer, siga as instruções em um dos seguintes tópicos:

• Criar um Network Load Balancer• Tutorial: criar um Network Load Balancer usando a AWS CLI

Para configurar um Classic Load Balancer, siga as instruções em Tutorial: criar um Classic Load Balancer.

Versão da API 2014-10-06242

Page 253: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um grupo de implantação (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-groupespecificando:

• 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. Um grupo de implantação com esse nome será criado para o

aplicativo especificado. Um grupo de implantação só pode ser associado a um aplicativo.• Informações sobre as tags, grupos de tags ou os nomes de grupo do Amazon EC2 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. 36). Paraobter mais informações sobre funções de serviço, consulte Termos e conceitos de funções, no Guia dousuário do IAM.

• Informações sobre o tipo de implantação, seja no local ou azul/verde, a ser associado ao grupo deimplantação.

• (Opcional) O nome de uma configuração de implantação existente. Para ver uma lista de configuraçõesde implantação, consulte Visualizar detalhes de configurações de implantação (p. 219). Se não forespecificado, 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 einstância para aqueles que estão inscritos em um tópico do Amazon Simple Notification Service. Paraobter mais informações, consulte Monitoramento de implantações com notificações de eventos doAmazon SNS (p. 305).

• (Opcional) Comandos para adicionar alarmes do CloudWatch existentes ao grupo de implantação queserão ativados se uma métrica especificada em um alarme cair abaixo de um limite definido ou excederesse limite.

• (Opcional) Comandos para uma implantação reverter para a última revisão em bom estado conhecidaquando 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

Balancingque 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 Balancinga ser usado para instâncias registradas no ambiente de substituição.

Visualizar detalhes do grupo de implantação com oAWS CodeDeploy

Você pode usar o console do AWS CodeDeploy, a AWS CLI, ou as APIs do AWS CodeDeploy paravisualizar detalhes sobre todos os grupos de implantação associados com um aplicativo.

Tópicos• Visualizar detalhes do grupo de implantação (console) (p. 244)

Versão da API 2014-10-06243

Page 254: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisualizar detalhes do grupo de implantação (console)

• Visualizar detalhes do grupo de implantação (CLI) (p. 244)

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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).3. Na página Aplicativos, escolha o nome do aplicativo associado ao grupo de implantação.

Note

Se não for exibida nenhuma entrada, verifique se a região correta está selecionada. Na barrade 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 tem suporte somente nessas regiões.

4. Para visualizar detalhes sobre um grupo de implantação individual, na guia Deployment groups (Gruposde implantação), escolha o nome do grupo de implantação.

Visualizar detalhes do grupo de implantação (CLI)Para usar a AWS CLI para visualizar detalhes do grupo de implantação, chame o comando get-deployment-group ou o comando 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 ocomando list-applications.

• O nome do grupo de implantação. Para obter o nome do grupo de implantação, chame comando list-deployment-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 como AWS CodeDeploy

Você pode usar o console AWS CodeDeploy, a AWS CLI, ou as APIs do AWS CodeDeploy para alterar asconfiguraçõ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çãopersonalizado ainda não criado. Em vez disso, siga as instruções em Criar uma configuração de

Versão da API 2014-10-06244

Page 255: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAlterar configurações do grupo de implantação (console)

implantação (p. 218) e, em seguida, volte para esse tópico. Não use essas etapas se quiser que ogrupo de implantação use uma função de serviço diferente ainda não criada. A função de serviçodeve confiar ao AWS CodeDeploy com pelo menos as permissões descritas em Etapa 3: criaruma função de serviço para o AWS CodeDeploy (p. 32) Para criar e configurar uma função deserviço com as permissões corretas, siga as instruções em Etapa 3: criar uma função de serviçopara o AWS CodeDeploy (p. 32) e depois volte para este tópico.

Tópicos• Alterar configurações do grupo de implantação (console) (p. 245)• Alterar configurações do grupo de implantação (CLI) (p. 245)

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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).3. Na lista de aplicativos, escolha o nome do aplicativo que está associado com o grupo de implantação

que você deseja mudar.

Note

Se não for exibida nenhuma entrada, verifique se a região correta está selecionada. Na barrade 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 tem suporte somente nessas regiões.

4. Escolha a guia Deployment groups (Grupos de implantação) e escolha o nome do grupo de implantaçãoque você deseja alterar.

5. Na página Depoyment group (Grupo de implantação) escolha Edit (Editar).6. Edite as opções de grupo de implantação, conforme necessário.

Para obter informações sobre componentes do grupo de implantação, consulte Criar um grupo deimplantação com o AWS CodeDeploy (p. 235).

7. Selecione Save changes.

Alterar configurações do grupo de implantação (CLI)Para usar a AWS CLI para mudar as configurações de um grupo de implantação, chame o comandoupdate-deployment-group, especificando:

• Para EC2/No local e implantações AWS Lambda:• 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.Versão da API 2014-10-06

245

Page 256: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioConfigurar opções avançadaspara um grupo de implantação

• (Opcional) Um diferente nome de recurso da Amazon (ARN) que corresponde a uma função deserviço permitindo o AWS CodeDeploy atuar em nome da sua conta AWS ao interagir com outrosserviços AWS. Para obter o ARN da função de serviço, consulte Obter o ARN da função de serviço(CLI) (p. 36). Para obter mais informações sobre funções de serviço, consulte Termos e conceitos defunções, no Guia do usuário do IAM.

• (Opcional) O nome da configuração de implantação. Para ver uma lista de configurações deimplantação, consulte Visualizar detalhes de configurações de implantação (p. 219). (Se não forespecificado, o AWS CodeDeploy usará uma configuração de implantação padrão.)

• (Opcional) Comandos para adicionar um ou mais alarmes do CloudWatch existentes ao grupo deimplantação, que serão ativados se uma métrica especificada em um alarme cair abaixo de um limitedefinido ou exceder esse limite.

• (Opcional) Comandos para uma implantação reverter para a última revisão em bom estado conhecidaquando uma implantação falhar ou quando um alarme do CloudWatch for ativado.

• (Opcional) Comandos para criar ou atualizar um gatilho que publica em um tópico no Amazon SimpleNotification Service, para que os assinantes desse tópico recebam notificações sobre eventosde implantação e instância nesse grupo de implantação. Para obter mais informações, consulteMonitoramento de implantações com notificações de eventos do Amazon SNS (p. 305).

• Somente para implantações EC2/No local:• (Opcional) Tags de substituição ou grupos de tags que identificam de forma exclusiva as instâncias a

serem incluídas no grupo de implantação.• (Opcional) Os nomes dos grupos do Amazon EC2 Auto Scaling de substituição a serem adicionados

ao grupo de implantação.• Somente para implantações Amazon ECS:

• O serviço do Amazon ECS que será implantado.• Informações do load balancer, incluindo o Balanceador de carga de aplicações ou o Network Load

Balancer, os grupos de destino necessários para uma implantação do Amazon ECS e as informaçõesdo listener de teste opcional e de produção.

Configurar opções avançadas para um grupo deimplantação

Ao criar ou atualizar um grupo de implantação, você pode configurar uma série de opções para fornecermais 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 gruposde implantação nos seguintes tópicos:

• Criar um aplicativo com o AWS CodeDeploy (p. 221)• Criar um grupo de implantação com o AWS CodeDeploy (p. 235)• Alterar configurações do grupo de implantação com o AWS CodeDeploy (p. 244)

Gatilhos de notificações do Amazon SNS: você pode adicionar gatilhos a um grupo de implantação doAWS CodeDeploy para receber notificações sobre eventos relacionados a implantações nesse grupo deimplantação. Essas notificações são enviadas aos destinatários inscritos em um tópico do Amazon SNSque 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 AWSCodeDeploy deve ter permissão para publicar no tópico a partir desse grupo de implantação. Sevocê ainda não tiver concluído essas etapas de configuração, poderá adicionar gatilhos ao grupo deimplantação mais tarde.

Versão da API 2014-10-06246

Page 257: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioConfigurar opções avançadaspara um grupo de implantação

Se quiser criar um gatilho agora para receber notificações sobre eventos de implantação no grupo deimplantação desse aplicativo, escolha Criar gatilho.

Se a sua implantação se destina a uma instância do Amazon EC2, é possível criar notificações referentesa instâncias e receber notificações sobre elas.

Para obter mais informações, consulte Monitoramento de implantações com notificações de eventos doAmazon SNS (p. 305).

Alarmes do Amazon CloudWatch: você pode criar um alarme do CloudWatch que observa uma únicamétrica ao longo de um período que você especificar e realiza uma ou mais ações com base no valorda métrica em relação a um determinado limite ao longo de vários períodos. Para uma implantação doAmazon EC2, você pode criar um alarme para uma instância ou um grupo do Amazon EC2 Auto Scalingque esteja usando nas suas operações do AWS CodeDeploy. Para uma implantação da AWS Lambda edo Amazon ECS, você pode criar um alarme para erros em uma função Lambda.

É possível configurar uma implantação para que ela pare quando um alarme do Amazon CloudWatchdetectar 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, em Alarms (Alarmes), escolha Addalarm (Adicionar alarme).

2. 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. Paravisualizar uma lista de alarmes, abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/ e selecione ALARM (ALARME)

Opções adicionais:

• 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 umgrupo 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 conseguirrecuperar o status do alarme do Amazon CloudWatch, escolha Continue deployments even if alarmstatus is unavailable (Continuar implantações mesmo se o status do alarme estiver indisponível).

Note

Essa opção corresponde a ignorePollAlarmFailure no objeto AlarmConfiguration na API doAWS CodeDeploy.

Para obter mais informações, consulte Monitorando implantações com alarmes do CloudWatch no AWSCodeDeploy (p. 299).

Reversões automáticas: você pode configurar um grupo de implantação ou uma implantação parareversão automática quando uma implantação falhar ou quando um limite de monitoramento especificadofor 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 consolepara criar um aplicativo, criar um grupo de implantação ou atualizar um grupo de implantação. Ao criar umanova implantação, você também pode optar por substituir a configuração de reversão automática que foiespecificada para o grupo de implantação.

• É possível habilitar implantações para que elas sejam revertidas para a revisão em bom estado maisrecente conhecida quando algo der errado, escolhendo uma das seguintes opções, ou ambas:

Versão da API 2014-10-06247

Page 258: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExclua um grupo de implantação

• A opção Roll back when a deployment fails (Reverter quando uma implantação falhar) AWSCodeDeploy reimplantará a última revisão em bom estado como uma nova implantação.

• Reverter quando limites de alarme forem atendidos. Se você tiver adicionado um alarme a esseaplicativo na etapa anterior, o AWS CodeDeploy reimplantará a última revisão em bom estadoconhecida quando um ou mais dos alarmes especificados estiverem ativados.

Note

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áticassem precisar definir a mesma configuração novamente mais tarde.

Para obter mais informações, consulte Reimplantar e reverter uma implantação com o AWSCodeDeploy (p. 285).

Excluir um grupo de implantação com o AWSCodeDeploy

Você pode usar o console AWS CodeDeploy, a AWS CLI, ou os APIs do AWS CodeDeploy para excluirgrupos de implantação associados com a sua conta AWS.

Warning

Se você excluir um grupo de implantação, todos os detalhes associados a ele também serãoexcluídos do AWS CodeDeploy. As instâncias utilizadas no grupo de implantação permanecerãoinalteradas. Esta ação não pode ser desfeita.

Tópicos• Excluir um grupo de implantação (console) (p. 248)• Excluir um grupo de implantação (CLI) (p. 249)

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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).3. Na lista de aplicativos, escolha o nome do aplicativo associado ao grupo de implantação.4. Na página Application details (Detalhes do aplicativo), na guia Deployment groups (Grupos de

implantação), escolha o nome do grupo de implantação que você deseja excluir.5. Na página Deployment details (Detalhes da implantação), escolha Delete (Excluir).6. Quando solicitado, digite o nome do grupo de implantação para confirmar que você deseja excluí-lo e,

em seguida, escolha Excluir.

Versão da API 2014-10-06248

Page 259: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExcluir um grupo de implantação (CLI)

Excluir um grupo de implantação (CLI)Para usar a AWS CLI para excluir um grupo de implementaçã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 deimplantação, chame o comando list-deployment-groups.

Versão da API 2014-10-06249

Page 260: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioPlanejar uma revisão

Trabalhando com revisões deaplicativos para o AWS CodeDeploy

No AWS CodeDeploy, uma revisão contém uma versão dos arquivos de origem que o AWS CodeDeployimplantará em suas instâncias ou em scripts que o AWS CodeDeploy executará em suas instâncias.

Você planeja a revisão, adiciona um AppSpec file à revisão e, em seguida, envia a revisão ao Amazon S3ou ao GitHub. Depois de enviar a revisão, você poderá implantá-la.

Tópicos• Planejar uma revisão para o AWS CodeDeploy (p. 250)• Adicionar um arquivo de especificações de aplicativo a uma revisão para o AWS

CodeDeploy (p. 251)• Escolher um tipo de repositório do AWS CodeDeploy (p. 257)• Enviar uma revisão por push do AWS CodeDeploy para o Amazon S3 (somente implantações de EC2/

No local) (p. 259)• Visualizar detalhes de revisões de aplicativo com o AWS CodeDeploy (p. 262)• Registrar uma revisão de aplicativo no Amazon S3 com o AWS CodeDeploy (p. 264)

Planejar uma revisão para o AWS CodeDeployUm bom planejamento facilita muito mais a implantação de revisões.

Para implantações em uma Plataforma de computação AWS Lambda ou Amazon ECS, uma revisão é amesma do AppSpec file. As informações a seguir não se aplicam. Para obter mais informações, consulteAdicionar um arquivo de especificações de aplicativo a uma revisão para o AWS CodeDeploy (p. 251)

Para implantações em uma EC2/No local Plataforma de computação, comece criando um diretório (pasta)raiz vazio 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 nasinstâ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 | |--mySourceFile.rb | |--myExecutableFile.exe | |--myInstallerFile.msi | |--myPackage.rpm | |--myImageFile.png |--scripts (subfolder) | |--myShellScript.sh | |--myBatchScript.bat | |--myPowerShellScript.ps1 |--appspec.yml

Versão da API 2014-10-06250

Page 261: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAdicionar um AppSpec File

A pasta raiz também deve incluir um application specification file (AppSpec file), conforme mostrado aqui.Para obter mais informações, consulte Adicionar um arquivo de especificações de aplicativo a uma revisãopara o AWS CodeDeploy (p. 251).

Adicionar um arquivo de especificações deaplicativo a uma revisão para o AWS CodeDeploy

Este tópico mostra como adicionar um AppSpec file à sua implantação. Também inclui modelos para criarum AppSpec file de uma implantação de AWS Lambda e EC2/No local.

Tópicos• Adicionar um arquivo AppSpec para uma implantação de Amazon ECS (p. 251)• Adicionar um arquivo AppSpec para uma implantação de AWS Lambda (p. 253)• Adicionar um arquivo AppSpec para uma implantação de EC2/No local (p. 255)

Adicionar um arquivo AppSpec para uma implantaçãode Amazon ECSPara uma implantação em um Amazon ECS Plataforma de computação:

• O AppSpec file especifica a definição de tarefa do Amazon ECS usada para a implantação, um nomede contêiner e o mapeamento de porta usado para rotear o tráfego e funções Lambda opcionaisexecutadas após os eventos de ciclo de vida de implantação.

• Uma revisão é o mesmo que um AppSpec file.• Um AppSpec file pode ser escrito usando JSON ou YAML.• Um AppSpec file pode ser salvo como um arquivo de texto ou inserido diretamente em um console

quando você cria uma implantação. Para obter mais informações, consulte Criar uma implantação(console) Amazon ECS Plataforma de computação. (p. 270).

Para criar um AppSpec file

1. Copie o modelo JSON ou YAML em um editor de texto ou no editor de AppSpec no console.2. Modifique o template conforme necessário.3. Use um validador JSON ou YAML para validar seu AppSpec file. Se você usar o editor de AppSpec, o

arquivo é validado quando você escolher Create deployment (Criar implantação).4. Se você usar um editor de texto, salve o arquivo. Se você usar a AWS CLI para criar sua implantação,

faça referência ao AppSpec file se ele estiver em seu disco rígido ou um bucket do Amazon S3. Sevocê usar o console, é necessário enviar seu AppSpec file para o Amazon S3.

Modelo de arquivo AppSpec em YAML para uma implantação doAmazon ECS com instruçõesO seguinte é um modelo YAML de um AppSpec file para uma implantação do Amazon ECS com todas asopções disponíveis. Para obter informações sobre os eventos de ciclo de vida que serão usados na seçãohooks, consulte A seção 'hooks' AppSpec para uma implantação Amazon ECS (p. 348).

✔ This is an appspec.yml template file for use with an Amazon ECS deployment in AWS CodeDeploy.

Versão da API 2014-10-06251

Page 262: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAdicionar um arquivo AppSpec parauma implantação de Amazon ECS

✔ The lines in this template that start with the hashtag are ✔ comments that can be safely left in the file or ✔ ignored.✔ For help completing this file, see the "AppSpec File Reference" in the ✔ "AWS CodeDeploy User Guide" at✔ https://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.htmlversion: 0.0✔ In the Resources section, you must specify the following: the Amazon ECS service, task definition name, ✔ and the name and port of the your load balancer to route traffic,✔ target version, and (optional) the current version of your AWS Lambda function. Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "" ✔ Specify the ARN of your task definition (arn:aws:ecs:region:account-id:task-definition/task-definition-family-name:task-definition-revision-number) LoadBalancerInfo: ContainerName: "" ✔ Specify the name of your Amazon ECS application's container ContainerPort: "" ✔ Specify the port for your container where traffic reroutes ✔ Optional properties PlatformVersion: "" ✔ Specify the version of your Amazon ECS Service NetworkConfiguration: AwsvpcConfiguration: Subnets: ["",""] ✔ Specify one or more comma-separated subnets in your Amazon ECS service SecurityGroups: ["",""] ✔ Specify one or more comma-separated security groups in your Amazon ECS service AssignPublicIp: "" ✔ Specify "ENABLED" or "DISABLED" ✔ (Optional) In the Hooks section, specify a validation Lambda function to run during ✔ a lifecycle event. Hooks:✔ Hooks for Amazon ECS deployments are: - BeforeInstall: "" ✔ Specify a Lambda function name or ARN - AfterInstall: "" ✔ Specify a Lambda function name or ARN - AfterAllowTestTraffic: "" ✔ Specify a Lambda function name or ARN - BeforeAllowTraffic: "" ✔ Specify a Lambda function name or ARN - AfterAllowTraffic: "" ✔ Specify a Lambda function name or ARN

Arquivo AppSpec em JSON para um modelo de implantação doAmazon ECSO seguinte é um modelo JSON para um AppSpec file para uma implantação do Amazon ECS com todasas opções disponíveis. Para obter instruções do modelo, consulte os comentários na versão YAML daseção anterior. Para obter informações sobre os eventos de ciclo de vida que serão usados na seçãohooks, consulte A seção 'hooks' AppSpec para uma implantação Amazon ECS (p. 348).

{ "version": 0.0, "Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "", "LoadBalancerInfo": { "ContainerName": "", "ContainerPort": }, "PlatformVersion": "", "NetworkConfiguration": {

Versão da API 2014-10-06252

Page 263: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAdicionar um arquivo AppSpec parauma implantação de AWS Lambda

"AwsvpcConfiguration": { "Subnets": [ "", "" ], "SecurityGroups": [ "", "" ], "AssignPublicIp": "" } } } } } ], "Hooks": [ { "BeforeInstall": "" }, { "AfterInstall": "" }, { "AfterAllowTestTraffic": "" }, { "BeforeAllowTraffic": "" }, { "AfterAllowTraffic": "" } ]}

Adicionar um arquivo AppSpec para uma implantaçãode AWS LambdaPara uma implantação em um AWS Lambda Plataforma de computação:

• O AppSpec file contém instruções sobre as funções do Lambda que serão implantadas e usadas paravalidação da implantação.

• Uma revisão é o mesmo que um AppSpec file.• Um AppSpec file pode ser escrito usando JSON ou YAML.• Um AppSpec file pode ser salvo como um arquivo de texto ou digitado diretamente em um editor de

AppSpec do console durante a criação de uma implantação. Para obter mais informações, consulte Criaruma implantação (console) AWS Lambda Plataforma de computação. (p. 271).

Para criar um AppSpec file:

1. Copie o modelo JSON ou YAML em um editor de texto ou no editor de AppSpec no console.2. Modifique o template conforme necessário.3. Use um validador JSON ou YAML para validar seu AppSpec file. Se você usar o editor de AppSpec, o

arquivo é validado quando você escolher Create deployment (Criar implantação).4. Se você usar um editor de texto, salve o arquivo. Se você usar a AWS CLI para criar sua implantação,

faça referência ao AppSpec file se ele estiver em seu disco rígido ou um bucket do Amazon S3. Sevocê usar o console, é necessário enviar seu AppSpec file para o Amazon S3.

Versão da API 2014-10-06253

Page 264: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAdicionar um arquivo AppSpec parauma implantação de AWS Lambda

Modelo de arquivo AppSpec em YAML para uma implantação doAWS Lambda com instruçõesPara obter informações sobre os eventos de ciclo de vida utilizados na seção "Hooks", consulte A seção'hooks' AppSpec para uma implantação AWS Lambda (p. 351).

✔ This is an appspec.yml template file for use with an AWS Lambda deployment in AWS CodeDeploy.✔ The lines in this template starting with the hashtag symbol are ✔ instructional comments and can be safely left in the file or ✔ ignored.✔ For help completing this file, see the "AppSpec File Reference" in the ✔ "AWS CodeDeploy User Guide" at✔ https://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.htmlversion: 0.0✔ In the Resources section specify the name, alias, ✔ target version, and (optional) the current version of your AWS Lambda function. Resources: - MyFunction: ✔ Replace "MyFunction" with the name of your Lambda function Type: AWS::Lambda::Function Properties: Name: "" ✔ Specify the name of your Lambda function Alias: "" ✔ Specify the alias for your Lambda function CurrentVersion: "" ✔ Specify the current version of your Lambda function TargetVersion: "" ✔ Specify the version of your Lambda function to deploy✔ (Optional) In the Hooks section, specify a validation Lambda function to run during ✔ a lifecycle event. Replace "LifeCycleEvent" with BeforeAllowTraffic✔ or AfterAllowTraffic. Hooks: - LifeCycleEvent: "" ✔ Specify a Lambda validation function between double-quotes.

Arquivo AppSpec em JSON para um modelo de implantação doAWS LambdaNo modelo a seguir, substitua “MyFunction” pelo nome de sua função do AWS Lambda. Na seção opcional"Hooks", substitua os eventos de ciclo de vida por "BeforeAllowTraffic" ou "AfterAllowTraffic".

Para obter informações sobre os eventos de ciclo de vida utilizados na seção "Hooks", consulte A seção'hooks' AppSpec para uma implantação AWS Lambda (p. 351).

{ "version": 0.0, "Resources": [{ "MyFunction": { "Type": "AWS::Lambda::Function", "Properties": { "Name": "", "Alias": "", "CurrentVersion": "", "TargetVersion": "" } } }], "Hooks": [{ "LifeCycleEvent": "" } ] }

Versão da API 2014-10-06254

Page 265: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAdicionar um arquivo AppSpec parauma implantação de EC2/No local

Adicionar um arquivo AppSpec para uma implantaçãode EC2/No localSem um AppSpec file, o AWS CodeDeploy não pode mapear os arquivos de origem na sua revisão doaplicativo para os respectivos destinos ou executar scripts de sua implantação em uma EC2/No localPlataforma de computação.

Cada revisão deve conter somente um AppSpec file.

Para adicionar um AppSpec file 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 AppSpec file.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 AppSpec file no diretório raiz:

• Para Linux, macOS, or Unix:

find /path/to/root/directory -name appspec.yml

Não haverá saída se o AppSpec file não for encontrado lá.• Para Windows:

dir path\to\root\directory\appspec.yml

O erro File Not Found (Arquivo não encontrado) será exibido se o AppSpec file não estiverarmazenado no diretório raiz.

6. Envie a revisão para o Amazon S3 ou o GitHub.

Para obter instruções, consulte Enviar uma revisão por push do AWS CodeDeploy para o Amazon S3(somente implantações de EC2/No local) (p. 259).

Modelo de arquivo AppSpec para uma implantação de EC2/Nolocal com instruções

Note

As implantações em instâncias do Windows Server não são compatíveis com o elemento runas.Se você estiver implantando em instâncias do Windows Server, não inclua as implantações noAppSpec file.

✔ This is an appspec.yml template file for use with an EC2/No local deployment in AWS CodeDeploy.✔ The lines in this template starting with the hashtag symbol are ✔ instructional comments and can be safely left in the file or ✔ ignored.✔ For help completing this file, see the "AppSpec File Reference" in the ✔ "AWS CodeDeploy User Guide" at✔ https://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.htmlversion: 0.0✔ Specify "os: linux" if this revision targets Amazon Linux, ✔ Red Hat Enterprise Linux (RHEL), or Ubuntu Server ✔ instances.

Versão da API 2014-10-06255

Page 266: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAdicionar um arquivo AppSpec parauma implantação de EC2/No local

✔ 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).✔ Note 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 ✔ 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

Versão da API 2014-10-06256

Page 267: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEscolher um tipo de repositório

✔ 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 ApplicationStart 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 AWSCodeDeploy

O local de armazenamento dos arquivos exigidos pelo AWS CodeDeploy é chamado de repositório. O usode um repositório depende de qual Plataforma de computação sua implantação usa.

• EC2/No local: para implantar seu código de aplicativo em uma ou mais instâncias, esse código deveser agrupado em um arquivamento e colocado em um repositório em que o AWS CodeDeploy possaacessá-lo durante o processo de implantação. Você agrupa seu conteúdo implantável e um arquivoAppSpec em um arquivamento e, em seguida, carrega esse arquivamento em um dos tipos derepositório com suporte pelo AWS CodeDeploy.

Versão da API 2014-10-06257

Page 268: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEscolher um tipo de repositório

• AWS Lambda e Amazon ECS: as implantações exigem um AppSpec file, que possa ser acessadodurante uma implantação de uma das seguintes maneiras:• De um bucket do Amazon S3.• Do texto digitado diretamente no editor de AppSpec no console. Para obter mais informações,

consulte Criar uma implantação (console) AWS Lambda Plataforma de computação. (p. 271) e Criaruma implantação (console) Amazon ECS Plataforma de computação. (p. 270).

• Se você usa a AWS CLI, pode fazer referência a um AppSpec file que esteja em seu disco rígido ouem um disco de rede. Para obter mais informações, consulte Criar uma implantação AWS LambdaPlataforma de computação (CLI) (p. 277) e Criar uma implantação Amazon ECS Plataforma decomputação (CLI) (p. 276).

No momento, o AWS CodeDeploy oferece suporte aos seguintes tipos de repositório:

Tipo de repositório Detalhes de repositório Plataformas de computação comsuporte

Amazon S3 O Amazon Simple StorageService (Amazon S3) é a soluçãoda AWS para armazenamentoseguro e dimensionável deobjetos. O Amazon S3 armazenadados como objetos em buckets.Um objeto é composto de umarquivo e, opcionalmente,quaisquer metadados quedescrevam esse arquivo.

Para armazenar um objeto noAmazon S3, carregue o arquivoem um bucket. Ao carregarum arquivo, você pode definirpermissões e metadados noobjeto.

Saiba mais:

• Criar um bucket no Amazon S3• Enviar uma revisão por push

do AWS CodeDeploy parao Amazon S3 (somenteimplantações de EC2/Nolocal) (p. 259)

• Implantar automaticamentedo Amazon S3 usando o AWSCodeDeploy

As implantações que usam asplataformas de computaçãoa seguir podem armazenara revisão em um bucket doAmazon S3.

• EC2/No local• AWS Lambda• Amazon ECS

GitHub Você pode armazenar suasrevisões de aplicativo emrepositórios GitHub. É possíveldisparar uma implantação de umrepositório GitHub sempre que ocódigo-fonte nesse repositório foralterado.

Saiba mais:

Somente implantações de EC2/No local podem armazenara revisão em um repositórioGitHub.

Versão da API 2014-10-06258

Page 269: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEnviar uma revisão por push

• Integrando o AWS CodeDeploycom o GitHub (p. 56)

• Tutorial: usar o AWSCodeDeploy para implantar umaplicativo do GitHub (p. 119)

• Implantar automaticamentedo GitHub usando o AWSCodeDeploy

Bitbucket Você pode enviar código porpush para instâncias do AmazonEC2 diretamente da interfacedo usuário do Bitbucket paraqualquer um dos seus grupos deimplantação, sem a necessidadede fazer login na sua plataformade integração contínua (CI) ouem instâncias do Amazon EC2para executar um processo deimplantação manual. O Bitbucketprimeiro envia o código a umbucket do Amazon S3 que vocêtenha especificado e, a partirdesse ponto, implanta o código.No entanto, após a conclusãoda configuração inicial paradar suporte a esse processo,o código enviado do Bitbucketé implantado automaticamentenas suas instâncias sem etapasintermediárias.

Saiba mais:

• Suporte do Atlassian Bitbucketpara o AWS CodeDeploy

Somente implantações de EC2/No local podem armazenara revisão em um repositórioBitBucket.

Note

Uma implantação do AWS Lambda funciona somente com um repositório do Amazon S3.

Enviar uma revisão por push do AWS CodeDeploypara o Amazon S3 (somente implantações de EC2/No local)

Depois de planejar sua revisão, conforme descrito em Planejar uma revisão para o AWSCodeDeploy (p. 250) e adicionar um AppSpec file a ela, conforme descrito em Adicionar um arquivo deespecificações de aplicativo a uma revisão para o AWS CodeDeploy (p. 251), você está pronto paraempacotar os arquivos componentes e enviar essa revisão por push ao Amazon S3. Para implantações eminstâncias do Amazon EC2, depois de enviar a revisão, você pode usar o AWS CodeDeploy para implantara revisão do Amazon S3 nas instâncias.

Versão da API 2014-10-06259

Page 270: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEnviar uma revisão por push

Note

O AWS CodeDeploy também pode ser usado para implantar revisões que foram enviadas aoGitHub. Para obter mais informações, consulte a documentação do GitHub.

Supomos que você já tenha seguido as instruções em Introdução ao AWS CodeDeploy (p. 30) paraconfigurar a AWS CLI. Isso é especialmente importante para chamar o comando push descrito maisadiante.

Certifique-se de ter um bucket do Amazon S3. Siga as instruções em Criar um bucket.

Caso sua implantação seja feita em instâncias do Amazon EC2, o bucket do Amazon S3 de destinoprecisa ser criado ou já existir na mesma região que as instâncias de destino. Por exemplo, para implantaruma revisão em algumas instâncias na Leste dos EUA (Norte da Virgínia) Região e outras instâncias naRegião Oeste dos EUA (Oregon), será necessário ter um bucket na Leste dos EUA (Norte da Virgínia)Região com uma cópia da revisão e outro bucket na Região Oeste dos EUA (Oregon) com outra cópia damesma revisão. Nesse cenário, você precisa criar duas implementações separadas: uma na Leste dosEUA (Norte da Virgínia) Região e outra na Região Oeste dos EUA (Oregon), mesmo que a revisão sejaigual nas duas regiões e nos buckets.

Você deve ter permissões para fazer upload do bucket do Amazon S3. Você pode especificar essaspermissões com uma política de bucket do Amazon S3. Por exemplo, na política de bucket do AmazonS3 a seguir, o uso do caractere coringa (*) permite que a conta do AWS 111122223333 faça o upload dearquivos para qualquer diretório no bucket do Amazon S3 denominado codedeploydemobucket:

{ "Statement": [ { "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "111122223333" ] } } ]}

To view your AWS account ID, see Finding Your AWS Account ID.

Para saber mais sobre como gerar e anexar uma política de bucket do Amazon S3, consulte Exemplos depolítica de bucket.

O usuário do IAM que está chamando o comando push deve ter, no mínimo, permissões para fazerupload da revisão em cada bucket de destino do Amazon S3. Por exemplo, a seguinte política permiteque o usuário do IAM faça upload de revisões em qualquer lugar no bucket do Amazon S3 denominadocodedeploydemobucket:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ],

Versão da API 2014-10-06260

Page 271: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEnviar uma revisão usando a AWS CLI

"Resource": "arn:aws:s3:::codedeploydemobucket/*" } ]}

Para saber mais sobre como criar e anexar uma política do IAM, consulte Como trabalhar com políticas.

Enviar uma revisão usando a AWS CLINote

O comando push agrupa os artefatos de aplicativos e um AppSpec file em uma revisão. Oformato de arquivo dessa revisão é um arquivo ZIP compactado. O comando não pode ser usadocom uma implantação da AWS Lambda ou Amazon ECS porque cada uma espera uma revisãoque seja um AppSpec file no formato JSON ou YAML.

Chame o comando push para agrupar e enviar a revisão por push para uma implantação. Os parâmetrossão:

• --application-name: (string) necessário. O nome do aplicativo do AWS CodeDeploy que será associado àrevisão de aplicativo.

• --s3-location: (string) necessário. Informações sobre a localização da revisão de aplicativo que serácarregada no Amazon S3. Você deve especificar um bucket e uma chave do Amazon S3. A chaveé o nome da revisão. O AWS CodeDeploy compacta o conteúdo antes de carregá-lo. Use o formatos3://your-S3-bucket-name/your-key.zip.

• --ignore-hidden-files ou --no-ignore-hidden-files: (booliano) opcional. Use o sinalizador --no-ignore-hidden-files (o padrão) para agrupar e fazer upload de arquivos ocultos no Amazon S3. Use osinalizador --ignore-hidden-files para não agrupar e fazer upload dos arquivos ocultos para oAmazon S3.

• --source (string) opcional. A localização do conteúdo a ser implantado, e o AppSpec file na máquina dedesenvolvimento a ser compactado ter upload feito para o Amazon S3. A localização é especificadacomo um caminho relativo ao diretório atual. Se o caminho relativo não for especificado, ou se um pontofinal for usado para o caminho ("."), o diretório atual será usado.

• --description (string) opcional. Um comentário que resume a revisão de aplicativo. Se não forespecificado, a string padrão "Carregado pela CLI da AWS 'horário' UTC" será usada, em que "horário"será a hora atual do sistema no Tempo Universal Coordenado (UTC).

Você pode usar a AWS CLI para enviar uma revisão por push para uma implantação do Amazon EC2. Umexemplo comando push é semelhante a:

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 .

Esse comando faz o seguinte:

Versão da API 2014-10-06261

Page 272: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisualizar detalhes de revisões de aplicativo

• Associa o pacote de arquivos a um aplicativo chamado WordPress_App.• Anexa uma descrição à revisão.• Ignora arquivos ocultos.• Nomeia a revisão WordPressApp.zip e a envia para um bucket chamado codedeploydemobucket.• Agrupa todos os arquivos do diretório raiz na revisão.

Após o envio bem-sucedido, você poderá usar a AWS CLI ou o console do AWS CodeDeploy paraimplantar a revisão a partir do Amazon S3. Para implantar essa revisão com a AWS CLI:

No Linux, macOS, or Unix:

aws deploy create-deployment \ --application-name WordPress_App \ --deployment-config-name your-deployment-config-name \ --deployment-group-name your-deployment-group-name \ --s3-location bucket=codedeploydemobucket,key=WordPressApp.zip,bundleType=zip

No Windows:

aws deploy create-deployment --application-name WordPress_App --deployment-config-name your-deployment-config-name --your-deployment-group-name your-deployment-group-name --s3-location bucket=codedeploydemobucket,key=WordPressApp.zip,bundleType=zip

Para obter mais informações, consulte Criar uma implantação com o AWS CodeDeploy (p. 267).

Visualizar detalhes de revisões de aplicativo com oAWS CodeDeploy

Você pode usar o console do AWS CodeDeploy, a AWS CLI ou as APIs do AWS CodeDeploy paravisualizar detalhes sobre todas as revisões de aplicativo que estão registradas na sua conta da AWS paraum aplicativo especificado.

Para obter informações sobre como registrar uma revisão, consulte Registrar uma revisão de aplicativo noAmazon S3 com o AWS CodeDeploy (p. 264).

Tópicos• Visualizar detalhes de revisões de aplicativo (console) (p. 262)• Visualizar detalhes de revisões de aplicativo (CLI) (p. 263)

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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).

Versão da API 2014-10-06262

Page 273: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisualizar detalhes de revisões de aplicativo (CLI)

Note

Se não for exibida nenhuma entrada, verifique se a região correta está selecionada. Na barrade 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 tem suporte somente nessas regiões.

3. Escolha o nome do aplicativo cuja revisão você deseja visualizar.4. Na página Application details (Detalhes do aplicativo), selecione a guia Revisions (Revisões) e reveja

a lista de revisões registradas para o aplicativo. Selecione uma revisão e, em seguida, selecione Viewdetails (Visualizar detalhes).

Visualizar detalhes de revisões de aplicativo (CLI)Para usar a AWS CLI; para visualizar uma revisão de aplicativo, chame o comando get-application-revisionou o list-application-revisions.

Note

As referências ao GitHub aplicam-se apenas a implantações da EC2/No local. As revisões dasimplantações do AWS Lambda não funcionam com o GitHub.

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ãodo Amazon S3 e a ETag desse arquivamento. Se o identificador de versão e/ou a ETag tiverem sidoespecificados durante uma chamada para register-application-revision, eles deverão ser especificadosaqui.

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 AWSCodeDeploy; listará todas as revisões de aplicativo do Amazon S3 correspondentes.)

• Opcionalmente, seja para listar detalhes de revisão com base em se cada revisão é a revisão de destinode um grupo de implantação. (Se não for especificado, o AWS CodeDeploy listará todas as revisõescorrespondentes.)

• 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 listarapenas as revisões armazenadas no GitHub.

Versão da API 2014-10-06263

Page 274: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma revisão de aplicativo

Registrar uma revisão de aplicativo no Amazon S3com o AWS CodeDeploy

Se você já tiver chamado o comando push para enviar uma revisão de aplicativo ao Amazon S3, não seránecessário registrar a revisão. No entanto, se você carregar uma revisão no Amazon S3 por outro meio equiser que ela apareça no console do AWS CodeDeploy ou por meio da AWS CLI, siga estas etapas pararegistrar a revisão primeiro.

Se você tiver enviado uma revisão de aplicativo por push para um repositório do GitHub e quiser que elaapareça no console do AWS CodeDeploy ou por meio 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 aplicativosno Amazon S3 ou no GitHub.

Tópicos• Registrar uma revisão no Amazon S3 com o AWS CodeDeploy (CLI) (p. 264)• Registrar uma revisão no GitHub com o AWS CodeDeploy (CLI) (p. 265)

Registrar uma revisão no Amazon S3 com o AWSCodeDeploy (CLI)1. Carregue a revisão no Amazon S3.2. Chame o comando register-application-revision, especificando:

• O nome do aplicativo. Para ver uma lista de nomes de aplicativos, chame o comando list-applications.

• 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. Para implantações do AWS Lambda, a revisão

é um AppSpec file escrito em JSON ou YAML. Para implantações da EC2/No local, a revisãocontém uma versão dos arquivos de origem que o AWS CodeDeploy implantará em suasinstâncias ou em scripts que o AWS CodeDeploy executará em suas instâncias.

Note

The tar and compressed tar archive file formats (.tar and .tar.gz) are not supported forWindows Server instances.

• (Opcional) O identificador de versão do Amazon S3 da revisão. (Se o identificador de versão nãofor 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á avalidação do objeto.)

• (Opcional) Qualquer descrição que você queira associar à revisão.

As informações sobre uma revisão no Amazon S3 podem ser especificadas na linha de comando, usandoessa sintaxe como parte da chamada de register-application-revision. (version e eTag são opcionais.)

Para um arquivo de revisão de uma implantação da EC2/No local:

--s3-location bucket=string,key=string,bundleType=tar|tgz|zip,version=string,eTag=string

Para um arquivo de revisão de uma implantação da AWS Lambda:

Versão da API 2014-10-06264

Page 275: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRegistrar uma revisão no GitHubcom o AWS CodeDeploy (CLI)

--s3-location bucket=string,key=string,bundleType=JSON|YAML,version=string,eTag=string

Registrar uma revisão no GitHub com o AWSCodeDeploy (CLI)

Note

As implantações do AWS Lambda não funcionam com o GitHub.

1. Carregue a revisão no seu repositório GitHub.2. Chame o comando register-application-revision, especificando:

• O nome do aplicativo. Para ver uma lista de nomes de aplicativos, chame o comando list-applications.

• 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 estasintaxe como parte da chamada a register-application-revision:

--github-location repository=string,commitId=string

Versão da API 2014-10-06265

Page 276: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuário

Trabalhando com implantações noAWS CodeDeploy

No AWS CodeDeploy, uma implantação é o processo, e os componentes envolvidos nesse processo, deinstalar conteúdo em uma ou mais instâncias. Esse conteúdo pode consistir em código, arquivos da Web ede configuração, executáveis, pacotes, scripts e assim por diante. O AWS CodeDeploy implanta conteúdoarmazenado em um repositório de origem, de acordo com as regras da configuração especificada.

Se você usar o EC2/No local Plataforma de computação, duas implantações para o mesmo conjunto deinstâncias podem ser executadas simultaneamente.

O AWS CodeDeploy fornece duas opções de tipo de implantação: implantações no local e implantaçõesazuis/verdes.

• Implantação no local: o aplicativo em cada instância no grupo de implantação é interrompido, a últimarevisão de aplicativo é instalada, e a nova versão do aplicativo é iniciada e validada. Você pode usarum load balancer 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. Somente implantações queusam o EC2/No local Plataforma de computação podem usar implantações no local. Para obter maisinformações sobre implantações no local, consulte Visão geral de uma implantação no local (p. 8).

• Implantação verde/azul: o comportamento da implantação depende de qual Plataforma de computaçãovocê usa:• Azul/verde em uma EC2/No local Plataforma de computação: as instâncias em um grupo de

implantação (o ambiente original) são substituídas por um conjunto diferente de instâncias (o ambientede 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 ambienteoriginal serão canceladas e podem ser interrompidas ou mantidas em execução para outros usos.

Note

Se você usar uma EC2/No local Plataforma de computação, esteja ciente de que asimplantações azul/verde funcionam somente com instâncias do Amazon EC2.

• Azul/verde em uma AWS Lambda Plataforma de computação: o tráfego é deslocado do seu ambientesem servidor atual para um com suas versões atualizadas da função do Lambda. Você podeespecificar as funções Lambda que realizam testes de validação e escolher a maneira como ocorreo deslocamento do tráfego. Todas as implantações AWS Lambda Plataforma de computação sãoimplantações azul/verde. Por esse motivo, você não precisa especificar um tipo de implantação.

• Azul/verde em uma Amazon ECS Plataforma de computação: o tráfego é deslocado do conjunto detarefas com a versão original de um aplicativo em contêineres em um serviço do Amazon ECS paraum conjunto de tarefas de substituição no mesmo serviço. O protocolo e a porta de um listener deload balancer especificado são usados para rotear novamente o tráfego de produção. Durante umaimplantação, um listener de teste pode ser usado para fornecer o tráfego ao conjunto de tarefas desubstituição enquanto testes de validação são executados.

Para obter mais informações sobre implantações azul/verde, consulte Visão geral de uma implantaçãoazul/verde (p. 9).

Versão da API 2014-10-06266

Page 277: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma implantação

Para obter informações sobre como implantar automaticamente a partir do Amazon S3, consulte Implantarautomaticamente a partir do Amazon S3 usando o AWS CodeDeploy.

Tópicos• Criar uma implantação com o AWS CodeDeploy (p. 267)• Visualizar detalhes de implantações do AWS CodeDeploy (p. 280)• Visualizar dados de log para implantações de EC2/No local do AWS CodeDeploy (p. 281)• Interromper uma implantação com o AWS CodeDeploy (p. 284)• Reimplantar e reverter uma implantação com o AWS CodeDeploy (p. 285)• Implantar um aplicativo em uma conta da AWS diferente (p. 289)• Usar o agente do AWS CodeDeploy para validar um pacote de implantação em uma máquina

local (p. 292)

Criar uma implantação com o AWS CodeDeployVocê pode usar o console do AWS CodeDeploy, a AWS CLI, ou os APIs do AWS CodeDeploy para criaruma implantação que instalará revisões de aplicativo que você já tenha enviado para o Amazon S3 ou,se a sua implantação for para um EC2/No local Plataforma de computação, GitHub, nas instâncias de umgrupo de implantação.

O processo para criar uma implantação depende da Plataforma de computação usada para a suaimplantação.

Tópicos• Pré-requisitos de implantação (p. 267)• Criar uma implantação (console) Amazon ECS Plataforma de computação. (p. 270)• Criar uma implantação (console) AWS Lambda Plataforma de computação. (p. 271)• Criar uma implantação (console) EC2/No local Plataforma de computação. (p. 272)• Criar uma implantação Amazon ECS Plataforma de computação (CLI) (p. 276)• Criar uma implantação AWS Lambda Plataforma de computação (CLI) (p. 277)• Criar uma implantação EC2/No local Plataforma de computação (CLI) (p. 278)

Pré-requisitos de implantaçãoVerifique se as etapas a seguir estão concluídas para iniciar uma implantação.

Pré-requisitos de implantação em uma plataforma decomputação AWS Lambda• Crie um aplicativo que inclua pelo menos um grupo de implantação. Para obter informações, consulte

Criar um aplicativo com o AWS CodeDeploy (p. 221) e Criar um grupo de implantação com o AWSCodeDeploy (p. 235).

• Prepare a revisão do aplicativo, também conhecido como AppSpec file, que especifica a versão dafunção do Lambda que você deseja implantar. O AppSpec file pode especificar as funções do Lambdapara validar sua implantação. Para obter mais informações, consulte Trabalhando com revisões deaplicativos para o AWS CodeDeploy (p. 250).

• Se quiser usar uma configuração de implantação personalizada para a sua implantação, crie-a antesde iniciar o processo de implantação. Para obter informações, consulte Criar uma configuração deimplantação (p. 218).

Versão da API 2014-10-06267

Page 278: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioPré-requisitos de implantação

Pré-requisitos de implantação em uma plataforma decomputação EC2/No local• Para uma implantação no local, crie ou configure as instâncias nas quais você deseja implantar. Para

obter informações, consulte Trabalhando com instâncias para o AWS CodeDeploy (p. 155). Para umaimplantação azul/verde, você tanto pode ter um grupo existente Amazon EC2 Auto Scaling para usarcomo modelo para o seu ambiente de substituição, quanto pode ter uma ou mais instâncias ou gruposdo Amazon EC2 Auto Scaling especificados como ambiente original. Para obter mais informações,consulte Tutorial: use o AWS CodeDeploy para implantar um aplicativo em um grupo de Amazon EC2Auto Scaling (p. 102) e Integrar o AWS CodeDeploy ao Amazon EC2 Auto Scaling (p. 46).

• Crie um aplicativo que inclua pelo menos um grupo de implantação. Para obter informações, consulteCriar um aplicativo com o AWS CodeDeploy (p. 221) e Criar um grupo de implantação com o AWSCodeDeploy (p. 235).

• Prepare a revisão do aplicativo que deseja implantar nas instâncias do seu grupo de implantação. Paraobter informações, consulte Trabalhando com revisões de aplicativos para o AWS CodeDeploy (p. 250).

• Se quiser usar uma configuração de implantação personalizada para a sua implantação, crie-a antesde iniciar o processo de implantação. Para obter informações, consulte Criar uma configuração deimplantação (p. 218).

• Se você estiver implantando a revisão de aplicativo de um bucket do Amazon S3, esse bucket estará namesma região AWS que as instâncias no seu grupo de implantação.

• Se você estiver implantando sua revisão de aplicativo de um bucket do Amazon S3, uma política debucket do Amazon S3 foi aplicada a ele. Essa política concede às suas instâncias as permissõesnecessárias para baixar a revisão de aplicativo.

Por exemplo, a seguinte política de bucket do Amazon S3 permite que qualquerinstância do Amazon EC2 com um perfil de instâncias anexado do IAM contendo o ARNarn:aws:iam::80398EXAMPLE:role/CodeDeployDemo para fazer o download de qualquer lugar nobucket do Amazon S3 chamado de codedeploydemobucket.

{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::80398EXAMPLE:role/CodeDeployDemo" ] } } ]}

A seguinte política do bucket Amazon S3 permite que qualquer instância no local com um usuáriodo IAM associado, contendo o ARN do arn:aws:iam::80398EXAMPLE:user/CodeDeployUserpara que seja feito o download de qualquer lugar no bucket do Amazon S3 chamado decodedeploydemobucket.

{ "Statement": [ { "Action": [ "s3:Get*",

Versão da API 2014-10-06268

Page 279: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioPré-requisitos de implantação

"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 Exemplosde política de bucket.

• Se você estiver criando uma implantação azul/verde ou tiver especificado um Classic Load Balancer,Balanceador de carga de aplicações, ou Network Load Balancer opcional no grupo de implantação, vocêcriou um VPC usando o Amazon VPC que contém pelo menos duas sub-redes. (AWS CodeDeploy usa oElastic Load Balancing, o que requer que todas as instâncias em um grupo de load balancer estejam emum único VPC.)

Se você ainda não criou uma VPC, consulte o Guia de conceitos básicos do Amazon VPC.• Se você estiver criando uma implantação azul/verde, configurou um Classic Load Balancer, Balanceador

de carga de aplicações, ou Network Load Balancer no Elastic Load Balancing e usou ele para registraras instâncias que compõem o seu ambiente original.

Note

As instâncias no seu ambiente de substituição serão registradas nesse balanceador de cargamais tarde.

Para configurar um Classic Load Balancer, conclua as etapas em Tutorial: criar um Classic LoadBalancer no Guia do usuário para Classic Load Balancers. Enquanto avança pelas etapas, anote oseguinte:• 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.• 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, oendereço DNS apareceria em um formato como my-load-balancer-1234567890.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 seguintestópicos:• Criar um Balanceador de carga de aplicações• Tutoriais: criar um Balanceador de carga de aplicações usando a AWS CLI

Para configurar um Network Load Balancer, siga as instruções em um dos seguintes tópicos:• Criar um Network Load Balancer• Tutoriais: criar um Network Load Balancer usando a AWS CLI

Versão da API 2014-10-06269

Page 280: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma implantação (console) Amazon

ECS Plataforma de computação.

Criar uma implantação (console) Amazon ECSPlataforma de computação.1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://

console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. Siga um destes procedimentos:

• Se você desejar implantar um aplicativo, no painel de navegação, expanda Deploy (Implantar)e escolha Applications (Aplicativos). Escolha o nome do aplicativo que você deseja implantar.Certifique-se de que a coluna da Compute platform (Plataforma de computação) para o seuaplicativo seja Amazon ECS.

• Se você deseja reimplantar uma implantação, no painel de navegação, expanda Deploy (Implantar)e escolha Deployments (Implantações). Escolha a implantação que você deseja reimplantar e,na coluna Application (Aplicativos), escolha o nome do aplicativo. Certifique-se de que a colunaCompute platform (Plataforma de computação) para a sua implantação seja Amazon ECS.

3. Na guia Deployments (Implantações), selecione Create deployment (Criar implantação).

Note

O aplicativo deve ter um grupo de implantação antes de ser implantado. Se o aplicativonão tiver um grupo de implantação, na guia Deployment groups (Grupos de implantação),selecione Create deployment group (Criar grupo de implantação). Para obter maisinformações, consulte Criar um grupo de implantação com o AWS CodeDeploy (p. 235).

4. Em Deployment group (Grupo de implantação), escolha um grupo de implantação para usar ser usadonesta implantação.

5. Ao lado de Revision location (Local da revisão), escolha onde a sua revisão está localizada:

• Meu aplicativo está armazenado em Amazon S3 — Para obter informações, consulte Especificarinformações sobre uma revisão armazenada em um bucket do Amazon S3 (p. 274), e em seguidaretorne a etapa 6.

• Use AppSpec editor (Usar o editor AppSpec) — Selecione JSON ou YAML e digite o seu AppSpecfile no editor fornecido. Você pode salvar o AppSpec file que digitou selecionando Save as textfile (Salvar como arquivo de texto). Quando você clicar em Implantar no final destas etapas vocêreceberá um erro se o JSON ou YAML não for válido. Para obter mais informações sobre a criaçãode uma AppSpec file. consulte Adicionar um arquivo de especificações de aplicativo a uma revisãopara o AWS CodeDeploy (p. 251)

6. (Opcional) Em Deployment description (Descrição da implantação), digite uma descrição para estaimplantação.

7. (Opcional) Em Substituições de configuração de reversão, você pode especificar opções de reversãoautomática para essa implantação diferentes daquelas que foram especificadas para o grupo deimplantação, se houver.

Note

Para obter informações sobre reversões no AWS CodeDeploy consulte Reimplantações ereversões de implantação (p. 18) e Reimplantar e reverter uma implantação com o AWSCodeDeploy (p. 285).

Escolha uma das seguintes opções:Versão da API 2014-10-06

270

Page 281: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma implantação (console) AWSLambda Plataforma de computação.

• Roll back when a deployment fails (Reverter quando uma implantação falhar) — AWS CodeDeployreimplantará a última revisão em bom estado como uma nova implantação.

• Roll back when alarm thresholds are me (Reverter quando os limites do alarme forem atingidos)— Se os alarmes forem adicionados ao grupo de implantação, o AWS CodeDeploy reimplantará aúltima revisão quando um ou mais dos alarmes especificados forem ativados.

• Disable rollbacks (Desativar reversões) —Não execute reversões para esta implantação.8. Escolha Criar implantação.

Para acompanhar o status da sua implantação, consulte Visualizar detalhes de implantações do AWSCodeDeploy (p. 280).

Criar uma implantação (console) AWS LambdaPlataforma de computação.1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://

console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. Siga um destes procedimentos:

• Se você desejar implantar um aplicativo, no painel de navegação, expanda Deploy (Implantar)e escolha Applications (Aplicativos). Escolha o nome do aplicativo que você deseja implantar.Certifique-se de que a coluna da Compute platform (Plataforma de computação) para o seuaplicativo seja AWS Lambda.

• Se você deseja reimplantar uma implantação, no painel de navegação, expanda Deploy (Implantar)e escolha Deployments (Implantações). Escolha a implantação que você deseja reimplantar e,na coluna Application (Aplicativos), escolha o nome do aplicativo. Certifique-se de que a colunaCompute platform (Plataforma de computação) para a sua implantação seja AWS Lambda.

3. Na guia Deployments (Implantações), selecione Create deployment (Criar implantação).

Note

O aplicativo deve ter um grupo de implantação antes de ser implantado. Se o aplicativonão tiver um grupo de implantação, na guia Deployment groups (Grupos de implantação),selecione Create deployment group (Criar grupo de implantação). Para obter maisinformações, consulte Criar um grupo de implantação com o AWS CodeDeploy (p. 235).

4. Em Deployment group (Grupo de implantação), escolha um grupo de implantação para usar ser usadonesta implantação.

5. Ao lado de Revision location (Local da revisão), escolha onde a sua revisão está localizada:

• Meu aplicativo está armazenado em Amazon S3 — Para obter informações, consulte Especificarinformações sobre uma revisão armazenada em um bucket do Amazon S3 (p. 274), e em seguidaretorne a etapa 6.

• Use AppSpec editor (Usar o editor AppSpec) — Selecione JSON ou YAML e digite o seu AppSpecfile no editor fornecido. Você pode salvar o AppSpec file que digitou selecionando Save as textfile (Salvar como arquivo de texto). Quando você clicar em Implantar no final destas etapas vocêreceberá um erro se o JSON ou YAML não for válido. Para obter mais informações sobre a criaçãode uma AppSpec file. consulte Adicionar um arquivo de especificações de aplicativo a uma revisãopara o AWS CodeDeploy (p. 251)

Versão da API 2014-10-06271

Page 282: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma implantação (console) EC2/

No local Plataforma de computação.

6. (Opcional) Em Deployment description (Descrição da implantação), digite uma descrição para estaimplantação.

7. (Opcional) Expanda Deployment group overrides (Substituições de grupo de implantação) paraescolher uma configuração de implantação diferente para controlar como o tráfego é passado para aversão da função Lambda diferente do que a especificada no grupo de implantação.

Para obter mais informações, consulte Configurações de implantação em uma AWS LambdaCompute Platform (p. 217)

8. (Opcional) Em Substituições de configuração de reversão, você pode especificar opções de reversãoautomática para essa implantação diferentes daquelas que foram especificadas para o grupo deimplantação, se houver.

Note

Para obter informações sobre reversões no AWS CodeDeploy consulte Reimplantações ereversões de implantação (p. 18) e Reimplantar e reverter uma implantação com o AWSCodeDeploy (p. 285).

Escolha uma das seguintes opções:

• Roll back when a deployment fails (Reverter quando uma implantação falhar) — AWS CodeDeployreimplantará a última revisão em bom estado como uma nova implantação.

• Roll back when alarm thresholds are me (Reverter quando os limites do alarme forem atingidos)— Se os alarmes forem adicionados ao grupo de implantação, o AWS CodeDeploy reimplantará aúltima revisão quando um ou mais dos alarmes especificados forem ativados.

• Disable rollbacks (Desativar reversões) —Não execute reversões para esta implantação.9. Escolha Criar implantação.

Para acompanhar o status da sua implantação, consulte Visualizar detalhes de implantações do AWSCodeDeploy (p. 280).

Criar uma implantação (console) EC2/No localPlataforma de computação.1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://

console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. Siga um destes procedimentos:

• Se você desejar implantar um aplicativo, no painel de navegação, expanda Deploy (Implantar)e escolha Applications (Aplicativos). Escolha o nome do aplicativo que você deseja implantar.Certifique-se de que a coluna da Compute platform (Plataforma de computação) para o seuaplicativo seja EC2/No local.

• Se você deseja reimplantar uma implantação, no painel de navegação, expanda Deploy (Implantar)e escolha Deployments (Implantações). Localize a implantação que você deseja reimplantar eescolha o nome do aplicativo na coluna Application (Aplicativos). Certifique-se de que a colunaCompute platform (Plataforma de computação) para a sua implantação seja EC2/No local.

3. Na guia Deployments (Implantações), selecione Create deployment (Criar implantação).

Versão da API 2014-10-06272

Page 283: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma implantação (console) EC2/

No local Plataforma de computação.

Note

O aplicativo deve ter um grupo de implantação antes de ser implantado. Se o aplicativonão tiver um grupo de implantação, na guia Deployment groups (Grupos de implantação),selecione Create deployment group (Criar grupo de implantação). Para obter maisinformações, consulte Criar um grupo de implantação com o AWS CodeDeploy (p. 235).

4. Em Deployment group (Grupo de implantação), escolha um grupo de implantação para usar ser usadonesta implantação.

5. Ao lado de Repository type (Tipo de repositório), escolha o tipo de repositório no qual a sua revisãoestá armazenada:

• Meu aplicativo está armazenado em Amazon S3 — Para obter informações, consulte Especificarinformações sobre uma revisão armazenada em um bucket do Amazon S3 (p. 274), e em seguidaretorne a etapa 6.

• Meu aplicativo está armazenado no GitHub — Para obter informações, consulte Especificarinformações sobre uma revisão armazenada em um repositório GitHub (p. 275) abaixo, e emseguida, retorne a etapa 6.

6. (Opcional) Em Deployment description (Descrição da implantação), digite uma descrição para estaimplantação.

7. (Opcional) Expanda Override deployment configuration (Substituir a configuração de implantação)para escolher uma configuração de implantação diferente para controlar como o tráfego é deslocadopara a versão da função do Lambda diferente do que a especificada no grupo de implantação.

Para obter mais informações, consulte Trabalhando com configurações de implantação no AWSCodeDeploy (p. 214).

8. a. Selecione Don't fail the deployment if the ApplicationStop lifecycle event fails (Não falhar aimplantação de uma implantação se o evento de ciclo de vida do ApplicationStop falhar) sedesejar que a implantação para uma instância seja bem-sucedida se o evento do ciclo de vida doApplicationStop falhar.

b. Expanda Additional deployment behavior settings (Configurações de comportamento deimplantação adicional) para especificar como o AWS CodeDeploy lida com arquivos em umalocalização de destino de implantação que não fez parte da implantação anterior bem-sucedida.

Escolha uma das seguintes opções:

• Fail the deployment (Falha na implantação) — Um erro será informado e o status daimplantação mudará para Falha.

• Overwrite the content (Substituir o conteúdo) — Se um arquivo com o mesmo nome existir nalocalização de destino, a versão da revisão do aplicativo o substituirá.

• Retain the content (Reter o conteúdo) — Se um arquivo com o mesmo nome existir nalocalização de destino, ele será mantido e a versão na revisão do aplicativo não será copiadapara a instância.

Para obter mais informações, consulte Comportamento de reversão com conteúdoexistente (p. 287).

9. (Opcional) Em Substituições de configuração de reversão, você pode especificar opções de reversãoautomática para essa implantação diferentes daquelas que foram especificadas para o grupo deimplantação, se houver.

Note

Para obter informações sobre reversões no AWS CodeDeploy consulte Reimplantações ereversões de implantação (p. 27) e Reimplantar e reverter uma implantação com o AWSCodeDeploy (p. 285).

Versão da API 2014-10-06273

Page 284: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma implantação (console) EC2/

No local Plataforma de computação.

Escolha uma das seguintes opções:

• Roll back when a deployment fails (Reverter quando uma implantação falhar) — AWS CodeDeployreimplantará a última revisão em bom estado como uma nova implantação.

• Roll back when alarm thresholds are me (Reverter quando os limites do alarme forem atingidos)— Se os alarmes forem adicionados ao grupo de implantação, o AWS CodeDeploy reimplantará aúltima revisão quando um ou mais dos alarmes especificados forem ativados.

• Disable rollbacks (Desativar reversões) —Não execute reversões para esta implantação.10. Selecione Start deployment (Iniciar implantação).

Para acompanhar o status da sua implantação, consulte Visualizar detalhes de implantações do AWSCodeDeploy (p. 280).

Tópicos• Especificar informações sobre uma revisão armazenada em um bucket do Amazon S3 (p. 274)• Especificar informações sobre uma revisão armazenada em um repositório GitHub (p. 275)

Especificar informações sobre uma revisão armazenada em umbucket do Amazon S3Se você estiver seguindo as etapas em Criar uma implantação (console) EC2/No local Plataforma decomputação. (p. 272), siga estas etapas para adicionar detalhes sobre uma revisão de aplicativoarmazenada em um bucket do Amazon S3.

1. Copie o link da sua revisão do Amazon S3 para a caixa Revision location (Local de revisão). Paraencontrar o valor do link:

a. Em uma guia separada do navegador:

Faça login no Console de gerenciamento da AWS e abra o console da Amazon S3 em https://console.aws.amazon.com/s3/.

Navegue até a sua revisão e escolha-a.b. Se o painel Propriedades não estiver visível, escolha o botão Propriedades.c. No painel Properties (Propriedades), copie o valor do campo Link na caixa Revision location

(Local da revisão) no console AWS CodeDeploy.

Para especificar uma ETag (uma soma de verificação de arquivo) como parte da localização darevisão:

• Se o valor do campo Link terminar em ?versionId=versionId, adicione &etag= e a ETag aofinal 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 dovalor do campo Link.

Note

Embora não seja tão fácil quanto copiar o valor do campo Link, você também pode digitar alocalização da revisão em um dos seguintes formatos:s3://bucket-name/folders/objectNames3://bucket-name/folders/objectName?versionId=versionIds3://bucket-name/folders/objectName?etag=etag

Versão da API 2014-10-06274

Page 285: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma implantação (console) EC2/

No local Plataforma de computação.

s3://bucket-name/folders/objectName?versionId=versionId&etag=etagbucket-name.s3.amazonaws.com/folders/objectName

2. Se for exibida uma mensagem na lista Tipo de arquivo especificando que o tipo de arquivo não pôdeser 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 umrepositório GitHubSe você seguir as etapas em Criar uma implantação (console) EC2/No local Plataforma decomputação. (p. 272), siga estas etapas para adicionar detalhes sobre uma revisão de aplicativoarmazenada 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 paraidentificar 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-seao GitHub. Continue na etapa 4.

• Para criar uma conexão com uma conta do GitHub diferente, saia do GitHub em uma guia separadado navegador. Escolha Conectar-se a uma conta do GitHub e escolha Conectar-se ao GitHub.Continue na etapa 2.

2. Se for solicitado a fazer login no GitHub, siga as instruções na página Fazer login. Entre com seunome de usuário, ou email, 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órioque contém a revisão. Caso não tenha certeza do valor que deve ser digitado:

a. Em uma guia separada do navegador da Web, acesse o dashboard do GitHub.b. 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 caixaNome do repositório.

Note

Se o nome do repositório de destino não estiver visível em Seus repositórios, use a caixaPesquisar no GitHub para localizar o nome do repositório de destino e o nome do usuárioou da organização do GitHub.

5. Na caixa ID de confirmação, digite o ID da confirmação que se refere à revisão no repositório. Casonão tenha certeza do valor que deve ser digitado:

a. Em uma guia separada do navegador da Web, acesse o dashboard do GitHub.b. Em Seus repositórios, escolha o nome do repositório que contém a confirmação de destino.c. 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 enúmeros. (Não use a versão mais curta do ID de confirmação, que consiste normalmente nos 10primeiros caracteres da versão mais longa desse ID de confirmação.)

d. Cole o ID de confirmação na caixa ID de confirmação.

Versão da API 2014-10-06275

Page 286: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma implantação Amazon ECS

Plataforma de computação (CLI)

Criar uma implantação Amazon ECS Plataforma decomputação (CLI)Após você ter criado um aplicativo e a revisão (nas implantações Amazon ECS, esse é o AppSpec file):

Chame o comando create-deployment, especificando:

• Um nome de aplicativo. Para ver uma lista de nomes de aplicativos, chame o comando list-applications.• O nome do grupo da implantação. 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 da revisão carregada.• (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 as revisões armazenadas em um arquivo que não está no Amazon S3, você precisa do nomedo arquivo e o caminho. O seu arquivo de revisão está escrito usando JSON ou YAML, portanto,provavelmente possui uma extensão .json ou .yaml.

• (Opcional) Uma descrição da implantação.

O arquivo de revisão pode ser especificado como um arquivo carregado em um bucket do Amazon S3 oucomo uma string. A sintaxe para cada um quando usado como parte do comando create-deployment é:

• Bucket do Amazon S3:

version e eTag são opcionais.

--s3-location bucket=string,key=string,bundleType=JSON|YAML,version=string,eTag=string

• String:

--revision '{"revisionType": "String", "string": {"content":"revision-as-string"}}'

Note

O comando create-deployment pode carregador uma revisão de um arquivo. Para obter maisinformações, consulte Carregar parâmetros a partir de um arquivo.

Para os modelos de revisão de implantação do AWS Lambda, consulte Adicionar um arquivo AppSpecpara uma implantação de AWS Lambda (p. 253). Para obter uma revisão de exemplo, consulte Exemplode AppSpec File para uma implantação AWS Lambda (p. 363).

Para acompanhar o status da sua implantação, consulte Visualizar detalhes de implantações do AWSCodeDeploy (p. 280).

Versão da API 2014-10-06276

Page 287: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma implantação AWS Lambda

Plataforma de computação (CLI)

Criar uma implantação AWS Lambda Plataforma decomputação (CLI)Após você ter criado um aplicativo e a revisão (nas implantações AWS Lambda, esse é o AppSpec file):

Chame o comando create-deployment, especificando:

• Um nome de aplicativo. Para ver uma lista de nomes de aplicativos, chame o comando list-applications.• O nome do grupo da implantação. 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 da revisão carregada.• (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 as revisões armazenadas em um arquivo que não está no Amazon S3, você precisa do nomedo arquivo e o caminho. O seu arquivo de revisão está escrito usando JSON ou YAML, portanto,provavelmente possui uma extensão .json ou .yaml.

• (Opcional) O nome de uma configuração de implantação a ser usada. Para visualizar uma lista deconfigurações de implantação, chame o comando list-deployment-configs. (Se não for especificado, oAWS CodeDeploy usará uma configuração de implantação padrão específica.)

• (Opcional) Uma descrição da implantação.

O arquivo de revisão pode ser especificado como um arquivo carregado em um bucket do Amazon S3 oucomo uma string. A sintaxe para cada um quando usado como parte do comando create-deployment é:

• Bucket do Amazon S3:

version e eTag são opcionais.

--s3-location bucket=string,key=string,bundleType=JSON|YAML,version=string,eTag=string

• String:

--revision '{"revisionType": "String", "string": {"content":"revision-as-string"}}'

Note

O comando create-deployment pode carregador uma revisão de um arquivo. Para obter maisinformações, consulte Carregar parâmetros a partir de um arquivo.

Para os modelos de revisão de implantação do AWS Lambda, consulte Adicionar um arquivo AppSpecpara uma implantação de AWS Lambda (p. 253). Para obter uma revisão de exemplo, consulte Exemplode AppSpec File para uma implantação AWS Lambda (p. 363).

Para acompanhar o status da sua implantação, consulte Visualizar detalhes de implantações do AWSCodeDeploy (p. 280).

Versão da API 2014-10-06277

Page 288: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma implantação EC2/No local

Plataforma de computação (CLI)

Criar uma implantação EC2/No local Plataforma decomputação (CLI)Para usar a AWS CLI para implantar uma revisão na EC2/No local Plataforma de computação:

1. Depois de ter preparado as instâncias, criado o aplicativo e enviado a revisão, siga um destesprocedimentos:• 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. 279) e continue na etapa 2.2. Chame o comando create-deployment, especificando:

• Um nome de aplicativo. Para ver uma lista de nomes de aplicativos, chame o comando list-applications.

• Um nome do grupo de implantação do Amazon EC2. Para ver uma lista de nomes de grupos deimplantaçã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.

Note

The tar and compressed tar archive file formats (.tar and .tar.gz) are not supported forWindows Server instances.

• (Opcional) O identificador de versão do Amazon S3 da revisão. (Se o identificador de versão não forespecificado, 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á avalidaçã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 deconfigurações de implantação, chame o comando list-deployment-configs. (Se não for especificado, oAWS 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 vidade implantação BeforeInstall caso o evento de ciclo de vida de implantação ApplicationStop falhar.

• (Opcional) Uma descrição da implantação.• Para implantações azul/verde, informações sobre as instâncias que pertencem ao ambiente de

substituição em uma implantação azul/verde, incluindo os nomes de um ou mais grupos do AmazonEC2 Auto Scaling, ou a chave, o tipo e o valor do filtro de tag usados para identificar as instâncias doAmazon EC2.

Note

Use essa sintaxe como parte da chamada create-deployment para especificar informações sobreuma revisão no Amazon S3 diretamente na linha de comando. (version e eTag são opcionais.)

Versão da API 2014-10-06278

Page 289: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma implantação EC2/No local

Plataforma de computação (CLI)

--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 sobreuma 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-application-revisions.

Para acompanhar o status da sua implantação, consulte Visualizar detalhes de implantações do AWSCodeDeploy (p. 280).

Tópicos• Conectar um aplicativo AWS CodeDeploy a um repositório GitHub (p. 279)

Conectar um aplicativo AWS CodeDeploy a um repositórioGitHubPara implantar um aplicativo a partir de um repositório GitHub pela primeira vez, usando a AWS CLI, vocêdeve primeiro conceder permissão ao AWS CodeDeploy para interagir com o GitHub em nome da suaconta do GitHub. Essa etapa deve ser concluída uma vez para cada aplicativo usando o console do AWSCodeDeploy.

1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No menu do AWS CodeDeploy, escolha Deployments (Implantações).3. Escolha Criar implantação.

Note

Você não criará uma nova implantação. No momento, essa é a única maneira de darpermissão ao AWS CodeDeploy para interagir com o GitHub em nome da sua conta deusuário do GitHub.

4. Na lista suspensa Aplicativo, escolha o aplicativo que você deseja vincular à sua conta de usuário doGitHub.

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.7. Escolha Conectar-se ao GitHub.

Note

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 emnome de uma conta do GitHub diferente para o aplicativo.Você pode ter revogado a autorização para o AWS CodeDeploy interagir com o GitHubem nome da conta do GitHub conectada com todos os aplicativos vinculados ao AWSCodeDeploy.

Versão da API 2014-10-06279

Page 290: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisualizar detalhes de implantações

Para obter mais informações, consulte Autenticação do GitHub com aplicativos no AWSCodeDeploy (p. 57).

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 Cancel (Cancelar), e continue com as etapas

em Criar uma implantação EC2/No local Plataforma de computação (CLI) (p. 278)

Visualizar detalhes de implantações do AWSCodeDeploy

Você pode usar o console do AWS CodeDeploy, a AWS CLI ou as APIs do AWS CodeDeploy paravisualizar detalhes sobre implantações associadas à sua conta da AWS.

Note

Você pode visualizar logs de implantação de EC2/No local em suas instâncias nos seguinteslocais:

• 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 deimplantação em instâncias (p. 393).

Tópicos• Visualizar detalhes de implantações (console) (p. 280)• Visualizar detalhes de implantações (CLI) (p. 281)

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 https://console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Deployments(Implantações).

Note

Se não for exibida nenhuma entrada, verifique se a região correta está selecionada. Nabarra de navegação, no seletor de região, escolha uma das regiões listadas em Região eendpoints, no AWS General Reference. O AWS CodeDeploy tem suporte somente nessasregiões.

3. Para ver mais detalhes de uma única implantação, em Deployment history (Histórico de implantação),escolha o ID da implantação ou escolha o botão próximo ao ID da implantação e View (Visualizar).

Versão da API 2014-10-06280

Page 291: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisualizar detalhes de implantações (CLI)

Visualizar detalhes de implantações (CLI)Para usar a AWS CLI para visualizar os detalhes da implantação, chame o comando get-deploymentou o comando batch-get-deployments. É possível chamar o comando list-deployments paraobter 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, especificandoo identificador de implantação exclusivo. Para obter o ID de implantação, chame o comando list-deployments.

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 ocomando 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 ocomando list-applications.

• O nome do grupo de implementação associado à implantação. Para ver uma lista de nomes de gruposde implantação, chame o comando list-deployment-groups.

• Opcionalmente, se você deseja incluir detalhes sobre implantações de acordo com seu status deimplantaçã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 deinício e/ou de término de criação. (Se não for especificado, todas as implantações correspondentesserão listadas, independentemente da hora de criação.)

Visualizar dados de log para implantações de EC2/No local do AWS CodeDeploy

Você pode visualizar os dados de log criados por uma implantação do AWS CodeDeploy configurandoo agente do Amazon CloudWatch Logs para visualizar dados agregados no console do CloudWatch oufazendo login em uma instância individual para rever o arquivo de log.

Note

Logs não têm suporte para implantações da AWS Lambda ou Amazon ECS. Eles podem sercriados apenas para implantações de EC2/No local.

Tópicos• Visualizar dados do arquivo de log no console do Amazon CloudWatch (p. 281)• Visualizar arquivos de log em uma instância (p. 282)

Visualizar dados do arquivo de log no console doAmazon CloudWatchQuando o agente do Amazon CloudWatch Logs está instalado em uma instância, os dados de log de todasas 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

Versão da API 2014-10-06281

Page 292: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisualizar arquivos de log em uma instância

de log centralmente em vez de visualizá-los caso a caso. Para obter informações sobre como configuraro agente de logs do Amazon CloudWatch, consulte Visualizar logs do AWS CodeDeploy no console doCloudWatch Logs.

Visualizar arquivos de log em uma instânciaPara visualizar dados de log de implantação para uma instância individual, você pode entrar nessainstâ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, do RHEL e do Ubuntu

Server (p. 282)• Para visualizar arquivos de logs de implantação em instâncias do Windows Server (p. 283)

Para visualizar arquivos de log de implantação em instâncias doAmazon Linux, do RHEL e do Ubuntu ServerEm instâncias do Amazon Linux, do RHEL e do Ubuntu Server, os logs de implantação são armazenadosno seguinte local:

/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 e do UbuntuServer, faça login na instância e digite o seguinte comando para abrir o arquivo de log do agente do AWSCodeDeploy:

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 Resultado

& ERROR Mostrar apenas as mensagens de erro no arquivode log. Use um único espaço antes e depois dapalavra 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 Ir para o final do arquivo de log.

g Ir para o início do arquivo de log.

q Sair do arquivo de log.

h Saber mais sobre comandos adicionais.

¹ Depois de digitar / ERROR , digite n para a próxima mensagem de erro. Digite N para a mensagem deerro anterior.

² Depois de digitar ? ERROR , digite n para a próxima mensagem de erro ou digite N para a mensagemde erro anterior.

Versão da API 2014-10-06282

Page 293: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioVisualizar arquivos de log em uma instância

Você também pode digitar o seguinte comando para abrir um arquivo de log de scripts do AWSCodeDeploy:

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 Resultado

&stderr Mostrar apenas as mensagens de erro no arquivode log.

/stderr Procurar a próxima mensagem de erro.¹

?stderr Procurar a mensagem de erro anterior.²

G Ir para o final do arquivo de log.

g Ir para o início do arquivo de log.

q Sair do arquivo de log.

h Saber mais sobre comandos adicionais.

¹Depois de digitar /stderr, digite n para a próxima mensagem de erro adiante. Digite N para amensagem de erro anterior retroativamente.

² Depois de digitar ?stderr, digite n para a próxima mensagem de erro anterior. Digite N para amensagem de erro anterior adiante.

Para visualizar arquivos de logs de implantação em instâncias doWindows ServerArquivo de log do agente do AWS CodeDeploy: em instâncias do Windows Server, o arquivo de log doagente do AWS CodeDeploy é armazenado no seguinte local:

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 WindowsServer, faça login nessa instância e digite o seguinte comando para abrir o arquivo:

notepad C:\ProgramData\Amazon\CodeDeploy\log\codedeploy-agent-log.txt

Para procurar mensagens de erro no arquivo de log, pressione CTRL+F, digite ERROR [ e, em seguida,pressione Enter para encontrar o primeiro erro.

Arquivos de log de scripts do AWS CodeDeploy: em instâncias do Windows Server, os logs de implantaçãosão armazenados no seguinte local:

C:\ProgramData\Amazon\CodeDeploy\deployment-group-id\deployment-id\logs\scripts.log

Onde:

• deployment-group-id é uma string como examplebf3a9c7a-7c19-4657-8684-b0c68d0cd3c4

Versão da API 2014-10-06283

Page 294: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioInterromper uma implantação

• 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 mensagens de erro no arquivo de log, pressione CTRL+F, digite stderr e, em seguida,pressione Enter para encontrar o primeiro erro.

Interromper uma implantação com o AWSCodeDeploy

Você pode usar o console do AWS CodeDeploy a AWS CLI ou as APIs do AWS CodeDeploy parainterromper as implantações associadas com a sua conta AWS.

Warning

Interromper uma implantação de EC2/No local pode deixar algumas ou todas as instâncias nosseus grupos de implantação em um estado de implantação indeterminado. Para obter maisinformações, consulte Implantações interrompidas e com falha (p. 27).

Tópicos• Interromper uma implantação (console) (p. 284)• Interromper uma implantação (CLI) (p. 285)

Interromper uma implantação (console)1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://

console.aws.amazon.com/codedeploy.Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Deployments(Implantações).

Note

Se não for exibida nenhuma entrada, verifique se a região correta está selecionada. Nabarra de navegação, no seletor de região, escolha uma das regiões listadas em Região eendpoints, no AWS General Reference. O AWS CodeDeploy tem suporte somente nessasregiões.

3. Escolha a implantação que você deseja interromper faça um dos seguintes:

1. Escolha Stop deployment (Interromper implantação) para interromper a implantação sem umareversão.

2. Escolha Stop and roll back deployment (Interromper e reverter implantação) para interromper ereverter a implantação.

Para obter mais informações, consulte Reimplantar e reverter uma implantação com o AWSCodeDeploy (p. 285).

Versão da API 2014-10-06284

Page 295: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioInterromper uma implantação (CLI)

Note

Se Stop deployment (Interromper uma implantação) e Stop and roll back deployment(Interromper e reverter implantação) não estiverem disponíveis, 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 deimplantação, chame o comando list-deployments.

Reimplantar e reverter uma implantação com oAWS CodeDeploy

O AWS CodeDeploy reverte as implantações redistribuindo uma revisão previamente implantada deum aplicativo como uma nova implantação. Essas implementações revertidas são tecnicamente novasimplantaçõ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. 285)• Reversões manuais (p. 285)• Fluxo de trabalho de reversão e reimplantação (p. 286)• Comportamento de reversão com conteúdo existente (p. 287)

Reversões automáticasVocê pode configurar um grupo de implantação ou uma implantação para reversão automática quandouma 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õesautomáticas são configuradas quando um aplicativo é criado ou quando um grupo de implantação é criadoou atualizado.

Ao criar uma nova implantação, você também pode optar por substituir a configuração de reversãoautomática que foi especificada para o grupo de implantação.

Note

Você pode usar o Amazon Simple Notification Service para receber uma notificação sempreque uma implantação for revertida automaticamente. Para obter mais informações, consulteMonitoramento de implantações com notificações de eventos do Amazon SNS (p. 305).

Para obter mais informações sobre como configurar reversões automáticas, consulte Configurar opçõesavançadas para um grupo de implantação (p. 246).

Reversões manuaisSe você não tiver configurado reversões automáticas, poderá reverter manualmente uma implantaçãocriando uma nova implantação que usa qualquer revisão de aplicativo implantada anteriormente eseguindo as etapas para reimplementar uma revisão. Isso pode ser feito quando um aplicativo entraem um estado desconhecido. Em vez de gastar muito tempo com a solução de problemas, você pode

Versão da API 2014-10-06285

Page 296: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioFluxo 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. 267).

Note

Se você remover uma instância de um grupo de implantação, o AWS CodeDeploy nãodesinstalará nada que possa já ter sido instalado nessa instância.

Fluxo de trabalho de reversão e reimplantaçãoQuando a reversão automática é iniciada, ou quando você inicia manualmente uma reimplantação oureversão manual, o AWS CodeDeploy primeiro tenta remover de cada instância participante todos osarquivos que foram instalados com êxito da última vez. O AWS CodeDeploy faz isso ao verificar o arquivode limpeza:

Arquivo /opt/codedeploy-agent/deployment-root/deployment-instructions/deployment-group-ID-cleanup (para instâncias do Amazon Linux, do Ubuntu Server e do 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 arquivoslistados 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 umainstância do Amazon EC2 que executa o Windows Server, e os scripts criaram mais dois arquivos de textodurante 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.txtc:\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 osdois arquivos de script, deixando intactos os dois últimos arquivos de texto:

c:\temp\a.txt will be removedc:\temp\b.txt will be removedc:\temp\c.bat will be removedc:\temp\d.bat will be removedc:\temp\e.txt will remainc:\temp\f.txt will remain

Como parte desse processo, o AWS CodeDeploy não tentará reverter ou reconciliar ações realizadaspor qualquer script em implantações anteriores durante reimplantações subsequentes, sejam reversõesmanuais ou automáticas. Por exemplo, se os arquivos c.bat e d.bat contiverem lógica para nãorecriar os arquivos e.txt e f.txt caso estes já existam, as versões antigas de e.txt e de f.txtpermanecerão inalteradas sempre que o AWS CodeDeploy executar c.bat e d.bat nas implantaçõessubsequentes. Você pode adicionar lógica a c.bat e d.bat para sempre verificar e excluir versõesantigas de e.txt e f.txt antes de criar novas.

Versão da API 2014-10-06286

Page 297: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioComportamento de reversão com conteúdo existente

Comportamento de reversão com conteúdo existenteComo parte do processo de implantação, o agente do AWS CodeDeploy remove de cada instânciatodos os arquivos instalados pela implantação mais recente. Se arquivos que não faziam parte de umaimplantação anterior aparecerem em localizações de implantação de destino, você poderá escolher o queo AWS CodeDeploy deve fazer com eles durante a próxima implantação:

• Fail the deployment (Falha na implantação) — Um erro será informado e o status da implantaçãomudará para Falha.

• Overwrite the content (Substituir o conteúdo) — A versão do arquivo da revisão de aplicativo substitui aversão que já está na instância.

• Retain the content (Reter o conteúdo) — O arquivo no local de destino é mantido, e a versão na revisãodo 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 precisaradicioná-los ao pacote de revisão de aplicativo. Por exemplo, você pode carregar diretamente na instânciaos arquivos que são necessários para a implantação, mas que não foram adicionados ao pacote derevisão de aplicativo. Outra opção é carregar arquivos na instância caso os seus aplicativos já estejam noseu 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 reimplantadadevido a uma falha de implantação, a opção de tratamento de conteúdo para essa última implementaçãobem-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ãona 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 asegunda implementação com falha estará mais disponível (não pode ser mantido) quando a revisão deaplicativo 1 for implantada novamente durante a implantação 3:

Implantação Revisão deaplicativo

Opção desubstituição deconteúdo

Status daimplantação

Comportamento eresultado

implantação 1 revisão deaplicativo 1

MANTER Bem-sucedido O AWSCodeDeploydetecta arquivosnas localizaçõesde destino que nãoforam implantadospela implantaçãoanterior. Essesarquivos podem tersido colocados láintencionalmentepara se tornaremparte daimplantação atual.Eles são mantidose registrados comoparte do pacote deimplantação atual.

Versão da API 2014-10-06287

Page 298: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioComportamento de reversão com conteúdo existente

Implantação Revisão deaplicativo

Opção desubstituição deconteúdo

Status daimplantação

Comportamento eresultado

implantação 2 revisão deaplicativo 2

SUBSTITUIR Reprovada Durante oprocesso deimplantação, oAWS CodeDeployexclui todos osarquivos quefazem parte daimplantaçãoanterior bem-sucedida. Issoinclui os arquivosque forammantidos durante aimplantação 1.

No entanto, aimplantação falhapor motivos nãorelacionados.

implantação 3 revisão deaplicativo 1

MANTER   Como a reversãoautomática estáhabilitada paraa implantaçãoou o grupo deimplantação, oAWS CodeDeployimplanta a revisãode aplicativoem bom estadoconhecida,a revisão deaplicativo 1.

No entanto, osarquivos que vocêqueria manter naimplantação 1foram excluídosantes da falha daimplantação 2 enão podem serrecuperados peloAWS CodeDeploy.Você poderáadicioná-los àinstância se elesforem necessáriopara a revisão deaplicativo 1, oupoderá criar umanova revisão deaplicativo.

Versão da API 2014-10-06288

Page 299: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioImplantar um aplicativo em uma conta da AWS diferente

Implantar um aplicativo em uma conta da AWSdiferente

Em geral, as organizações têm várias contas da AWS que utilizam para diferentes propósitos (porexemplo, uma para tarefas de administração de sistema e outra para tarefas de desenvolvimento, testee produção, ou ainda uma associada a ambientes de desenvolvimento e teste e outra associada aoambiente de produção).

Embora você possa realizar trabalhos relacionados em diferentes contas, os grupos de implantação doAWS CodeDeploy e as instâncias do Amazon EC2 nas quais eles são implantados estão estritamentevinculados às contas nas quais eles foram criados. Por exemplo, você não pode adicionar uma instânciainiciada 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 naconta de produção sem um conjunto completo de credenciais ou sem ter que se desconectar da conta dedesenvolvimento e entrar na conta de produção.

Depois de seguir as etapas de configuração entre contas, você poderá iniciar implantações que pertencema outra das contas da sua organização, sem precisar de um conjunto completo de credenciais para essaoutra conta. Isso é feito em parte usando uma capacidade fornecida pelo Serviço de token de segurançada AWS (AWS STS), que concede acesso temporário a essa conta.

Etapa 1: criar um bucket do S3 em qualquer uma dascontasNa 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 aconta de produção serão armazenadas. Para obter informações, consulte Criar um bucket no AmazonS3. Você pode até mesmo usar o mesmo bucket e as mesmas revisões de aplicativo para ambas ascontas, implantando no seu ambiente de produção os mesmos arquivos que você testou e verificou nasua conta de desenvolvimento.

Etapa 2: conceder permissões de bucket do AmazonS3 ao perfil de instâncias do IAM da conta deproduçãoSe 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á naconta 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 informações, consulte Etapa 4:criar um perfil de instância do IAM para as suas instâncias do Amazon EC2 (p. 36).

Note

Anote o ARN desse perfil de instâncias do IAM. Você precisará adicioná-lo à política entrebuckets que será criada em seguida.

Versão da API 2014-10-06289

Page 300: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 3: criar recursos e uma funçãoentre contas na conta de produção

• Na conta de desenvolvimento, dê acesso ao bucket do Amazon S3 criado na conta de desenvolvimentopara o perfil de instâncias do IAM que você acabou de criar na sua conta de produção. Para obterinformações, consulte Exemplo 2: proprietário do bucket concedendo permissões para bucket entrecontas.

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 amostrafornecida no passo a passo.

{ "Version": "2012-10-17", "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 deinstâ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 naconta de produçãoNa sua conta de produção:

• Crie seus recursos do AWS CodeDeploy, como aplicativo, grupo de implantação, configuração deimplantação, instância do Amazon EC2, perfil de instância do Amazon EC2, função de serviço e assimpor 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 dedesenvolvimento 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 paraajudar a criar a função entre contas. Em vez de adicionar as permissões de amostra no passo a passoao seu documento de política, você deve anexar à função pelo menos as duas políticas a seguirfornecidas pela AWS:

Versão da API 2014-10-06290

Page 301: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEtapa 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 S3na 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 apolítica AWSCodeDeployFullAccess em vez da política AWSCodeDeployDeployerAccess. Paraobter mais informações sobre como usar políticas gerenciadas do IAM para conceder permissõespara tarefas do AWS CodeDeploy, consulte Políticas gerenciadas (predefinidas) da AWS para o AWSCodeDeploy (p. 323).

Você poderá anexar políticas adicionais se quiser realizar tarefas em outros serviços da AWS enquantousa essa função entre contas.

Important

À medida que você criar a função do IAM entre contas, anote os detalhes que serão necessáriospara obter acesso à conta de produção.Para usar o Console de gerenciamento da AWS para trocar de função, você precisará forneceruma 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 Review (Revisão), que é exibida no final do processo de criação defunçã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 doAmazon S3Na conta em que você criou o bucket do Amazon S3:

• Carregue sua revisão de aplicativo no bucket do Amazon S3. Para obter informações, consulte Enviaruma revisão por push do AWS CodeDeploy para o Amazon S3 (somente implantações de EC2/Nolocal) (p. 259).

Etapa 5: assumir a função entre contas e implantaraplicativosNa conta de desenvolvimento, você pode usar a AWS CLI ou o Console de gerenciamento da AWS paraassumir 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 einiciar implantações, consulte Alternar para uma função (Console de Gerenciamento da AWS) e Criar umaimplantação (console) EC2/No local Plataforma de computação. (p. 272).

Para obter instruções sobre como usar a AWS CLI para assumir a função entre contas e iniciarimplantações, consulte Alternar para uma função do IAM (Interface de linha de comando da AWS) e Criaruma implantação EC2/No local Plataforma de computação (CLI) (p. 278).

Versão da API 2014-10-06291

Page 302: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioValidar um pacote de implantação em uma máquina local

Para obter mais informações sobre como assumir uma função por meio do AWS STS, consulteAssumeRole no documento Guia do usuário do AWS Security Token Service e assume-role na Referênciade comando da CLI da AWS.

Tópico relacionado:

• AWS CodeDeploy: implantar de uma conta de desenvolvimento em uma conta de produção

Usar o agente do AWS CodeDeploy para validarum pacote de implantação em uma máquina local

Ao usar o agente do AWS CodeDeploy, você pode implantar conteúdo na instância em que estáconectado. Dessa forma, é possível testar a integridade de um arquivo de especificação de aplicativo(AppSpec file) que você pretende usar em uma implantação e do conteúdo que pretende implantar.

Você não precisa criar um grupo de aplicativo e implantação. Se quiser implantar o conteúdo armazenadona instância local, você não precisará sequer de uma conta da AWS. Para testes mais simples, você podeexecutar o comando codedeploy-local, sem especificar nenhuma opção, em um diretório que contenha oAppSpec file e o conteúdo a ser implantado. Existem opções para outros casos de teste na ferramenta.

Ao validar um pacote de implantação em uma máquina local, é possível:

• Testar a integridade de uma revisão de aplicativo.• Testar o conteúdo de um AppSpec file.• Testar o AWS CodeDeploy pela primeira vez com seu código de aplicativo existente.• Implantar o conteúdo rapidamente quando você já estiver conectado a uma instância.

Você pode implantar o conteúdo armazenado na instância local ou em um tipo de repositório remotocompatível (buckets do Amazon S3 ou repositórios públicos do GitHub).

Pré-requisitosAntes de iniciar uma implantação local, siga estas etapas:

• Crie ou use um tipo de instância compatível com o agente do AWS CodeDeploy. Para obterinformações, consulte Sistemas operacionais com suporte com o agente do AWS CodeDeploy (p. 132).

• Instale a versão 1.0.1.1352 ou posterior do agente do AWS CodeDeploy. Para obter informações,consulte Instalar ou reinstalar o agente do AWS CodeDeploy (p. 142).

• Se você estiver implantando seu conteúdo a partir de um bucket do Amazon S3 ou de repositório doGitHub, forneça um usuário do IAM para uso com o AWS CodeDeploy. Para obter informações, consulteEtapa 1: provisionar um usuário do IAM (p. 30).

• Se você estiver implantando sua revisão de aplicativo a partir de um bucket do Amazon S3, crie umbucket do Amazon S3 na região em que você está trabalhando e aplique uma política de bucket doAmazon S3 ao bucket. Essa política concede às suas instâncias as permissões necessárias para baixara revisão de aplicativo.

Por exemplo, a seguinte política de bucket do Amazon S3 permite que qualquerinstância do Amazon EC2 com um perfil de instâncias anexado do IAM contendo o ARNarn:aws:iam::80398EXAMPLE:role/CodeDeployDemo para fazer o download de qualquer lugar nobucket do Amazon S3 chamado de codedeploydemobucket.

{

Versão da API 2014-10-06292

Page 303: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioPré-requisitos

"Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::80398EXAMPLE:role/CodeDeployDemo" ] } } ]}

A seguinte política do bucket Amazon S3 permite que qualquer instância no local com um usuáriodo IAM associado, contendo o ARN do arn:aws:iam::80398EXAMPLE:user/CodeDeployUserpara que seja feito o download de qualquer lugar no bucket do Amazon S3 chamado decodedeploydemobucket.

{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::80398EXAMPLE:user/CodeDeployUser" ] } } ]}

Para obter informações sobre como gerar e anexar uma política de bucket do Amazon S3, consulteExemplos de políticas de bucket.

• Se você estiver implantando sua revisão de aplicativo a partir de um bucket do Amazon S3 ou derepositório do GitHub, configure um perfil da instância do IAM e o anexe à instância. Para obterinformações, consulte Etapa 4: criar um perfil de instância do IAM para as suas instâncias do AmazonEC2 (p. 36), Criar uma instância do Amazon EC2 para o AWS CodeDeploy (AWS CLI ou console doAmazon EC2) (p. 165) e Criar uma instância do Amazon EC2 para o AWS CodeDeploy (modelo do AWSCloudFormation) (p. 171).

• Se você estiver implantando seu conteúdo a partir do GitHub, crie uma conta do GitHub e um repositóriopúblico. Para criar uma conta do GitHub, consulte Participar do GitHub. Para criar um repositório GitHub,consulte Criar um repositório.

Note

Atualmente, não há suporte para repositórios privados. Se o conteúdo estiver armazenado emum repositório privado do GitHub, você poderá fazer download dele para a instância e usar aopção --bundle-location para especificar seu caminho local.

• Prepare o conteúdo (incluindo um arquivo AppSpec) que você quer implantar na instância e coloque-o na instância local, no seu bucket do Amazon S3 ou no seu repositório do GitHub. Para obterinformações, consulte Trabalhando com revisões de aplicativos para o AWS CodeDeploy (p. 250).

Versão da API 2014-10-06293

Page 304: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar uma implantação local

• Se você quiser usar valores diferentes dos padrões para outras opções de configuração, crie o arquivode configuração e coloque-o na instância (/etc/codedeploy-agent/conf/codedeployagent.ymlpara instâncias do Amazon Linux, RHEL ou Ubuntu Server ou C:\ProgramData\Amazon\CodeDeploy\conf.yml para instâncias do Windows Server). Para obter informações, consulteReferência de configuração do agente do AWS CodeDeploy (p. 367).

Note

Ao usar um arquivo de configuração nas instâncias do Amazon Linux, RHEL ou Ubuntu Server,você precisa realizar uma das seguintes ações:• Usar as variáveis :root_dir: e :log_dir: para especificar locais diferentes dos padrões

para as pastas do diretório raiz e de log da implantação.• Usar sudo para executar os comandos do agente do AWS CodeDeploy.

Criar uma implantação localNa instância em que você quer criar a implantação local, abra uma sessão de terminal (instâncias doAmazon Linux, RHEL ou Ubuntu Server) ou um prompt de comando (Windows Server) para executar oscomandos da ferramenta.

Note

O comando codedeploy-local é instalado nos seguintes locais:

• Em Amazon Linux, RHEL ou Ubuntu Server: /opt/codedeploy-agent/bin.• Em Windows Server: C:\ProgramData\Amazon\CodeDeploy\bin.

Sintaxe básica de comando

codedeploy-local [options]

Resumo

codedeploy-local[--bundle-location <value>][--type <value>][--file-exists-behavior <value>][--deployment-group <value>][--events <comma-separated values>][--agent-configuration-file <value>]

Opções

-l, --bundle-location

O local do pacote de revisão do aplicativo. Se você não especificar um local, por padrão, a ferramentausará o diretório no qual você está trabalhando no momento. Se você especificar um valor para --bundle-location, também deverá especificar um valor para --type.

Exemplos de formato de local do pacote:

• Instância de Amazon Linux, RHEL ou Ubuntu Server local: /path/to/local/bundle.tgz• Instância de Windows Server local: C:/path/to/local/bundle• Bucket do Amazon S3: s3://mybucket/bundle.tar• Repositório do GitHub: https://github.com/account-name/repository-name/

Versão da API 2014-10-06294

Page 305: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExemplos

-t, --type

O formato do pacote de revisão do aplicativo. Os tipos compatíveis incluem tgz, tar, zip e directory.Se você não especificar um tipo, a ferramenta usará directory por padrão. Se você especificar um valorpara --type, também deverá especificar um valor para --bundle-location.

-b, --file-exists-behavior

Indica como são processados os arquivos que já existem em um local de destino de implantação, mas nãofaziam parte de uma implantação anterior bem-sucedida. As opções incluem DISALLOW, OVERWRITE eRETAIN. Para obter mais informações, consulte fileExistsBehavior em AWS CodeDeploy API Reference.

-g, --deployment-group

O caminho para a pasta que é o local de destino do conteúdo a ser implantado. Se você não especificaruma pasta, a ferramenta criará uma com o nome default-local-deployment-group no diretório raiz da suaimplantação. Para cada implantação local que você cria, a ferramenta gera um subdiretório dentro destapasta com nomes como d-98761234-local.

-e, --events

Um conjunto de ganchos de evento de ciclo da vida para substituição que você deseja executar, emordem, no lugar dos eventos que listou no AppSpec file. É possível especificar vários ganchos, separando-os por vírgulas. Você pode usar essa opção se:

• Quiser executar um conjunto diferente de eventos sem ter que atualizar o AppSpec file.• Quiser executar um único gancho de evento como uma exceção ao que está no AppSpec file, comoApplicationStop.

Se você não especificar os eventos DownloadBundle e Install na lista de substituição, eles serãoexecutados antes de todos os ganchos de eventos que você especificar. Se você incluir DownloadBundlee Install na lista de opções de --events, eles deverão ser precedidos apenas por eventos normalmenteexecutados antes deles nas implantações do AWS CodeDeploy. Para obter informações, consulte Seção'hooks' de AppSpec (p. 347).

-c, --agent-configuration-file

O local de um arquivo de configuração a ser usado para a implantação, se você o armazenar em umlocal diferente do padrão. Um arquivo de configuração especifica alternativas para outros valores ecomportamentos padrão de uma implantação.

Por padrão, os arquivos de configuração são armazenados em /etc/codedeploy-agent/conf/codedeployagent.yml (instâncias do Amazon Linux, RHEL ou Ubuntu Server) ou C:/ProgramData/Amazon/CodeDeploy/conf.yml (Windows Server). Para obter mais informações, consulte Referênciade configuração do agente do AWS CodeDeploy (p. 367).

-h, --help

Exibe um resumo do conteúdo de ajuda.

-v, --version

Exibe o número de versão da ferramenta.

ExemplosVeja a seguir exemplos de formatos de comando válidos.

Versão da API 2014-10-06295

Page 306: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExemplos

codedeploy-local

codedeploy-local --bundle-location /path/to/local/bundle/directory

codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group my-deployment-group

codedeploy-local --bundle-location /path/to/local/directory --type directory --deployment-group my-deployment-group

Implantar um pacote a partir do Amazon S3:

codedeploy-local --bundle-location s3://mybucket/bundle.tgz --type tgz

codedeploy-local --bundle-location s3://mybucket/bundle.zip?versionId=1234&etag=47e8 --type zip --deployment-group my-deployment-group

Implantar um pacote a partir de um repositório público do GitHub:

codedeploy-local --bundle-location https://github.com/awslabs/aws-codedeploy-sample-tomcat --type zip

codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/master --type zip

codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/HEAD --type zip

codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/1a2b3c4d --type zip

Implantar um pacote especificando vários eventos de ciclo de vida:

codedeploy-local --bundle-location /path/to/local/bundle.tar --type tar --application-folder my-deployment --events DownloadBundle,Install,ApplicationStart,HealthCheck

Interromper um aplicativo implantado anteriormente usando o evento de ciclo de vida ApplicationStop:

codedeploy-local --bundle-location /path/to/local/bundle.tgz --type tgz --deployment-group --events ApplicationStop

Implantar usando um ID de grupo específico para implantação:

codedeploy-local --bundle-location C:/path/to/local/bundle/directory --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca

codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca

Versão da API 2014-10-06296

Page 307: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioFerramentas automatizadas

Monitorando implantações no AWSCodeDeploy

O monitoramento é uma parte importante da manutenção da confiabilidade, da disponibilidade eda performance do AWS CodeDeploy e das suas soluções da AWS. Você deve coletar dados demonitoramento de todas as partes de sua solução da AWS para ser mais fácil realizar a depuração de umafalha de vários pontos (caso ocorra). Porém, para começar a monitorar o AWS CodeDeploy, é necessáriocriar um plano de monitoramento que inclua respostas às 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 um parâmetro de desempenho normal da AWS CodeDeploy no ambientemedindo a performance em vários momentos e em diferentes condições de carga. À medida que vocêmonitora o AWS CodeDeploy, armazene dados históricos de monitoramento para compará-los com osdados de desempenho atuais, identificar padrões de desempenho normais e anomalias de desempenho eelaborar métodos para resolver problemas.

Por exemplo, se você estiver usando o AWS CodeDeploy, poderá monitorar o status das implantações edas instâncias de destino. Quando as implementações ou instâncias falharem, você precisará reconfigurarum arquivo de especificação de aplicativo, reinstalar ou atualizar o agente do AWS CodeDeploy, atualizarconfigurações em um aplicativo ou grupo de implantação ou fazer alterações nas configurações deinstâ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 automatizadasA AWS fornece várias ferramentas que você pode usar para monitorar o AWS CodeDeploy. É possívelconfigurar algumas dessas ferramentas para fazer o monitoramento em seu lugar, e, ao mesmo tempo,algumas das ferramentas exigem intervenção manual. Recomendamos que as tarefas de monitoramentosejam automatizadas ao máximo possível.

Use as seguintes ferramentas de monitoramento automatizado para observar o AWS CodeDeploy e gerarrelatórios quando algo estiver errado:

• Alarmes do Amazon CloudWatch – observe uma única métrica ao longo de um período de tempoque você especificar e realize uma ou mais ações com base no valor da métrica em relação a umdeterminado limite ao longo de vários períodos. A ação é uma notificação enviada a um tópico doAmazon Simple Notification Service (Amazon SNS) ou a uma política do Amazon EC2 Auto Scaling.

Versão da API 2014-10-06297

Page 308: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioFerramentas manuais

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 maisinformações, consulte Monitorar implantações com ferramentas do Amazon CloudWatch (p. 299).

Para obter informações sobre como atualizar sua função de serviço para funcionar com o monitoramentode alarmes do CloudWatch, consulte Conceder permissões do CloudWatch a uma função de serviçodo AWS CodeDeploy (p. 300). Para obter informações sobre como adicionar o monitoramento dealarmes do CloudWatch a suas operações do AWS CodeDeploy, consulte Criar um aplicativo com oAWS CodeDeploy (p. 221), Criar um grupo de implantação com o AWS CodeDeploy (p. 235) ou Alterarconfigurações do grupo de implantação com o AWS CodeDeploy (p. 244).

• Amazon CloudWatch Logs – monitore, armazene e acesse seus arquivos de log de AWS CloudTrail ououtras fontes. Para mais informações, consulte Monitoramento de arquivos de log no Guia do usuário doAmazon CloudWatch.

Para obter informações sobre como usar o console do CloudWatch para visualizar logs do AWSCodeDeploy, 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 maisfunções ou fluxos de destino para fazer alterações, capturar informações de estado e realizar açõescorretivas. Para obter mais informações, consulte O que é o Amazon CloudWatch Events no Guia dousuário do Amazon CloudWatch.

Para obter informações sobre como usar o Eventos do CloudWatch em suas operações doAWS CodeDeploy, consulte Monitoramento de implantações com o Eventos do AmazonCloudWatch (p. 301).

• Monitoramento de log do AWS CloudTrail – Compartilhe arquivos de log entre contas, monitore osarquivos de log do CloudTrail em tempo real enviando-os para o CloudWatch Logs, escreva aplicaçõesde processamento de logs em Java e confirme se os arquivos de log não foram alterados após adistribuição pelo CloudTrail. Para obter mais informações, consulte Working with CloudTrail Log Files noAWS CloudTrail User Guide.

Para obter informações sobre como usar o CloudTrail com o AWS CodeDeploy, consulte Monitoramentode implantações com o AWS CloudTrail (p. 303).

• Amazon Simple Notification Service — configure gatilhos com base em eventos para recebernotificações por SMS ou e-mail sobre eventos de implantação e instâncias, como êxitos ou falhas. Paraobter 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 Monitoramento de implantações com notificações de eventos do Amazon SNS (p. 305).

Ferramentas de monitoramento manualOutra parte importante do monitoramento do AWS CodeDeploy envolve o monitoramento manualdesses itens que os alarmes do CloudWatch não abrangem. Os painéis dos consoles do AWSCodeDeploy, CloudWatch e outros da AWS fornecem uma visão rápida do estado do ambiente da AWS.Recomendamos que você também verifique os arquivos de registro do AWS CodeDeploy deployments.

• O console do AWS CodeDeploy mostra:• O status das implantações• A data e a hora de cada última tentativa de implantação e de cada última implementação bem-

sucedida 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

Versão da API 2014-10-06298

Page 309: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioMonitorando implantações com

ferramentas do Amazon CloudWatch

• 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

• Monitorar implantações com ferramentas do Amazon CloudWatch (p. 299)• Monitoramento de implantações com o AWS CloudTrail (p. 303)• Monitoramento de implantações com notificações de eventos do Amazon SNS (p. 305)

Monitorando implantações com ferramentas doAmazon 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 ascausas das falhas de implantação. Em vez de revisar os logs do AWS CodeDeploy em uma instância decada 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 AWSCodeDeploy, 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 paramonitorar seu AWS CodeDeploy deployments, consulte os seguintes tópicos.

Tópicos• Monitorando implantações com alarmes do CloudWatch no AWS CodeDeploy (p. 299)• Monitoramento de implantações com o Eventos do Amazon CloudWatch (p. 301)

Monitorando implantações com alarmes doCloudWatch no AWS CodeDeployVocê pode criar um alarme do CloudWatch para uma instância ou um grupo do Amazon EC2 Auto Scalingque esteja usando nas suas operações do AWS CodeDeploy. Um alarme observa uma única métrica aolongo de um período especificado por você e realiza uma ou mais ações com base no valor da métricarelativa a um limite especificado em vários períodos. Os alarmes do CloudWatch não invocam açõessimplesmente porque elas estão em um estado específico. O estado deve ter sido alterado e mantido porum número específico de períodos.

Usando a funcionalidade nativa de alarmes do CloudWatch, é possível especificar qualquer uma dasações com suporte pelo CloudWatch quando uma instância que você está usando em uma implantação

Versão da API 2014-10-06299

Page 310: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioMonitorando implantações com alarmes do CloudWatch

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 doCloudWatch 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 à suafunção de serviço do AWS CodeDeploy.

Para obter informações sobre como configurar alarmes do CloudWatch no console do CloudWatch,consulte Criar 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 noAWS CodeDeploy, consulte Criar um grupo de implantação com o AWS CodeDeploy (p. 235) e Alterarconfigurações do grupo de implantação com o AWS CodeDeploy (p. 244).

Tópicos• Conceder permissões do CloudWatch a uma função de serviço do AWS CodeDeploy (p. 300)

Conceder permissões do CloudWatch a uma função de serviçodo AWS CodeDeployPara que você possa usar o monitoramento de alarmes do CloudWatch com as suas implantações, afunção de serviço usada em operações do AWS CodeDeploy deve ter permissão para acessar os recursosdo 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 https://console.aws.amazon.com/iam/.

2. No console do IAM, selecione Roles (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 edepois 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": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloudwatch:DescribeAlarms", "Resource": "*" } ]}

8. Selecione Apply Policy.

Versão da API 2014-10-06300

Page 311: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioMonitoramento de implantações como Eventos do Amazon CloudWatch

Monitoramento de implantações com o Eventos doAmazon CloudWatchVocê pode usar o Eventos do Amazon CloudWatch para detectar e reagir a alterações no estado deuma instância ou de uma implantação (um "evento") nas 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 destinoquando uma implantação ou uma instância entrar no estado especificado em uma regra. Dependendo dotipo de alteração de estado, convém enviar notificações, capturar informações de estado, tomar medidascorretivas, iniciar eventos ou realizar outras ações. Você pode selecionar os seguintes tipos de destinos aousar o Eventos do CloudWatch como parte de suas operações do AWS CodeDeploy:

• Funções do AWS Lambda• Streams do Kinesis• Filas do Amazon SQS• Destinos integrados (ações de alarme do CloudWatch)• Tópicos do 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çãofalhar.

• Envie dados sobre implantações ou instâncias a um fluxo do Kinesis para dar suporte ao monitoramentoabrangente do status em tempo real.

• Use ações de alarme do CloudWatch para interromper, encerrar, reinicializar ou recuperar instânciasdo Amazon EC2 automaticamente quando ocorrer um evento de implantação ou de instância que vocêespecificar.

O restante deste tópico descreve o procedimento básico para a criação de uma regra do Eventos doCloudWatch para o AWS CodeDeploy. Entretanto, antes de criar regras de eventos para uso nas suasoperações do AWS CodeDeploy, você deve fazer o seguinte:

• Concluir os pré-requisitos do Eventos do CloudWatch. Para obter informações, consulte Pré-requisitosdo Eventos do Amazon CloudWatch.

• Familiarize-se com os eventos, regras e destinos no Eventos do CloudWatch. Para obter maisinformações, consulte O que é o Eventos do Amazon CloudWatch? e Novo Eventos do CloudWatch –Rastrear e responder 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 https://console.aws.amazon.com/cloudwatch/.2. No painel de navegação, selecione Events.3. Escolha Create rule (Criar regra) e, em Event selector (Seletor de eventos), escolha AWS

CodeDeploy.4. Especifique um tipo de detalhe:

• Para criar uma regra que se aplique a todas as alterações de estado das instâncias e dasimplantações, escolha Any detail type e vá para a etapa 6.

• Para criar uma regra que se aplique a somente a instâncias, escolha Specific detail type eCodeDeploy Instance State-change Notification.

Versão da API 2014-10-06301

Page 312: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioMonitoramento de implantações como Eventos do Amazon CloudWatch

• Para criar uma regra que se aplique somente às implantações, escolha Specific detail type eCodeDeploy Instance State-change Notification.

5. Especifique as alterações de estado às quais a regra se aplica:

• Para criar uma regra que se aplique a todas as alterações de estado, escolha Any state.• Para criar uma regra que se aplique apenas a algumas alterações de estado, escolha Specific

state(s) e escolha um ou mais valores de status na lista. A tabela a seguir lista os valores de statusque você pode escolher:

Valores de status de implantação Valores de status de instâncias

FAILURE

START

STOP

QUEUED

READY

ÊXITO

FAILURE

START

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 vá para aetapa 8.

• Para criar uma regra que se aplique a apenas um aplicativo, escolha Specific application e escolhao 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 aplicativoselecionado, escolha Any deployment group.

• Para criar uma regra que se aplique a apenas um dos grupos de implantação associados aoaplicativo selecionado, escolha Specific deployment group(s) e escolha o nome do grupo deimplantação na lista.

8. Analise a configuração da regra para garantir que ela atenda aos requisitos de monitoramento deevento.

Veja a seguir a configuração de uma regra de evento que será processada sempre que umaimplantação falhar em qualquer instância no MyDeploymentFleet grupo de implantação doaplicativo denominado MyCodeDeployApp:

Versão da API 2014-10-06302

Page 313: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioMonitoramento de implantações com o AWS CloudTrail

9. Na área Targets, escolha Add target*.10. Na lista Select target type, escolha o tipo de destino preparado para usar com essa regra e configure

as opções adicionais necessárias a 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 AWSCloudTrail

O AWS CodeDeploy está integrado ao CloudTrail, um serviço que captura chamadas à API feitas pelo,ou em nome do AWS CodeDeploy em sua conta da AWS e entrega os arquivos de log para um bucket doAmazon S3 que você especificar. O CloudTrail captura chamadas à API no console do AWS CodeDeploy,em comandos do AWS CodeDeploy por meio da AWS CLI ou das APIs do AWS CodeDeploy diretamente.Usando as informações coletadas pelo CloudTrail, é possível determinar qual solicitação foi feita ao AWSCodeDeploy, o endereço IP de origem do qual a solicitação foi feita, quem fez a solicitação, quando elafoi feita etc. Para saber mais sobre o CloudTrail, incluindo como configurá-lo e habilitá-lo, consulte o AWSCloudTrail User Guide.

Informações do AWS CodeDeploy no CloudTrailQuando o registro em log do CloudTrail está habilitado na conta da AWS, as chamadas à API feitaspara ações do AWS CodeDeploy são rastreadas em arquivos de log. Os registros do AWS CodeDeploy

Versão da API 2014-10-06303

Page 314: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioNoções básicas das entradas dos

arquivos de log do AWS CodeDeploy

são gravados juntamente com outros registros de serviços da AWS em um arquivo de log. O CloudTraildetermina quando criar e gravar em um novo arquivo com base no período e no tamanho do arquivo.

Todas as ações do AWS CodeDeploy são registradas e documentadas no AWS CodeDeployCommand Line Reference e no AWS CodeDeploy API Reference. Por exemplo, as chamadas para criarimplantações, excluir aplicativos e registrar revisões de aplicativo geram entradas nos arquivos de log doCloudTrail.

Cada entrada de log contém informações sobre quem gerou a solicitação. As informações sobre aidentidade do usuário no log ajudam a determinar se a solicitação foi feita com credenciais de usuário raizou do IAM, com credenciais de segurança temporárias para uma função, um usuário federado ou por outroserviço da AWS. Para obter mais informações, consulte o campo userIdentity na Referência de evento doCloudTrail.

É 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 logautomaticamente. Por padrão, a criptografia do lado do servidor (SSE) do Amazon S3 é usada paracriptografar os arquivos de log.

Você pode fazer com que o CloudTrail publique notificações do Amazon SNS quando novos arquivos delog forem entregues. Para obter mais informações, consulte Configuração de notificações do Amazon SNSpara o CloudTrail.

Você também pode agregar arquivos de log do AWS CodeDeploy de várias regiões da AWS e de váriascontas da AWS em um único bucket do Amazon S3. Para obter mais informações, consulte Recebimentode arquivos de log do CloudTrail de várias regiões.

Noções básicas das entradas dos arquivos de log doAWS CodeDeployOs arquivos de log do CloudTrail podem conter uma ou mais entradas de log, e cada entrada é compostade vários eventos em formato JSON. Uma entrada de log representa uma única solicitação de qualquerorigem e inclui informações sobre a ação solicitada, quaisquer parâmetros, a data e hora da ação e assimpor diante. Não é garantido que as entradas de log estejam em uma ordem específica. Ou seja, elas nãosã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 grupode implantação do AWS CodeDeploy:

{ "Records": [{ "eventVersion": "1.02", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE:203.0.113.11", "arn": "arn:aws:sts::123456789012:assumed-role/example-role/203.0.113.11", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2014-11-27T03:57:36Z" }, "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::123456789012:role/example-role", "accountId": "123456789012", "userName": "example-role" }

Versão da API 2014-10-06304

Page 315: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioMonitorando implantações com

notificações de eventos do Amazon SNS

} }, "eventTime": "2014-11-27T03:57:36Z", "eventSource": "codedeploy.amazonaws.com", "eventName": "CreateDeploymentGroup", "awsRegion": "us-west-2", "sourceIPAddress": "203.0.113.11", "userAgent": "example-user-agent-string", "requestParameters": { "applicationName": "ExampleApplication", "serviceRoleArn": "arn:aws:iam::123456789012: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": "86168559-75e9-11e4-8cf8-75d18EXAMPLE", "eventID": "832b82d5-d474-44e8-a51d-093ccEXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }, ... additional entries ... ]}

Monitorando implantações com notificações deeventos do Amazon SNS

Você pode adicionar gatilhos a um grupo de implantação do AWS CodeDeploy para receber notificaçõessobre eventos relacionados a implantações ou instâncias nesse grupo de implantação. Essas notificaçõessão enviadas aos destinatários inscritos em um tópico do Amazon SNS que você incluiu como parte daação do gatilho.

Você pode receber notificações de eventos do AWS CodeDeploy em mensagens SMS ou mensagensde e-mail. Também pode usar de outras maneiras os dados JSON que são criados quando um eventoespecificado ocorre, por exemplo, enviando mensagens a filas do Amazon SQS ou invocando umafunção no AWS Lambda. Para ver a estrutura dos dados JSON fornecidos para gatilhos de implantação einstância, consulte Formatos de dados JSON para gatilhos do AWS CodeDeploy (p. 314).

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 paramonitorar 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, quepossa ser obtida por meio de regras de filtragem que direcionam diferentes tipos de notificações parapastas no seu cliente de e-mail de desktop.

É possível criar até 10 gatilhos para cada grupo de implantação do AWS CodeDeploy, para qualquer umdos seguintes tipos de eventos.

Versão da API 2014-10-06305

Page 316: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioConceder permissões do Amazon

SNS a uma função de serviço

Eventos de implantação Eventos de instância

• Bem-sucedida• Falha• Iniciada• Interrompida• Reversão• Pronta¹• Todos os eventos de implantação

• Bem-sucedida• Falha• Iniciada• Pronta¹• Todos os eventos de instância

¹Se aplica somente às implantações azuis/verdes. Indica que a última revisão do aplicativo foi instaladaem instâncias em um ambiente de substituição e que o tráfego do ambiente original agora pode serredirecionado atrás de um balanceador de carga. Para obter mais informações, consulte Trabalhandocom implantações no AWS CodeDeploy (p. 266).

Tópicos• Conceder permissões do Amazon SNS a uma função de serviço do AWS CodeDeploy (p. 306)• Criar um gatilho para um evento do AWS CodeDeploy (p. 307)• Editar um gatilho em um grupo de implantação do AWS CodeDeploy (p. 312)• Excluir um gatilho de um grupo de implantação do AWS CodeDeploy (p. 313)• Formatos de dados JSON para gatilhos do AWS CodeDeploy (p. 314)

Conceder permissões do Amazon SNS a uma funçãode serviço do AWS CodeDeployAntes que os seus gatilhos possam gerar notificações, a função de serviço usada em operações do AWSCodeDeploy 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 https://console.aws.amazon.com/iam/.

2. No console do IAM, selecione Roles (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 edepois clique aqui.

5. Na página Definir permissões, selecione Política personalizada e, então, Selecionar.6. Na página Review Policy (Revisar política), no campo Policy Name (Nome da política), insira um nome

para identificar essa política, tal como SNSPublish.7. Cole o seguinte no campo Documento da política:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow",

Versão da API 2014-10-06306

Page 317: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um gatilho para um evento do AWS CodeDeploy

"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 eventoocorrer, todos os assinantes do tópico associado receberão notificações através do endpoint especificadono tópico, como uma mensagem SMS ou uma mensagem de e-mail. O Amazon SNS oferece diversosmétodos para assinatura de tópicos.

Antes de criar um gatilho, você deve configurar o tópico do Amazon SNS para o qual esse gatilhoapontará. Para obter informações, consulte Criar um tópico. Ao criar um tópico, é recomendável dar a eleum nome que identifique sua finalidade em formatos como Topic-group-us-west-3-deploy-fail ouTopic-group-project-2-instance-stop.

Também é necessário conceder permissões do Amazon SNS a uma função de serviço do AWSCodeDeploy antes que notificações possam ser enviadas para o seu gatilho. Para obter informações,consulte Conceder permissões do Amazon SNS a uma função de serviço do AWS CodeDeploy (p. 306).

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 AWSCodeDeploy (console)É possível usar o console do AWS CodeDeploy para criar gatilhos referentes a um evento do AWSCodeDeploy. No final do processo de configuração, uma mensagem de notificação de teste é enviada paragarantir que as permissões e os detalhes do gatilho estejam configurados corretamente.

Para criar um gatilho para um evento do AWS CodeDeploy

1. No Console de gerenciamento da AWS, abra o console do AWS CodeDeploy.2. No painel de navegação, expanda a opção Deploy (Implantar) e selecione Applications (Aplicativos).3. Na lista de aplicativos, selecione os nomes dos aplicativos para os quais são enviados acionadores.4. Na guia Deployment groups (Grupos de implantação), escolha o grupo de implantação para o qual são

enviados acionadores e Edit (Editar).5. Expanda Advanced (Avançado) e, na área Triggers (Acionadores), escolha Create trigger (Criar

acionador).6. No painel Create trigger, faça o seguinte:

• Em Trigger name (Nome de acionador), insira um nome para o acionador que facilite a identificaçãode sua finalidade. Recomendamos formatos como Trigger-group-us-west-3-deploy-failou Trigger-group-eu-central-instance-stop.

• Em Events (Eventos), escolha um ou mais tipos de eventos que farão com que o tópico do AmazonSNS envie notificações.

• Em Amazon SNS topic (Tópico do Amazon SNS), escolha o nome do tópico criado para enviarnotificações para esse acionador.

7. Escolha Criar acionador.

Versão da API 2014-10-06307

Page 318: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um gatilho para um evento do AWS CodeDeploy

O AWS CodeDeploy enviará uma notificação de teste para confirmar que você configuroucorretamente o acesso entre o AWS CodeDeploy e o tópico do Amazon SNS. Dependendo do tipo deendpoint selecionado para o tópico, e se você tiver assinado o tópico, receberá uma confirmação emuma mensagem SMS ou de e-mail.

Criar um gatilho para enviar notificações de eventos do AWSCodeDeploy (CLI)Você pode usar a CLI para incluir gatilhos ao criar um grupo de implantação ou pode adicionar gatilhos aum grupo de implantação existente.

Para criar um gatilho para enviar notificações referentes um novo grupo deimplantação

Crie um arquivo JSON para configurar o grupo de implantação e, em seguida, execute o comando create-deployment-group usando a opção --cli-input-json.

A maneira mais simples de criar o arquivo JSON é usar a opção --generate-cli-skeleton paraobter uma cópia do formato JSON e, em seguida, fornecer os valores necessários em um editor de textosimples.

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": [ "" ] } ]

Versão da API 2014-10-06308

Page 319: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar 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 osseguintes 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 informações, consulte Etapa 3: criar uma função de serviçopara o AWS CodeDeploy (p. 32).

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-eu-central-instance-stop.

• triggerTargetArn: o ARN do tópico do Amazon SNS criado para associar ao seu gatilho, nesteformato: arn:aws:sns:us-east-2:80398EXAMPLE:NewTestTopic.

• triggerEvents: o tipo de eventos para os quais você deseja dispararnotificações. É possível especificar um ou mais tipos de eventos, separandovários dos seus nomes com vírgulas (por exemplo, "triggerEvents":["DeploymentSuccess","DeploymentFailure","InstanceFailure"]). Quando maisde um tipo de evento é adicionado, as notificações para todos esses tipos são enviadas ao tópicoque você especificou, em vez de a um tópico diferente para cada um. É possível escolher entre osseguintes 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-789-2 para umaplicativo TestApp-us-east-2 e um disparador que solicitará o envio de notificações sempre queuma 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" } ], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role",Versão da API 2014-10-06

309

Page 320: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um gatilho para um evento do AWS CodeDeploy

"triggerConfigurations": [ { "triggerName": "Trigger-group-us-east-2", "triggerTargetArn": "arn:aws:sns:us-east-2:80398EXAMPLE:us-east-deployments", "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 ao executar o comando create-deployment-group:

Important

Be sure to include file:// before the file name. It is required in this command.

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 quetanto 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çãoexistente

Para usar a AWS CLI para adicionar gatilhos de eventos do AWS CodeDeploy a um grupo de implantaçãoexistente, crie um arquivo JSON para atualizar o grupo de implantação e, em seguida, execute o comandoupdate-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 obteruma cópia da configuração do grupo de implantação, no formato JSON, e depois atualizar os valores dosparâ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-group-name 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", "autoScalingGroups": [], "ec2TagFilters": [ { "Type": "KEY_AND_VALUE",

Versão da API 2014-10-06310

Page 321: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCriar um gatilho para um evento do AWS CodeDeploy

"Value": "Project-ABC", "Key": "Name" } ], "triggerConfigurations": [], "serviceRoleArn": "arn:aws:iam::444455556666: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 degatilho, 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 oufalhar.

{ "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-east-deployments", "triggerName": "Trigger-group-us-east-2" } ], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "onPremisesInstanceTagFilters": []}

4. Salve suas atualizações como um arquivo JSON e execute o comando update-deployment-groupusando a opção --cli-input-json. Certifique-se de incluir a opção --current-deployment-group-name e substitua o nome do seu arquivo JSON para nome do arquivo:

Important

Be sure to include file:// before the file name. It is required in this command.

aws deploy update-deployment-group --current-deployment-group-name deployment-group-name --cli-input-json file://filename.json

No final do processo de criação, você receberá uma mensagem de notificação de teste indicando quetanto as permissões quanto os detalhes do gatilho estão configurados corretamente.

Versão da API 2014-10-06311

Page 322: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEditar um gatilho em um grupo de implantação

Editar um gatilho em um grupo de implantação doAWS CodeDeploySe os requisitos de notificação forem alterados, você poderá modificar seu gatilho em vez de criar umnovo.

Modificar um gatilho do AWS CodeDeploy (console)1. Sign in to the Console de gerenciamento da AWS and open the AWS CodeDeploy console at https://

console.aws.amazon.com/codedeploy.

Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

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 selecione Save(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 ao atualizarum grupo de implantação, crie um arquivo JSON para definir alterações nas propriedades do grupo deimplantação e depois execute o comando update-deployment-group com a opção --cli-input-json.

A maneira mais simples de criar o arquivo JSON é executar o comando get-deployment-group para obteros detalhes do grupo de implantação atual no formato JSON e depois editar os valores necessários em umeditor de texto simples.

1. Execute o seguinte comando, substituindo os nomes do seu aplicativo e grupo de implantação paraapplication e deployment-group:

aws deploy get-deployment-group --application-name application --deployment-group-name 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": [],

Versão da API 2014-10-06312

Page 323: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExcluir 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:111222333444:Trigger-group-us-east-2", "triggerName": "Trigger-group-us-east-2" } ], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "onPremisesInstanceTagFilters": []}

3. Altere quaisquer parâmetros, conforme necessário. Para obter informações sobre parâmetros deconfiguração de gatilho, consulte TriggerConfig.

4. Salve suas atualizações como um arquivo JSON e execute o comando update-deployment-groupusando a opção --cli-input-json. Certifique-se de incluir a opção --current-deployment-group-name e substitua o nome do seu arquivo JSON para nome do arquivo:

Important

Be sure to include file:// before the file name. It is required in this command.

aws deploy update-deployment-group --current-deployment-group-name deployment-group-name --cli-input-json file://filename.json

No final do processo de criação, você receberá uma mensagem de notificação de teste indicando que tantoas permissões quanto os detalhes do gatilho estão configurados corretamente.

Excluir um gatilho de um grupo de implantação doAWS CodeDeployComo há um limite de 10 gatilhos por grupo de implantação, talvez você queira excluir disparadores seeles 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 https://

console.aws.amazon.com/codedeploy.Note

Faça login com a mesma conta ou com as informações de usuário do IAM usadas emIntrodução ao AWS CodeDeploy (p. 30).

2. Na página Aplicativos, escolha o aplicativo associado ao grupo de implantação do qual você desejaexcluir um acionador.

3. Na página Detalhes do aplicativo, escolha a seta ao lado do grupo de implantação.

Versão da API 2014-10-06313

Page 324: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioFormatos de dados JSON para gatilhos

4. Na área Triggers (Acionadores), localize o nome do gatilho que você deseja excluir, selecione o botão

na final da linha e, em seguida, escolha Delete (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 deconfiguraçã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 deimplantação, chame o comando list-deployment-groups.

Por exemplo:

aws deploy update-deployment-group --application-name application-name --current-deployment-group-name deployment-group-name --trigger-configurations

Formatos de dados JSON para gatilhos do AWSCodeDeployUse a saída JSON que é criada quando um gatilho para uma implantação ou instância é ativado em umfluxo de trabalho de notificação personalizado, como enviar mensagens a filas do Amazon SQS ou invocaruma função no AWS Lambda.

Note

Este guia não aborda como configurar notificações usando o JSON. Para obter mais informaçõessobre o uso do Amazon SNS para enviar mensagens para filas do Amazon SQS, consulte Enviode mensagens do Amazon SNS para filas do Amazon SQS. Para obter informações sobre o usodo Amazon SNS para chamar uma função do Lambda, consulte Invocação de funções do Lambdausando 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": "111222333444", "eventTriggerName": "trigger-group-us-east-instance-succeeded", "deploymentId": "d-75I7MBT7C", "instanceId": "arn:aws:ec2:us-east-2:444455556666:instance/i-496589f7", "lastUpdatedAt": "1446744207.564", "instanceStatus": "Succeeded", "lifecycleEvents": [ { "LifecycleEvent": "ApplicationStop", "LifecycleEventStatus": "Succeeded", "StartTime": "1446744188.595", "EndTime": "1446744188.711" }, { "LifecycleEvent": "BeforeInstall", "LifecycleEventStatus": "Succeeded", "StartTime": "1446744189.827",

Versão da API 2014-10-06314

Page 325: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioFormatos de dados JSON para gatilhos

"EndTime": "1446744190.402" }//More lifecycle events might be listed here ]}

Exemplo de saída JSON para gatilhos com base em implantação

{ "region": "us-west-1", "accountId": "111222333444", "eventTriggerName": "Trigger-group-us-west-3-deploy-failed", "applicationName": "ProductionApp-us-west-3", "deploymentId": "d-75I7MBT7C", "deploymentGroupName": "dep-group-def-456", "createTime": "1446744188.595", "completeTime": "1446744190.402", "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" }}

Versão da API 2014-10-06315

Page 326: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAutenticação

Autenticação e controle de acesso doAWS CodeDeploy

O acesso ao AWS CodeDeploy requer credenciais. Essas credenciais devem ter permissões paraacessar recursos da AWS, como recuperar revisões de aplicativo de buckets do Amazon S3 e ler tags nasinstâncias do Amazon EC2. As seções a seguir apresentam detalhes sobre como você pode usar o AWSIdentity and Access Management (IAM) e AWS CodeDeploy para ajudar a garantir o acesso aos recursos:

• Autenticação (p. 316)• Controle de acesso (p. 317)

AutenticaçãoVocê pode acessar a AWS como alguns dos seguintes tipos de identidade:

• Usuário raiz da conta da AWS – Ao se cadastrar na AWS, você fornece um endereço de e-mail e umasenha que é associada à sua conta da AWS. Estas são suas credenciais raiz e fornecem acesso total atodos os seus recursos da AWS.

Important

Por motivos de segurança, recomendamos que você use as credenciais raiz para criar somenteum usuário administrador, que é um usuário do IAM com permissões totais à sua conta daAWS. Em seguida, use esse usuário administrador para criar outros usuários e funções do IAMcom permissões limitadas. Para obter mais informações, consulte Melhores práticas do IAM eCriar um usuário e grupo administrativo no Guia do usuário do IAM.

• Usuário do IAM – Um usuário do IAM é simplesmente uma identidade na qual sua conta da AWS possuipermissões personalizadas específicas (por exemplo, permissões para enviar dados de eventos paraum destino em AWS CodeDeploy). Você pode usar uma senha e um nome do usuário do IAM para fazerlogin em páginas da web seguras da AWS, como o Console de gerenciamento da AWS, os Fóruns dediscussão da AWS ou o AWS Support Center.

 

Além de uma senha e um nome do usuário, você também pode gerar chaves de acesso para cadausuário. Você pode usar essas chaves ao acessar serviços da AWS de forma programática, seja comum dos vários SDKs ou usando a AWS Command Line Interface (AWS CLI). As ferramentas de SDK ede CLI usam as chaves de acesso para o cadastramento criptográfico da sua solicitação. Se você nãoutilizar ferramentas da AWS, cadastre a solicitação você mesmo. AWS CodeDeploy supports Signatureversão 4, um protocolo para autenticar solicitações de API de entrada. Para obter mais informaçõessobre a autenticação de solicitações, consulte Processo de cadastramento do Signature versão 4 naAWS 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 do IAM, mas não está associada a umapessoa específica. Uma função do IAM permite obter chaves de acesso temporárias que podem serusadas para acessar os serviços e recursos da AWS. As funções do IAM com credenciais temporáriassão úteis nas seguintes situações:

Versão da API 2014-10-06316

Page 327: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioControle de acesso

 • Acesso de usuário federado – Em vez de criar um usuário do IAM, você pode usar identidades já

existente de usuário de AWS Directory Service, o diretório de usuário da sua companhia ou umprovedor de identidades da web. Estes são conhecidos como usuários federados. A AWS atribui umafunçã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 noGuia do usuário do IAM.

 • Acesso entre contas – Você pode usar uma função do IAM em sua conta para conceder a uma outra

conta da AWS as permissões de acesso aos recursos da conta. Para ver um exemplo, consulte oTutorial: 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 em sua conta para conceder

permissões a um serviço da AWS, oferecendo acesso aos recursos de sua conta. Por exemplo, vocêpode criar uma função que permita ao Amazon Redshift acessar um bucket do Amazon S3 em seunome e carregar dados armazenados no bucket em um cluster do Amazon Redshift. Para obter maisinformações, consulte Criar uma função para delegar permissões a um serviço da AWS no Guia dousuário do IAM.

 • Aplicativos executados no Amazon EC2– Em vez de armazenar chaves de acesso na instância do

EC2 a serem usadas em aplicativos 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 esses aplicativos.Para atribuir uma função de AWS a uma instância de EC2 e disponibilizá-la para todas as suasaplicações, crie um perfil de instância que esteja anexado à instância. Um perfil de instância contém afunção e permite que programas em execução na instância EC2 obtenham credenciais temporárias.Para mais informações, consulte Usar funções para aplicativos no Amazon EC2 no Guia do usuário doIAM.

Controle de acessoVocê pode ter credenciais válidas para autenticar suas solicitações. No entanto, a menos que tenhapermissões, você não pode criar nem acessar os recursos do AWS CodeDeploy. Por exemplo, você deveter permissões para criar, visualizar ou excluir aplicativos, implantações, configurações de implantação egrupos de implantação, bem como para registrar e cancelar registros ou ainda para adicionar ou removertags a/de instâncias locais, entre outros.

As seções a seguir descrevem como gerenciar permissões para o AWS CodeDeploy. Recomendamos quevocê leia a visão geral primeiro.

• Visão geral do gerenciamento de permissões de acesso aos recursos do AWS CodeDeploy (p. 317)• Uso de políticas baseadas em identidade (IAM políticas) para o AWS CodeDeploy (p. 322)• Referência de permissões AWS CodeDeploy (p. 327)

Visão geral do gerenciamento de permissões deacesso aos recursos do AWS CodeDeploy

Cada recurso da AWS é de propriedade de uma conta da AWS, e as permissões para criar ou acessarum recurso são regidas por políticas de permissões. Um administrador de conta pode anexar políticas de

Versão da API 2014-10-06317

Page 328: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioRecursos e operações

permissões a identidades do IAM (ou seja, usuários, grupos e funções), e alguns serviços (como o AWSLambda e o Amazon ECS) também oferecem suporte à anexação de políticas de permissões a recursos.

Note

Um administrador da conta (ou usuário administrador) é um usuário com privilégios deadministrador. Para obter mais informações, consulte Melhores práticas do IAM no Guia dousuário do IAM.

Ao conceder permissões, você decide quem recebe as permissões, os recursos relacionados àspermissões concedidas e as ações específicas que deseja permitir nesses recursos.

Tópicos• Recursos e operações do AWS CodeDeploy (p. 318)• Entender a propriedade de recursos (p. 319)• Gerenciamento do acesso aos recursos (p. 319)• Especificação de elementos da política: ações, efeitos e principais (p. 321)• Especificação de condições em uma política (p. 322)

Recursos e operações do AWS CodeDeployNo AWS CodeDeploy, o principal recurso é um deployment group. Em uma política, você usa um nomede recurso da Amazon (ARN) para identificar o recurso ao qual a política de aplica. O AWS CodeDeployoferece suporte a outros recursos que podem ser usados com o deployment groups, inclusive aplicativos,configurações de implantação e instâncias. Estes são chamados de sub-recursos. Esses recursos esub-recursos têm Nomes de recurso da Amazon (ARNs) exclusivos associados a eles. Para obter maisinformações sobre ARNs, consulte Nomes de recurso da Amazon (ARN) e namespaces de serviço daAWS no Referência geral do Amazon Web Services.

Tipo de recurso Formato de Nome de região da Amazon (ARN)

Grupo de implantação arn:aws:codedeploy:region:account-id:deploymentgroup/deployment-group-name

Aplicativo arn:aws:codedeploy:region:account-id:application/application-name

Configuração deimplantação

arn:aws:codedeploy:region:account-id:deploymentconfig/deployment-configuration-name

Instância arn:aws:codedeploy:region:account-id:instance/instance-ID

Todos os recursos doAWS CodeDeploy

arn:aws:codedeploy:*

Todos os recursosdo AWS CodeDeploypertencentes à contaespecificada na regiãoespecificada

arn:aws:codedeploy:region:account-id:*

Note

A maioria dos serviços na AWS trata os dois pontos (:) e a barra inclinada (/) como o mesmocaractere em ARNs. No entanto, o AWS CodeDeploy usa uma correspondência exata nos

Versão da API 2014-10-06318

Page 329: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEntender a propriedade de recursos

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 suadeclaração usando o ARN, da seguinte maneira:

"Resource": "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup/myDeploymentGroup"

Também pode especificar todos os deployment groups que pertencem a uma conta específica usando ocaractere curinga (*), da seguinte maneira:

"Resource": "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup/*"

Para especificar todos os ou se uma ação de API específica não for compatível com ARNs, use ocaractere curinga (*) no elemento Resource, da seguinte maneira:

"Resource": "*"

Algumas ações de API do AWS CodeDeploy aceitam vários recursos (por exemplo,BatchGetDeploymentGroups). Para especificar vários recursos em uma única declaração, separe seusARNs com vírgulas, como se segue:

"Resource": ["arn1", "arn2"]

O AWS CodeDeploy fornece um conjunto de operações para funcionar com recursos do AWSCodeDeploy. Para ver uma lista das operações disponíveis, consulte Referência de permissões AWSCodeDeploy (p. 327).

Entender a propriedade de recursosA conta da AWS possui os recursos criados na conta, independentemente de quem os criou. Maisespecificamente, o proprietário do recurso é a conta da AWS da entidade principal (ou seja, a conta-raiz,um usuário do IAM ou uma função do IAM) que autentica a solicitação de criação de recurso. Os exemplosa seguir ilustram como isso funciona:

• Se você usar as credenciais da conta-raiz de sua conta da AWS para criar uma regra, a conta da AWSserá a proprietária do recurso do AWS CodeDeploy.

• Se você criar um usuário do IAM na sua conta da AWS e conceder permissões para criar recursos doAWS CodeDeploy para esse usuário, ele poderá criar recursos do AWS CodeDeploy. No entanto, suaconta da AWS, à qual o usuário pertence, é a proprietária dos recursos do AWS CodeDeploy.

• Se você criar uma função do IAM em sua conta da AWS com permissões para criar recursos do AWSCodeDeploy, qualquer pessoa que possa assumir a função poderá criar recursos do AWS CodeDeploy.A conta da AWS, à qual a função pertence, é a proprietária dos recursos do AWS CodeDeploy.

Gerenciamento do acesso aos recursosA política de permissões descreve quem tem acesso a quê. A seção a seguir explica as opçõesdisponíveis para a criação das políticas de permissões.

Note

Esta seção aborda como usar o IAM no contexto do AWS CodeDeploy. Não são fornecidasinformações detalhadas sobre o serviço IAM. Para obter a documentação completa do IAM,

Versão da API 2014-10-06319

Page 330: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioGerenciamento do acesso aos recursos

consulte O que é o IAM? no Guia do usuário do IAM. Para obter mais informações sobredescrições e sintaxe de políticas do IAM, consulte Referência de política do IAM da AWS no Guiado usuário do IAM.

As políticas anexadas a uma identidade do IAM são conhecidas como políticas baseadas em identidade(políticas do IAM) e as políticas anexadas a um recurso são conhecidas como políticas baseadas emrecurso. O AWS CodeDeploy oferece suporte somente para políticas baseadas em identidade (políticas doIAM).

Tópicos• Políticas baseadas em identidade (políticas do IAM) (p. 320)• Políticas com base em recurso (p. 321)

Políticas baseadas 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õesde usuário para visualizar aplicativos, grupos de implantação e outros recursos do AWS CodeDeployno console do AWS CodeDeploy, você pode anexar uma política de permissões a um usuário ou a umgrupo ao qual esse usuário pertença.

 • Anexar uma política de permissões a uma função (conceder permissões entre contas) – você pode

anexar uma política de permissões com base em identidade a uma função do IAM para concederpermissões entre contas. Por exemplo, o administrador na conta A pode criar uma função para concederpermissões entre contas a outra conta da AWS (por exemplo, conta B) ou um serviço da AWS, conformeo seguinte:

 1. Um administrador da Conta A cria uma função do IAM e anexa 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.

 3. O administrador da conta B pode delegar 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. Aentidade de segurança na política de confiança também deverá ser uma entidade de segurança doserviç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 deacesso no Guia do usuário do IAM.

No AWS CodeDeploy, políticas baseadas em identidade são usadas para gerenciar permissões paraos vários recursos relacionados ao processo de implantação. É possível controlar o acesso a todos osseguintes tipos de recursos:

• Aplicativos e revisões de aplicativo• Implantações• Configurações de implantação

Versão da API 2014-10-06320

Page 331: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEspecificação de elementos da

política: ações, efeitos e principais

• 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 Capacidades

Tudo Visualizar e listar detalhes sobre recursos

Aplicativos

Configurações de implantação

Grupos de implantação

Criar recursos

Excluir recursos

Implantações Criar implantações

Parar implantações

Revisões de aplicativo Registrar revisões de aplicativo

Aplicativos

Grupos de implantação

Atualizar recursos

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áriosem sua conta têm acesso e associar essas políticas aos usuários do IAM. Para obter mais informaçõessobre como criar funções do IAM e ver exemplos de declarações de política do IAM para o AWSCodeDeploy, consulte Visão geral do gerenciamento de permissões de acesso aos recursos do AWSCodeDeploy (p. 317).

Políticas com base em recursoOutros serviços, como o Amazon S3, também são compatíveis com políticas de permissões baseadas emrecursos. Por exemplo, você pode anexar uma política a um bucket do S3 para gerenciar permissões deacesso a esse bucket. O AWS CodeDeploy não é compatível com políticas baseadas em recursos.

Especificação de elementos da política: ações, efeitose principaisPara cada recurso do AWS CodeDeploy, o serviço define um conjunto de operações da API. Paraconceder permissões a essas operações da API, o AWS CodeDeploy define um conjunto de ações quepodem ser especificadas em uma política. Algumas operações da API podem exigir permissões paramais de uma ação a fim de realizar a operação da API. Para obter mais informações sobre os recursose operações da API, consulte Recursos e operações do AWS CodeDeploy (p. 318) e Referência depermissões AWS CodeDeploy (p. 327).

Estes são os elementos de política básicos:

Versão da API 2014-10-06321

Page 332: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEspecificação de condições em uma política

• Recurso – Você usa um Amazon Resource Name (ARN) para identificar o recurso ao qual a política seaplica. Para obter mais informações, consulte Recursos e operações do AWS CodeDeploy (p. 318).

• Ação – Você usa palavras-chave de ação para identificar operações de recursos que você desejapermitir ou negar. Por exemplo, a permissão codedeploy:GetApplication permite que o usuárioexecute 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 deque 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 do IAM), o usuário ao qual a política estáanexada é implicitamente o principal. Para as políticas baseadas em recursos, você especifica quaisusuários, contas, serviços ou outras entidades deseja que recebam permissões (aplica-se somente apolíticas baseadas em recursos).

Para saber mais sobre a sintaxe e as descrições de políticas do IAM, consulte Referência de política doIAM da AWS no Guia do usuário do IAM.

Para obter uma tabela que mostra todas as ações da API do AWS CodeDeploy e os recursos a que elasse aplicam, consulte Referência de permissões AWS CodeDeploy (p. 327).

Especificação de condições em uma políticaAo conceder permissões, você pode usar a linguagem da política de acesso para especificar as condiçõesquando uma política deve entrar em vigor. Por exemplo, convém que uma política só seja aplicada apósuma data específica. Para obter mais informações sobre como especificar condições em uma linguagemde 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 existem chaves de condiçãoespecíficas do AWS CodeDeploy. No entanto, existem chaves de condição em toda a AWS que você podeusar conforme apropriado. Para obter uma lista completa das chaves de toda a AWS, consulte Chavesdisponíveis para as condições no Guia do usuário do IAM.

Uso de políticas baseadas em identidade (IAMpolíticas) para o AWS CodeDeploy

Este tópico fornece exemplos de políticas baseadas em identidade que demonstram como umadministrador 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 executar operações em recursos do AWSCodeDeploy. Para obter informações sobre a política que deve ser anexada a um usuário do IAM parausar o AWS CodeDeploy, consulte Etapa 1: provisionar um usuário do IAM (p. 30).

Important

Recomendamos que você analise primeiramente os tópicos introdutórios que explicam osconceitos básicos e as opções disponíveis para gerenciar o acesso aos recursos do AWSCodeDeploy. Para obter mais informações, consulte Visão geral do gerenciamento de permissõesde acesso aos recursos do AWS CodeDeploy (p. 317).

Tópicos• Permissões necessárias para usar o console do AWS CodeDeploy (p. 323)• Políticas gerenciadas (predefinidas) da AWS para o AWS CodeDeploy (p. 323)

Versão da API 2014-10-06322

Page 333: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioPermissões necessárias para usar

o console do AWS CodeDeploy

• Exemplos de política gerenciada pelo cliente (p. 325)

Veja a seguir um exemplo de uma política de permissões que permite a um usuário excluir o grupo deimplantação denominado WordPress_DepGroup associado ao aplicativo denominado WordPress_Appna região us-west-2.

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:DeleteDeploymentGroup" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:80398EXAMPLE:deploymentgroup:WordPress_App/WordPress_DepGroup" ] } ]}

Permissões necessárias para usar o console do AWSCodeDeployPara que um usuário trabalhe com o console do AWS CodeDeploy, ele deve ter um conjunto mínimode permissões que lhe permita descrever outros recursos da AWS para sua conta da AWS. Para usar oAWS CodeDeploy totalmente no console do AWS CodeDeploy, você deve ter permissões dos seguintesserviços:

• Amazon EC2 Auto Scaling• AWS CodeDeploy• Amazon Elastic Compute Cloud• Elastic Load Balancing• AWS Identity and Access Management• Amazon Simple Storage Service• Amazon Simple Notification Service• Amazon CloudWatch

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 garantirque esses usuários ainda consigam usar o console do AWS CodeDeploy, associe também a políticagerenciada do AWSCodeDeployReadOnlyAccess ao usuário, conforme descrito em Políticasgerenciadas (predefinidas) da AWS para o AWS CodeDeploy (p. 323).

Não é necessário conceder permissões mínimas do console para os usuários que estão fazendo ligaçõessomente com a AWS CLI ou a API do AWS CodeDeploy.

Políticas gerenciadas (predefinidas) da AWS para oAWS CodeDeployA AWS resolve muitos casos de uso comuns, fornecendo políticas do IAM autônomas criadas eadministradas pela AWS. Essas políticas gerenciadas da AWS concedem permissões necessárias para

Versão da API 2014-10-06323

Page 334: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioPolíticas gerenciadas (predefinidas)da AWS para o AWS CodeDeploy

casos de uso comuns, de modo que você possa evitar a necessidade de investigar quais permissões sãonecessárias. Para obter mais informações, consulte Políticas gerenciadas pela AWS no Guia do usuário doIAM.

As seguintes políticas gerenciadas da AWS, que você pode associar a usuários na sua conta, sãoespecíficas do AWS CodeDeploy:

• AWSCodeDeployFullAccess – concede acesso total ao AWS CodeDeploy.

Note

AWSCodeDeployFullAccess não fornece permissões para operações em outros serviçosnecessários para implantar seus aplicativos, como o Amazon EC2 e o Amazon S3, mas apenaspara operações específicas do AWS CodeDeploy.

• AWSCodeDeployDeployerAccess – concede acesso para um usuário do IAM registrar e implantarrevisõ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 Amazon EC2 Auto Scaling e instâncias locais por suastags de instância local, e implante revisões de aplicativo nessas instâncias adequadamente. Forneceas permissões necessárias para publicar notificações em um tópico do Amazon SNS e recuperarinformações sobre alarmes do CloudWatch.

 • AWSCodeDeployRoleForLambda – Concede ao AWS CodeDeploy permissão para acessar o AWS

Lambda e qualquer outro recurso necessário para uma implantação.

 • AWSCodeDeployRoleForECS – Concede ao AWS CodeDeploy permissão para acessar o Amazon ECS

e qualquer outro recurso necessário para uma implantação.

 • AWSCodeDeployRoleForECSLimited – Concede ao AWS CodeDeploy permissão para acessar o

Amazon ECS e qualquer outro recurso necessário para uma implantação com as seguintes exceções:• Na seção hooks do AppSpec file, apenas funções Lambda com nomes que começam comCodeDeployHook_ podem ser usadas. Para obter mais informações, consulte A seção 'hooks'AppSpec para uma implantação Amazon ECS (p. 348).

• O acesso ao bucket do Amazon S3 é limitado a buckets do S3 com uma tag de registro,UseWithCodeDeploy, com um valor de true. Para obter mais informações, consulte Marcação deobjetos.

As permissões para alguns aspectos do processo de implantação são concedidas a dois outros tipos defunçã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 perfilinclui as permissões necessárias para acessar os buckets do Amazon S3 ou os repositórios do GitHubnos quais os aplicativos estão armazenados. Para obter mais informações, consulte Etapa 4: criar umperfil de instância do IAM para as suas instâncias do Amazon EC2 (p. 36).

• Função de serviço: uma função do IAM que concede permissões para um serviço da AWS para que elepossa acessar recursos da AWS. As políticas que você anexa à função de serviço determinam quaisrecursos da AWS o serviço pode acessar e as ações que ele pode realizar com esses recursos. No AWSCodeDeploy, uma função de serviço é usada para o seguinte:

Versão da API 2014-10-06324

Page 335: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExemplos de política gerenciada pelo cliente

• Para ler as tags aplicadas às instâncias ou aos nomes de grupo do Amazon EC2 Auto Scalingassociados a essas instâncias. Isso permite que o AWS CodeDeploy identifique as instâncias nasquais poderá implantar aplicativos.

• Para executar operações em instâncias, grupos do Amazon EC2 Auto Scaling e load balancers doElastic Load Balancing.

• Para publicar informações em tópicos do Amazon SNS de forma que as notificações possam serenviadas quando eventos especificados de implantação ou instância ocorrerem.

• Para recuperar informações sobre alarmes do CloudWatch para configurar o monitoramento dealarmes de implantações.

Para obter mais informações, consulte Etapa 3: criar uma função de serviço para o AWSCodeDeploy (p. 32).

Você também pode criar as próprias políticas do IAM personalizadas a fim de conceder permissões paraações e recursos do AWS CodeDeploy. Você pode anexar essas políticas personalizadas a usuários ougrupos do IAM que exijam essas permissões.

Exemplos de política gerenciada pelo clienteNesta seção, você encontrará exemplos de políticas de usuário que concedem permissões para diversasações do AWS CodeDeploy. Essas políticas funcionam quando você está usando a API do AWSCodeDeploy, SDKs da AWS ou a AWS CLI. Ao usar o console, você precisa conceder permissõesadicionais específicas ao console, o que é debatido em Permissões necessárias para usar o console doAWS CodeDeploy (p. 323).

Você pode usar os seguintes exemplos de políticas do IAM listados para limitar o acesso ao AWSCodeDeploy para seus usuários e funções do IAM.

Note

Todos os exemplos usam a região Região Oeste dos EUA (Oregon) (us-west-2) e contêm IDs deconta fictícios.

Exemplos

• Exemplo 1: permitir que um usuário execute operações do AWS CodeDeploy em uma únicaregião (p. 325)

• Exemplo 2: permitir que um usuário registre revisões para um único aplicativo (p. 326)• Exemplo 3: permitir que um usuário crie implantações para um único grupo de implantação (p. 326)

Exemplo 1: permitir que um usuário execute operações do AWSCodeDeploy em uma única regiãoO exemplo a seguir concede permissões para realizar operações do AWS CodeDeploy somente na regiãous-west-2:

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:*" ], "Resource" : [

Versão da API 2014-10-06325

Page 336: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExemplos de política gerenciada pelo cliente

"arn:aws:codedeploy:us-west-2:80398EXAMPLE:*" ] } ]}

Exemplo 2: permitir que um usuário registre revisões para umúnico aplicativoO exemplo a seguir concede permissões para registrar revisões de aplicativo para todos os aplicativos quecomeçam com Test na região us-west-2:

{ "Version": "2012-10-17", "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çãoO exemplo a seguir permite que o usuário especificado crie implantações para o grupo de implantaçãodenominado WordPress_DepGroup, associado ao aplicativo denominado WordPress_App, aconfiguração de implantação personalizada denominada ThreeQuartersHealthy e qualquer revisão deaplicativos associada ao aplicativo denominado WordPress_App. Todos esses recursos estão associadosà região us-west-2.

{ "Version": "2012-10-17", "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" ] }, {

Versão da API 2014-10-06326

Page 337: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioReferência de permissões AWS CodeDeploy

"Effect" : "Allow", "Action" : [ "codedeploy:GetApplicationRevision" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:80398EXAMPLE:application:WordPress_App" ] } ]}

Referência de permissões AWS CodeDeployAo configurar o Controle de acesso (p. 317) e escrever políticas de permissões que você pode anexara uma identidade do IAM (políticas com base em identidade), você pode usar a tabela a seguir comoreferência. A tabela indica cada operação de API do AWS CodeDeploy, as ações correspondentes àsquais você pode conceder permissões de realização, bem como o formato do ARN de recurso a ser usadopara conceder as permissões. Você especifica as ações no campo Action da política e especifica umARN, com ou sem um caractere curinga (*), como o valor do recurso no campo Resource da política.

Você pode usar as chaves de condição em toda a AWS nas suas políticas do AWS CodeDeploy paraexpressar condições. Para obter uma lista completa das chaves de toda a AWS, consulte Chavesdisponí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. Paraespecificar 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. Porexemplo, codedeploy:* especifica todas as ações do AWS CodeDeploy, enquanto codedeploy:Get*especifica todas as ações do AWS CodeDeploy que começam com a palavra Get. O exemplo a seguirconcede acesso a todos os grupos de implantação com nomes que começam com West e estãoassociados 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 sobrecuringas, 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ãoinformadas abaixo.

Note

No ARN de cada ação, dois-pontos (:) vêm logo após o recurso. Você também pode usar umabarra (/) para vir logo após o recurso. Para obter mais informações, consulte os ARNs de exemplodo AWS CodeDeploy.

Versão da API 2014-10-06327

Page 338: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioReferência de permissões AWS CodeDeploy

Operações de API do AWS CodeDeploy e permissões necessárias para ações

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

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

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:application-name/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 deimplantação.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/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:application-name/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 ambientede substituição com balanceadores de carga do Elastic Load Balancing.

Versão da API 2014-10-06328

Page 339: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioReferência de permissões AWS CodeDeploy

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/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-nameCreateDeployment ¹

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:application-name/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-configuration-name

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:application-name/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-nameDeleteDeploymentConfig

Ação/Ações: codedeploy:DeleteDeploymentConfig

Necessário para excluir uma configuração de implantação personalizada associada ao usuário doIAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentconfig/deployment-configuration-name

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:application-name/deployment-group-name

DeregisterOnPremisesInstance

Ação/Ações: codedeploy:DeregisterOnPremisesInstance

Versão da API 2014-10-06329

Page 340: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioReferência de permissões AWS CodeDeploy

Necessário para cancelar o registro de uma instância local.

Recurso: arn:aws:codedeploy:region:account-id:instance/instance-IDGetApplication

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

Ação/Ações: codedeploy:GetApplicationRevision

Necessário para obter informações sobre uma única revisão de aplicativo para um aplicativoassociado ao usuário do IAM.

Recurso: arn:aws:codedeploy:region:account-id:application:application-nameGetDeployment

Ação/Ações: codedeploy:GetDeployment

Necessário para obter informações sobre uma única implantação em um grupo de implantação paraum aplicativo associado ao usuário do IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/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 aousuário do IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentconfig/deployment-configuration-name

GetDeploymentGroup

Ação/Ações: codedeploy:GetDeploymentGroup

Necessário para obter informações sobre um único grupo de implantação para um aplicativoassociado ao usuário do IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/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 aousuário do IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

GetOnPremisesInstance

Ação/Ações: codedeploy:GetOnPremisesInstance

Necessário para obter informações sobre uma única instância local.

Versão da API 2014-10-06330

Page 341: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioReferência de permissões AWS CodeDeploy

Recurso: arn:aws:codedeploy:region:account-id:instance/instance-IDListApplicationRevisions

Ação/Ações: codedeploy:ListApplicationRevisions

Necessário para obter informações sobre todas as revisões de aplicativo para um aplicativo associadoao 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 aousuá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 associadoao 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 aousuário do IAM ou à conta da AWS.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/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çãoassociado 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:application-name/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:*

Versão da API 2014-10-06331

Page 342: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioReferência de permissões 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 associadoao usuário do IAM.

Recurso: arn:aws:codedeploy:region:account-id:application:application-nameRegisterOnPremisesInstance

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

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

Ação/Ações: codedeploy:SkipWaitTimeForInstanceTermination

Necessário para substituir um tempo de espera especificado e iniciar o encerramento de instânciasno ambiente original logo após a conclusão bem-sucedida do direcionamento do tráfego em umaimplantação azul/verde.

Recurso: arn:aws:codedeploy:region:account-id:instance/instance-IDStopDeployment

Ação/Ações: codedeploy:StopDeployment

Necessário para interromper uma implantação em andamento em um grupo de implantação para umaplicativo associado ao usuário do IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/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-nameUpdateDeploymentGroup ³

Ação/Ações: codedeploy:UpdateDeploymentGroup

Necessário para alterar informações sobre um único grupo de implantação para um aplicativoassociado ao usuário do IAM.

Versão da API 2014-10-06332

Page 343: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioReferência de permissões AWS CodeDeploy

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

¹ Quando você especifica permissões CreateDeployment, também deve especificar permissõesGetDeploymentConfig para as configurações de implantação e permissões GetApplicationRevision ouRegisterApplicationRevision 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 asimplantações associadas ao usuário do IAM)

³ Para UpdateApplication, você deve ter permissões UpdateApplication tanto para nome do aplicativoantigo quanto para o seu novo nome. Para ações UpdateDeploymentGroup que envolvem a alteração donome de um grupo de implantação, você deve ter permissões UpdateDeploymentGroup tanto para o nomedo grupo de implantação antigo quanto para o seu novo nome.

Versão da API 2014-10-06333

Page 344: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioArquivos AppSpec em uma plataforma

de computação do Amazon ECS

Referência AppSpec File do AWSCodeDeploy

Esta seção é apenas uma referência. Para obter uma visão geral conceitual do AppSpec file, consulteArquivos de especificação de aplicativo (p. 28).

O application specification file (AppSpec file) é um arquivo formatado YAML ou JSON usado pelo AWSCodeDeploy para gerenciar uma implantação.

Tópicos• Arquivos AppSpec em uma plataforma de computação do Amazon ECS (p. 334)• Arquivos AppSpec em uma plataforma de computação AWS Lambda (p. 334)• Arquivos AppSpec em uma plataforma de computação EC2/local (p. 335)• AppSpec FileEstrutura do (p. 335)• AppSpec File Exemplo (p. 361)• Espaçamento de AppSpec File (p. 364)• Validar seu AppSpec File e local do arquivo (p. 365)

Arquivos AppSpec em uma plataforma decomputação do Amazon ECS

Se o seu aplicativo usar a Amazon ECS Plataforma de computação, o AppSpec file será usado pelo AWSCodeDeploy para determinar:

• Seu arquivo de definição de tarefa do Amazon ECS. Ele é especificado com seu ARN na instruçãoTaskDefinition no AppSpec file.

• O contêiner e a porta de seu conjunto de tarefas de substituição em que o Balanceador de cargade aplicações ou o Network Load Balancer redireciona o tráfego durante uma implantação. Ele éespecificado com a instrução LoadBalancerInfo no AppSpec file.

• Informações opcionais sobre o serviço do Amazon ECS, como a versão da plataforma em que ele éexecutado, suas sub-redes e seus grupos de segurança.

• Funções Lambda opcionais que serão executadas durante ganchos que correspondam aos eventos deciclo de vida durante uma implantação do Amazon ECS. Para obter mais informações, consulte A seção'hooks' AppSpec para uma implantação Amazon ECS (p. 348).

Arquivos AppSpec em uma plataforma decomputação AWS Lambda

Se o seu aplicativo usar a AWS Lambda Plataforma de computação, o AppSpec file será usado pelo AWSCodeDeploy para determinar:

• A versão da função do Lambda a ser implantada.• As funções do Lambda a serem usadas como testes de validação.

Versão da API 2014-10-06334

Page 345: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioArquivos AppSpec em uma

plataforma de computação EC2/local

Um AppSpec file pode ser formatado como YAML ou JSON. Você também pode inserir o conteúdo de umAppSpec file diretamente no console do AWS CodeDeploy ao criar uma implantação.

Arquivos AppSpec em uma plataforma decomputação EC2/local

Se o seu aplicativo usar a EC2/No local Plataforma de computação, o AppSpec file será usado pelo AWSCodeDeploy para determinar:

• o que ele deve instalar nas suas instâncias a partir de sua revisão de aplicativo no Amazon S3 ouGitHub.

• quais ganchos de evento de ciclo de vida devem ser executados em resposta a eventos de ciclo de vidade implantação.

Um AppSpec file deve ser um arquivo com formato YAML chamado de appspec.yml e deve ser colocadona raiz da estrutura de diretórios do código-fonte de um aplicativo. Caso contrário, haverá falha nasimplantações.

Depois de ter um AppSpec file concluído, agrupe-o, junto com o conteúdo a ser implantado, em um únicoarquivamento (zip, tar ou tar compactado). Para obter mais informações, consulte Trabalhando comrevisões de aplicativos para o AWS CodeDeploy (p. 250).

Note

The tar and compressed tar archive file formats (.tar and .tar.gz) are not supported for WindowsServer instances.

Depois de ter um arquivamento agrupado (conhecido no AWS CodeDeploy como uma revisão),faça upload em um bucket do Amazon S3 ou no seu repositório Git. Em seguida, usará o AWSCodeDeploy para implantar a revisão. Para obter instruções, consulte Criar uma implantação com o AWSCodeDeploy (p. 267).

O appspec.yml de uma implantação EC2/No local Plataforma de computação é salvo no diretório raiz desua revisão. Para obter mais informações, consulte Adicionar um arquivo AppSpec para uma implantaçãode EC2/No local (p. 255) e Planejar uma revisão para o AWS CodeDeploy (p. 250).

AppSpec FileEstrutura doA seguir está a estrutura de alto nível para um AppSpec file usada para implantações em plataformas decomputação AWS Lambda e EC2/No local.

Um valor em um AppSpec file no formato YAML que é uma string não deve ser colocado entre aspas (""), anão ser que especificado de outra forma.

Estrutura de arquivos AppSpec para implantações deAmazon ECS

Note

Este AppSpec file é gravado em YAML, mas você pode usar a mesma estrutura para gravar outroem JSON. Uma string em um AppSpec file no formato JSON é sempre colocada entre aspas ("").

Versão da API 2014-10-06335

Page 346: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEstrutura de arquivos AppSpec para

implantações de AWS Lambda

version: 0.0resources: ecs-service-specificationshooks: deployment-lifecycle-event-mappings

Nessa estrutura:

versão

Essa seção especifica a versão do AppSpec file. Não mude esse valor. É necessário. Atualmente, oúnico valor permitido é 0.0. Ele está reservado pelo AWS CodeDeploy para uso futuro.

Especifique a versão com uma string.recursos

Esta seção especifica informações sobre o aplicativo do Amazon ECS que será implantado.

Para obter mais informações, consulte Seção 'resources' AppSpec para implantações da AmazonECS (p. 342).

hooks

Esta seção especifica as funções Lambda que serão executadas em ganchos de eventos específicosde ciclo de vida de implantação para validar a implantação.

Para obter mais informações, consulte Lista de ganchos do evento do ciclo de vida para umaimplantação Amazon ECS (p. 348).

Estrutura de arquivos AppSpec para implantações deAWS Lambda

Note

Este AppSpec file é gravado em YAML, mas você pode usar a mesma estrutura para gravarum AppSpec file de uma implantação do Lambda em JSON. Uma string em um AppSpec file noformato JSON é sempre colocada entre aspas ("").

version: 0.0resources: lambda-function-specificationshooks: deployment-lifecycle-event-mappings

Nessa estrutura:

versão

Essa seção especifica a versão do AppSpec file. Não mude esse valor. É necessário. Atualmente, oúnico valor permitido é 0.0. Ele está reservado pelo AWS CodeDeploy para uso futuro.

Especifique a versão com uma string.recursos

Esta seção especifica informações sobre a função do Lambda a ser implantada.

Para obter mais informações, consulte Seção 'resources' do AppSpec (somente implantações doAmazon ECS e AWS Lambda) (p. 341).

Versão da API 2014-10-06336

Page 347: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioEstrutura de arquivos AppSpec

para implantações de EC2/No local

hooks

Esta seção especifica as funções do Lambda a serem executadas em eventos específicos de ciclo devida de implantação para validar a implantação.

Para obter mais informações, consulte Seção 'hooks' de AppSpec (p. 347).

Estrutura de arquivos AppSpec para implantações deEC2/No localversion: 0.0os: operating-system-namefiles: source-destination-files-mappingspermissions: permissions-specificationshooks: deployment-lifecycle-event-mappings

Nessa estrutura:

versão

Essa seção especifica a versão do AppSpec file. Não mude esse valor. É necessário. Atualmente, oúnico valor permitido é 0.0. Ele está reservado pelo AWS CodeDeploy para uso futuro.

Especifique a versão com uma string.os

Esta seção especifica o valor do sistema operacional da instância na qual você fará a implantação. É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.

Especifique o SO com uma string.

files

Esta seção especifica o nome dos arquivos que devem ser copiados para a instância durante o eventoInstall da implantação.

Para obter mais informações, consulte A seção 'files' AppSpec (EC2/No local Implantaçõessomente) (p. 338).

permissions

Esta seção especifica como permissões especiais, se houver, devem ser aplicadas aos arquivosna seção files à medida que estes são copiados para a instância. Esta seção se aplica apenas ainstâncias do Amazon Linux, Ubuntu Server e Red Hat Enterprise Linux (RHEL).

Para obter mais informações, consulte, A seção 'permissions' AppSpec (EC2/No local Implantaçõessomente) (p. 343).

hooks

Esta seção especifica scripts a serem executados em eventos específicos de ciclo de vida deimplantação durante a implantação.

Versão da API 2014-10-06337

Page 348: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioA seção 'files' AppSpec (EC2/

No local Implantações somente)

Para obter mais informações, consulte Seção 'hooks' de AppSpec (p. 347).

Tópicos• A seção 'files' AppSpec (EC2/No local Implantações somente) (p. 338)• Seção 'resources' do AppSpec (somente implantações do Amazon ECS e AWS Lambda) (p. 341)• A seção 'permissions' AppSpec (EC2/No local Implantações somente) (p. 343)• Seção 'hooks' de AppSpec (p. 347)

A seção 'files' AppSpec (EC2/No local Implantaçõessomente)Fornece informações ao AWS CodeDeploy sobre quais arquivos da sua revisão de aplicativo devem serinstalados na instância durante o evento Install da implantação. Esta seção é necessária apenas quandovocê copia arquivos da sua revisão em locais 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 os arquivos especificados serão copiados na instância.• Se a origem se referir a um diretório, todos os arquivos no diretório serão copiados na 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 na 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. Estedeve ser um caminho totalmente qualificado.

A origem e o destino são especificados cada um com uma string.

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 são realizadas durante o evento Install:

1. Copie o arquivo Config/config.txt em sua revisão no caminho /webapps/Config/config.txtna instância.

2. Copie recursivamente todos os arquivos no diretório source da revisão para o diretório /webapps/myApp na instância.

Versão da API 2014-10-06338

Page 349: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioA seção 'files' AppSpec (EC2/

No local Implantações somente)

Exemplos da seção 'files'Os exemplos a seguir mostram como especificar a seção files. Embora esses exemplos descrevamestruturas de arquivos e diretórios (pasta) do Windows Server, eles podem ser facilmente adaptados parainstâncias do Amazon Linux, Ubuntu Server e RHEL.

Note

Apenas as implantações EC2/No local usam a seção files. Ela não se aplica às implantaçõesAWS Lambda.

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

✔ 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

Versão da API 2014-10-06339

Page 350: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioA seção 'files' AppSpec (EC2/

No local Implantações somente)

• 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.✔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:

Versão da API 2014-10-06340

Page 351: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSeção 'resources' do AppSpec (somente

implantações do Amazon ECS e AWS Lambda)

- 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✔ c:\temp\my-folder\my-file-3.txt

Seção 'resources' do AppSpec (somente implantaçõesdo Amazon ECS e AWS Lambda)O conteúdo da seção 'resources' do AppSpec file varia de acordo com a plataforma de computaçãopara a implantação. A seção 'resources' para uma implantação do Amazon ECS contém a definiçãode tarefa do Amazon ECS, o contêiner e a porta para rotear o tráfego para o seu conjunto de tarefas doAmazon ECS atualizado e outras informações opcionais. A seção 'resources' para uma implantação doAWS Lambda contém o nome, alias, versão atual e versão de destino de uma função Lambda.

Tópicos• Seção 'resources' AppSpec para implantações da AWS Lambda (p. 341)• Seção 'resources' AppSpec para implantações da Amazon ECS (p. 342)

Seção 'resources' AppSpec para implantações da AWS LambdaA seção 'resources' especifica a função Lambda que será implantada e tem a seguinte estrutura:

YAML:

resources: - name-of-function-to-deploy: type: "AWS::Lambda::Function" properties: name: name-of-lambda-function-to-deploy alias: alias-of-lambda-function-to-deploy currentversion: version-of-the-lambda-function-traffic-currently-points-to targetversion: version-of-the-lambda-function-to-shift-traffic-to

JSON:

"resources": [{ "name-of-function-to-deploy" { "type": "AWS::Lambda::Function",

Versão da API 2014-10-06341

Page 352: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSeção 'resources' do AppSpec (somente

implantações do Amazon ECS e AWS Lambda)

"properties": { "name": "name-of-lambda-function-to-deploy", "alias": "alias-of-lambda-function-to-deploy", "currentversion": "version-of-the-lambda-function-traffic-currently-points-to", "targetversion": "version-of-the-lambda-function-to-shift-traffic-to" } }}]

Cada propriedade é especificada com uma string.

• name – obrigatória. Esse é o nome da função Lambda a ser implantada.• alias – obrigatória. Esse é o nome do alias da função do Lambda.• currentversion – obrigatória. Essa é a versão para a qual o tráfego da função do Lambda aponta.• targetversion – obrigatória. Essa é a versão para a qual o tráfego da função do Lambda é deslocado.

Seção 'resources' AppSpec para implantações da Amazon ECSA seção 'resources' especifica o serviço do Amazon ECS que será implantado e tem a seguinteestrutura:

YAML:

Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "task-definition-ARN" LoadBalancerInfo: ContainerName: "ECS-container-name-for-your-ECS-application" ContainerPort: port-used-by-your-ECS-application✔ Optional properties PlatformVersion: "ecs-service-platform-version" NetworkConfiguration: AwsvpcConfiguration: Subnets: ["ecs-subnet-1","ecs-subnet-n"] SecurityGroups: ["ecs-security-group-1","ecs-security-group-n"] AssignPublicIp: "ENABLED-or-DISABLED"

JSON:

"Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "", "LoadBalancerInfo": { "ContainerName": "", "ContainerPort": }, "PlatformVersion": "", "NetworkConfiguration": { "AwsvpcConfiguration": { "Subnets": [ "", "" ], "SecurityGroups": [

Versão da API 2014-10-06342

Page 353: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioA seção 'permissions' AppSpec (EC2/

No local Implantações somente)

"", "" ], "AssignPublicIp": "" } } } } } ]

Cada propriedade é especificada com uma string.

• TaskDefinition – Obrigatório. Esta é a definição de tarefa para o serviço do Amazon ECS queserá implantado. Ela é especificada com o ARN da definição de tarefa. O formato do ARN éarn:aws:ecs:region:account-id:task-definition/task-definition-family-name:task-definition-revision-number. Para obter mais informações, consulte Nomes derecurso da Amazon (ARNs) e namespaces de serviço da AWS.

• ContainerName – Obrigatório. Este é o nome do contêiner do Amazon ECS que contém o aplicativo doAmazon ECS. Ele deve ser um contêiner especificado em sua definição de tarefa do Amazon ECS.

• Port – Obrigatório. Esta é a porta em que o load balancer roteará novamente o tráfego durante umaimplantação.

• PlatformVersion: Opcional. A versão da plataforma das tarefas Fargate no serviço do Amazon ECSimplantado. Para obter mais informações, consulte Versões da plataforma do AWS Fargate.

• NetworkConfiguration: Opcional. Em AwsvpcConfiguration, você pode especificar o seguinte. Para obtermais informações, consulte AwsVpcConfiguration na Referência da API de serviço do contêiner doAmazon ECS.• Subnets: Opcional. Uma lista separada por vírgulas de uma ou mais sub-redes em seu serviço do

Amazon ECS.• SecurityGroups: Opcional. Uma lista separada por vírgulas de um ou mais grupos de segurança em

seu serviço do Amazon Elastic Container Service.• AssignPublicIp: Opcional. Uma string que especifica se a interface de rede elástica do serviço do

Amazon ECS recebe um endereço IP público. Os valores válidos são ENABLED e DISABLED.

Note

Todas ou nenhuma das configurações em NetworkConfiguration deve ser especificada. Porexemplo, se você deseja especificar Subnets, também é necessário especificar SecurityGroupse AssignPublicIp. Se nenhum for especificado, o AWS CodeDeploy usará as configurações derede do Amazon ECS atuais.

A seção 'permissions' AppSpec (EC2/No localImplantações somente)A seção 'permissions' especifica como permissões especiais, se houver, devem ser aplicadas aos arquivose diretórios/pastas na seção 'files' depois de serem copiados para a instância. Podem ser especificadasvárias instruções de objeto. Esta seção é opcional. Ela se aplica somente a instâncias do Amazon Linux,Ubuntu Server e RHEL.

Note

A seção 'permissions' é usada apenas para implantações EC2/No local. Ela não é usada paraimplantações AWS Lambda.

Esta seção tem a seguinte estrutura:

Versão da API 2014-10-06343

Page 354: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioA seção 'permissions' AppSpec (EC2/

No local Implantações somente)

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 – obrigatória. 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 copiadospara a instância.

Especifique o objeto com uma string.• pattern – opcional. Especifica um padrão para aplicar permissões. Se não forem especificadas ou se

forem especificadas com os caracteres especiais "**", as permissões serão aplicadas em todos osarquivos ou diretórios correspondentes, de acordo com o tipo.

Especifique o padrão com uma string entre aspas ("").• except – opcional. Especifica os arquivos ou diretórios que são exceções ao padrão.

Especifique exceto com uma lista separada por vírgulas de strings dentro de colchetes.• 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ósa operação de cópia.

Especifique o proprietário com uma string.• 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 aoperação de cópia.

Especifique o grupo com uma string.• 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.4755 representa que o atributo setuid está 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 outrosusuários. (Para obter mais exemplos, consulte a documentação do comando chmod do Linux.) Se omodo não for especificado, todos os modos existentes aplicados à estrutura original de arquivos oudiretórios/pastas permanecerão inalterados após a operação de cópia.

Especifique o modo com uma string.• 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 deleitura e gravação para o usuário bob. (Para obter mais exemplos, consulte exemplos de formatos deentradas de ACL na documentação do comando setfacl do Linux). Você pode especificar várias entradasACL. Se acls não for especificado, todas as ACLs existentes aplicadas à estrutura original de arquivosou diretórios/pastas permanecerão inalteradas após a operação de cópia. Elas substituirão as ACLsexistentes.

Versão da API 2014-10-06344

Page 355: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioA seção 'permissions' AppSpec (EC2/

No local Implantações somente)

Especifique uma acls com um traço (-), seguido por um espaço e, em seguida, uma string (por exemplo,- u:jane:rw). Se você tiver mais de uma ACL, cada uma é especificada em uma linha separada.

Note

A configuração de usuários sem nome, grupos sem nome ou outras entradas de ACLsemelhantes fará com que o AppSpec file falhe. Use mode para especificar esses tipos depermissões em vez disso.

• context – opcional. Para instâncias habilitadas com o SELinux (Security-Enhanced Linux), uma lista derótulos de contexto relevantes para a segurança a ser aplicada aos objetos copiados. Os rótulos sãoespecificados como chaves contendo usuário, tipo e intervalo. (Para obter mais informações, consulte adocumentação do SELinux). Cada chave é inserida com uma string. Se não for especificado, qualquerrótulo existente aplicado à estrutura original de arquivos ou diretórios/pastas permanecerá inalteradoapó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 nãoestiver habilitado, o intervalo assumirá s0 como padrão.

Especifique o contexto com uma string. Por exemplo, user: unconfined_u. Cada contexto éespecificado em uma linha separada.

• type – opcional. Os tipos de objetos aos quais aplicar as permissões especificadas. type é uma stringque pode ser definida como file ou directory. Se file for especificado, as permissões serãoaplicadas somente nos arquivos que estiverem imediatamente contidos no objeto após a operaçãode cópia (e não no objeto em si). Se directory for especificado, as permissões serão aplicadasrecursivamente em todos os diretórios/pastas que estiverem em qualquer lugar do objeto após aoperação de cópia (mas não no objeto em si).

Especifique o tipo com um traço (-), seguido por um espaço e, em seguida, uma string (por exemplo, -file).

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, UbuntuServer e RHEL. Neste exemplo, suponha que os seguintes arquivos e pastas sejam copiados para ainstâ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 AppSpec file mostra como definir permissões nesses arquivos e pastas depois que eles sãocopiados:

Versão da API 2014-10-06345

Page 356: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioA seção 'permissions' AppSpec (EC2/

No local Implantações somente)

version: 0.0os: 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 - 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*"

Versão da API 2014-10-06346

Page 357: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSeção 'hooks' de AppSpec

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/my-folder-3 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 econtext. 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 AppSpecO conteúdo da seção 'hooks' do AppSpec file varia de acordo com a Plataforma de computação paraa implantação. A seção 'hooks' para uma implantação da EC2/No local contém mapeamentos quevinculam os ganchos de evento do ciclo de vida de implantação a um ou mais scripts. A seção 'hooks'para uma implantação do Lambda ou Amazon ECS especifica as funções Lambda de validação que serãoexecutadas durante um evento de ciclo de vida de implantação. Se um gancho de evento não estiverpresente, nenhuma operação será executada para esse evento. Esta seção é necessária somente se vocêestá executando scripts ou funções de validação do Lambda como parte da implantação.

Versão da API 2014-10-06347

Page 358: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSeção 'hooks' de AppSpec

Tópicos• A seção 'hooks' AppSpec para uma implantação Amazon ECS (p. 348)• A seção 'hooks' AppSpec para uma implantação AWS Lambda (p. 351)• A seção 'hooks' AppSpec para uma implantação EC2/No local (p. 353)

A seção 'hooks' AppSpec para uma implantação Amazon ECSTópicos

• Lista de ganchos do evento do ciclo de vida para uma implantação Amazon ECS (p. 348)• Ordem de execução de ganchos em uma implantação do Amazon ECS (p. 348)• Estrutura da seção 'hooks' (p. 349)• Função 'hooks' do Lambda de exemplo (p. 350)

Lista de ganchos do evento do ciclo de vida para uma implantação Amazon ECS

Um gancho da AWS Lambda é uma função do Lambda especificada com uma string em uma nova linhaapós o nome do evento de ciclo de vida. Cada gancho é executado uma vez por implantação. Veja aseguir as descrições dos eventos de ciclo de vida em que você pode executar um gancho durante umaimplantação do Amazon ECS.

• BeforeInstall – Use para executar tarefas antes que o conjunto de tarefas de substituição seja criado.Um grupo de destino é associado ao conjunto de tarefas original. Se um listener de teste opcional forespecificado, ele será associado ao conjunto de tarefas original. Um reversão não é possível nessemomento.

• AfterInstall – Use para executar tarefas depois que o conjunto de tarefas de substituição for criado e umdos grupos de destino for associado a ele. Se um listener de teste opcional for especificado, ele seráassociado ao conjunto de tarefas original. Os resultados de uma função de gancho nesse evento deciclo de vida pode acionar uma reversão.

• AfterAllowTestTraffic – Use para executar tarefas depois que o listener de teste fornecer o tráfego parao conjunto de tarefas de substituição. Os resultados de uma função de gancho, nesse momento, podemacionar uma reversão. Os resultados de uma função de gancho nesse evento de ciclo de vida podeacionar uma reversão.

• BeforeAllowTraffic – Use para executar tarefas depois que o segundo grupo de destino for associado aoconjunto de tarefas de substituição, mas antes que o tráfego seja passado para o conjunto de tarefas desubstituição. Os resultados de uma função de gancho nesse evento de ciclo de vida pode acionar umareversão.

• AfterAllowTraffic – Use para executar tarefas depois que o segundo grupo de destino fornecer o tráfegopara o conjunto de tarefas de substituição. Os resultados de uma função de gancho nesse evento deciclo de vida pode acionar uma reversão.

Ordem de execução de ganchos em uma implantação do Amazon ECS

Em uma implantação do Amazon ECS, ganchos de eventos são executados na seguinte ordem:

Versão da API 2014-10-06348

Page 359: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSeção 'hooks' de AppSpec

Note

Os eventos Start, Install, TestTraffic, AllowTraffic e End na implantação não podem ser expressosem scripts, e é por isso que eles são exibidos em cinza neste diagrama.

Estrutura da seção 'hooks'

Os seguintes são exemplos da estrutura da seção 'hooks'.

Uso de YAML:

Hooks: - BeforeInstall: "BeforeInstallHookFunctionName"

Versão da API 2014-10-06349

Page 360: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSeção 'hooks' de AppSpec

- AfterInstall: "AfterInstallHookFunctionName" - AfterAllowTestTraffic: "AfterAllowTestTrafficHookFunctionName" - BeforeAllowTraffic: "BeforeAllowTrafficHookFunctionName" - AfterAllowTraffic: "AfterAllowTrafficHookFunctionName"

Uso de JSON:

"Hooks": [ { "BeforeInstall": "BeforeInstallHookFunctionName" }, { "AfterInstall": "AfterInstallHookFunctionName" }, { "AfterAllowTestTraffic": "AfterAllowTestTrafficHookFunctionName" }, { "BeforeAllowTraffic": "BeforeAllowTrafficHookFunctionName" }, { "AfterAllowTraffic": "AfterAllowTrafficHookFunctionName" } ]}

Função 'hooks' do Lambda de exemplo

Use a seção 'hooks' para especificar uma função Lambda que o AWS CodeDeploy pode chamarpara validar uma implantação do Lambda. Você pode usar a mesma função ou uma outra para oseventos de ciclo de vida de implantação BeforeInstall, AfterInstall, AllowTestTraffic, BeforeAllowTrafficee AllowTestTraffic. Após a conclusão dos testes de validação, a função Lambda AfterAllowTrafficchama de volta o AWS CodeDeploy e fornece o resultado "Bem-sucedido" ou "Com falha".

Important

Se o AWS CodeDeploy não for notificado pela função de validação do Lambda em uma hora, elesupõe que a implantação falhou.

Antes de invocar uma função do gancho do Lambda, o servidor deve ser notificado do ID de implantação edo ID de execução do gancho do evento do ciclo de vida:

aws deploy put-lifecycle-event-hook-execution-status --deployment-id <deployment-id> --status Succeeded --lifecycle-event-hook-execution-id <execution-id> --region <region>

A seguir está um exemplo de uma função de gancho do Lambda escrita em Node.js.

'use strict';

const aws = require('aws-sdk');const codedeploy = new aws.CodeDeploy({apiVersion: '2014-10-06'});

exports.handler = (event, context, callback) => { //Read the DeploymentId from the event payload. var deploymentId = event.DeploymentId;

//Read the LifecycleEventHookExecutionId from the event payload var lifecycleEventHookExecutionId = event.LifecycleEventHookExecutionId;

Versão da API 2014-10-06350

Page 361: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSeção 'hooks' de AppSpec

/* Enter validation tests here. */

// Prepare the validation test results with the deploymentId and // the lifecycleEventHookExecutionId for AWS CodeDeploy. var params = { deploymentId: deploymentId, lifecycleEventHookExecutionId: lifecycleEventHookExecutionId, status: 'Succeeded' // status can be 'Succeeded' or 'Failed' }; // Pass AWS CodeDeploy the prepared validation test results. codedeploy.putLifecycleEventHookExecutionStatus(params, function(err, data) { if (err) { // Validation failed. callback('Validation test failed'); } else { // Validation succeeded. callback(null, 'Validation test succeeded'); } });};

A seção 'hooks' AppSpec para uma implantação AWS LambdaTópicos

• Lista de ganchos do evento do ciclo de vida para uma implantação AWS Lambda (p. 351)• Ordem de execução de ganchos em uma implantação da versão da função do Lambda (p. 351)• Estrutura da seção 'hooks' (p. 352)• Função 'hooks' do Lambda de exemplo (p. 352)

Lista de ganchos do evento do ciclo de vida para uma implantação AWS Lambda

Um gancho da AWS Lambda é uma função do Lambda especificada com uma string em uma nova linhaapós o nome do evento de ciclo de vida. Cada gancho é executado uma vez por implantação. Veja aseguir as descrições dos ganchos que estão disponíveis para uso no seu arquivo AppSpec.

• BeforeAllowTraffic – use para executar tarefas antes que o tráfego seja deslocado para a versão dafunção do Lambda.

• AfterAllowTraffic – use para executar tarefas depois que o tráfego for deslocado para a versão da funçãodo Lambda.

Ordem de execução de ganchos em uma implantação da versão da função doLambda

Em uma implantação da versão da função do Lambda sem servidor, os ganchos de eventos sãoexecutados na seguinte ordem:

Versão da API 2014-10-06351

Page 362: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSeção 'hooks' de AppSpec

Note

Os eventos Start, AllowTraffic e End na implantação não podem ser especificados em scripts e épor isso que aparecem em cinza nesse diagrama.

Estrutura da seção 'hooks'Os seguintes são exemplos da estrutura da seção 'hooks'.

Uso de YAML:

hooks: - BeforeAllowTraffic: BeforeAllowTrafficHookFunctionName - AfterAllowTraffic: AfterAllowTrafficHookFunctionName

Uso de JSON:

"hooks": [{ "BeforeAllowTraffic": "BeforeAllowTrafficHookFunctionName" }, { "AfterAllowTraffic": "AfterAllowTrafficHookFunctionName"}]

Função 'hooks' do Lambda de exemploUse a seção "hooks" para especificar uma função do Lambda que o AWS CodeDeploy pode chamar paravalidar uma implantação do Lambda. Você pode usar a mesma função ou uma outra para os eventosde ciclo de vida de implantação BeforeAllowTraffic e AfterAllowTraffic. Após a conclusão dos testes devalidação, a função de validação do Lambda chama de volta o AWS CodeDeploy e fornece o resultado"Bem-sucedida" ou "Falha".

Important

Se o AWS CodeDeploy não for notificado pela função de validação do Lambda em uma hora, elesupõe que a implantação falhou.

Antes de invocar uma função do gancho do Lambda, o servidor deve ser notificado do ID de implantação edo ID de execução do gancho do evento do ciclo de vida:

Versão da API 2014-10-06352

Page 363: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSeção 'hooks' de AppSpec

aws deploy put-lifecycle-event-hook-execution-status --deployment-id <deployment-id> --status Succeeded --lifecycle-event-hook-execution-id <execution-id> --region <region>

A seguir está um exemplo de uma função de gancho do Lambda escrita em Node.js.

'use strict';

const aws = require('aws-sdk');const codedeploy = new aws.CodeDeploy({apiVersion: '2014-10-06'});

exports.handler = (event, context, callback) => { //Read the DeploymentId from the event payload. var deploymentId = event.DeploymentId;

//Read the LifecycleEventHookExecutionId from the event payload var lifecycleEventHookExecutionId = event.LifecycleEventHookExecutionId;

/* Enter validation tests here. */

// Prepare the validation test results with the deploymentId and // the lifecycleEventHookExecutionId for AWS CodeDeploy. var params = { deploymentId: deploymentId, lifecycleEventHookExecutionId: lifecycleEventHookExecutionId, status: 'Succeeded' // status can be 'Succeeded' or 'Failed' }; // Pass AWS CodeDeploy the prepared validation test results. codedeploy.putLifecycleEventHookExecutionStatus(params, function(err, data) { if (err) { // Validation failed. callback('Validation test failed'); } else { // Validation succeeded. callback(null, 'Validation test succeeded'); } });};

A seção 'hooks' AppSpec para uma implantação EC2/No localTópicos

• Lista de ganchos de eventos de ciclo de vida (p. 353)• Disponibilidade de ganchos de eventos de ciclo de vida (p. 355)• Ordem de execução de ganchos em uma implantação (p. 356)• Estrutura da seção 'hooks' (p. 358)• Disponibilidade variáveis de ambientes para ganchos (p. 359)• Exemplo de ganchos (p. 360)

Lista de ganchos de eventos de ciclo de vida

Um gancho de implantação da EC2/No local é executado uma vez por implantação a uma instância. Vocêpode especificar um ou mais scripts a serem executados em um gancho. Cada gancho para um eventode ciclo de vida é especificado com uma string em uma linha separada. Veja a seguir as descrições dosganchos que estão disponíveis para uso no seu arquivo AppSpec.

Versão da API 2014-10-06353

Page 364: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSeção 'hooks' de AppSpec

Para obter informações sobre quais ganchos de eventos de ciclo de vida são válidos para quais tipos deimplantação e reversão, consulte Disponibilidade de ganchos de eventos de ciclo de vida (p. 355).

• ApplicationStop – esse evento de ciclo de vida de implantação ocorre mesmo antes do downloadda revisão de aplicativo. Você pode especificar scripts para esse evento de forma a interrompernormalmente o aplicativo ou remover pacotes atualmente instalados na preparação de uma implantação.O AppSpec file e os scripts usados para esse evento de ciclo de vida de implantação são da revisão deaplicativo anterior implementada com êxito.

Note

Um AppSpec file não existe em uma instância antes de implantar nela. Por esse motivo, ogancho ApplicationStop não é executado da primeira vez em que você implanta na instância.É possível usar o gancho ApplicationStop da segunda vez em que você implantar em umainstância.

Para determinar a localização da revisão de aplicativo mais recente implantada com êxito, oagente do AWS CodeDeploy procura pela localização listada no arquivo deployment-group-id_last_successful_install. Esse arquivo está localizado em:

Pasta /opt/codedeploy-agent/deployment-root/deployment-instructions nas instânciasdo Amazon EC2 do Amazon Linux, Ubuntu Server e RHEL.

Pasta C:\ProgramData\Amazon\CodeDeploy\deployment-instructions nas instâncias doAmazon EC2 do Windows Server.

Para solucionar um problema de falha de implantação durante o evento de ciclo de vida de implantaçãoApplicationStop, consulte Solucionando problemas com eventos de ciclo de vida de implantaçãoApplicationStop, BeforeBlockTraffic e AfterBlockTraffic (p. 387).

• DownloadBundle – durante esse evento de ciclo de vida de implantação, o agente do AWS CodeDeploycopia os arquivos de revisão de aplicativo para uma localização temporária:

Pasta /opt/codedeploy-agent/deployment-root/deployment-group-id/deployment-id/deployment-archive nas instâncias do Amazon EC2 do Amazon Linux, Ubuntu Server e RHEL.

Pasta C:\ProgramData\Amazon\CodeDeploy\deployment-group-id\deployment-id\deployment-archive nas instâncias do Amazon EC2 do Windows Server.

Esse evento é reservado para o agente do AWS CodeDeploy e não pode ser usado para executarscripts.

Para solucionar um problema de falha de implantação durante o evento de ciclo de vida de implantaçãoDownloadBundle, consulte Solucionando problemas com um evento de ciclo de vida de implantaçãoDownloadBundle com falha que indica "UnknownError: not opened for reading" (p. 388).

• BeforeInstall – use esse evento de ciclo de vida de implantação para tarefas de pré-instalação, comodecodificar arquivos e criar um backup da versão atual.

• Install – durante esse evento de ciclo de vida de implantação, o agente do AWS CodeDeploy copia osarquivos de revisão da localização temporária para a pasta de destino final. Esse evento é reservadopara o agente do AWS CodeDeploy e não pode ser usado para executar scripts.

• AfterInstall – use esse evento de ciclo de vida de implantação para tarefas como configurar seuaplicativo ou alterar as permissões dos arquivos.

• ApplicationStart – em geral, esse evento de ciclo de vida de implantação é usado para reiniciar osserviços que foram interrompidos durante ApplicationStop.

• ValidateService – este é o último evento de ciclo de vida de implantação. Ele é usado para verificar se aimplantação foi concluída com sucesso.

• BeforeBlockTraffic – é possível usar esse evento de ciclo de vida de implantação para executar tarefasem instâncias antes que estas tenham seu registro cancelado de um load balancer.

Versão da API 2014-10-06354

Page 365: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSeção 'hooks' de AppSpec

Para solucionar um problema de falha de implantação durante o evento de ciclo de vida de implantaçãoBeforeBlockTraffic, consulte Solucionando problemas com eventos de ciclo de vida de implantaçãoApplicationStop, BeforeBlockTraffic e AfterBlockTraffic (p. 387).

• BlockTraffic – durante esse evento de ciclo de vida de implantação, o tráfego da Internet é impedido deacessar as instâncias que atualmente estão servindo o tráfego. Esse evento é reservado para o agentedo AWS CodeDeploy e não pode ser usado para executar scripts.

• AfterBlockTraffic – é possível usar esse evento de ciclo de vida de implantação para executar tarefas eminstâncias depois que estas tenham seu registro cancelado de um load balancer.

Para solucionar um problema de falha de implantação durante o evento de ciclo de vida de implantaçãoAfterBlockTraffic, consulte Solucionando problemas com eventos de ciclo de vida de implantaçãoApplicationStop, BeforeBlockTraffic e AfterBlockTraffic (p. 387).

• BeforeAllowTraffic – é possível usar esse evento de ciclo de vida de implantação para executar tarefasem instâncias antes que estas sejam registradas em um load balancer.

• AllowTraffic – durante esse evento de ciclo de vida de implantação, o tráfego da Internet pode acessarinstâncias após uma implantação. Esse evento é reservado para o agente do AWS CodeDeploy e nãopode ser usado para executar scripts.

• AfterAllowTraffic – é possível usar esse evento de ciclo de vida de implantação para executar tarefas eminstâncias depois que estas sejam registradas em um load balancer.

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 deimplantação e reversão.

Nome doevento de ciclode vida

Implantação nolocal¹

Implementaçãoazul/verde:instânciasoriginais

Implementaçãoazul/verde:instâncias desubstituição

Reversão deimplementaçãoazul/verde:instânciasoriginais

Reversão deimplantaçãoazul/verde:instâncias desubstituição

ApplicationStop ✓   ✓    

DownloadBundle² ✓   ✓    

BeforeInstall ✓   ✓    

Install² ✓   ✓    

AfterInstall ✓   ✓    

ApplicationStart ✓   ✓    

ValidateService ✓   ✓    

BeforeBlockTraffic ✓ ✓     ✓

BlockTraffic² ✓ ✓     ✓

AfterBlockTraffic ✓ ✓     ✓

BeforeAllowTraffic ✓   ✓ ✓  

AllowTraffic² ✓   ✓ ✓  

AfterAllowTraffic ✓   ✓ ✓  

Versão da API 2014-10-06355

Page 366: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSeção 'hooks' de AppSpec

Nome doevento de ciclode vida

Implantação nolocal¹

Implementaçãoazul/verde:instânciasoriginais

Implementaçãoazul/verde:instâncias desubstituição

Reversão deimplementaçãoazul/verde:instânciasoriginais

Reversão deimplantaçãoazul/verde:instâncias desubstituição

¹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ãoexecutados na seguinte ordem:

Note

Para implantações no local, os seis ganchos relacionados ao bloqueio e à permissão de tráfegoapenas serão aplicáveis se você especificar um Classic Load Balancer, Balanceador de carga deaplicações ou Network Load Balancer do Elastic Load Balancing no grupo de implantação.

Versão da API 2014-10-06356

Page 367: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSeção 'hooks' de AppSpec

Note

Os eventos Start, DownloadBundle, Install e End na implantação não podem ser especificadosem scripts e é por isso que aparecem em cinza nesse diagrama. No entanto, é possível editar aseção "files" do AppSpec file 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:

Versão da API 2014-10-06357

Page 368: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSeção 'hooks' de AppSpec

Note

Os eventos Start, DownloadBundle, Install, BlockTraffic, AllowTraffic e End na implantação nãopodem ser especificados em scripts e é por isso que aparecem em cinza nesse diagrama. Noentanto, é possível editar a seção "files" do AppSpec file para especificar o que é instaladodurante 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

Versão da API 2014-10-06358

Page 369: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSeção 'hooks' de AppSpec

Você pode incluir os seguintes elementos em uma entrada hookapós o nome do evento de ciclo de vida deimplantação:

location

Obrigatório. A localização no pacote do arquivo de script para a revisão.timeout

Opcional. O número de segundos para permitir que o script seja executado antes que ele sejaconsiderado com falha. O padrão é 3600 segundos (1 hora).

Note

3600 segundos (1 hora) é o tempo máximo permitido para a execução do script para cadaevento de ciclo de vida de implantação. Se os scripts excederem esse limite, a implantaçãoserá interrompida, e a implantação na instância falhará. Certifique-se de que o número totalde segundos especificado em timeout para todos os scripts em cada evento de ciclo de vidade implantação não exceda esse limite.

runas

Optional. O usuário para representar ao executar o script. Por padrão, este é o agente do AWSCodeDeploy em execução na instância. O AWS CodeDeploy não armazena senhas, portanto ousuário não pode ser imitado se o usuário runas precisar de uma senha. Esse elemento se aplicaapenas 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 seguintesvariá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 (porexemplo, 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 ovalor de DEPLOYMENT_GROUP_NAME é igual a Staging. Esse script deve ser invocado durante oevento BeforeInstall do evento de ciclo de vida de implantação:

Versão da API 2014-10-06359

Page 370: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSeção 'hooks' de AppSpec

if [ "$DEPLOYMENT_GROUP_NAME" == "Staging" ]then sed -i -e 's/Listen 80/Listen 9090/g' /etc/httpd/conf/httpd.conffi

O seguinte exemplo de script altera o nível de verbosidade das mensagens registradas em seu log deerros 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 vidade implantação:

if [ "$DEPLOYMENT_GROUP_NAME" == "Staging" ]then sed -i -e 's/LogLevel warn/LogLevel debug/g' /etc/httpd/conf/httpd.conffi

O seguinte exemplo de script substitui o texto na página da Web especificada pelo texto que exibe o valordessas variáveis de ambiente. Esse script deve ser invocado durante o evento AfterInstall do evento deciclo 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 uma entrada de ganchos que especifica dois ganchos para o evento de ciclode vida AfterInstall:

hooks: AfterInstall: - location: Scripts/RunResourceTests.sh timeout: 180 - location: Scripts/PostDeploy.sh timeout: 180

O script Scripts/RunResourceTests.sh será executado durante o estágio AfterInstall do processo deimplantação. A implantação não terá êxito se o script precisar de mais de 180 segundos (3 minutos) paraser executado.

A localização dos scripts que você especifica na seção hooks é relativa à raiz do pacote de revisão deaplicativo. No exemplo anterior, um arquivo chamado RunResourceTests.sh está em um diretóriochamado 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. 250).

Versão da API 2014-10-06360

Page 371: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAppSpec File Exemplo

AppSpec File ExemploEste tópico fornece arquivos AppSpec de exemplo para uma implantação AWS Lambda e EC2/No local.

Tópicos• Exemplo de AppSpec File para uma implantação Amazon ECS (p. 361)• Exemplo de AppSpec File para uma implantação AWS Lambda (p. 363)• Exemplo de AppSpec File para uma implantação EC2/No local (p. 364)

Exemplo de AppSpec File para uma implantaçãoAmazon ECSVeja a seguir um exemplo de um AppSpec file gravado em YAML para a implantação de um serviço doAmazon ECS.

version: 0.0Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "arn:aws:ecs:us-east-1:111222333444:task-definition/my-task-definition-family-name:1" LoadBalancerInfo: ContainerName: "SampleApplicationName" ContainerPort: 80✔ Optional properties PlatformVersion: "LATEST" NetworkConfiguration: AwsvpcConfiguration: Subnets: ["subnet-1234abcd","subnet-5678abcd"] SecurityGroups: ["sg-12345678"] AssignPublicIp: "ENABLED"Hooks: - BeforeInstall: "LambdaFunctionToValidateBeforeInstall" - AfterInstall: "LambdaFunctionToValidateAfterTraffic" - AfterAllowTestTraffic: "LambdaFunctionToValidateAfterTestTrafficStarts" - BeforeAllowTraffic: "LambdaFunctionToValidateBeforeAllowingProductionTraffic" - AfterAllowTraffic: "LambdaFunctionToValidateAfterAllowingProductionTraffic"

Aqui está uma versão do exemplo anterior escrito em JSON.

{ "version": 0.0, "Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "arn:aws:ecs:us-east-1:111222333444:task-definition/my-task-definition-family-name:1", "LoadBalancerInfo": { "ContainerName": "SampleApplicationName", "ContainerPort": 80 }, "PlatformVersion": "LATEST", "NetworkConfiguration": {

Versão da API 2014-10-06361

Page 372: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExemplo de AppSpec File parauma implantação Amazon ECS

"AwsvpcConfiguration": { "Subnets": [ "subnet-1234abcd", "subnet-5678abcd" ], "SecurityGroups": [ "sg-12345678" ], "AssignPublicIp": "ENABLED" } } } } } ], "Hooks": [ { "BeforeInstall": "LambdaFunctionToValidateBeforeInstall" }, { "AfterInstall": "LambdaFunctionToValidateAfterTraffic" }, { "AfterAllowTestTraffic": "LambdaFunctionToValidateAfterTestTrafficStarts" }, { "BeforeAllowTraffic": "LambdaFunctionToValidateBeforeAllowingProductionTraffic" }, { "AfterAllowTraffic": "LambdaFunctionToValidateAfterAllowingProductionTraffic" } ]}

Veja a seguir a sequência de eventos durante a implantação:

1. Antes que o aplicativo do Amazon ECS atualizado seja instalado no conjunto de tarefas de substituição,a função Lambda chamada LambdaFunctionToValidateBeforeInstall é executada.

2. Depois que o aplicativo do Amazon ECS atualizado seja instalado no conjunto detarefas de substituição, mas antes que ele receba tráfego, a função Lambda chamadaLambdaFunctionToValidateAfterTraffic é executada.

3. Depois que o aplicativo do Amazon ECS no conjunto de tarefas de substituiçãocomeçar a receber tráfego do listener de teste, a função Lambda chamadaLambdaFunctionToValidateAfterTestTrafficStarts será executada. Essa funçãoprovavelmente executa testes de validação para determinar se a implantação continua. Se você nãoespecificar um listener de teste no seu grupo de implantação, este gancho será ignorado.

4. Depois que todos os testes de validação no gancho AfterAllowTestTraffic forem concluídos,e antes que o tráfego de produção seja fornecido para o aplicativo do Amazon ECS atualizado, afunção Lambda chamada LambdaFunctionToValidateBeforeAllowingProductionTraffic éexecutada.

5. Depois que o tráfego de produção for fornecido para o aplicativo do Amazon ECSatualizado no conjunto de tarefas de substituição, a função Lambda chamadaLambdaFunctionToValidateAfterAllowingProductionTraffic é executada.

As funções Lambda que são executadas durante qualquer gancho podem executar testes de validação oucoletar métricas de tráfego.

Versão da API 2014-10-06362

Page 373: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExemplo de AppSpec File para

uma implantação AWS Lambda

Exemplo de AppSpec File para uma implantação AWSLambdaAqui está um exemplo de um AppSpec file escrito em YAML para a implantação de uma versão da funçãodo Lambda.

version: 0.0Resources: - myLambdaFunction: Type: AWS::Lambda::Function Properties: Name: "myLambdaFunction" Alias: "myLambdaFunctionAlias" CurrentVersion: "1" TargetVersion: "2"Hooks: - BeforeAllowTraffic: "LambdaFunctionToValidateBeforeTrafficShift" - AfterAllowTraffic: "LambdaFunctionToValidateAfterTrafficShift"

Aqui está uma versão do exemplo anterior escrito em JSON.

{ "version": 0.0, "Resources": [{ "myLambdaFunction": { "Type": "AWS::Lambda::Function", "Properties": { "Name": "myLambdaFunction", "Alias": "myLambdaFunctionAlias", "CurrentVersion": "1", "TargetVersion": "2" } } }], "Hooks": [{ "BeforeAllowTraffic": "LambdaFunctionToValidateBeforeTrafficShift" }, { "AfterAllowTraffic": "LambdaFunctionToValidateAfterTrafficShift" } ] }

Veja a seguir a sequência de eventos durante a implantação:

1. Antes de deslocar o tráfego da versão 1 de uma função do Lambda chamadamyLambdaFunction para a versão 2, execute uma função do Lambda chamadaLambdaFunctionToValidateBeforeTrafficShift que comprova que a implantação está prontapara iniciar o deslocamento do tráfego.

2. Se LambdaFunctionToValidateBeforeTrafficShift retornou um código de saída de 0 (êxito),comece a deslocar tráfego para a versão 2 da myLambdaFunction. A configuração de implantaçãopara esta implantação determina a taxa em que o tráfego é deslocado.

3. Após o deslocamento do tráfego da versão 1 de uma função do Lambda chamadamyLambdaFunction para a versão 2 for concluído, execute uma função do Lambda chamadaLambdaFunctionToValidateAfterTrafficShift que comprova que a implantação foi concluídacom êxito.

Versão da API 2014-10-06363

Page 374: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExemplo de AppSpec File parauma implantação EC2/No local

Exemplo de AppSpec File para uma implantação EC2/No localVeja a seguir um exemplo de um AppSpec file para uma implantação no local em uma instância doAmazon Linux, Ubuntu Server ou RHEL.

Note

As implantações em instâncias do Windows Server não são compatíveis com o elemento runas.Se você estiver implantando em instâncias do Windows Server, não inclua as implantações noAppSpec file.

version: 0.0os: linuxfiles: - source: Config/config.txt destination: /webapps/Config - source: source destination: /webapps/myApphooks: 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, altere os: linux para os: windows. Além disso, você devequalificar 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 FileO seguinte é o formato correto para o espaçamento de AppSpec file. Os números entre colchetes indicamo número de espaços que devem ocorrer entre os itens. Por exemplo, [4] significa inserir quatro espaços

Versão da API 2014-10-06364

Page 375: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioValidar seu AppSpec File e local do arquivo

entre os itens. O AWS CodeDeploy gerará um erro que pode ser difícil de depurar se as localizações e onúmero de espaços em um AppSpec file não estiverem corretos.

version:[1]version-numberos:[1]operating-system-namefiles:[2]-[1]source:[1]source-files-location[4]destination:[1]destination-files-locationpermissions:[2]-[1]object:[1]object-specification[4]pattern:[1]pattern-specification[4]except:[1]exception-specification[4]owner:[1]owner-account-name[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-typehooks:[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 AppSpec file corretamente espaçado:

version: 0.0os: linuxfiles: - source: / destination: /var/www/html/WordPresshooks: 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 - location: scripts/create_test_db.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 arquivoSintaxe de arquivos

Versão da API 2014-10-06365

Page 376: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioValidar seu AppSpec File e local do arquivo

O AWS CodeDeploy não fornece uma ferramenta para validar o conteúdo de um AppSpec File. Em vezdisso, considere usar uma ferramenta baseada em navegador, como YAML Lint ou Online YAML Parserpara ajudá-lo a verificar a sintaxe de YAML.

Local do arquivo

Para verificar se você colocou seu AppSpec file no diretório raiz da estrutura de diretórios do conteúdo deorigem do aplicativo, execute um dos seguintes comandos:

Em instância Linux, macOS, or Unix locais:

ls path/to/root/directory/appspec.yml

Se o AppSpec file 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 AppSpec file não estiver localizado lá, um erro "File Not Found" será exibido.

Versão da API 2014-10-06366

Page 377: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuário

Referência de configuração doagente do AWS CodeDeploy

Quando o agente do AWS CodeDeploy está instalado, um arquivo de configuração é colocado nainstância. Esse arquivo de configuração especifica caminhos de diretório e outras configurações para oAWS CodeDeploy usar à medida que ele interage com a instância. É possível alterar algumas das opçõesde configuração no arquivo.

Para instâncias do Amazon Linux, do Ubuntu Server e do Red Hat Enterprise Linux (RHEL), o nomedo arquivo de configuração é codedeployagent.yml. É possível encontrá-la no diretório /etc/codedeploy-agent/conf.

Para instâncias do Windows Server, o nome do arquivo de configuração é 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 AWSCodeDeploy capture logs do Amazon S3 e grave-os em um arquivo denominado codedeploy-agent.wire.log no local apontado pelaconfiguração :log_dir:.

Warning

Você deve definir :log_aws_wire:como true somente durante o temponecessário para capturar logs deconexão. O arquivo codedeploy-agent.wire.log pode aumentarrapidamente até atingir um tamanhomuito grande. A saída eletrônica de lognesse arquivo pode conter informaçõesconfidenciais, incluindo o conteúdo detexto simples de arquivos transferidospara dentro ou para fora do AmazonS3 enquanto essa configuração estavadefinida como true. Os logs eletrônicoscontêm informações sobre todas asatividades do Amazon S3 associadasà conta da AWS enquanto essaconfiguração estava definida como true,e não apenas as atividades relacionadas aimplantações do AWS CodeDeploy.

A configuração padrão é a false.

Essa configuração aplica-se a todos os tipos deinstâncias. Você deve adicionar essa definição deconfiguração a instâncias do Windows Server parapoder usá-la.

Versão da API 2014-10-06367

Page 378: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuário

:log_dir: A pasta na instância em que os arquivos de logrelacionados às operações do agente do AWSCodeDeploy são armazenadas.

A configuração padrão é '/var/log/aws/codedeploy-agent' para instâncias do AmazonLinux, do Ubuntu Server e do RHEL e instânciasdo C:\ProgramData\Amazon\CodeDeploy\log para Windows Server.

:pid_dir: A pasta onde codedeploy-agent.pid estáarmazenado.

Esse arquivo contém o ID do processo (PID) doagente do AWS CodeDeploy. A configuraçãopadrão é a '/opt/codedeploy-agent/state/.pid'.

Essa configuração é aplicável somente ainstâncias do Amazon Linux, do Ubuntu Server edo RHEL.

:program_name: O nome do programa do agente do AWSCodeDeploy.

A configuração padrão é a codedeploy-agent.

Essa configuração é aplicável somente ainstâncias do Amazon Linux, do Ubuntu Server edo RHEL.

:root_dir: A pasta em que as revisões relacionadas,o histórico de implantação e os scripts deimplantação na instância estão armazenados.

A configuração padrão é '/opt/codedeploy-agent/deployment-root' para instânciasdo Amazon Linux, do Ubuntu Server e do RHELe instâncias do C:\ProgramData\Amazon\CodeDeploy para Windows Server.

:verbose: Defina como true para que o agente doAWS CodeDeploy imprima arquivos de log demensagens de depuração na instância.

A configuração padrão é false para instânciasdo Amazon Linux, do Ubuntu Server e do RHEL einstâncias do true para Windows Server.

:wait_between_runs: O intervalo, em segundos, entre a sondagem doagente do AWS CodeDeploy de implantaçõespendentes no AWS CodeDeploy.

A configuração padrão é a 1.

Versão da API 2014-10-06368

Page 379: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioTópicos relacionados

:on_premises_config_file: Para instâncias locais, o caminho para umlocal alternativo para o arquivo de configuraçãodenominado codedeploy.onpremises.yml(para Ubuntu Server e RHEL) ouconf.onpremises.yml (para Windows Server).

Por padrão, esses arquivos são armazenadosem /etc/codedeploy-agent/conf/codedeploy.onpremises.yml paraUbuntu Server e RHEL e C:\ProgramData\Amazon\CodeDeploy\conf.onpremises.ymlpara Windows Server.

Disponível na versão 1.0.1.686 e em versõesposteriores do agente do AWS CodeDeploy.

:proxy_uri: (Opcional) O proxy HTTP através do qual vocêdeseja que o agente do AWS CodeDeployconecte-se à AWS para suas operações do AWSCodeDeploy. Use um formato semelhante ahttps://user:[email protected]:443/path?query.

Disponível na versão 1.0.1.824 e em versõesposteriores do agente do AWS CodeDeploy.

:max_revisions: (Opcional) O número de revisões de aplicativospara um grupo de implantação que você desejaque o agente do AWS CodeDeploy arquive. Todasas revisões que excederem o número especificadoserão excluídas.

Insira qualquer número inteiro positivo. Se nenhumvalor for especificado, o AWS CodeDeploy manteráas cinco revisões mais recentes, além da revisãoatualmente implantada.

Com suporte na versão 1.0.1.966 e versõesposteriores do agente do AWS CodeDeploy.

Tópicos relacionadosTrabalhando com o agente do AWS CodeDeploy (p. 132)

Gerenciando operações do agente do AWS CodeDeploy (p. 139)

Versão da API 2014-10-06369

Page 380: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuário

Referência de modelos do AWSCloudFormation para o AWSCodeDeploy

Além dos outros métodos disponíveis no AWS CodeDeploy, você pode usar modelos do AWSCloudFormation para executar 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 AWSusando modelos. Um template do AWS CloudFormation é um arquivo de texto cujo formato está emconformidade com o padrão JSON. Você cria um modelo que descreve todos os recursos da AWSdesejados, e o AWS CloudFormation cuida do provisionamento e da configuração desses recursos paravocê.

Para obter mais informações, consulte O que é o AWS CloudFormation? e Como trabalhar com modelosdo AWS CloudFormation no Guia do usuário do AWS CloudFormation.

Se você planeja usar modelos do AWS CloudFormation compatíveis com o AWS CodeDeploy em suaorganização, como administrador, você deve conceder acesso ao AWS CloudFormation e às açõese serviços da AWS dos quais o AWS CloudFormation depende. Para conceder permissões para criaraplicativos, grupos de implementação e configurações de implantação, anexe a seguinte política aosusuários do IAM que trabalharão com o AWS CloudFormation:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*" ], "Resource": "*" } ]}

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 AmazonEC2, consulte Criar uma instância do Amazon EC2 para o AWS CodeDeploy (modelo do AWSCloudFormation) (p. 171).

• Para obter informações sobre como anexar políticas aos usuários do IAM, consulte Como trabalhar compolíticas gerenciadas no Guia do usuário do IAM.

• Para aprender como restringir os usuários a um conjunto limitado de ações e recursos do AWSCodeDeploy, consulte Políticas gerenciadas (predefinidas) da AWS para o AWS CodeDeploy (p. 323).

Versão da API 2014-10-06370

Page 381: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuário

A tabela a seguir mostra as ações que um modelo do AWS CloudFormation pode executar em seu nomee inclui links para informações adicionais sobre os tipos de recursos da AWS e seus tipos de propriedadeque você pode adicionar a um modelo do AWS CloudFormation.

Ação Tipo de recurso do AWS CloudFormation

Crie uma aplicação AWS CodeDeploy. AWS::CodeDeploy::Application

Crie e especifique os detalhes de um grupode implantação a ser usado para implantar asrevisões de aplicativos. ¹

AWS::CodeDeploy::DeploymentGroup

Crie um conjunto de regras de implantação,condições de sucesso de implantação e condiçõesde falha de implantação que o AWS CodeDeployusará durante uma implantação.

AWS::CodeDeploy::DeploymentConfig

Criar uma instância do Amazon EC2. ² AWS::EC2::Instance

¹ Se você especificar a versão da revisão do aplicativo a ser implantada como parte do grupo deimplantação, sua revisão de destino será implantada assim que o processo de provisionamento forconcluído. Para obter mais informações sobre a configuração de modelos, consulte S3Location darevisão da implantação do DeploymentGroup do AWS CodeDeploy e GitHubLocation da revisão daimplantação do DeploymentGroup do AWS CodeDeploy no Guia do usuário do AWS CloudFormation.

² Fornecemos modelos que você pode usar para criar instâncias do Amazon EC2 nas regiõesem que o AWS CodeDeploy tem suporte. Para obter mais informações sobre como usar essestemplates, consulte Criar uma instância do Amazon EC2 para o AWS CodeDeploy (modelo do AWSCloudFormation) (p. 171).

Versão da API 2014-10-06371

Page 382: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioNomes de bucket do kit de recursos por região

Referência ao kit de recursos doAWS CodeDeploy

Muitos dos arquivos dos quais o AWS CodeDeploy depende estão armazenados em buckets do AmazonS3 publicamente disponíveis e específicos da região da AWS. Esses arquivos incluem os arquivos deinstalação do agente do AWS CodeDeploy, os modelos e os arquivos de aplicativos. Chamamos essacoleção de arquivos de Kit de recursos do AWS CodeDeploy.

Tópicos• Nomes de bucket do kit de recursos por região (p. 372)• Conteúdo do kit de recursos (p. 373)• Exibir uma lista dos arquivos do kit de recursos (p. 374)• Fazer download dos arquivos do kit de recursos (p. 375)

Nomes de bucket do kit de recursos por regiãoEsta tabela lista os nomes de substituições de nome-do-bucket necessários a alguns procedimentos noguia. Estes são os nomes dos buckets do Amazon S3 que contêm os arquivos de kit de recursos do AWSCodeDeploy.

Nome da região Substituição de nome-do-bucket

Identificador da região

Leste dos EUA (Ohio) aws-codedeploy-us-east-2 us-east-2

Leste dos EUA (Norte daVirgínia)

aws-codedeploy-us-east-1 us-east-1

Oeste dos EUA (Norte daCalifórnia)

aws-codedeploy-us-west-1 us-west-1

Oeste dos EUA (Oregon) aws-codedeploy-us-west-2 us-west-2

Canadá (Central) aws-codedeploy-ca-central-1 ca-central-1

UE (Irlanda) aws-codedeploy-eu-west-1 eu-west-1

UE (Londres) aws-codedeploy-eu-west-2 eu-west-2

UE (Paris) aws-codedeploy-eu-west-3 eu-west-3

UE (Frankfurt) aws-codedeploy-eu-central-1 eu-central-1

Ásia-Pacífico (Tóquio) aws-codedeploy-ap-northeast-1 ap-northeast-1

Ásia-Pacífico (Seul) aws-codedeploy-ap-northeast-2 ap-northeast-2

Ásia-Pacífico (Cingapura) aws-codedeploy-ap-southeast-1 ap-southeast-1

Versão da API 2014-10-06372

Page 383: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioConteúdo do kit de recursos

Nome da região Substituição de nome-do-bucket

Identificador da região

Ásia-Pacífico (Sydney) aws-codedeploy-ap-southeast-2 ap-southeast-2

Ásia Pacífico (Mumbai) aws-codedeploy-ap-south-1 ap-south-1

América do Sul (São Paulo) aws-codedeploy-sa-east-1 sa-east-1

Conteúdo do kit de recursosA tabela a seguir lista os arquivos no Kit de recursos do AWS CodeDeploy.

Arquivo Descrição

VERSION Um arquivo usado por agentes do AWSCodeDeploy para atualização à medida que elessão executados em instâncias.

codedeploy-agent.noarch.rpm O agente do AWS CodeDeploy para Amazon Linuxe Red Hat Enterprise Linux (RHEL). Pode havervários arquivos com o mesmo nome de arquivobase, mas versões diferentes (como -1.0-0).

codedeploy-agent_all.deb O agente do AWS CodeDeploy para UbuntuServer. Pode haver vários arquivos com o mesmonome de arquivo base, mas versões diferentes(como _1.0-0).

codedeploy-agent.msi O agente do AWS CodeDeploy para WindowsServer. Pode haver vários arquivos com o mesmonome de arquivo base, mas versões diferentes(como -1.0-0).

install Um arquivo que você pode usar para instalar maisfacilmente o agente do AWS CodeDeploy.

CodeDeploy_SampleCF_Template.json Um modelo do AWS CloudFormation que podeser usado para iniciar de uma a três instânciasdo Amazon EC2 em execução no Amazon Linuxou Windows Server. Pode haver vários arquivoscom o mesmo nome de arquivo base, mas versõesdiferentes (como -1.0.0).

CodeDeploy_SampleCF_ELB_Integration.jsonUm modelo do AWS CloudFormation que vocêpode usar para criar um site de amostra combalanceamento de carga em execução no ServidorWeb do Apache. O aplicativo é configuradopara cobrir todas as zonas de disponibilidadeda região na qual você o criou. Esse modelocria três instâncias do Amazon EC2 e o perfil deinstância do IAM para conceder às instânciasacesso aos recursos no Amazon S3, Amazon EC2Auto Scaling, AWS CloudFormation e Elastic LoadBalancing. Ele cria também o load balancer e umafunção de serviço do AWS CodeDeploy.

Versão da API 2014-10-06373

Page 384: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioExibir uma lista dos arquivos do kit de recursos

Arquivo Descrição

SampleApp_ELB_Integration.zip Uma revisão de aplicativo de exemplo que podeser implantada em uma instância do Amazon EC2registrada em um load balancer do Elastic LoadBalancing.

SampleApp_Linux.zip Uma amostra de revisão de aplicativo que podeser implantada em uma instância do Amazon EC2executando o Amazon Linux ou em uma instânciado Ubuntu Server ou RHEL. Pode haver váriosarquivos com o mesmo nome de arquivo base,mas versões diferentes (como -1.0).

SampleApp_Windows.zip Uma amostra de revisão de aplicativo que vocêpode implantar em uma instância do WindowsServer. Pode haver vários arquivos com o mesmonome de arquivo base, mas versões diferentes(como -1.0).

Exibir uma lista dos arquivos do kit de recursosPara ver uma lista de arquivos, use o comando aws s3 ls da sua região.

Note

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-west-3

•aws s3 ls --recursive s3://aws-codedeploy-eu-central-1

•aws s3 ls --recursive s3://aws-codedeploy-ap-northeast-1

•aws s3 ls --recursive s3://aws-codedeploy-ap-northeast-2

•aws s3 ls --recursive s3://aws-codedeploy-ap-southeast-1

Versão da API 2014-10-06374

Page 385: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioFazer download dos arquivos do kit de recursos

•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

Fazer download dos arquivos do kit de recursosPara fazer download de um arquivo, use o comando aws s3 cp da sua região.

Note

Certifique-se de usar o ponto final (.) perto do final. Isso baixa o arquivo no seu diretório atual.

Por exemplo, os seguintes comandos fazem download de um único arquivo chamadoSampleApp_Linux.zip em uma das pastas /samples/latest/ dos buckets:

•aws s3 cp s3://aws-codedeploy-us-east-2/samples/latest/SampleApp_Linux.zip . --region us-east-2

•aws s3 cp s3://aws-codedeploy-us-east-1/samples/latest/SampleApp_Linux.zip . --region us-east-1

•aws s3 cp s3://aws-codedeploy-us-west-1/samples/latest/SampleApp_Linux.zip . --region us-west-1

•aws s3 cp s3://aws-codedeploy-us-west-2/samples/latest/SampleApp_Linux.zip . --region us-west-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 eu-west-1

•aws s3 cp s3://aws-codedeploy-eu-west-2/samples/latest/SampleApp_Linux.zip . --region eu-west-2

•aws s3 cp s3://aws-codedeploy-eu-west-3/samples/latest/SampleApp_Linux.zip . --region eu-west-3

•aws s3 cp s3://aws-codedeploy-eu-central-1/samples/latest/SampleApp_Linux.zip . --region eu-central-1

•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

Versão da API 2014-10-06375

Page 386: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioFazer download dos arquivos do kit de recursos

•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 ap-south-1

•aws s3 cp s3://aws-codedeploy-sa-east-1/samples/latest/SampleApp_Linux.zip . --region sa-east-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-west-3 . --region eu-west-3

•aws s3 cp --recursive s3://aws-codedeploy-eu-central-1 . --region eu-central-1

•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

Versão da API 2014-10-06376

Page 387: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAplicativos

Limites do AWS CodeDeployAs tabelas a seguir descrevem limites em no AWS CodeDeploy.

Note

Você pode solicitar um aumento de limite para os limites do AWS CodeDeploy listados em Limitesde serviço da AWS no documento Referência geral do Amazon Web Services. Não é possívelaumentar o limite para o número de horas que uma implantação pode ser executada.

Tópicos• Aplicativos (p. 377)• Revisões de aplicativo (p. 377)• Implantações (p. 378)• Configurações de implantação (p. 379)• Grupos de implantação (p. 379)• Instâncias (p. 380)

AplicativosO número máximo de aplicações associadas auma conta da AWS em uma única região

100

Número máximo de caracteres no nome de umaplicativo

100

Caracteres permitidos no nome de um aplicativo Letras (az, AZ), números (0-9), ponto final (.),sublinhados (_), + (sinais de mais), = (sinais deigual), , (vírgulas), @ (sinais de arroba), - (sinaisde menos).

Número máximo de aplicativos que podem sertransmitidos à ação de API BatchGetApplications

100

Número máximo de tokens de conexão do GitHubpara uma única conta da AWS

25

Revisões de aplicativoNúmero máximo de caracteres em um nome derevisão de aplicativo

100

Tipos de arquivos permitidos para revisões deaplicativos

Arquivos com a extensão .zip ou .tar e arquivoscompactados com a extensão .tar.gz.

Um arquivamento simples ou compactadocompatível com o AWS CodeDeploy deve conter

Versão da API 2014-10-06377

Page 388: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioImplantações

um único application specification file (AppSpecfile) com o nome do arquivo appspec.yml.

ImplantaçõesNúmero máximo de implantações simultâneas emum grupo de implantação¹

1

O número máximo de implantações simultâneasassociadas a uma conta da AWS²

100

Número máximo de horas que uma implantaçãolocal da EC2/No local pode ficar em execução

8

Número máximo de horas entre a implantação deuma revisão e o deslocamento de tráfego para oambiente substituto durante uma implantação azul/verde da EC2/No local

48

Número máximo de horas entre a conclusão deuma implantação e o término do ambiente originaldurante uma implantação azul/verde da EC2/Nolocal

48

Número máximo de horas que uma implantaçãoazul/verde da EC2/No local pode ficar emexecução

109 (48 para cada um dos dois limites acima) maisuma hora para cada um dos 13 eventos possíveisde ciclo de vida

Número máximo de horas que uma implantação daAWS Lambda pode ficar em execução³

50 (48 horas para o tempo máximo entre o primeiroe o último deslocamento de tráfego mais uma horapara cada um dos dois ganchos possíveis de ciclode vida)

Número máximo de segundos até que um eventode ciclo de vida de implantação falhe se não forconcluído

3600

Número máximo de caracteres em uma descriçãode implantação

256

Número máximo de implantações que podem sertransmitidas à ação de API BatchGetDeployments

100

O número máximo de minutos até que umaimplantação falhe se um evento de ciclo de vidanão começar após:

• Uma implantação ser acionada usando oconsole ou o comando create-deployment daAWS CLI.

• O evento de ciclo de vida anterior ser concluído.

5

Número máximo de minutos que uma implantaçãoblue/green pode aguardar após uma implantaçãobem-sucedida antes de encerrar instâncias daimplantação original

2800

Versão da API 2014-10-06378

Page 389: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioConfigurações de implantação

Número máximo de listeners em uma rota detráfego durante uma implantação do Amazon ECS

1

¹ Esse limite destina-se a evitar implantações acidentais e simultâneas do mesmo aplicativo no mesmogrupo de implantação.

² Cada implantação em uma instância do Amazon EC2 dimensionada em um grupo de AmazonEC2 Auto Scaling conta como uma única implantação simultânea. Se a instância do Amazon EC2dimensionada estiver associada a vários aplicativos, uma implantação simultânea adicional para cadaaplicativo será gerada. Por exemplo, um grupo de Amazon EC2 Auto Scaling que for dimensionado emcinco instâncias do Amazon EC2 e estiver associado a um único aplicativo gerará cinco implementaçõessimultâneas. Se as mesmas cinco instâncias do Amazon EC2 dimensionadas forem associadas a doisaplicativos adicionais, isso gerará dez implantações simultâneas adicionais.

Configurações de implantaçãoNúmero máximo de configurações de implantaçãopersonalizadas associadas a uma conta da AWS

25

Valores permitidos para uma configuração deinstâncias íntegras mínimas de HOST_COUNT

Qualquer número inteiro positivo ou 0 (zero).Zero (0) resulta em uma implantação em todas asinstâncias ao mesmo tempo.

Valores permitidos para uma configuração deinstâncias íntegras mínimas de FLEET_PERCENT

Qualquer número inteiro positivo inferior a 100 ou0 (zero). Zero (0) resulta em uma implantação emtodas as instâncias ao mesmo tempo.

Número máximo de caracteres em um nome deconfiguração de implantação personalizado

100

Caracteres permitidos em um nome deconfiguração de implantação personalizado

Letras (az, AZ), números (0-9), ponto final (.),sublinhados (_), + (sinais de mais), = (sinais deigual), , (vírgulas), @ (sinais de arroba), - (sinaisde menos).

Prefixos não permitidos em um nome deconfiguração de implantação personalizado

CodeDeployDefault.

Número máximo de minutos entre o primeiro eo último deslocamento de tráfego durante umaimplantação canário ou linear da AWS Lambda

2.880

Porcentagem máxima de tráfego que pode serdeslocada em um incremento durante umaimplantação da AWS Lambda

99

Grupos de implantaçãoO número máximo de grupos de implantaçãoassociados a um único aplicativo

100

Número máximo de tags em um grupo deimplantação

10

Versão da API 2014-10-06379

Page 390: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioInstâncias

Número máximo de grupo de Amazon EC2 AutoScaling em um grupo de implantação

10

Número máximo de caracteres em um nome degrupo de implantação

100

Caracteres permitidos em um nome de grupo deimplantação

Letras (az, AZ), números (0-9), ponto final (.),sublinhados (_), + (sinais de mais), = (sinais deigual), , (vírgulas), @ (sinais de arroba), - (sinaisde menos).

O número máximo de acionadores de notificaçõesde evento em um grupo de implementação

10

O número máximo de grupos de implantação quepodem ser associados a um serviço do AmazonECS

1

InstânciasO número máximo de instâncias em uma únicaimplantação

500

Número máximo de caracteres em uma chave detag

128

Número máximo de caracteres em um valor de tag 256

Número máximo de instâncias quepodem ser transmitidas à ação de APIBatchGetOnPremisesInstances

100

O número máximo de instâncias que pode serusado por implantações simultâneas que estão emandamento e associadas a uma conta

500

Versão necessária do SDK da AWS para Ruby(aws-sdk-core)

2.1.2 ou anterior para versões do agente do AWSCodeDeploy anteriores a 1.0.1.880.

2.2 ou anterior para o agente do AWS CodeDeployversão 1.0.1.880 e posterior.

Versão da API 2014-10-06380

Page 391: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioProblemas de solução de problemas gerais

Solução de problemas do AWSCodeDeploy

Use os tópicos desta seção para ajudar a resolver problemas e erros que você possa encontrar ao usar oAWS CodeDeploy.

Note

Você pode identificar as causas de muitas falhas de implantação por meio da revisão dosarquivos 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 centralmenteem vez de visualizá-los caso a caso. Para obter informações, consulte Visualizar logs do AWSCodeDeploy no console do CloudWatch Logs.

Tópicos• Problemas de solução de problemas gerais (p. 381)• Solução de problemas de implantação da EC2/No local (p. 384)• Solução de problemas de implantação da AWS Lambda (p. 391)• Solucionar problemas com o grupo de implantação (p. 391)• Solução de problemas com a instância (p. 392)• Solução de problemas de token do GitHub (p. 393)• Solução de problemas com o Amazon EC2 Auto Scaling (p. 394)• Códigos de erro para o AWS CodeDeploy (p. 399)

Problemas de solução de problemas geraisTópicos

• Lista geral de verificação para solução de problemas (p. 381)• Os recursos de implantação do AWS CodeDeploy têm suporte apenas em certas regiões (p. 382)• Funções do IAM necessárias não estão disponíveis (p. 383)• Usar alguns editores de texto para criar arquivos AppSpec e scripts de shell pode fazer com que as

implantações falhem (p. 383)• O uso do Finder no macOS para agrupar uma revisão de aplicativo pode causar falhas na

implantação (p. 384)

Lista geral de verificação para solução de problemasVocê pode usar a seguinte lista de verificação para solucionar problemas com uma implantação quefalhou.

1. Consulte Visualizar detalhes de implantações do AWS CodeDeploy (p. 280) e Exibir Detalhes daInstância (p. 208) para determinar por que a implantação falhou. Se você não conseguir determinar acausa, 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 Pares de chaves do Amazon EC2 no Guia do usuário do Amazon EC2 parainstâncias do Linux.

Versão da API 2014-10-06381

Page 392: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioOs recursos de implantação do AWS CodeDeploy

têm suporte apenas em certas regiões

• O perfil de instâncias do IAM correto está anexado à instância? Para obter mais informações, consulteConfigurar uma instância do Amazon EC2 para trabalhar com o AWS CodeDeploy (p. 177) e Etapa 4:criar um perfil de instância do IAM para as suas instâncias do Amazon EC2 (p. 36).

• A instância foi marcada? Para obter mais informações, consulte Trabalhar com tags no console noGuia 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 maisinformações, consulte Gerenciando operações do agente do AWS CodeDeploy (p. 139).

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 com o

AWS CodeDeploy (p. 231).• Para verificar as configurações do seu grupo de implantação, consulte Visualizar detalhes do grupo

de implantação com o AWS CodeDeploy (p. 243).4. Confirme se a revisão de aplicativo está corretamente configurada:

• Verifique o formato do seu AppSpec file. Para obter mais informações, consulte Adicionar um arquivode especificações de aplicativo a uma revisão para o AWS CodeDeploy (p. 251) e ReferênciaAppSpec File do AWS CodeDeploy (p. 334).

• Verifique seu bucket do Amazon S3 ou o repositório GitHub para verificar sua revisão de aplicativoestá na localização esperada.

• Reveja os detalhes da sua revisão de aplicativo AWS CodeDeploy para garantir que ela estejaregistrada corretamente. Para obter informações, consulte Visualizar detalhes de revisões deaplicativo com o AWS CodeDeploy (p. 262).

• Se você estiver implantando a partir do Amazon S3, confira seu bucket do Amazon S3 para verificarse o AWS CodeDeploy recebeu permissão para baixar a revisão de aplicativo. Para obter informaçõessobre políticas de bucket, consulte Pré-requisitos de implantação (p. 267).

• Se você estiver implantando a partir do GitHub, confira seu repositório GitHub para verificar se o AWSCodeDeploy 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. 267) e Autenticação do GitHub comaplicativos no AWS CodeDeploy (p. 57).

5. Verifique se a função de serviço está corretamente configurada. Para obter informações, consulte Etapa3: criar uma função de serviço para o AWS CodeDeploy (p. 32).

6. Confirme que você seguiu as etapas em Introdução ao AWS CodeDeploy (p. 30) 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.

Para obter mais informações, consulte Autenticação e controle de acesso do AWS CodeDeploy (p. 316).7. Confirme que você está usando a AWS CLI versão 1.6.1 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 nestetópico.

Os recursos de implantação do AWS CodeDeploy têmsuporte apenas em certas regiõesSe você não vê ou não consegue acessar aplicativos, grupos de implantação, instâncias ou outrosrecursos de implantação na AWS CLI ou no console do AWS CodeDeploy, verifique se está fazendoreferência a uma das regiões listadas em Região e endpoints, na AWS General Reference.

As instâncias do Amazon EC2 e os grupos do Amazon EC2 Auto Scaling que serão usados emimplantações do AWS CodeDeploy devem ser iniciados e criados em uma dessas regiões.

Versão da API 2014-10-06382

Page 393: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioFunções do IAM necessárias não estão disponíveis

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, escolhauma das regiões com suporte.

Important

Para usar os serviços no Região China (Pequim) or Região da China (Ningxia), você deve ter umaconta e credenciais para essas regiões. As contas e credenciais de outras regiões do AWS nãofuncionarão para o Regiões de Pequim e Ningxia, e vice-versa.Informações sobre alguns recursos do o Regiões da China, como procedimentos de instalação doagente do AWS CodeDeploy e nomes de buckets de kits de recursos do AWS CodeDeploy nãoestã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ões da China (versão em inglês | versão em

chinês)

Funções do IAM necessárias não estão disponíveisSe você depender de um perfil de instâncias do IAM ou de uma função de serviço que foi criada comoparte de uma pilha do AWS CloudFormation, se excluir a pilha, todas as funções do IAM tambémserão excluídas. Talvez seja por isso que a função do IAM não é mais exibido no console do IAM e oAWS CodeDeploy não funciona conforme esperado. Para corrigir esse problema, é necessário recriarmanualmente a função do IAM excluída.

Usar alguns editores de texto para criar arquivosAppSpec e scripts de shell pode fazer com que asimplantações falhemAlguns 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 shellpara execução em instâncias do Amazon Linux, Ubuntu Server ou RHEL, todas as implementações quedependerem desses arquivos poderão falhar. Quando o AWS CodeDeploy usa esses arquivos duranteuma implantação, a presença desses caracteres pode levar a problemas de validação de AppSpec filedifí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 View logs(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 retornosde 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 seusarquivos AppSpec e de script de shell, para que você possa encontrar e remover qualquer caractere quepossa ter sido introduzido automática ou aleatoriamente. Para ver exemplos desses tipos de editores detexto, 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 criararquivos de script de shell que sejam executados em instâncias do Amazon Linux, Ubuntu Server ou

Versão da API 2014-10-06383

Page 394: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioO uso do Finder no macOS para agrupar uma revisão

de aplicativo pode causar falhas na implantação

RHEL. Para ver exemplos desses tipos de editores de texto, pesquise "editor de script de shell Linux" naInternet.

• Se você tiver que usar um editor de texto no Windows ou Mac OS para criar arquivos de script de shellpara execução em instâncias do Amazon Linux, Ubuntu Server ou RHEL, use um programa ou utilitárioque converta texto de formato Windows ou Mac OS no formato Unix. Para obter exemplos dessesprogramas e utilitários, pesquise "DOS para UNIX" ou "Mac para UNIX" na Internet. Certifique-se detestar os arquivos de script de shell convertidos nos sistemas operacionais de destino.

O uso do Finder no macOS para agrupar uma revisãode aplicativo pode causar falhas na implantaçãoAs implantações poderão falhar se você usar o aplicativo Finder de interface gráfica do usuário (GUI) emum Mac para agrupar (compactar) um AppSpec file e scripts e arquivos relacionados em um arquivamentode revisão de aplicativos (.zip). Isso acontece porque o Finder cria uma pasta __MACOSX intermediáriano arquivo .zip e coloca arquivos de componentes nessa pasta. Como o AWS CodeDeploy não consegueencontrar os arquivos de componentes, a implantação falha.

Para resolver esse problema, recomendamos que você use a AWS CLI para chamar o comando push, quecompacta esses arquivos na estrutura esperada. Como alternativa, é possível usar o Terminal em vez daGUI para compactar arquivos componentes. O terminal não cria uma pasta __MACOSX intermediária.

Solução de problemas de implantação da EC2/Nolocal

Tópicos• A implantação falha com a mensagem "Validation of PKCS7 signed message failed" (p. 385)• 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 nalocalização (p. 385)

• Solucionando problemas com um evento de ciclo de vida AllowTraffic com falha em erro relatado noslogs de implantação (p. 387)

• Solucionando problemas com eventos de ciclo de vida de implantação ApplicationStop,BeforeBlockTraffic e AfterBlockTraffic (p. 387)

• Solucionando problemas com um evento de ciclo de vida de implantação DownloadBundle com falhaque indica "UnknownError: not opened for reading" (p. 388)

• Os scripts do Windows PowerShell não conseguem usar a versão de 64 bits do Windows PowerShellpor padrão (p. 389)

• Processos de execução longa podem fazer com que as implantações falhem (p. 389)

Note

As causas de muitas falhas de implantação podem ser identificadas por meio da revisão dosarquivos 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 centralmenteem vez de visualizá-los caso a caso. Para obter informações, consulte Visualizar logs do AWSCodeDeploy no console do CloudWatch Logs.

Versão da API 2014-10-06384

Page 395: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioA implantação falha com a mensagem

"Validation of PKCS7 signed message failed"

A implantação falha com a mensagem "Validation ofPKCS7 signed message failed"Essa mensagem de erro indica que a instância está executando uma versão do agente do AWSCodeDeploy que apenas oferece suporte ao algoritmo de hash SHA-1. O suporte para o algoritmo dehash SHA-2 foi introduzido na versão 1.0.1.854 do agente do AWS CodeDeploy, lançada em novembrode 2015. A partir de 17 de outubro de 2016, as implantações falharão se uma versão do agente do AWSCodeDeploy anterior a 1.0.1.854 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 AWSCodeDeploy anteriores à versão 1.0.1.85 e Atualizar o agente do AWS CodeDeploy (p. 149).

A implantação ou reimplantação dos mesmos arquivosnos mesmos locais de instância falha com um erroindicando que a implantação falhou porque umarquivo especificado já existe na localizaçãoQuando o AWS CodeDeploy tenta implantar um arquivo em uma instância, mas um arquivo com omesmo nome já existe na localização de destino especificada, a implantação nessa instância podefalhar. Você poderá receber a mensagem de erro indicando que a implantação falhou porque um arquivoespecificado já existe na localização location-name. Isso ocorre porque, durante cada implantação, oAWS CodeDeploy primeiro exclui todos os arquivos da implantação anterior, que estão listados em umarquivo de log de limpeza. Se houver arquivos nas pastas de instalação de destino que não estão listadosnesse arquivo de limpeza, o agente do AWS CodeDeploy, por padrão, interpretará isso como um erro ereprovará a implantação.

Note

Em instâncias do Amazon Linux, RHEL e Ubuntu Server, o arquivo de limpeza está localizadoem /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 dereprovar a implantação. Para cada implantação, você pode optar por reprovar a implantação, substituir osarquivos 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 umainstância após a última implantação, mas adicionou um arquivo com o mesmo nome à próxima revisão deaplicativo.

É possível escolher a opção de retenção para os arquivos colocados na instância que você desejaque 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 deprodução, e você deseja implantar usando o AWS CodeDeploy pela primeira vez. Para obter maisinformações, consulte Criar uma implantação (console) EC2/No local Plataforma de computação. (p. 272) eComportamento de reversão com conteúdo existente (p. 287).

Solucionando erros de implantação indicando que a implantaçãofalhou porque um arquivo especificado já existe na localizaçãoSe você optar por não especificar uma opção para substituir ou manter o conteúdo detectado peloAWS CodeDeploy nos seus locais de implantação de destino (ou se não especificar nenhuma opção de

Versão da API 2014-10-06385

Page 396: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioA implantação ou reimplantação dos mesmos

arquivos nos mesmos locais de instância falha comum erro indicando que a implantação falhou porque

um arquivo especificado já existe na localizaçãoimplantação para lidar com conteúdo existente em um comando programático), será possível optar porsolucionar 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á melhoreschances de sucesso se você especificar o nome do aplicativo e o grupo de implantação com o mesmo IDde grupo de implantação subjacente usado antes. O AWS CodeDeploy usa o ID de grupo de implantaçãosubjacente 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 eminstâncias pode falhar por estes motivos:

• Você especificou um nome de aplicativo diferente para uma redistribuição da mesma revisão nasmesmas instâncias. A redistribuição falhará porque, mesmo que o nome do grupo de implantaçãoseja o mesmo, o uso de um nome de aplicativo diferente significa que um ID de grupo de implantaçãosubjacente diferente será usado.

• Você excluiu e recriou um grupo de implantação para um aplicativo e depois tentou reimplantar a mesmarevisão no grupo de implantação. A reimplantação falhará porque, mesmo que o nome do grupo deimplantação seja o mesmo, o AWS CodeDeploy fará referência a um ID de grupo de implantaçãosubjacente diferente.

• Você excluiu um aplicativo e grupo de implantação no AWS CodeDeploy e depois criou um novoaplicativo 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 nonovo grupo de implantação com o mesmo nome. A redistribuição falhará porque, mesmo que os nomesde aplicativo e grupo de implantação sejam os mesmos, o AWS CodeDeploy ainda faz referência ao IDdo 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ãoem outro grupo de implantação para as mesmas instâncias. A segunda implantação falhará porque oAWS 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 emoutro grupo de implantação para as mesmas instâncias. Existe pelo menos um arquivo com o mesmonome e no mesmo local em que o segundo grupo de implantação está tentando implantar. A segundaimplantação falhará porque o AWS CodeDeploy não removerá o arquivo existente antes do inícioda segunda implantação. Ambas as implementações farão referência a diferentes IDs de grupo deimplantação.

• Você implantou uma revisão no AWS CodeDeploy, mas há pelo menos um arquivo com o mesmo nomee no mesmo local. A implantação falhará porque, por padrão, o AWS CodeDeploy não removerá oarquivo 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, emseguida, tente de novo a implantação.

• No AppSpec file da sua revisão, nos eventos de ciclo de vida de implantação ApplicationStop ouBeforeInstall, especifique um script personalizado para excluir arquivos em qualquer localização quecorresponda 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 deimplementações anteriores.

• Antes de excluir um aplicativo ou um grupo de implantação, implemente uma revisão contendo umAppSpec file que não especifique arquivos para copiar nas instâncias. Para a implantação, especifiqueo nome do aplicativo e o nome do grupo de implantação que usam os mesmos IDs de aplicativo e grupode implantação subjacentes que aqueles que você está prestes a excluir. (Você pode usar o comandoget-deployment-group para recuperar o ID do grupo de implantação.) O AWS CodeDeploy usará oID do grupo de implantação subjacente e AppSpec file para remover todos os arquivos instalados naimplantação bem-sucedida anterior.

Versão da API 2014-10-06386

Page 397: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSolucionando problemas com um evento

de ciclo de vida AllowTraffic com falhaem erro relatado nos logs de implantação

Solucionando problemas com um evento de ciclo devida AllowTraffic com falha em erro relatado nos logsde implantaçãoEm alguns casos, uma implantação azul/verde falha durante o evento de ciclo de vida AllowTraffic, masnenhuma causa para a falha é indicada nos logs de implantação.

Essa falha geralmente ocorre devido às verificações de integridade que estão sendo configuradasincorretamente no Elastic Load Balancing para Classic Load Balancer, Balanceador de carga deaplicações, ou Network Load Balancer usados para gerenciar o tráfego para o grupo de implantação.

Para resolver o problema, reveja e corrija quaisquer erros na configuração de verificação de integridade dobalanceador de carga.

Para Classic Load Balancers, consulte Configurar verificações de integridade no Guia do usuário paraClassic Load Balancers and ConfigureHealthCheck na Elastic Load Balancing API Reference version2012-06-01.

Para Application Load Balancers, consulte Verificações de integridade para seus grupos de destino noGuia do usuário para Application Load Balancers.

Para Network Load Balancers, consulte Verificações de integridade para seus grupos de destino no Guiado usuário do Network Load Balancer.

Solucionando problemas com eventos de ciclo de vidade implantação ApplicationStop, BeforeBlockTraffic eAfterBlockTrafficDurante uma implantação, o agente do AWS CodeDeploy executa os scripts especificados paraApplicationStop, BeforeBlockTraffic e AfterBlockTraffic no arquivo AppSpec a partir da implantação anteriorbem-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 de 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 AppSpecfile é 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 durantequalquer um desses eventos. Na página de detalhes da implantação, escolha View events (Exibir eventos).Na página de detalhes para a instância, na linha ApplicationStop, BeforeBlockTraffic ou AfterBlockTraffic,

Versão da API 2014-10-06387

Page 398: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSolucionando problemas com um evento de ciclo

de vida de implantação DownloadBundle com falhaque indica "UnknownError: not opened for reading"

escolha View logs (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 comsucesso, crie uma nova implantação e especifique que as falhas ApplicationStop, BeforeBlockTraffic eAfterBlockTraffic devem ser ignoradas. Você pode fazer isso de duas maneiras:

• Use o console do AWS CodeDeploy para criar uma implantação. Na página Create deployment(Criar implantação), em ApplicationStop lifecycle event failure (Falha de evento do ciclo de vida doApplicationStop), escolha Don't fail the deployment to an instance if this lifecycle event on the instancefails (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 --ignore-application-stop-failures.

Quando você implantar a revisão de aplicativo novamente, a implantação continuará mesmo que algumdesses três eventos de ciclo de vida falhar. Se a nova revisão incluir scripts fixos para esses eventos deciclo de vida, as implementações futuras poderão ser bem-sucedidas sem a aplicação dessa correção.

Solucionando problemas com um evento de ciclo devida de implantação DownloadBundle com falha queindica "UnknownError: not opened for reading"Se você estiver tentando implantar uma revisão de aplicativo a partir do Amazon S3 e essa implantaçãofalhar durante o evento de ciclo de vida de implantação DownloadBundle com o erro "UnknownError: notopened 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 por push do AWS CodeDeploy para o Amazon S3 (somente implantaçõesde EC2/No local) (p. 259) e Pré-requisitos de implantação (p. 267).

• As instâncias nas quais você fará a implantação estão associadas a uma região (por exemplo, Oestedos EUA (Oregon)), mas o bucket do Amazon S3 que contém essa revisão de aplicativo está associadoa 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 Download bundle (Fazer download dopacote), escolha View logs (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ãode aplicativo.

2. Examine o arquivo de log para encontrar o erro. Mensagens de erro comuns para esse problemaincluem a frase "acesso negado".

3. Depois de examinar os arquivos de log, recomendamos que você desabilite o registro em log parareduzir o tamanho do arquivo de log e a quantidade de informações confidenciais que podem aparecerna 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. 132).

Versão da API 2014-10-06388

Page 399: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioOs scripts do Windows PowerShell não conseguem usara versão de 64 bits do Windows PowerShell por padrão

Os scripts do Windows PowerShell não conseguemusar a versão de 64 bits do Windows PowerShell porpadrãoSe um script do Windows PowerShell executado como parte de uma implantação depender dafuncionalidade de 64 bits (por exemplo, porque consome mais memória do que um aplicativo de 32 bitspermitirá 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 usaa versão de 32 bits do Windows PowerShell para executar scripts do Windows PowerShell que fazem partede 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 de64 bits do Windows PowerShell:

✔ Are you running in 32-bit mode?✔ (\SysWOW64\ = 32-bit mode)

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 $MyInvocation.MyCommand) @args

✔ 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 WindowsPowerShell 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 queas implantações falhemPara implantações em instâncias do Amazon Linux, Ubuntu Server e RHEL, se você tiver um script deimplantação que inicia um processo de execução longa, o AWS CodeDeploy poderá demorar muito tempono evento de ciclo de vida de implantação e, em seguida, reprovar a implantação. Isso ocorre porque, seo processo demorar mais que o tempo esperado para os processos de primeiro e segundo plano nesse

Versão da API 2014-10-06389

Page 400: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioProcessos de execução longa podemfazer com que as implantações falhem

evento, o AWS CodeDeploy interromperá e reprovará a implantação, mesmo que o processo ainda estejasendo executado conforme o esperado.

Por exemplo, uma revisão de aplicativo contém dois arquivos em sua raiz, after-install.sh esleep.sh. Seu AppSpec file contém as seguintes instruções:

version: 0.0os: linuxfiles: - source: ./sleep.sh destination: /tmphooks: 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:

✔!/bin/bash/tmp/sleep.sh

O arquivo sleep.sh contém o seguinte, que suspende a execução do programa por três minutos (180segundos), simulando alguns processos de execução longa:

✔!/bin/bashsleep 180

Quando after-install.sh chamar sleep.sh, sleep.sh será iniciado e continuará em execuçãopor três minutos (180 segundos), o que corresponde a dois minutos (120 segundos) além do tempoestimado 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á ereprovará a implantação no evento de ciclo de vida de aplicativo AfterInstall, mesmo que sleep.shcontinue 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 executarsleep.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 limitedo evento de ciclo de vida de implementação padrão de uma hora, após o qual o AWS CodeDeployinterromperá 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 CodeDeploycontinue 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 segundoplano, redirecionando stdout, stderr e stdin para /dev/null.

Versão da API 2014-10-06390

Page 401: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSolução de problemas de implantação da AWS Lambda

Solução de problemas de implantação da AWSLambda

Tópicos• As implantações do AWS Lambda falha após a interrupção manual de uma implantação do Lambda

que não tem reversões configuradas (p. 391)

As implantações do AWS Lambda falha após ainterrupção manual de uma implantação do Lambdaque não tem reversões configuradasEm alguns casos, o alias da função do Lambda especificada em uma implantação pode fazer referênciaa duas versões diferentes da função. O resultado é que as tentativas subsequentes de implantar a funçãodo Lambda falham. A implantação do Lambda pode chegar a esse estado quando não há reversõesconfiguradas e ela for interrompida manualmente. Para continuar, use o console do AWS Lambda paragarantir que a função não seja configurada para deslocamento de tráfego entre duas versões:

1. Faça login no Console de gerenciamento da AWS e abra o console AWS Lambda em https://console.aws.amazon.com/lambda/.

2. No painel esquerdo, escolha Functions (Funções).3. Selecione o nome da função do Lambda que está em sua implantação do AWS CodeDeploy.4. Em Qualifiers (Qualificadores), escolha o alias usado em sua implantação do AWS CodeDeploy.5. Em Additional Version (Versão adicional), escolha <none>. Isso garante que o alias não esteja

configurado para deslocar uma porcentagem, ou peso, do tráfego para mais de uma versão. Anote aversão selecionada no menu suspenso Version (Versão).

6. Escolha Save and test.7. Abra o console do AWS CodeDeploy e tente uma implantação da versão exibida no menu suspenso na

etapa 5.

Solucionar problemas com o grupo de implantaçãoMarcar uma instância como parte de um grupo deimplantação não implanta automaticamente seuaplicativo na nova instânciaO 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 doAmazon EC2 em grupos de Amazon EC2 Auto Scaling. Para obter mais informações, consulte Integrar oAWS CodeDeploy ao Amazon EC2 Auto Scaling (p. 46).

Versão da API 2014-10-06391

Page 402: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioSolução de problemas com a instância

Solução de problemas com a instânciaTópicos

• As tags devem ser definidas corretamente (p. 392)• O agente AWS CodeDeploy deve estar instalado e em execução nas instâncias (p. 392)• As implantações não falham por até uma hora quando uma instância é encerrada durante uma

implantação (p. 392)• Analisando arquivos de log para investigar falhas de implantação em instâncias (p. 393)• Criar um novo arquivo de log do AWS CodeDeploy caso ele tenha sido excluído por acidente (p. 393)• Solucionando erros de implantação que indicam "InvalidSignatureException – Signature expired: [time]

is now earlier than [time]" (p. 393)

As tags devem ser definidas corretamenteUse o comando list-deployment-instances para confirmar que as instâncias usadas para uma implantaçãoestão marcadas corretamente. Se uma instância do Amazon EC2 estiver ausente na saída, use o consoledo Amazon EC2 para confirmar que as tags foram definidas nessa instância. Para obter mais informações,consulte Trabalhar com tags no console no Guia do usuário do Amazon EC2 para instâncias do Linux.

Note

Se você marcar uma instância e usar imediatamente o AWS CodeDeploy para implantar umaplicativo nela, talvez essa instância não seja incluída na implantação. Isso ocorre porque podemser necessários vários minutos antes que o AWS CodeDeploy possa ler as tags. Recomendamosque você aguarde pelo menos cinco minutos entre o momento de marcar uma instância e atentativa de implantar nela.

O agente AWS CodeDeploy deve estar instalado e emexecução nas instânciasPara verificar se o agente do AWS CodeDeploy está instalado e em execução em uma instância, consulteVerificar se o agente do AWS CodeDeploy está em execução (p. 140).

Para instalar, desinstalar ou reinstalar o agente do AWS CodeDeploy, consulte Instalar ou reinstalar oagente do AWS CodeDeploy (p. 142).

As implantações não falham por até uma hora quandouma instância é encerrada durante uma implantaçãoO AWS CodeDeploy fornece uma janela de uma hora para cada evento de ciclo de vida de implantaçãoser 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 umevento de ciclo de vida estiver em andamento (por exemplo, se uma instância for encerrada ou o agentedo AWS CodeDeploy for desligado), poderá demorar até uma hora para que o status da implantação sejaexibido como Falha. Isso é verdade mesmo que o período de tempo limite especificado no script sejamenor que uma hora. Isso ocorre porque, quando a instância for encerrada, o agente do AWS CodeDeployserá desligado e não poderá processar scripts adicionais.

Porém, se uma instância for encerrada entre eventos de ciclo de vida ou antes do início da primeira etapado evento de ciclo de vida, o tempo limite ocorrerá depois de apenas cinco minutos.

Versão da API 2014-10-06392

Page 403: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAnalisando arquivos de log para investigar

falhas de implantação em instâncias

Analisando arquivos de log para investigar falhas deimplantação em instânciasSe o status de uma instância na implantação for algo diferente de Succeeded, você poderá analisar osdados do arquivo de log de implantação para ajudar a identificar o problema. Para obter informações sobrecomo acessar dados do log de implantação, consulte Visualizar dados de log para implantações de EC2/No local do AWS CodeDeploy (p. 281).

Criar um novo arquivo de log do AWS CodeDeploycaso ele tenha sido excluído por acidenteSe você excluir acidentalmente o arquivo de log de implantação em uma instância, o AWS CodeDeploynão criará um arquivo de log de substituição. Para criar um novo arquivo de log, faça login na instância edepois execute estes comandos:

Para uma instância do Amazon Linux, Ubuntu Server ou RHEL, execute estes comandos nesta ordem, umde 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 ahora da sua instância não estiverem definidas corretamente, talvez elas não correspondam à data deassinatura 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 seguintestópicos:

• Definição da hora de sua instância do Linux• Definição de horário para uma instância do Windows

Solução de problemas de token do GitHubToken OAuth inválido do GitHubOs aplicativos AWS CodeDeploy criados depois de junho de 2017 usam tokens OAuth do GitHub paracada região da AWS. O uso de tokens vinculados a regiões específicas dá a você mais controle sobrequais aplicativos AWS CodeDeploy têm acesso a um repositório GitHub.

Se receber um erro de token do GitHub, talvez você tenha um token mais antigo que agora é inválido.

Versão da API 2014-10-06393

Page 404: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioNúmero máximo de tokens OAuth do GitHub excedido

Para corrigir um token OAuth inválido do GitHub

1. Use DeleteGitHubAccountToken para remover o token antigo.2. Adicione um novo token OAuth. Para obter mais informações, consulte Integrando o AWS CodeDeploy

com o GitHub (p. 56).

Número máximo de tokens OAuth do GitHub excedidoQuando você cria uma implantação do AWS CodeDeploy, o número máximo de tokens do GitHubpermitido é 10. Se receber um erro sobre os tokens OAuth do GitHub, verifique se você tem 10 tokensou menos. Se você tiver mais de 10 tokens, os primeiros tokens que foram criados serão consideradosinválidos. Por exemplo, se você tiver 11 tokens, o primeiro token criado será inválido. Se tiver 12 tokens,os dois primeiros tokens que você criou serão inválidos. Para obter informações sobre como usar a API doAWS CodeDeploy para remover tokens antigos, consulte DeleteGitHubAccountToken.

Solução de problemas com o Amazon EC2 AutoScaling

Tópicos• Solução geral de problemas do Amazon EC2 Auto Scaling (p. 394)• As instâncias em um grupo de Amazon EC2 Auto Scaling são continuamente provisionadas e

encerradas antes que uma revisão possa ser implantada (p. 395)• Terminar ou reiniciar uma instância do Amazon EC2 Auto Scaling pode fazer com que as implantações

falhem (p. 396)• Evite associar vários grupos de implantação a um único grupo de Amazon EC2 Auto Scaling (p. 396)• As instâncias do Amazon EC2 em um grupo de Amazon EC2 Auto Scaling falham ao ser iniciadas e

recebem o erro "Heartbeat Timeout" (p. 397)• Ganchos de ciclo de vida de Amazon EC2 Auto Scaling com correspondência incorreta podem fazer

com que implantações automáticas em grupos de Amazon EC2 Auto Scaling sejam interrompidas oureprovadas (p. 398)

Solução geral de problemas do Amazon EC2 AutoScalingImplementações em instâncias do Amazon EC2 em um grupo de Amazon EC2 Auto Scaling podem falharpelos seguintes motivos:

• Amazon EC2 Auto Scaling inicia e encerra instâncias do Amazon EC2 continuamente. Se o AWSCodeDeploy não puder implantar automaticamente sua revisão de aplicativo, a Amazon EC2 AutoScaling continuará a iniciar e encerrar as instâncias do Amazon EC2.

Desassocie o grupo de Amazon EC2 Auto Scaling da implantação do AWS CodeDeploy ou altere aconfiguração do seu grupo de Amazon EC2 Auto Scaling para que o número desejado de instânciascorresponda ao número atual de instâncias (impedindo assim que a Amazon EC2 Auto Scaling iniciemais instâncias do Amazon EC2). Para obter mais informações, consulte Alterar configurações do grupode implantação com o AWS CodeDeploy (p. 244) ou Grupos de Auto Scaling.

• O agente do AWS CodeDeploy não responde. O agente do AWS CodeDeploy pode não ser instaladose scripts de inicialização (por exemplo, scripts cloud-init) que são executados imediatamente depoisque uma instância do Amazon EC2 é lançada ou inicializada levarem mais de uma hora para serem

Versão da API 2014-10-06394

Page 405: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAs instâncias em um grupo de Amazon EC2 Auto

Scaling são continuamente provisionadas e encerradasantes que uma revisão possa ser implantada

executados. O AWS CodeDeploy tem um tempo limite de uma hora para o agente do AWS CodeDeployresponder a implantações pendentes. Para resolver esse problema, mova seus scripts de inicializaçãopara sua revisão de aplicativo AWS CodeDeploy.

• Uma instância do Amazon EC2 em um grupo de Amazon EC2 Auto Scaling é reinicializada durante umaimplantação. Sua implantação poderá falhar se uma instância do Amazon EC2 for reinicializada duranteuma implantação ou se o agente do AWS CodeDeploy for desligado durante o processamento de umcomando de implantação. Para obter mais informações, consulte Terminar ou reiniciar uma instância doAmazon EC2 Auto Scaling pode fazer com que as implantações falhem (p. 396).

• As várias revisões de aplicativos são implantadas simultaneamente na mesma instância do Amazon EC2em um grupo de Amazon EC2 Auto Scaling. A implantação de várias revisões de aplicativos na mesmainstância do Amazon EC2 em um grupo de Amazon EC2 Auto Scaling ao mesmo tempo poderá falharse uma das implantações tiver scripts que forem executados por mais de alguns minutos. Não implantevárias revisões de aplicativos nas mesmas instâncias do Amazon EC2 em um grupo de Amazon EC2Auto Scaling.

• Uma implantação falhará para novas instâncias do Amazon EC2 que forem iniciadas como parte deum grupo de Amazon EC2 Auto Scaling. Normalmente, nesse cenário, a execução de scripts em umaimplantação pode impedir a inicialização de instâncias do Amazon EC2 no grupo de Amazon EC2 AutoScaling. (Outras instâncias do Amazon EC2 no grupo de Amazon EC2 Auto Scaling podem parecerestar em execução normalmente.) Para resolver esse problema, verifique se todos os outros scripts sãoconcluídos primeiro:• O agente do AWS CodeDeploy não está incluído na sua AMI: se você usar o comando cfn-init para

instalar o agente do AWS CodeDeploy enquanto inicia uma nova instância, coloque o script deinstalação do agente no final da seção cfn-init do seu modelo do AWS CloudFormation.

• O agente do AWS CodeDeploy está incluído na sua AMI : se você incluir o agente do AWSCodeDeploy na sua AMI, configure-o para que ele esteja em um estado Stopped quando a instânciafor criada e depois inclua um script para iniciar o agente como a etapa final na sua biblioteca de scriptscfn-init.

.

As instâncias em um grupo de Amazon EC2Auto Scaling são continuamente provisionadase encerradas antes que uma revisão possa serimplantadaEm alguns casos, um erro pode impedir uma implantação bem-sucedida em instâncias recém-provisionadas em um grupo de Amazon EC2 Auto Scaling. Os resultados são instâncias não íntegrase implantações sem sucesso. Como a implantação não pode ser executada ou concluída com êxito, asinstâncias são encerradas logo depois de serem criadas. Em seguida, a configuração do grupo de AmazonEC2 Auto Scaling fará com que outro lote de instâncias seja provisionado para tentar atender ao requisitomí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 Amazon EC2 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 Amazon EC2 AutoScaling. Marque a instância com uma tag de instância do EC2 exclusiva.

Versão da API 2014-10-06395

Page 406: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioTerminar ou reiniciar uma instância do Amazon EC2 Auto

Scaling pode fazer com que as implantações falhem

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 Amazon EC2 Auto Scaling implante a revisão de aplicativo em instânciasfuturas no grupo de Amazon EC2 Auto Scaling.

Note

Após confirmar que as implantações foram realizadas com êxito, você poderá excluir a instânciacriada para evitar cobranças de taxas contínuas.

Terminar ou reiniciar uma instância do Amazon EC2Auto Scaling pode fazer com que as implantaçõesfalhemSe uma instância do Amazon EC2 for iniciada através do Amazon EC2 Auto Scaling e, em seguida, forencerrada 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 deencerramento fará com que a instância se separe do grupo de Amazon EC2 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 CodeDeployconsidera isso um tempo limite. O serviço reprovará todas as implementações atuais e futuras nessainstância.

Para resolver esse problema:

• Em geral, verifique se todas as implantações estão concluídas antes que a instância seja encerrada oureinicializada. 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 parauma configuração de Amazon EC2 Auto Scaling e usar o serviço EC2Config para definir o nome docomputador da instância, esse comportamento poderá fazer com que as implantações falhem. Paradesabilitar esse comportamento, na AMI base do Windows Server, na guia General (Geral) da caixade diálogo Ec2 Service Properties (Propriedades do serviço Ec2), desmarque a caixa Set ComputerName (Definir nome do computador). Depois que você desmarcar a caixa, esse comportamento serádesabilitado para todas as novas instância de Windows Server do Amazon EC2 Auto Scaling iniciadascom essa AMI base do Windows Server. Para instâncias de Windows Server do Amazon EC2 AutoScaling nas quais esse comportamento esteja habilitado, você não precisa desmarcar a caixa. Bastareimplantar 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 Amazon EC2 Auto ScalingComo prática recomendada, você deve associar apenas um grupo de implantação a cada grupo deAmazon EC2 Auto Scaling.

Isso porque, se a Amazon EC2 Auto Scaling dimensionar uma instância que tem ganchos associadosa vários grupos de implantação, ela enviará notificações para todos os ganchos de uma só vez. Issofaz com que várias implantações em cada instância sejam iniciadas ao mesmo tempo. Quando váriasimplementações enviam comandos ao agente do AWS CodeDeploy ao mesmo tempo, o limite de cincominutos entre um evento de ciclo de vida e o início da implantação ou término do evento de ciclo de

Versão da API 2014-10-06396

Page 407: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAs instâncias do Amazon EC2 em um grupode Amazon EC2 Auto Scaling falham ao ser

iniciadas e recebem o erro "Heartbeat Timeout"vida anterior pode ser atingido. Se isso acontecer, a implantação falhará, mesmo que um processo deimplantação esteja em execução conforme o esperado.

Note

O limite padrão de um script em um evento de ciclo de vida é 30 minutos. Você pode alterar olimite para um valor diferente no AppSpec file. Para obter mais informações, consulte Adicionarum arquivo AppSpec para uma implantação de EC2/No local (p. 255).

Não é possível controlar a ordem em que as implantações ocorrem quando mais de uma implantação tentaser executada ao mesmo tempo.

Por fim, se a implantação em qualquer instância falhar, a Amazon EC2 Auto Scaling encerrará essainstância imediatamente. Quando essa primeira instância for encerrada, as outras implementações queestavam em execução começarão a falhar. Como o AWS CodeDeploy tem um tempo limite de uma horapara o agente do AWS CodeDeploy responder a implantações pendentes, pode demorar até 60 minutospara que cada instância atinja o tempo limite.

Para obter mais informações sobre a Amazon EC2 Auto Scaling, consulte Nos bastidores: integração entreo AWS CodeDeploy e o Auto Scaling.

As instâncias do Amazon EC2 em um grupo deAmazon EC2 Auto Scaling falham ao ser iniciadas erecebem o erro "Heartbeat Timeout"Um grupo de Amazon EC2 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: Instancefailed to complete user's Lifecycle Action: Lifecycle Action with token<token-Id> was abandoned: Heartbeat Timeout.

Em geral, essa mensagem indica uma das seguintes situações:

• O número máximo de implantações simultâneas associadas a uma conta da AWS foi alcançado. Paraobter mais informações sobre limites de implantação, consulte Limites do AWS CodeDeploy (p. 377).

• Um aplicativo no AWS CodeDeploy foi excluído antes que seus grupos de implantação associadosfossem atualizados ou excluídos.

Quando você exclui um aplicativo ou grupo de implantação, o AWS CodeDeploy tenta limpar qualquergancho de Amazon EC2 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 retornadosna saída. Porém, se você executar um comando para excluir um aplicativo, os ganchos restantes nãoaparecerão na saída.

Portanto, como prática recomendada, você deve excluir todos os grupos de implantação associados a umaplicativo antes de excluir esse aplicativo. É possível usar a saída do comando para identificar os ganchosde ciclo de vida que devem ser excluídos manualmente.

Se você estiver recebendo uma mensagem de erro "Heartbeat Timeout", pode determinar se os ganchosde ciclo de vida útil restantes são a causa e resolver o problema, fazendo o seguinte:

1. Execute o comando update-deployment-group ou delete-deployment-group. Examine a saída dachamada. Se a saída contiver uma estrutura hooksNotCleanedUp com uma lista de ganchos deciclo de vida de Amazon EC2 Auto Scaling, os ganchos de ciclo de vida restantes são provavelmentea causa do erro.

Versão da API 2014-10-06397

Page 408: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioGanchos de ciclo de vida de Amazon EC2 Auto Scalingcom correspondência incorreta podem fazer com que

implantações automáticas em grupos de AmazonEC2 Auto Scaling sejam interrompidas ou reprovadas2. Chame o comando describe-lifecycle-hooks, especificando o nome do grupo de Amazon EC2 Auto

Scaling associado às instâncias do Amazon EC2 que não puderam ser executadas. Na saída, procurequalquer nome de gancho de ciclo de vida de Amazon EC2 Auto Scaling que corresponda à estruturahooksNotCleanedUp que você identificou na etapa 1. Como alternativa, procure nomes de ganchode ciclo de vida de Amazon EC2 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 do Amazon EC2 AutoScaling. Especifique o grupo de Amazon EC2 Auto Scaling e um gancho de ciclo de vida.

Se você excluir (de um grupo de Amazon EC2 Auto Scaling) todos os ganchos de ciclo de vida de AmazonEC2 Auto Scaling criados pelo AWS CodeDeploy, o AWS CodeDeploy deixará de implantar em instânciasdo Amazon EC2 dimensionadas como parte desse grupo de Amazon EC2 Auto Scaling.

Ganchos de ciclo de vida de Amazon EC2 AutoScaling com correspondência incorreta podem fazercom que implantações automáticas em grupos deAmazon EC2 Auto Scaling sejam interrompidas oureprovadasA Amazon EC2 Auto Scaling e o AWS CodeDeploy usam ganchos de ciclo de vida para determinarquais revisões de aplicativos devem ser implantadas em quais instâncias do Amazon EC2 depois deelas terem sido iniciadas em grupos de Amazon EC2 Auto Scaling. Implantações automáticas poderãoser interrompidas ou falhar se ganchos de ciclo de vida e as informações sobre esses ganchos nãocorresponderem exatamente na Amazon EC2 Auto Scaling e no AWS CodeDeploy.

Se as implantações em um grupo de Amazon EC2 Auto Scaling estiverem falhando, veja se os nomesdos ganchos de ciclo de vida na Amazon EC2 Auto Scaling e no AWS CodeDeploy correspondem. Casocontrá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 Amazon EC2 AutoScaling e o grupo de implantação:

1. Chame o comando describe-lifecycle-hooks, especificando o nome do grupo do Amazon EC2Auto Scaling associado ao grupo de implantação no AWS CodeDeploy. Na saída, na listaLifecycleHooks, anote cada valor de LifecycleHookName.

2. Chame o comando get-deployment-group, especificando o nome do grupo de implantação associadoao grupo do Amazon EC2 Auto Scaling. Na saída, na lista autoScalingGroups, localize cada itemcujo valor de nome corresponda ao nome do grupo de Amazon EC2 Auto Scaling e depois anote ovalor de hook correspondente.

Agora, compare os dois conjuntos de nomes de ganchos de ciclo de vida. Se eles corresponderemexatamente, caractere por caractere, então este não é o problema. Você pode tentar outras etapas desolução de problemas do Amazon EC2 Auto Scaling descritas em outras partes desta seção.

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 quetambém não estão na saída do comando get-deployment-group, faça o seguinte:

a. Para cada nome de gancho de ciclo de vida na saída do comando describe-lifecycle-hooks,chame o comando delete-lifecycle-hook.

Versão da API 2014-10-06398

Page 409: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCódigos de erro

b. Chame o comando update-deployment-group, especificando o nome do grupo do AmazonEC2 Auto Scaling original. O AWS CodeDeploy vai criar novos ganchos de ciclo de vida desubstituição no grupo do Amazon EC2 Auto Scaling e associar esses ganchos ao grupo deimplantação. As implantações automáticas serão agora retomadas à medida que novas instânciasforem adicionadas ao grupo de Amazon EC2 Auto Scaling.

2. Se houver nomes de ganchos de ciclo de vida na saída do comando get-deployment-group quetambém não estão na saída do comando describe-lifecycle-hooks, faça o seguinte:

a. Chame o comando update-deployment-group, mas não especifique o nome do grupo do AmazonEC2 Auto Scaling original.

b. Chame o comando update-deployment-group novamente, mas desta vez especifique o nomedo grupo Amazon EC2 Auto Scaling inicial. o AWS CodeDeploy recriará os ganchos de ciclo devida ausentes no grupo Amazon EC2 Auto Scaling. As implantações automáticas serão agoraretomadas à medida que novas instâncias forem adicionadas ao grupo de Amazon EC2 AutoScaling.

Depois de fazer com que os dois conjuntos de nomes de ganchos de ciclo de vida correspondamexatamente, caractere por caractere, as revisões de aplicativos deverão ser reimplantadas, mas apenasnas novas instâncias à medida que elas forem adicionadas ao grupo de Amazon EC2 Auto Scaling. Asimplantações não ocorrerão automaticamente para instâncias que já estejam no grupo de Amazon EC2Auto Scaling.

Códigos de erro para o AWS CodeDeployEste tópico fornece informações de referência sobre erros do AWS CodeDeploy.

Código de erro Descrição

AGENT_ISSUE

A implantação falhou por causa de um problemacom o agente do AWS CodeDeploy. Certifique-se de que o agente esteja instalado e emexecução em todas as instâncias neste grupo deimplantação.

Saiba mais:

• Verificar se o agente do AWS CodeDeploy estáem execução (p. 140)

• Instalar ou reinstalar o agente do AWSCodeDeploy (p. 142)

• Trabalhando com o agente do AWSCodeDeploy (p. 132)

HEALTH_CONSTRAINTS

A implantação geral falhou porque muitasinstâncias individuais falharam na implantação,poucas instâncias íntegras estão disponíveis paraimplantação ou algumas instâncias no seu grupode implantação estão apresentando problemas.

Saiba mais:

• Integridade da instância (p. 209)• Solução de problemas com a instância (p. 392)

Versão da API 2014-10-06399

Page 410: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioCódigos de erro

Código de erro Descrição• Solução de problemas de implantação da EC2/

No local (p. 384)

HEALTH_CONSTRAINTS_INVALID

A implantação não pode ser iniciada porqueo número mínimo de instâncias íntegras,definido pela configuração de implantação, nãoestá disponível. Você pode reduzir o númeronecessário de instâncias íntegras, atualizando suaconfiguração de implantação ou aumentando onúmero de instâncias nesse grupo de implantação.

Saiba mais:

• Integridade da instância (p. 209)• Trabalhando com instâncias para o AWS

CodeDeploy (p. 155)

IAM_ROLE_MISSING

A implantação falhou porque nenhuma funçãode serviço existe com o nome de função deserviço especificado para o grupo de implantação.Verifique se você está usando o nome da funçãode serviço correto.

Saiba mais:

• Etapa 3: criar uma função de serviço para oAWS CodeDeploy (p. 32)

• Alterar configurações do grupo de implantaçãocom o AWS CodeDeploy (p. 244)

IAM_ROLE_PERMISSIONS

O AWS CodeDeploy não tem as permissõesnecessárias para assumir uma função, ou afunção do IAM que você está usando não lhe dápermissão para realizar operações em um serviçoda AWS.

Saiba mais:

• Etapa 1: provisionar um usuário do IAM (p. 30)• Etapa 3: criar uma função de serviço para o

AWS CodeDeploy (p. 32)• Etapa 4: criar um perfil de instância do IAM para

as suas instâncias do Amazon EC2 (p. 36)

AUTO_SCALING_IAM_ROLE_PERMISSIONS

A função de serviço associada ao seu grupo deimplantação não tem a permissão necessária pararealizar operações no seguinte serviço da AWS.

Saiba mais:

• Etapa 3: criar uma função de serviço para oAWS CodeDeploy (p. 32)

• Criar uma função para delegar permissões a umserviço da AWS

Versão da API 2014-10-06400

Page 411: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioTópicos relacionados

Código de erro Descrição

OVER_MAX_INSTANCES

A implantação falhou porque mais instânciasestão direcionadas para implantação do que opermitido para a sua conta. Para reduzir o númerode instâncias direcionadas para essa implantação,atualize as configurações de tag desse grupo deimplantação ou exclua algumas das instânciasdirecionadas. Como alternativa, você pode entrarem contato com o Suporte da AWS para solicitarum aumento de limites.

Saiba mais:

• Alterar configurações do grupo de implantaçãocom o AWS CodeDeploy (p. 244)

• Limites do AWS CodeDeploy (p. 377)• Solicitar um aumento de limite

THROTTLED

A implantação falhou porque foram feitas maissolicitações do que o permitido para o AWSCodeDeploy para uma função do IAM. Tentereduzir 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 deimplantação não está configurado corretamentecom seu grupo do Amazon EC2 Auto Scaling.No console do AWS CodeDeploy, exclua ogrupo do Amazon EC2 Auto Scaling do grupo deimplantação e, em seguida, adicione-o novamente.

Saiba mais:

• Nos bastidores: integração entre o AWSCodeDeploy e o Auto Scaling

Tópicos relacionadosSolução de problemas do AWS CodeDeploy (p. 381)

Versão da API 2014-10-06401

Page 412: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioGuias de referência e recursos de suporte

Recursos do AWS CodeDeployOs 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 release do AWS CodeDeploy — Uma visão geral de alto nível das versões atual e anteriores,

especificamente notas sobre novos recursos, correções e problemas conhecidos.• AWS Support Center — A central para criação e gerenciamento de seus casos de Suporte da AWS.

Também inclui links para outros recursos, como fóruns, perguntas frequentes técnicas, status deintegridade 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 deSuporte da AWS.

• Entre em contato conosco — Um ponto central de contato para consultas relativas a faturamento, conta,eventos, abuso e outros problemas da AWS.

• Termos do site da AWS — Informações detalhadas sobre os nossos direitos autorais e marca registrada;sua conta, licença e acesso ao site e outros tópicos.

Amostras• Exemplos do AWS CodeDeploy no GitHub — cenários de exemplos e de modelos do AWS CodeDeploy.• Plug-in Jenkins do AWS CodeDeploy — plug-in Jenkins do AWS CodeDeploy.• Agente do AWS CodeDeploy — versão de código aberto do agente do AWS CodeDeploy.

Blogs• Blog DevOps da AWS — Insights para desenvolvedores, administradores do sistema e arquitetos.

Kits e ferramentas de desenvolvimento de softwareda AWS

Os seguintes SDKs e ferramentas da AWS oferecem suporte ao desenvolvimento de soluções com o AWSCodeDeploy:

• AWS SDK para .NET• AWS SDK for Java• SDK da AWS para JavaScript• AWS SDK para PHP

Versão da API 2014-10-06402

Page 413: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioKits e ferramentas de desenvolvimento de software da AWS

• AWS SDK for Python (Boto)• AWS SDK para Ruby• AWS Toolkit for 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 os serviços

da AWS. A AWS CLI usa um único processo de configuração para permitir o acesso para todos osserviços com suporte.

• Ferramentas para desenvolvedores da AWS — Links para ferramentas e recursos para desenvolvedoresque fornecem documentação, exemplos de código, notas de release e outras informações para ajudarvocê a criar aplicativos inovadores com o AWS CodeDeploy e a AWS.

Versão da API 2014-10-06403

Page 414: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuário

Histórico do documentoA tabela a seguir descreve as principais mudanças feitas neste guia do usuário para dar suporte as novase aprimoradas funcionalidades desde a última versão do AWS CodeDeploy User guide (Guia do usuário).

• Versão da API: 2014-10-06• Última atualização da documentação: 18 de dezembro de 2018

update-history-change update-history-description update-history-date

Tópicos atualizados (p. 404) Agora, o AWS CodeDeployoferece suporte a implantaçõesazul/verde de um aplicativo emcontêineres em um serviço doAmazon ECS. Um aplicativo doAWS CodeDeploy que usa anova Amazon ECS Plataformade computação implanta umaplicativo em contêineres emum novo conjunto de tarefasde substituição no mesmoserviço do Amazon ECS. Váriostópicos foram adicionadose atualizados para refletiressa alteração, incluindoVisão geral das plataformasde computação do AWSCodeDeploy, Implantações emuma plataforma de computaçãodo Amazon ECS, Estruturade arquivos AppSpec paraimplantações do Amazon ECSe Criar um aplicativo para umaimplantação do Amazon ECSService (console).

November 27, 2018

Agente do AWS CodeDeployatualizado (p. 404)

O agente do AWS CodeDeployfoi atualizado para a versão1.0.1.1597. Para obter maisinformações, consulte Históricode versão do agente do AWSCodeDeploy.

November 15, 2018

Console atualizado (p. 404) Os procedimentos nesteguia foram atualizados paracorresponder aos procedimentosna versão mais recente doconsole do AWS CodeDeploy.

October 30, 2018

Nova versão mínimacompatível do agente do AWSCodeDeploy (p. 404)

A versão mínima compatível doagente do AWS CodeDeployagora é 1.0.1.1458. Para obtermais informações, consulte

August 7, 2018

Versão da API 2014-10-06404

Page 415: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizações anteriores

Histórico de versão do agente doAWS CodeDeploy.

Atualizações anterioresA tabela a seguir descreve alterações importantes em cada versão do Guia do usuário do AWSCodeDeploy antes de junho de 2018.

Alteração Descrição Alterado em

Atualizações detópicos

O AWS CodeDeploy agora está disponível no (eu-west-3).Vários tópicos, incluindo aqueles que contêm instruções paraconfigurar o agente do AWS CodeDeploy, foram atualizadospara refletir a disponibilidade dessa nova região.

19 dedezembro de2017

Tópicos atualizados O AWS CodeDeploy agora está disponível no Região da China(Ningxia).

Para usar os serviços no Região China (Pequim) or Região daChina (Ningxia), você deve ter uma conta e credenciais paraessas regiões. As contas e credenciais de outras regiões doAWS não funcionarão para o Regiões de Pequim e Ningxia, evice-versa.

Informações sobre alguns recursos do o Regiões da China,como procedimentos de instalação do agente do AWSCodeDeploy e nomes de buckets de kits de recursos do AWSCodeDeploy não estão incluídos nesta edição do Guia dousuário do AWS CodeDeploy.

Para obter mais informações:

• AWS CodeDeploy em Conceitos básicos do AWS em RegiãoChina (Pequim)

• Guia do usuário do AWS CodeDeploy para Regiões da China(versão em inglês | versão em chinês)

11 dedezembro de2017

Tópicos atualizados O AWS CodeDeploy agora oferece suporte à implantaçãode uma função do Lambda. Uma implantação do AWSLambda muda o tráfego recebido de uma função Lambdaexistente para uma versão atualizada da função Lambda.Você seleciona ou cria uma configuração de implantaçãopara especificar o número de intervalos do deslocamentode tráfego na implantação e a porcentagem do tráfego a seralterado em cada intervalo. As implantações AWS Lambda sãosuportadas pelo Modelo de aplicativo sem servidor da AWS(AWS SAM) para que você possa usar uma preferência deimplantação AWS SAM para gerenciar o caminho no qual otráfego é deslocado durante uma implantação AWS Lambda.Diversos tópicos foram adicionados e atualizados pararefletir essa alteração, incluindo Visão geral das plataformasde computação do AWS CodeDeploy (p. 2), Implantaçõesem uma AWS Lambda Plataforma de computação (p. 15),Criar uma implantação (console) AWS Lambda Plataformade computação. (p. 271), Criar um aplicativo para umaimplantação de função do AWS Lambda (console) (p. 229) e

28 denovembro de2017

Versão da API 2014-10-06405

Page 416: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizações anteriores

Alteração Descrição Alterado emAdicionar um arquivo AppSpec para uma implantação de AWSLambda (p. 253).

Novo tópico O AWS CodeDeploy agora oferece suporte com implantaçõesdiretamente em uma máquina ou instância local onde o agentedo AWS CodeDeploy; esteja instalado. Você pode testarlocalmente uma implantação e, se ela tiver erros, usar oslogs de erro do agente do AWS CodeDeploy para depurá-los.Você também pode usar uma implantação local para testara integridade de uma revisão de aplicativo, o conteúdo deum AppSpec file, etc. Para obter mais informações, consulteUsar o agente do AWS CodeDeploy para validar um pacote deimplantação em uma máquina local (p. 292).

16 denovembro de2017

Tópicos atualizados O suporte do AWS CodeDeploy para load balancers do ElasticLoad Balancing em grupos de implantação foi expandido paraincluir Network Load Balancers para ambas as implantaçõesazul/verde e implantações no local. Você pode agora escolherum Balanceador de carga de aplicações, um Classic LoadBalancer ou um Network Load Balancer para o seu grupode implantação. Os load balancers são necessários nasimplantações azuis/verdes e opcionais nas implantações nolocal. Diversos tópicos foram atualizados para refletir essesuporte, incluindo Integrar ao (p. 49), Criar um aplicativo parauma implantação no local (console) (p. 223), Pré-requisitos deimplantação (p. 267), Integrar ao (p. 49) e Criar um aplicativopara uma implantação no local (console) (p. 223).

12 desetembro de2017

Tópicos atualizados O suporte do AWS CodeDeploy para load balancers do ElasticLoad Balancing em grupos de implantação foi expandidopara incluir Application Load Balancers para ambas asimplantações azul/verde e implantações no local. Você podeagora escolher entre um Balanceador de carga de aplicações;e um Classic Load Balancer para seu grupo de implantação.Os load balancers são necessários nas implantações azuis/verdes e opcionais nas implantações no local. Os tópicosincluindo Integrar ao (p. 49), Criar um aplicativo com o AWSCodeDeploy (p. 221) e Criar um grupo de implantação com oAWS CodeDeploy (p. 235) foram atualizados para refletir essesuporte adicional.

10 de agostode 2017

Versão da API 2014-10-06406

Page 417: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizações anteriores

Alteração Descrição Alterado em

Tópicos novos eatualizados

O AWS CodeDeploy agora é compatível com o uso degrupos de várias tags para identificar uniões e interseções deinstâncias a serem incluídas em um grupo de implantação.Se você usar um grupo de tag única, qualquer instânciaidentificada por pelo menos uma tag no grupo é incluída nogrupo de implementação. Se você usar grupos de váriastags, apenas as instâncias que são identificadas por pelomenos uma tag em cada um dos grupos de tags serãoincluídas. Para obter informações sobre o novo métodopara adicionar instâncias a um grupo de implantação,consulte Marcar instâncias para implantações no AWSCodeDeploy (p. 157). Outros tópicos atualizados para refletireste suporte incluem Criar um aplicativo para uma implantaçãono local (console) (p. 223), Criar um aplicativo para umaimplantação azul/verde (console) (p. 225), Criar um grupo deimplantação para uma implantação no local (console) (p. 236),Criar um grupo de implantação para uma implantação de EC2/No local azul/verde (console) (p. 238), Implantações (p. 15) eEtapa 5: criar um aplicativo e um grupo de implantação (p. 125)em Tutorial: usar o AWS CodeDeploy para implantar umaplicativo do GitHub (p. 119).

31 de julho de2017

Tópico atualizado Dois métodos adicionais para instalar o agente do AWSCodeDeploy em instâncias do Windows Server foramadicionados a Instalar ou reinstalar o agente do AWSCodeDeploy para o Windows Server (p. 145) Além doscomandos do Windows PowerShell, agora o arquivo deinstalação das instruções está disponível para baixar usandoum link HTTPS direto e usando um comando de cópia doAmazon S3. Depois que o arquivo é baixado ou copiado parauma instância, é possível executar a instalação manualmente.

12 de julho de2017

Tópicos atualizados O AWS CodeDeploy melhorou sua estratégia degerenciamento de conexões com contas e repositóriosdo GitHub. Agora, você pode criar e armazenar até 25conexões com contas do GitHub para associar aplicativosAWS CodeDeploy a repositórios GitHub. Cada conexão podedar suporte a vários repositórios. Você pode criar conexõescom até 25 contas diferentes do GitHub ou criar mais deuma conexão com uma única conta. Depois de conectar umaplicativo a uma conta do GitHub, o AWS CodeDeploy gerenciaas permissões de acesso necessárias sem exigir açõesadicionais da sua parte. Atualizações para refletir esse suporteforam feitas em Especificar informações sobre uma revisãoarmazenada em um repositório GitHub (p. 275), Integrando oAWS CodeDeploy com o GitHub (p. 56) e Tutorial: usar o AWSCodeDeploy para implantar um aplicativo do GitHub (p. 119).

30 de maio de2017

Versão da API 2014-10-06407

Page 418: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizações anteriores

Alteração Descrição Alterado em

Tópicos atualizados No passado, se o agente AWS CodeDeploy detectassearquivos em um local de destino que não fizesse parteda revisão do aplicativo das implantações recentes bem-sucedidas, a implantação atual falharia por padrão. Agora oAWS CodeDeploy fornece opções para os agentes lidaremcom esses arquivos: falha na implantação, manter ousubstituir o conteúdo. O Criar uma implantação com o AWSCodeDeploy (p. 267) foi atualizado para refletir esse suporte,e a nova seção Comportamento de reversão com conteúdoexistente (p. 287) foi adicionada ao Reimplantar e reverter umaimplantação com o AWS CodeDeploy (p. 285)

16 de maio de2017

Tópicos atualizados Um Classic Load Balancer no Elastic Load Balancing agorapode ser atribuído a um grupo de implantação usando oconsole do AWS CodeDeploy ou a CLI da AWS. Em umaimplantação no local, um balanceador de carga impede queo tráfego da Internet seja direcionado para uma instânciadurante o processo, tornando-a novamente disponível paratráfego assim que essa implantação for concluída. Váriostópicos foram atualizados para refletir esse novo suporte,incluindo Integração com outros serviços da AWS (p. 41),Integrar ao (p. 49), Criar um aplicativo para uma implantaçãono local (console) (p. 223), Criar um grupo de implantaçãopara uma implantação no local (console) (p. 236) e Seção'hooks' de AppSpec (p. 347). Foi adicionada uma nova seçãoao guia de solução de problemas, Solucionando problemascom eventos de ciclo de vida de implantação ApplicationStop,BeforeBlockTraffic e AfterBlockTraffic (p. 387).

27 de abril de2017

Tópicos atualizados Um Classic Load Balancer no Elastic Load Balancing agorapode ser atribuído a um grupo de implantação usando oconsole do AWS CodeDeploy ou a CLI da AWS. Em umaimplantação no local, um balanceador de carga impede queo tráfego da Internet seja direcionado para uma instânciadurante o processo, tornando-a novamente disponível paratráfego assim que essa implantação for concluída. Váriostópicos foram atualizados para refletir esse novo suporte,incluindo Integração com outros serviços da AWS (p. 41),Integrar ao (p. 49), Criar um aplicativo para uma implantaçãono local (console) (p. 223), Criar um grupo de implantaçãopara uma implantação no local (console) (p. 236) e Seção'hooks' de AppSpec (p. 347). Foi adicionada uma nova seçãoao guia de solução de problemas, Solucionando problemascom eventos de ciclo de vida de implantação ApplicationStop,BeforeBlockTraffic e AfterBlockTraffic (p. 387).

1 de maio de2017

Versão da API 2014-10-06408

Page 419: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizações anteriores

Alteração Descrição Alterado em

Tópicos atualizados O AWS CodeDeploy agora está disponível no Região China(Pequim).

Para usar os serviços no Região China (Pequim) or Região daChina (Ningxia), você deve ter uma conta e credenciais paraessas regiões. As contas e credenciais de outras regiões doAWS não funcionarão para o Regiões de Pequim e Ningxia, evice-versa.

Informações sobre alguns recursos do o Regiões da China,como procedimentos de instalação do agente do AWSCodeDeploy e nomes de buckets de kits de recursos do AWSCodeDeploy não estão incluídos nesta edição do Guia dousuário do AWS CodeDeploy.

Para obter mais informações:

• AWS CodeDeploy em Conceitos básicos do AWS em RegiãoChina (Pequim)

• Guia do usuário do AWS CodeDeploy para Regiões da China(versão em inglês | versão em chinês)

29 de marçode 2017

Tópicos novos eatualizados

Vários tópicos novos foram introduzidos para refletir o novosuporte do AWS CodeDeploy; para implantações azul/verde,um método de implantação no qual as instâncias em um grupode implantação (o ambiente original) são substituídas por umconjunto diferente de instâncias (o ambiente de substituição).Visão geral de uma implantação azul/verde (p. 9) forneceuma explicação geral da metodologia azul/verde usada peloAWS CodeDeploy. Novos tópicos adicionais incluem Criar umaplicativo para uma implantação azul/verde (console) (p. 225).Criar um grupo de implantação para uma implantação de EC2/No local azul/verde (console) (p. 238), e Configurar um loadbalancer no Elastic Load Balancing para implantações do AWSCodeDeploy (p. 242).

Vários tópicos foram atualizados também, incluindo Criaruma implantação com o AWS CodeDeploy (p. 267),Trabalhando com configurações de implantação noAWS CodeDeploy (p. 214), Criar um aplicativo com oAWS CodeDeploy (p. 221), Trabalhando com grupos deimplantação no AWS CodeDeploy (p. 234) , Trabalhando comimplantações no AWS CodeDeploy (p. 266) e Seção 'hooks' deAppSpec (p. 347).

25 de janeirode 2017

Tópicos novos eatualizados

Um novo tópico, Usar o comando register-on-premises-instance(ARN de sessão do IAM) para registrar uma instância local (p. 196), descreve como autenticar e registrar instânciasnos locais usando credenciais temporárias periodicamenteatualizadas geradas pelo AWS Security Token Service. Essaabordagem fornece melhor suporte para grandes frotas deinstâncias no local do que o uso exclusivo das credenciais deum usuário do IAM estático em cada instância. O Trabalhandocom instâncias locais (p. 180) foi atualizado para refletir essenovo suporte.

28 dedezembro de2016

Versão da API 2014-10-06409

Page 420: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizações anteriores

Alteração Descrição Alterado em

Tópicos atualizados O AWS CodeDeploy agora está disponível no Região daUE (Londres) (eu-west-2). Vários tópicos, incluindo aquelesque contêm instruções para configurar o agente do AWSCodeDeploy, foram atualizados para refletir a disponibilidadedessa nova região.

13 dedezembro de2016

Tópicos atualizados O AWS CodeDeploy agora está disponível no Região doCanadá (Central) (ca-central-1). Vários tópicos, incluindoaqueles que contêm instruções para configurar o agentedo AWS CodeDeploy, foram atualizados para refletir adisponibilidade dessa nova região.

8 dedezembro de2016

Tópicos atualizados O AWS CodeDeploy agora está disponível no Região do Lestedos EUA (Ohio) (us-east-2). Vários tópicos, incluindo aquelesque contêm instruções para configurar o agente do AWSCodeDeploy, foram atualizados para refletir a disponibilidadedessa nova região.

17 de outubrode 2016

Novos tópicos Uma nova seção, Autenticação e controle de acesso do AWSCodeDeploy (p. 316), fornece informações completas sobrecomo usar o AWS Identity and Access Management (IAM) eo AWS CodeDeploy para ajudar no acesso seguro aos seusrecursos através do uso de credenciais. Essas credenciaisfornecem as permissões necessárias para acessar recursosda AWS, como recuperar revisões de aplicativos dos bucketsAmazon S3 e ler as tags nas instâncias Amazon EC2.

11 de outubrode 2016

Tópico atualizado O Atualizar o agente do AWS CodeDeploy no WindowsServer (p. 149) foi atualizado para refletir a disponibilidadedo novo atualizador do agente do AWS CodeDeploy paraWindows Server. Quando instalado em uma instância doWindows Server, o atualizador verificará periodicamente sehá novas versões. Quando uma nova versão for detectada, oatualizador desinstalará a versão atual do agente, se instalada,antes de instalar a versão mais recente.

4 de outubrode 2016

Versão da API 2014-10-06410

Page 421: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizações anteriores

Alteração Descrição Alterado em

Tópicos atualizados Agora, o AWS CodeDeploy se integra com os alarmes AmazonCloudWatch, tornando possível interromper uma implantaçãose houver mudança no estado de um alarme específico paraum número de períodos consecutivos, como especificado nolimite do alarme.

Agora, o AWS CodeDeploy também oferece suporte à reversãoautomática de uma implantação quando determinadascondições são atendidas, por exemplo, uma falha deimplantação ou um alarme ativado.

Uma série de tópicos foram atualizados para refletir essasalterações, incluindo Criar um aplicativo com o AWSCodeDeploy (p. 221), Criar um grupo de implantação como AWS CodeDeploy (p. 235), Alterar configurações dogrupo de implantação com o AWS CodeDeploy (p. 244),Implantações (p. 15), Reimplantar e reverter uma implantaçãocom o AWS CodeDeploy (p. 285) e Integrações de produtos eserviços com o AWS CodeDeploy (p. 41), junto com um novotópico, Monitorando implantações com alarmes do CloudWatchno AWS CodeDeploy (p. 299).

15 desetembro de2016

Tópicos novos eatualizados

Agora, o AWS CodeDeploy fornece integração com o Eventosdo Amazon CloudWatch. Agora, você pode usar o Eventos doCloudWatch para iniciar uma ou mais ações quando alteraçõessão detectadas no estado de uma implantação ou no estadode uma instância que pertence a um grupo AWS CodeDeployde implantação. Você pode incorporar ações que invocamfunções do AWS Lambda que publicam em fluxos Kinesisou tópicos do Amazon SNS; que enviam mensagens a filasdo Amazon SQS; ou que, por sua vez, disparam ações doalarme do CloudWatch. Para obter mais informações, consulteMonitoramento de implantações com o Eventos do AmazonCloudWatch (p. 301).

9 de setembrode 2016

Atualizações detópicos

Os tópicos Integrar ao (p. 49) e Integração com outros serviçosda AWS (p. 41) foram atualizados para refletir uma opção debalanceamento de carga adicional. AWS CodeDeploy agoraoferece suporte ao Classic Load Balancer e o Balanceador decarga de aplicações disponível em Elastic Load Balancing.

11 de agostode 2016

Atualizações detópicos

O AWS CodeDeploy agora está disponível no Região daÁsia-Pacífico (Mumbai) (ap-south-1). Vários tópicos, incluindoaqueles que contêm instruções para configurar o agentedo AWS CodeDeploy, foram atualizados para refletir adisponibilidade dessa nova região.

27 de junhode 2016

Versão da API 2014-10-06411

Page 422: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizações anteriores

Alteração Descrição Alterado em

Atualizações detópicos

O AWS CodeDeploy agora está disponível no Região da Ásia-Pacífico (Seul) (ap-northeast-2). Vários tópicos, incluindoaqueles que contêm instruções para configurar o agentedo AWS CodeDeploy, foram atualizados para refletir adisponibilidade dessa nova região.

O sumário foi reorganizada para incluir seções para instâncias,configurações de implantação, aplicativos, grupos deimplantação, revisões e implantações. Uma nova seção foiadicionada para tutoriais do AWS CodeDeploy. Para facilitar ouso, vários tópicos longos, incluindo Referência AppSpec Filedo AWS CodeDeploy (p. 334) e Solução de problemas do AWSCodeDeploy (p. 381), foram divididos em tópicos mais curtos.Informações de configuração para o agente AWS CodeDeployfoi movida para um novo tópico, Referência de configuração doagente do AWS CodeDeploy (p. 367)

15 de junhode 2016

Tópicos novos eatualizados

Códigos de erro para o AWS CodeDeploy (p. 399) forneceinformações sobre algumas das mensagens de erro que podemser exibidas quando a implantação do AWS CodeDeploy falhar.As seguintes seções em Solução de problemas do AWSCodeDeploy (p. 381) foram atualizadas para ajudar naresolução de problemas de implantação:

• As instâncias do Amazon EC2 em um grupo de AmazonEC2 Auto Scaling falham ao ser iniciadas e recebem o erro"Heartbeat Timeout" (p. 397)

• Evite associar vários grupos de implantação a um únicogrupo de Amazon EC2 Auto Scaling (p. 396)

20 de abril de2016

Atualizações detópicos

O AWS CodeDeploy agora está disponível no Região Américado Sul (São Paulo) (sa-east-1). Vários tópicos, incluindoaqueles que contêm instruções para configurar o agentedo AWS CodeDeploy, foram atualizados para refletir adisponibilidade dessa nova região.

A Trabalhando com o agente do AWS CodeDeploy (p. 132)foi atualizada para refletir a nova : max_revisions: opção deconfiguração, usada para especificar o número de revisões deaplicativos para um grupo de implantação que você deseja queo agente do AWS CodeDeploy arquive.

10 de marçode 2016

Versão da API 2014-10-06412

Page 423: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizações anteriores

Alteração Descrição Alterado em

Tópicos novos eatualizados

Agora, o AWS CodeDeploy oferece suporte à inclusão degatilhos a um grupo de implantação para receber notificaçõessobre eventos relacionados a implantações ou instânciasnesse grupo de implantação. Essas notificações são enviadasaos destinatários inscritos em um tópico do Amazon SimpleNotification Service que você incluiu como parte da ação dogatilho. Você também pode usar dados JSON que são criadosquando um gatilho é disparado no seu próprio fluxo de trabalhode notificação personalizado. Para obter mais informações,consulte Monitoramento de implantações com notificações deeventos do Amazon SNS (p. 305).

Procedimentos foram atualizados para refletir o novo design dapágina Application details.

A seção As implantações não falham por até uma hora quandouma instância é encerrada durante uma implantação (p. 392)em Solução de problemas do AWS CodeDeploy (p. 381) foiatualizada.

O Limites do AWS CodeDeploy (p. 377) foi atualizadopara refletir limites revisados para o número de gruposde implantação que podem ser associados a um únicoaplicativo, os valores permitidos para configurações mínimasde instâncias íntegras; e versões necessárias da AWS SDKpara Ruby (aws-sdk-core).

17 defevereiro de2016

Tópicos novos eatualizados

O AWS CodeDeploy está agora disponível na região Oeste dosEUA (Norte da Califórnia) (us-west-1). Vários tópicos, incluindoaqueles que contêm instruções para configurar o agente doAWS CodeDeploy, foram atualizados para refletir a inclusãodessa nova região.

O Escolher um tipo de repositório do AWS CodeDeploy (p. 257)lista e descreve os tipos de repositórios agora com suporte peloAWS CodeDeploy. Esse novo tópico será atualizado à medidaque houver suporte para outros tipos de repositório.

O Gerenciando operações do agente do AWSCodeDeploy (p. 139) foi atualizado com informações sobreo novo arquivo .version adicionado a instâncias paradenunciar a versão atual do agente AWS CodeDeploy, assimcomo 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 arquivo de especificações de aplicativo a umarevisão para o AWS CodeDeploy (p. 251) foi reorganizadocomo instruções passo a passo.

20 de janeirode 2016

Versão da API 2014-10-06413

Page 424: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizações anteriores

Alteração Descrição Alterado em

Novo tópico Implantar um aplicativo em uma conta da AWSdiferente (p. 289) descreve os requisitos de configuraçãoe o processo para iniciar implantações que pertencem aoutra das contas da sua organização, sem precisar de umconjunto completo de credenciais para essa outra conta. Issoé muito útil para organizações que usam várias contas paradiferentes finalidades, como uma associada a ambientes dedesenvolvimento e teste e outra associada ao ambiente deprodução.

30 dedezembro de2015

Atualização de tópico O tópico Integrações de produtos e serviços com o AWSCodeDeploy (p. 41) foi reprojetado. Agora, ele inclui umaseção para exemplos de integração da comunidade, com listasde postagens de blog e exemplos de vídeos relacionados aintegrações com o AWS CodeDeploy.

16 dedezembro de2015

Atualizações detópicos

O AWS CodeDeploy agora está disponível no Região Ásia-Pacífico (Cingapura) (ap-southeast-1). Vários tópicos, incluindoaqueles que contêm instruções para configurar o agentedo AWS CodeDeploy, foram atualizados para refletir adisponibilidade dessa nova região.

9 dedezembro de2015

Atualizações detópicos

O Trabalhando com o agente do AWS CodeDeploy (p. 132) foiatualizado para refletir a nova opção :proxy_uri: no arquivode configuração do agente AWS CodeDeploy.Foram feitas atualizações em Referência AppSpec File do AWSCodeDeploy (p. 334) com informações sobre como usar umanova variável de ambiente, DEPLOYMENT_GROUP_ID, quescripts de gancho podem acessar durante um evento de ciclode vida de implantação.

1 dedezembro de2015

Atualização de tópico O Etapa 3: criar uma função de serviço para o AWSCodeDeploy (p. 32) foi atualizado para refletir um novoprocedimento para criar uma função de serviço para o AWSCodeDeploy e para incorporar outras melhorias.

13 denovembro de2015

Atualizações detópicos

O AWS CodeDeploy agora está disponível no Região UE(Frankfurt) (eu-central-1). Vários tópicos, incluindo aquelesque contêm instruções para configurar o agente do AWSCodeDeploy, foram atualizados para refletir a disponibilidadedessa nova região.

O tópico Solução de problemas do AWS CodeDeploy (p. 381)foi atualizado com informações sobre como garantir que asconfigurações de tempo nas instâncias estejam precisas.

19 de outubrode 2015

Novos tópicos O Referência de modelos do AWS CloudFormation para o AWSCodeDeploy (p. 370) foi publicado para refletir o novo suportedo AWS CloudFormation; para ações do AWS CodeDeploy.

Criação de um tópico Componentes primários (p. 12) eintrodução da definição de uma revisão de destino.

1 de outubrode 2015

Versão da API 2014-10-06414

Page 425: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizações anteriores

Alteração Descrição Alterado em

Atualizações detópicos

Atualização de Criar um grupo de implantação com o AWSCodeDeploy (p. 235) para refletir a capacidade de localizarinstâncias para um grupo de implantação usando pesquisascom curingas.

Atualização de Integridade da instância (p. 209) para esclarecero conceito de instâncias íntegras mínimas.

31 de agostode 2015

Atualizações detópicos

O AWS CodeDeploy agora está disponível no Região Ásia-Pacífico (Tóquio) (ap-northeast-1). Vários tópicos, incluindoaqueles que contêm instruções para configurar o agentedo AWS CodeDeploy, foram atualizados para refletir adisponibilidade dessa nova região.

19 de agostode 2015

Atualizações detópicos

Agora, o AWS CodeDeploy fornece suporte para implantaçõesRed Hat Enterprise Linux (RHEL) em instâncias nos locais einstâncias Amazon EC2. Para obter mais informações, consulteos tópicos a seguir:

• Sistemas operacionais com suporte com o agente do AWSCodeDeploy (p. 132)

• Trabalhando com instâncias para o AWSCodeDeploy (p. 155)

• Tutorial: Implantar o WordPress em uma instância doAmazon EC2 (Amazon Linux ou Red Hat Enterprise Linux eLinux, macOS, or Unix) (p. 61)

• Tutorial: implantar um aplicativo em uma instância local como AWS CodeDeploy (Windows Server, Ubuntu Server ou RedHat Enterprise Linux) (p. 95)

23 de junhode 2015

Atualização de tópico Agora, o AWS CodeDeploy fornece um conjunto de variáveisde ambiente que os seus scripts de implantação podem usardurante implantações. Essas variáveis de ambiente inclueminformações como o nome do aplicativo AWS CodeDeployatual, o grupo de implantação e o evento de ciclo de vidada implantação, assim como o identificador de implantaçãodo AWS CodeDeploy atual. Para obter mais informações,consulte o final da seção Seção 'hooks' de AppSpec (p. 347) noReferência AppSpec File do AWS CodeDeploy (p. 334).

29 de maio de2015

Versão da API 2014-10-06415

Page 426: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizações anteriores

Alteração Descrição Alterado em

Atualizações detópicos

Agora, o AWS CodeDeploy; fornece um conjunto de políticasgerenciadas da AWS; no IAM; que você pode usar, ao invés decriar manualmente as políticas equivalentes. Dentre elas estão:

• Uma política para permitir que um usuário do IAM; registrerevisões somente no AWS CodeDeploy e depois as implantepor meio do AWS CodeDeploy.

• Uma política para fornecer a um usuário do IAM; acesso totalaos recursos do AWS CodeDeploy.

• Uma política para fornecer a um usuário do IAM somenteacesso leitura aos recursos do AWS CodeDeploy.

• Uma política para ser anexada a uma função de serviço paraque o AWS CodeDeploy possa identificar as instâncias doAmazon EC2 de acordo com suas tags Amazon EC2, tagsde instância no local, ou nomes de grupos do Amazon EC2Auto Scaling e implantar revisões de aplicativos para essasinstâncias de acordo.

Para mais informações, consulte a seção Exemplos de políticagerenciada pelo cliente (p. 325) em Autenticação e controle deacesso do AWS CodeDeploy (p. 316).

29 de maio de2015

Atualizações detópicos

O AWS CodeDeploy está agora disponível em Região UE(Irlanda) (eu-west-1) e Região Ásia-Pacífico (Sydney) (ap-southeast-2). Vários tópicos, incluindo aqueles que contêminstruções para configurar o agente do AWS CodeDeploy,foram atualizados para refletir a disponibilidade dessas novasregiões.

7 de maio de2015

Novos tópicos O AWS CodeDeploy agora oferece suporte a implantações eminstâncias no local e instâncias Amazon EC2. Os seguintestópicos foram adicionados para descrever esse novo suporte:

• Trabalhando com instâncias locais (p. 180)• Tutorial: implantar um aplicativo em uma instância local com

o AWS CodeDeploy (Windows Server, Ubuntu Server ou RedHat Enterprise Linux) (p. 95)

• Trabalhando com instâncias locais (p. 180)

2 de abril de2015

Novo tópico Recursos do AWS CodeDeploy (p. 402) foi adicionado. 2 de abril de2015

Versão da API 2014-10-06416

Page 427: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizações anteriores

Alteração Descrição Alterado em

Atualização de tópico Atualização de Solução de problemas do AWSCodeDeploy (p. 381):

• Uma nova seção Processos de execução longa podem fazercom que as implantações falhem (p. 389) descreve as etapasque você pode realizar para identificar e solucionar falhas deimplantação devido a processos de execução longa.

• A seção Solução geral de problemas do Amazon EC2Auto Scaling (p. 394) foi atualizada para mostrar que oAWS CodeDeploy aumentou sua lógica de tempo limitedo Amazon EC2 Auto Scaling para o agente do AWSCodeDeploy; de cinco minutos para uma hora.

• Uma nova seção Ganchos de ciclo de vida de AmazonEC2 Auto Scaling com correspondência incorreta podemfazer com que implantações automáticas em gruposde Amazon EC2 Auto Scaling sejam interrompidas oureprovadas (p. 398) descreve as etapas que você podeseguir para identificar e resolver implantações automáticascom falhas em grupos do Amazon EC2 Auto Scaling.

2 de abril de2015

Atualizações detópicos

Os seguintes tópicos foram atualizados para refletirnovas recomendações para criar suas próprias políticaspersonalizadas e, em seguida, anexá-las a usuários e funçõesno IAM:

• Configurar uma instância do Amazon EC2 para trabalhar como AWS CodeDeploy (p. 177)

• Etapa 4: criar um perfil de instância do IAM para as suasinstâncias do Amazon EC2 (p. 36)

• Etapa 3: criar uma função de serviço para o AWSCodeDeploy (p. 32)

• Autenticação e controle de acesso do AWSCodeDeploy (p. 316)

Duas seções foram adicionadas a Solução de problemas doAWS CodeDeploy (p. 381):

• Lista geral de verificação para solução de problemas (p. 381)• Os scripts do Windows PowerShell não conseguem

usar a versão de 64 bits do Windows PowerShell porpadrão (p. 389)

Atualização da seção Seção 'hooks' de AppSpec (p. 347) noReferência AppSpec File do AWS CodeDeploy (p. 334) paradescrever com mais precisão os eventos de ciclo de vida deimplantação disponíveis.

12 defevereiro de2015

Versão da API 2014-10-06417

Page 428: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizações anteriores

Alteração Descrição Alterado em

Atualizações detópicos

Uma nova seção foi adicionada a Solução de problemas doAWS CodeDeploy (p. 381): As instâncias do Amazon EC2 emum grupo de Amazon EC2 Auto Scaling falham ao ser iniciadase recebem o erro "Heartbeat Timeout" (p. 397).

Uma seção CloudBees foi adicionada a Integrações deprodutos e serviços com o AWS CodeDeploy (p. 41).

28 de janeirode 2015

Atualizações detópicos

As seguintes seções foram adicionadas a Solução deproblemas do AWS CodeDeploy (p. 381):

• Usar alguns editores de texto para criar arquivos AppSpece scripts de shell pode fazer com que as implantaçõesfalhem (p. 383)

• O uso do Finder no macOS para agrupar uma revisão deaplicativo pode causar falhas na implantação (p. 384)

• Solucionando problemas com eventos de ciclo de vidade implantação ApplicationStop, BeforeBlockTraffic eAfterBlockTraffic (p. 387)

• Solucionando problemas com um evento de ciclo de vidade implantação DownloadBundle com falha que indica"UnknownError: not opened for reading" (p. 388)

• Solução geral de problemas do Amazon EC2 AutoScaling (p. 394)

20 de janeirode 2015

Novos tópicos Atualização da seção Integrações de produtos e serviços com oAWS CodeDeploy (p. 41) para incluir os seguintes tópicos:

• Integrar o AWS CodeDeploy ao Amazon EC2 AutoScaling (p. 46)

• Tutorial: use o AWS CodeDeploy para implantarum aplicativo em um grupo de Amazon EC2 AutoScaling (p. 102)

• Monitoramento de implantações com o AWSCloudTrail (p. 303)

• Integrar ao (p. 49)• Integrando o AWS CodeDeploy com o GitHub (p. 56)• Tutorial: usar o AWS CodeDeploy para implantar um

aplicativo do GitHub (p. 119)

9 de janeirode 2015

Versão da API 2014-10-06418

Page 429: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuárioAtualizações anteriores

Alteração Descrição Alterado em

Atualizações detópicos

• A seção Implantar automaticamente do AWS CodePipelinecom o AWS CodeDeploy (p. 59) foi adicionada a Integrandoo AWS CodeDeploy com o GitHub (p. 56). Agora, épossível disparar automaticamente uma implantação deum repositório GitHub sempre que o código-fonte nesserepositório é alterado.

• A seção Solução de problemas com o Amazon EC2 AutoScaling (p. 394) foi adicionada a Solução de problemas doAWS CodeDeploy (p. 381). Essa nova seção descreve comosolucionar problemas comuns com a implantação em gruposde Amazon EC2 Auto Scaling.

• A nova subseção "Exemplos de arquivos" foi adicionada àseção A seção 'files' AppSpec (EC2/No local Implantaçõessomente) (p. 338) de Referência AppSpec File do AWSCodeDeploy (p. 334). Essa nova subseção inclui váriosexemplos de como usar a seção files de um AppSpec filepara instruir o AWS CodeDeploy a copiar arquivos ou pastasespecíficos para locais específicos em uma instância doAmazon EC2 durante uma implantação.

8 de janeirode 2015

Novo tópico O Monitoramento de implantações com o AWSCloudTrail (p. 303) foi adicionado. O AWS CodeDeployé integrado ao AWS CloudTrail, um serviço que capturachamadas API feitas pelo AWS CodeDeploy ou em nome delena sua conta AWS e oferece os arquivos de log para um bucketAmazon S3 especificado por você.

17 dedezembro de2014

Lançamento públicoinicial

Essa é o lançamento inicial público do AWS CodeDeploy Userguide (Guia de usuário).

12 denovembro de2014

Versão da API 2014-10-06419

Page 430: AWS CodeDeploy - Guia do usuário · AWS CodeDeploy Guia do usuário Visualizar detalhes de revisões de aplicativo (console)..... 243

AWS CodeDeploy Guia do usuário

AWS GlossaryFor the latest AWS terminology, see the AWS Glossary in the AWS General Reference.

Versão da API 2014-10-06420