

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
<a name="deployments-local"></a>

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 você quiser implantar conteúdo armazenado na instância local, você nem precisa de uma AWS conta. 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
<a name="deployments-local-prerequisites"></a>

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 mais informações, consulte [Sistemas operacionais suportados pelo CodeDeploy agente](codedeploy-agent.md#codedeploy-agent-supported-operating-systems). 
+ Instale a versão 1.0.1.1352 ou posterior do agente. CodeDeploy Para mais informações, consulte [Instale o CodeDeploy agente](codedeploy-agent-operations-install.md).
+ 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 mais informações, consulte [Etapa 1: configuração](getting-started-setting-up.md).
+ Se você estiver implantando sua revisão de 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 anexado do IAM contendo o ARN `arn:aws:iam::444455556666:role/CodeDeployDemo` para fazer o download de qualquer lugar no bucket do Amazon S3 chamado de `amzn-s3-demo-bucket`.

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

  A seguinte política do bucket Amazon S3 permite que qualquer instância On-Premises com um usuário do IAM associado, contendo o ARN do `arn:aws:iam::444455556666:user/CodeDeployUser` para que seja feito o download de qualquer lugar no bucket do Amazon S3 chamado de `amzn-s3-demo-bucket`.

  ```
  {
      "Statement": [
          {
              "Action": [
                  "s3:Get*",
                  "s3:List*"
              ],
              "Effect": "Allow",
              "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
              "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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html).
+ 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: criar um perfil de instância do IAM para as suas instâncias do Amazon EC2](getting-started-create-iam-instance-profile.md), [Crie uma instância do Amazon EC2 para CodeDeploy (AWS CLI ou console do Amazon EC2)](instances-ec2-create.md) e [Crie uma instância do Amazon EC2 para CodeDeploy (modelo)CloudFormation](instances-ec2-create-cloudformation-template.md).
+ 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](https://github.com/join). Para criar um GitHub repositório, consulte [Criar um repositório](https://help.github.com/articles/create-a-repo/).
**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 mais informações, consulte [Trabalhando com revisões de aplicativos para CodeDeploy](application-revisions.md).
+ 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.yml` para instâncias do Amazon Linux, RHEL, ou Ubuntu Server ou `C:\ProgramData\Amazon\CodeDeploy\conf.yml` para instâncias do Windows Server). Para mais informações, consulte [CodeDeploy referência de configuração do agente](reference-agent-configuration.md).
**nota**  
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. 
Use `sudo` para executar comandos CodeDeploy do agente.

## Criar uma implantação local
<a name="deployments-local-deploy"></a>

Na instância em que você quer 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:
+ Amazon Linux, RHEL ou Ubuntu Server local instância: `/path/to/local/bundle.tgz`
+ Instância local do Windows Server: `C:/path/to/local/bundle`
+ Bucket do Amazon S3: `s3://amzn-s3-demo-bucket/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 [fileExistsBehavior](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html#CodeDeploy-CreateDeployment-request-fileExistsBehavior)em *[Referência AWS CodeDeploy da API](https://docs.aws.amazon.com/codedeploy/latest/APIReference/)*.

**-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-group*dentro 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, como`ApplicationStop`.

Se você não especificar **DownloadBundle**e **instalar** eventos na lista de substituição, eles serão executados antes de todos os ganchos de eventos que você especificar. Se você incluir **DownloadBundle**e **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 mais informações, consulte [AppSpec seção 'ganchos'](reference-appspec-file-structure-hooks.md).

**-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](reference-agent-configuration.md).

**-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 é chamado`appspec.yml`.

**-h**, **--help**

Exibe um resumo do conteúdo de ajuda.

**-v**, **--version**

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

## Exemplos
<a name="deployments-local-examples"></a>

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
```

Implantar um empacotamento a partir do Amazon S3:

```
codedeploy-local --bundle-location s3://amzn-s3-demo-bucket/bundle.tgz --type tgz
```

```
codedeploy-local --bundle-location s3://amzn-s3-demo-bucket/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
```