

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Paso 3: Cargar la aplicación "Hello, World\$1" en Amazon S3
<a name="tutorials-windows-upload-application"></a>

Ahora preparará y cargará su contenido fuente en una ubicación desde la que CodeDeploy pueda desplegarlo. Las siguientes instrucciones explican cómo aprovisionar un bucket de Amazon S3, preparar los archivos de la revisión de la aplicación para el bucket, agrupar los archivos de la revisión y, a continuación, enviar la revisión al bucket.

**nota**  
Aunque no se trata en este tutorial, puede utilizarla CodeDeploy para implementar aplicaciones desde GitHub los repositorios hasta las instancias. Para obtener más información, consulte [Integración CodeDeploy con GitHub](integrations-partners-github.md).

**Topics**
+ [Aprovisionar un bucket de Amazon S3](#tutorials-windows-upload-application-create-s3-bucket)
+ [Preparación de los archivos de la aplicación para el bucket](#tutorials-windows-upload-application-prepare-application-files)
+ [Agrupación de los archivos de la aplicación en un único archivo de almacenamiento y envío del archivo de almacenamiento](#tutorials-windows-upload-application-bundle-and-push-archive)

## Aprovisionar un bucket de Amazon S3
<a name="tutorials-windows-upload-application-create-s3-bucket"></a>

Cree un contenedor de almacenamiento o *bucket* en Amazon S3 o utilice un bucket existente. Asegúrese de que puede cargar la revisión en el bucket y que las instancias Amazon EC2 utilizadas en las implementaciones pueden descargar la revisión del bucket.

Puede usar la AWS CLI consola Amazon S3 o Amazon S3 APIs para crear un bucket de Amazon S3. Después de crear el bucket, asegúrese de que concede permisos de acceso al bucket y a su usuario de CodeDeploy.

**nota**  
Los nombres de los buckets deben ser únicos en Amazon S3 para todas AWS las cuentas. Si no puede utilizar **amzn-s3-demo-bucket**, pruebe otro nombre de bucket, por ejemplo, **amzn-s3-demo-bucket** seguido de un guion y sus iniciales o algún otro identificador único. A continuación, cuando aparezca **amzn-s3-demo-bucket** en este tutorial, asegúrese de sustituirlo por el nombre de su bucket.  
El bucket de Amazon S3 debe crearse en la misma AWS región en la que se lanzaron las instancias de Amazon EC2 de destino. Por ejemplo, si crea el bucket en la región Este de EE. UU. (Norte de Virginia), sus instancias de Amazon EC2 de destino deben lanzarse en la región Este de EE. UU. (Norte de Virginia).

**Topics**
+ [Para crear un bucket de Amazon S3 (CLI)](#tutorials-windows-upload-application-create-s3-bucket-cli)
+ [Para crear un bucket de Amazon S3 (consola)](#tutorials-windows-upload-application-create-s3-bucket-console)
+ [Conceda permisos al bucket de Amazon S3 y a su AWS cuenta](#tutorials-windows-upload-application-create-s3-bucket-grant-permission)

### Para crear un bucket de Amazon S3 (CLI)
<a name="tutorials-windows-upload-application-create-s3-bucket-cli"></a>

Llame al comando **mb** para crear un bucket de Amazon S3 denominado **amzn-s3-demo-bucket**:

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

### Para crear un bucket de Amazon S3 (consola)
<a name="tutorials-windows-upload-application-create-s3-bucket-console"></a>

1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En la consola de Amazon S3, elija **Crear bucket**.

1. En el cuadro **Bucket name (Nombre del bucket)**, escriba un nombre para el bucket.

1. En la lista **Region (Región)**, elija la región de destino y, a continuación, seleccione **Create (Crear)**.

### Conceda permisos al bucket de Amazon S3 y a su AWS cuenta
<a name="tutorials-windows-upload-application-create-s3-bucket-grant-permission"></a>

Debe tener permisos para cargar en el bucket de Amazon S3. Puede especificar estos permisos mediante una política de bucket de Amazon S3. Por ejemplo, en la siguiente política de bucket de Amazon S3, el uso del carácter comodín (\$1) permite `111122223333` a la AWS cuenta cargar archivos en cualquier directorio del bucket de Amazon S3 denominado`amzn-s3-demo-bucket`:

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

Para ver el ID de su AWS cuenta, consulte [Cómo encontrar el ID de su AWS cuenta](https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html#FindingYourAWSId).

Ahora es un buen momento para comprobar que el bucket de Amazon S3 permite las solicitudes de descarga de cada instancia de Amazon EC2 participante. Puede especificarlos mediante una política de bucket de Amazon S3. Por ejemplo, en la siguiente política de bucket de Amazon S3, el carácter comodín (\$1) permite a cualquier instancia de Amazon EC2 asociada a un perfil de instancia de IAM que contenga el ARN `arn:aws:iam::444455556666:role/CodeDeployDemo` descargar desde cualquier directorio al bucket de Amazon S3 llamado `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 obtener información acerca de cómo generar y adjuntar una política de bucket de Amazon S3, consulte [Ejemplos de política de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html).

El usuario CodeDeploy administrativo en el que creó también [Paso 1: Configurar](getting-started-setting-up.md) debe tener permiso para cargar la revisión en el bucket de Amazon S3. Una forma de especificarlo es mediante una política de IAM, que se añade al conjunto de permisos del usuario o a un rol de IAM (que se deja que el usuario asuma). La siguiente política de IAM permite que el usuario cargue revisiones en cualquier lugar del bucket de 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 obtener información sobre cómo crear una política de IAM, consulte [Creación de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) en la *Guía del usuario de IAM*. Para obtener información sobre cómo añadir una política a un conjunto de permisos, consulte [Crear un conjunto de permisos](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtocreatepermissionset.html) en la *Guía del usuario de AWS IAM Identity Center *.

## Preparación de los archivos de la aplicación para el bucket
<a name="tutorials-windows-upload-application-prepare-application-files"></a>

Asegúrese de que la página web, el AppSpec archivo y el script estén organizados en su máquina de desarrollo de la siguiente manera:

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

## Agrupación de los archivos de la aplicación en un único archivo de almacenamiento y envío del archivo de almacenamiento
<a name="tutorials-windows-upload-application-bundle-and-push-archive"></a>

Agrupe los archivos en un archivo de almacenamiento (se denomina una *revisión* de la aplicación).

**nota**  
Es posible que se cobre por almacenar objetos en un bucket y por transferir revisiones de la aplicación dentro y fuera de un bucket. Para obtener más información, consulte [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/). 

1. En el equipo de desarrollo, cambie a la carpeta en la que se almacenan los archivos: 

   ```
   cd c:\temp\HelloWorldApp
   ```
**nota**  
Si no cambia a esta carpeta, la agrupación del archivo comenzará en su carpeta actual. Por ejemplo, si la carpeta actual es `c:\temp` en lugar de `c:\temp\HelloWorldApp`, la agrupación comenzará con los archivos y subcarpetas de la carpeta `c:\temp`, lo que puede incluir algo más que la subcarpeta `HelloWorldApp`.

1. Ejecute el **create-application** comando para registrar una nueva aplicación cuyo nombre **HelloWorld\$1App** sea CodeDeploy:

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

1. Ejecute el comando CodeDeploy [push](https://docs.aws.amazon.com/cli/latest/reference/deploy/push.html) para agrupar los archivos, cargar las revisiones en Amazon S3 y registrar la información CodeDeploy sobre la revisión cargada, todo en una sola acción. 

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

   Este comando agrupa los archivos del directorio actual (excluyendo los archivos ocultos) en un único archivo denominado`HelloWorld_App.zip`, carga la revisión en el **amzn-s3-demo-bucket** depósito y registra la información CodeDeploy sobre la revisión cargada.