Use o CodeDeploy agente para validar um pacote de implantação em uma máquina local - AWS CodeDeploy

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Use o CodeDeploy agente para validar um pacote de implantação em uma máquina local

Usando o CodeDeploy agente, você pode implantar conteúdo em uma instância na qual está conectado. Isso permite testar a integridade de um arquivo de especificação de aplicativo (AppSpec arquivo) que você pretende usar em uma implantação e o conteúdo que você pretende implantar.

Você não precisa criar um grupo de aplicativo e implantação. Se quiser implantar o conteúdo armazenado na instância local, você não precisará sequer de uma conta da AWS. Para o teste mais simples, você pode executar o codedeploy-local comando, sem especificar nenhuma opção, em um diretório que contém o AppSpec arquivo 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.

  • Teste o conteúdo de um AppSpec arquivo.

  • Experimente 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 usar conteúdo de implantação armazenado na instância local ou em um tipo de repositório remoto compatível (buckets do Amazon S3 ou GitHub repositórios públicos).

Pré-requisitos

Antes de iniciar uma implantação local, siga estas etapas:

  • Crie ou use um tipo de instância compatível com o CodeDeploy agente. Para ter mais informações, consulte Sistemas operacionais suportados pelo CodeDeploy agente.

  • Instale a versão 1.0.1.1352 ou posterior do agente. CodeDeploy Para ter mais informações, consulte Instale o CodeDeploy agente.

  • Se você estiver implantando seu conteúdo a partir de um bucket GitHub ou repositório do Amazon S3, provisione um usuário para usá-lo. CodeDeploy Para ter mais informações, consulte Etapa 1: configuração.

  • Se você estiver implantando a revisão do seu aplicativo a partir de um bucket do Amazon S3, crie um bucket do Amazon S3 na região em que você está trabalhando e aplique uma política de bucket do Amazon S3 ao bucket. Essa política concede às suas instâncias as permissões necessárias para baixar a revisão de aplicativo.

    Por exemplo, a seguinte política de bucket do Amazon S3 permite que qualquer instância do Amazon EC2 com um perfil de instância do IAM anexado contendo o arn:aws:iam::444455556666:role/CodeDeployDemo ARN seja baixada de qualquer lugar no bucket do Amazon S3 chamado: codedeploydemobucket

    { "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/CodeDeployDemo" ] } } ] }

    A seguinte política de bucket do Amazon S3 permite que qualquer instância local com um usuário do IAM associado contendo o ARN arn:aws:iam::444455556666:user/CodeDeployUser seja baixada de qualquer lugar no bucket do Amazon S3 chamado: codedeploydemobucket

    { "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:user/CodeDeployUser" ] } } ] }

    Para obter informações sobre como gerar e anexar uma política de bucket do Amazon S3, consulte Exemplos de políticas de bucket.

  • Se você estiver implantando a revisão do seu aplicativo a partir de um bucket GitHub ou repositório do Amazon S3, configure um perfil de instância do IAM e anexe-o à instância. Para obter informações, consulte Etapa 4: Crie um perfil de instância do IAM para suas instâncias do Amazon EC2, Criar uma instância do Amazon EC2 paraCodeDeploy (AWS CLIou console Amazon EC2) para (ou console Amazon EC2) e Crie uma instância do Amazon EC2 para CodeDeploy (modelo) AWS CloudFormation.

  • Se você estiver implantando seu conteúdo a partir de GitHub, crie uma GitHub conta e um repositório público. Para criar uma GitHub conta, consulte Entrar GitHub. Para criar um GitHub repositório, consulte Criar um repositório.

    nota

    Atualmente, não há suporte para repositórios privados. Se seu conteúdo estiver armazenado em um GitHub repositório privado, você poderá baixá-lo para a instância e usar a --bundle-location opção para especificar seu caminho local.

  • Prepare o conteúdo (incluindo um AppSpec arquivo) que você deseja implantar na instância e coloque-o na instância local, no bucket do Amazon S3 ou no seu GitHub repositório. Para ter mais informações, consulte Trabalhar com revisões de aplicativos do CodeDeploy.

  • Se você quiser usar valores diferentes dos padrões para outras opções de configuração, crie o arquivo de 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 ter mais informações, consulte CodeDeploy referência de configuração do agente.

    nota

    Se você usa um arquivo de configuração em instâncias do Amazon Linux, RHEL ou Ubuntu Server, você deve:

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

    • Use sudo para executar comandos CodeDeploy do agente.

Crie uma implantação local

Na instância em que você deseja criar a implantação local, abra uma sessão de terminal (instâncias do Amazon Linux, RHEL ou Ubuntu Server) ou um prompt de comando (Windows Server) para executar os comandos da ferramenta.

nota

O comando codedeploy-local é instalado nos seguintes locais:

  • No Amazon Linux, RHEL ou Ubuntu Server:/opt/codedeploy-agent/bin.

  • No 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>] [--appspec-filename <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 ferramenta usará 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 local do Amazon Linux, RHEL ou Ubuntu Server: /path/to/local/bundle.tgz

  • Instância local do Windows Server: C:/path/to/local/bundle

  • Bucket Amazon S3: s3://mybucket/bundle.tar

  • GitHub repositório: https://github.com/account-name/repository-name/

-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 valor para --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ão faziam parte de uma implantação anterior bem-sucedida. As opções incluem DISALLOW, OVERWRITE e RETAIN. Para obter mais informações, consulte fileExistsBehaviorem Referência AWS CodeDeploy da API.

-g, --deployment-group

O caminho para a pasta que é o local de destino do conteúdo a ser implantado. Se você não especificar uma pasta, a ferramenta criará uma chamada default-local-deployment-groupdentro do seu diretório raiz de implantação. Para cada implantação local que você cria, a ferramenta gera um subdiretório dentro desta pasta com nomes como d-98761234-local.

-e, --events

Um conjunto de ganchos de eventos de ciclo de vida de substituição que você deseja executar, em ordem, em vez dos eventos listados no arquivo. AppSpec É possível especificar vários ganchos, separando-os por vírgulas. Você pode usar essa opção se:

  • Você deseja executar um conjunto diferente de eventos sem precisar atualizar o AppSpec arquivo.

  • Você deseja executar um único gancho de evento como uma exceção ao que está no AppSpec arquivo, comoApplicationStop.

Se você não especificar DownloadBundlee instalar eventos na lista de substituição, eles serão executados antes de todos os ganchos de eventos que você especificar. Se você incluir DownloadBundlee instalar na lista de --events opções, elas deverão ser precedidas somente por eventos que normalmente são executados antes delas nas CodeDeploy implantações. Para ter mais informações, consulte AppSpec seção 'ganchos'.

-c, -- agent-configuration-file

O local de um arquivo de configuração a ser usado para a implantação, se você o armazenar em um local diferente do padrão. Um arquivo de configuração especifica alternativas para outros valores e comportamentos 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 CodeDeploy referência de configuração do agente.

-A, --appspec-nome do arquivo

O nome do AppSpec arquivo. Para implantações locais, os valores aceitos são appspec.yml e. appspec.yaml Por padrão, o AppSpec arquivo é chamadoappspec.yml.

-h, --help

Exibe um resumo do conteúdo de ajuda.

-v, --version

Exibe o número de versão da ferramenta.

Exemplos

Veja a seguir exemplos de formatos de comando válidos.

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

Implante um pacote 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

Implante um pacote a partir de um GitHub repositório público:

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

Interrompa um aplicativo implantado anteriormente usando o evento de ApplicationStop ciclo de vida:

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