

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

# Etapa 3: carregar seu aplicativo "Hello, World\$1" no Amazon S3
<a name="tutorials-windows-upload-application"></a>

Agora você preparará e enviará seu conteúdo de origem para um local a partir do qual CodeDeploy possa implantá-lo. As instruções a seguir mostram como provisionar um bucket do Amazon S3, preparar os arquivos da revisão de aplicativo para o bucket, agrupar os arquivos da revisão e, em seguida, enviá-la para esse bucket.

**nota**  
Embora não seja abordado neste tutorial, você pode usá-lo CodeDeploy para implantar aplicativos de GitHub repositórios para instâncias. Para obter mais informações, consulte [Integrando com CodeDeploy GitHub](integrations-partners-github.md).

**Topics**
+ [Provisionar um bucket do Amazon S3](#tutorials-windows-upload-application-create-s3-bucket)
+ [Preparar os arquivos do aplicativo para o bucket](#tutorials-windows-upload-application-prepare-application-files)
+ [Agrupar os arquivos do aplicativo em um único arquivamento e enviar o arquivamento](#tutorials-windows-upload-application-bundle-and-push-archive)

## Provisionar um bucket do Amazon S3
<a name="tutorials-windows-upload-application-create-s3-bucket"></a>

Crie 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 nas implantações possam baixá-la desse bucket.

Você pode usar o AWS CLI console do Amazon S3 ou o Amazon S3 para criar um bucket do Amazon APIs S3. Depois de criar o bucket, certifique-se de dar permissões de acesso a ele e ao seu usuário do CodeDeploy.

**nota**  
Os nomes dos buckets devem ser exclusivos no Amazon S3 para todas as contas AWS . Se não for possível usar **amzn-s3-demo-bucket**, tente um nome de bucket diferente, como **amzn-s3-demo-bucket**, seguido por um traço e suas iniciais ou algum outro identificador exclusivo. Em seguida, certifique-se de substituir o nome do bucket por **amzn-s3-demo-bucket** sempre que essa identificação aparecer neste tutorial.  
O bucket do Amazon S3 deve ser criado na mesma AWS região em que suas instâncias de destino do Amazon EC2 são lançadas. Por exemplo, se você criar o bucket na região Leste dos EUA (Norte da Virgínia), suas instâncias do Amazon EC2 de destino devem ser lançadas na região Leste dos EUA (Norte da Virgínia).

**Topics**
+ [Como criar um bucket do Amazon S3 (CLI)](#tutorials-windows-upload-application-create-s3-bucket-cli)
+ [Como criar um bucket do Amazon S3 (console)](#tutorials-windows-upload-application-create-s3-bucket-console)
+ [Conceda permissões ao bucket do Amazon S3 e à sua conta AWS](#tutorials-windows-upload-application-create-s3-bucket-grant-permission)

### Como criar um bucket do Amazon S3 (CLI)
<a name="tutorials-windows-upload-application-create-s3-bucket-cli"></a>

Chame o comando **mb** para criar um bucket do Amazon S3 denominado **amzn-s3-demo-bucket**:

```
aws s3 mb s3://amzn-s3-demo-bucket --region region
```

### Como criar um bucket do Amazon S3 (console)
<a name="tutorials-windows-upload-application-create-s3-bucket-console"></a>

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No console do Amazon S3, escolha **Criar bucket**.

1. Na caixa **Nome do bucket**, digite um nome para o bucket.

1. Na lista **Região**, escolha a região de destino e escolha **Criar**.

### Conceda permissões ao bucket do Amazon S3 e à sua conta AWS
<a name="tutorials-windows-upload-application-create-s3-bucket-grant-permission"></a>

Você deve ter permissões para fazer upload no bucket do Amazon S3. Você pode especificar essas permissões por meio de uma política de bucket do Amazon S3. Por exemplo, na seguinte política de bucket do Amazon S3, o uso do caractere curinga (\$1) permite que `111122223333` a AWS conta faça upload de arquivos para qualquer diretório no bucket do Amazon S3 chamado: `amzn-s3-demo-bucket`

```
{
    "Statement": [
        {
            "Action": [
                "s3:PutObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Principal": {
                "AWS": [
                    "111122223333"
                ]
            }
        }
    ]
}
```

Para ver o ID AWS da sua conta, consulte [Encontrando o ID AWS da sua conta](https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html#FindingYourAWSId).

Agora é um bom momento para verificar se o bucket do Amazon S3 permitirá solicitações de download de cada instância participante do Amazon EC2. É possível especificar isso por meio de uma política do bucket do Amazon S3. Por exemplo, na seguinte política de bucket do Amazon S3, usar o caractere curinga (\$1) 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` faça o download de arquivos de qualquer diretório 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"
                ]
            }
        }
    ]
}
```

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

O usuário CodeDeploy administrativo que você criou também [Etapa 1: configuração](getting-started-setting-up.md) deve ter permissão para carregar a revisão no bucket do Amazon S3. Uma forma de especificar isso é por meio de uma política do IAM, que você adiciona ao conjunto de permissões do usuário, ou de um perfil do IAM (que você permite que o usuário assuma). A seguinte política do IAM permite que o usuário faça upload de revisões em qualquer lugar do bucket do Amazon S3 denominado `amzn-s3-demo-bucket`:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	   
  "Statement":[
    {
      "Effect":"Allow",
      "Action":["s3:PutObject"],
      "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*"
    }
  ]
}
```

------

Para obter informações sobre como criar uma política do IAM, consulte [Criação de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) no *Guia do usuário do IAM*. Para obter informações sobre como adicionar uma política a um conjunto de permissões, consulte [Criar um conjunto de permissões](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtocreatepermissionset.html) no *Guia do usuário do Centro de Identidade do AWS IAM *.

## Preparar os arquivos do aplicativo para o bucket
<a name="tutorials-windows-upload-application-prepare-application-files"></a>

Certifique-se de que a página da web, o AppSpec arquivo e o script estejam organizados em sua máquina de desenvolvimento da seguinte forma:

```
c:\
  |-- temp\
        |--HelloWorldApp\
             |-- appspec.yml
             |-- before-install.bat
             |-- index.html
```

## Agrupar os arquivos do aplicativo em um único arquivamento e enviar o arquivamento
<a name="tutorials-windows-upload-application-bundle-and-push-archive"></a>

Agrupe os arquivos em um arquivamento (conhecido como uma *revisão* de aplicativo).

**nota**  
Você pode ser cobrado por armazenar objetos em um bucket e por transferir revisões de aplicativos para dentro e fora de um bucket. Para obter mais informações, consulte [Preço do Amazon S3](https://aws.amazon.com/s3/pricing/). 

1. Na máquina de desenvolvimento, mude para a pasta na qual os arquivos estão armazenados: 

   ```
   cd c:\temp\HelloWorldApp
   ```
**nota**  
Se você não mudar para essa pasta, o empacotamento de arquivos começará na sua pasta atual. Por exemplo, se a sua pasta atual for `c:\temp`, e não `c:\temp\HelloWorldApp`, o empacotamento começará com os arquivos e as subpastas da pasta `c:\temp`, o que poderá incluir mais do que a subpasta `HelloWorldApp`.

1. Chame o **create-application** comando para registrar um novo aplicativo chamado **HelloWorld\$1App** com CodeDeploy:

   ```
   aws deploy create-application --application-name HelloWorld_App
   ```

1. Chame o comando CodeDeploy [push](https://docs.aws.amazon.com/cli/latest/reference/deploy/push.html) para agrupar os arquivos, fazer o upload das revisões para o Amazon S3 e registrar informações sobre a revisão CodeDeploy carregada, tudo em uma única ação. 

   ```
   aws deploy push --application-name HelloWorld_App --s3-location s3://amzn-s3-demo-bucket/HelloWorld_App.zip --ignore-hidden-files
   ```

   Esse comando agrupa os arquivos do diretório atual (excluindo os arquivos ocultos) em um único arquivo chamado`HelloWorld_App.zip`, carrega a revisão no **amzn-s3-demo-bucket** bucket e registra as informações CodeDeploy sobre a revisão carregada.