

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.

# Tutorial: Crear una canalización que se implemente en Service Catalog
<a name="tutorials-S3-servicecatalog"></a>

Service Catalog le permite crear y aprovisionar productos a partir de AWS CloudFormation plantillas. 

**importante**  
Como parte de la creación de una canalización, se utilizará un depósito de artefactos de S3 proporcionado por el cliente CodePipeline para fabricar artefactos. (Es diferente del bucket que se usa para una acción de origen de S3). Si el depósito de artefactos de S3 está en una cuenta diferente a la de tu canalización, asegúrate de que el depósito de artefactos de S3 pertenezca a una Cuentas de AWS persona segura y fiable.

En este tutorial, se muestra cómo crear y configurar una canalización para implementar la plantilla de producto en Service Catalog y entregar los cambios que haya realizado en su repositorio de origen (ya creado en GitHub Amazon S3 o Amazon S3). CodeCommit

**nota**  
Cuando Amazon S3 es el proveedor de origen de la canalización, debe cargar en el bucket todos los archivos de origen empaquetados como un solo archivo .zip. De lo contrario, la acción de origen dará error.

En primer lugar, debe crear un producto en Service Catalog y, a continuación, crear una canalización en AWS CodePipeline. Este tutorial proporciona dos opciones para la configuración de la implementación:
+ Crear un producto en Service Catalog y cargar un archivo de plantilla en el repositorio de origen. Proporcione la versión del producto y la configuración de implementación en la CodePipeline consola (sin un archivo de configuración independiente). Consulte [Opción 1: Realizar la implementación en Service Catalog sin un archivo de configuración](#tutorials-S3-servicecatalog-ex1-configure).
**nota**  
El archivo de plantilla se puede crear en formato YAML o JSON.
+ Crear un producto en Service Catalog y cargar un archivo de plantilla en el repositorio de origen. Proporcione la versión del producto y la configuración de implementación en un archivo de configuración distinto. Consulte [Opción 2: Realizar la implementación en Service Catalog con un archivo de configuración](#tutorials-S3-servicecatalog-ex2-configure).

## Opción 1: Realizar la implementación en Service Catalog sin un archivo de configuración
<a name="tutorials-S3-servicecatalog-ex1-configure"></a>

En este ejemplo, carga el archivo de AWS CloudFormation plantilla de muestra para un bucket de S3 y, a continuación, crea el producto en Service Catalog. A continuación, crea la canalización y especifica la configuración de despliegue en la CodePipeline consola.

### Paso 1: Cargar un archivo de plantilla de ejemplo en un repositorio de código fuente
<a name="tutorials-S3-servicecatalog-configure"></a>

1. Abra un editor de texto. Cree una plantilla de ejemplo pegando lo siguiente en el archivo. Guarde el archivo como `S3_template.json`.

   ```
   {
     "AWSTemplateFormatVersion": "2010-09-09",
     "Description": "CloudFormation Sample Template S3_Bucket: Sample template showing how to create a privately accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the resources used if you create a stack from this template.",
     "Resources": {
       "S3Bucket": {
         "Type": "AWS::S3::Bucket",
         "Properties": {}
       }
     },
     "Outputs": {
       "BucketName": {
         "Value": {
           "Ref": "S3Bucket"
         },
         "Description": "Name of Amazon S3 bucket to hold website content"
       }
     }
   }
   ```

   Esta plantilla permite AWS CloudFormation crear un bucket de S3 que Service Catalog puede utilizar.

1. Cargue el archivo `S3_template.json` en el repositorio de AWS CodeCommit .

### Paso 2: Crear un producto en Service Catalog
<a name="tutorials-S3-servicecatalog-product"></a>

1. Como administrador de TI, inicie sesión en la consola de Service Catalog., visite la página **Productos** y, a continuación, elija **Cargar nuevo producto**.

1. En la página **Upload new product (Cargar nuevo producto)**, complete lo siguiente:

   1. En **Product name (Nombre del producto)**, introduzca el nombre que desea usar para el nuevo producto.

   1. En **Description (Descripción)**, escriba la descripción del catálogo de productos. Esta descripción se muestra en el listado de productos para ayudar al usuario a elegir el producto correcto. 

   1. En **Provided by (Proporcionado por)**, escriba el nombre del departamento de TI o del administrador.

   1. Elija **Siguiente**.

1. (Opcional) En **Enter support details (Introducir detalles de soporte)**, escriba la información de contacto de soporte del producto y elija **Next (Siguiente)**.

1. En **Version details (Detalles de la versión)**, realice lo siguiente:

   1. Elija **Upload a template file (Cargar un archivo de plantilla)**. Busque su archivo `S3_template.json` y cárguelo.

   1. En **Version title (Título de versión)**, escriba el nombre de la versión del producto (por ejemplo, **devops S3 v2**).

   1. En **Description (Descripción)**, escriba detalles que distingan esta versión de otras versiones.

   1. Elija **Siguiente**.

1. En la página **Review (Revisar)**, compruebe que la información es correcta y, a continuación, elija **Create (Crear)**. 

1. En la página **Products (Productos)**, en el navegador, copie la URL de su nuevo producto. Contiene el ID del producto. Copie y conserve este ID de producto. Lo usará al crear la canalización en CodePipeline.

   A continuación se muestra la dirección URL de un producto llamado `my-product`. Para extraer el ID del producto, copie el valor entre el signo igual (`=`) y el signo ampersand (`&`). En este ejemplo, el ID del producto es `prod-example123456`.

   ```
   https://<region-URL>/servicecatalog/home?region=<region>#/admin-products?productCreated=prod-example123456&createdProductTitle=my-product
   ```
**nota**  
Copie la dirección URL de su producto antes de salir de la página. Una vez que salga de esta página, debe utilizar la CLI para obtener el ID del producto.

   Transcurridos unos segundos, el producto aparecerá en la página **Products (Productos)**. Puede que necesite actualizar el navegador para ver el producto en la lista.

### Paso 3: Crear la canalización
<a name="tutorials-S3-servicecatalog-pipeline"></a>

1. Para asignar un nombre a la canalización y seleccionar los parámetros para la canalización, haga lo siguiente:

   1. Inicie sesión en Consola de administración de AWS y abra la CodePipeline consola en [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

   1. En la página **Bienvenido**, **Introducción** o **Canalizaciones**, elija **Crear canalización**.

   1. En la página **Paso 1: elección de la opción de creación**, en **Opciones de creación**, seleccione la opción **Crear una canalización personalizada**. Elija **Siguiente**.

   1. En el **Paso 2: elegir la configuración de la canalización**, en **Nombre de la canalización**, escriba un nombre para su canalización.

   1. CodePipeline proporciona tuberías de tipo V1 y V2, que difieren en características y precio. El tipo V2 es el único tipo que puede elegir en la consola. Para obtener más información, consulte [Tipos de canalización](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel). Para obtener información sobre los precios de CodePipeline, consulte [Precios](https://aws.amazon.com/codepipeline/pricing/).

   1. En **Función de servicio**, elija **Nueva función de servicio** CodePipeline para poder crear una función de servicio en IAM.

   1. En **Advanced settings (Configuración avanzada)**, deje los valores predeterminados y elija **Next (Siguiente)**.

1. Para agregar una etapa de origen en la página **Paso 3: agregación de la etapa de origen**, realice lo siguiente:

   1. En **Source provider (Proveedor de código fuente)**, elija **AWS CodeCommit**.

   1. En **Repository name (Nombre de repositorio)** y **Branch name (Nombre de ramificación)**, escriba el repositorio y la ramificación que desea utilizar para su acción de código fuente.

   1. Elija **Siguiente**.

1. En **Paso 4: agregar la etapa de compilación**, elija **Omitir la etapa de compilación** y, a continuación, acepte el mensaje de advertencia eligiendo **Omitir** una vez más.

1. En **Paso 5: agregación de la etapa de prueba**, elija **Omitir la etapa de prueba** y, a continuación, acepte el mensaje de advertencia eligiendo **Omitir** una vez más. 

   Elija **Siguiente**.

1. En **Paso 6: agregación de la etapa de implementación**, lleve a cabo lo siguiente:

   1. En **Deploy provider (Proveedor de implementación)**, elija **AWS Service Catalog**.

   1. Para la configuración de implementación, elija **Enter deployment configuration (Especificar configuración de implementación)**.

   1. En **ID de producto**, pegue el ID de producto copiado de la consola de Service Catalog.

   1. En **Template file, path (Ruta de archivo de plantilla)**, escriba la ruta relativa donde se almacena el archivo de plantilla.

   1. En **Tipo de producto**, elija la **plantilla de CloudFormation **.

   1. En **Nombre de versión de producto**, escriba el nombre de la versión del producto que ha especificado en Service Catalog. Si desea implementar el cambio de plantilla en una nueva versión de producto, escriba un nombre de versión del producto que no se haya utilizado en cualquier versión de producto anterior en el mismo producto.

   1. Para **Input artifact (Artefacto de entrada)**, elija el artefacto de entrada de código fuente.

   1. Elija **Siguiente**.

1. En **Paso 7: revisión**, revise la configuración de la canalización y después elija **Crear**.

1. Después de que la canalización se ejecute correctamente, en la etapa de implementación, elija **Details (Detalles)**. Esto abre el producto en Service Catalog.  
![\[\]](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/images/deploy-servicecatalog-pipeline.png)

1. En su información del producto, seleccione el nombre de la versión para abrir la plantilla del producto. Vea la implementación de la plantilla.

### Paso 4: Enviar un cambio y verificar el producto en Service Catalog
<a name="tutorials-S3-servicecatalog-change"></a>

1. Consulta tu canalización en la CodePipeline consola y, en la fase de origen, selecciona **Detalles**. El AWS CodeCommit repositorio de código fuente se abre en la consola. Elija **Edit (Editar)** y haga un cambio en el archivo (por ejemplo, en la descripción). 

   ```
   "Description": "Name of Amazon S3 bucket to hold and version website content"
   ```

1. Confirme y envíe el cambio. La canalización comienza después de enviar el cambio. Cuando la ejecución de la canalización se haya completado, en la etapa de implementación, elija **Detalles** para abrir su producto en Service Catalog.

1. En su información del producto, seleccione el nuevo nombre de la versión para abrir la plantilla del producto. Vea el cambio de plantilla implementado.

## Opción 2: Realizar la implementación en Service Catalog con un archivo de configuración
<a name="tutorials-S3-servicecatalog-ex2-configure"></a>

En este ejemplo, carga el archivo de AWS CloudFormation plantilla de muestra para un bucket de S3 y, a continuación, crea el producto en Service Catalog. También puede cargar un archivo de configuración distinto que especifique la configuración de implementación. A continuación, cree la canalización y especifique la ubicación del archivo de configuración.

### Paso 1: Cargar un archivo de plantilla de ejemplo en un repositorio de código fuente
<a name="tutorials-S3-servicecatalog-upload2"></a>

1. Abra un editor de texto. Cree una plantilla de ejemplo pegando lo siguiente en el archivo. Guarde el archivo como `S3_template.json`.

   ```
   {
     "AWSTemplateFormatVersion": "2010-09-09",
     "Description": "CloudFormation Sample Template S3_Bucket: Sample template showing how to create a privately accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the resources used if you create a stack from this template.",
     "Resources": {
       "S3Bucket": {
         "Type": "AWS::S3::Bucket",
         "Properties": {}
       }
     },
     "Outputs": {
       "BucketName": {
         "Value": {
           "Ref": "S3Bucket"
         },
         "Description": "Name of Amazon S3 bucket to hold website content"
       }
     }
   }
   ```

   Esta plantilla permite AWS CloudFormation crear un bucket de S3 que Service Catalog puede utilizar.

1. Cargue el archivo `S3_template.json` en el repositorio de AWS CodeCommit .

### Paso 2: Crear el archivo de configuración de implementación del producto
<a name="tutorials-S3-servicecatalog-configure2"></a>

1. Abra un editor de texto. Cree el archivo de configuración para su producto. El archivo de configuración se utiliza para definir los parámetros/preferencias de implementación de Service Catalog. Utilice este archivo al crear la canalización.

   Este ejemplo proporciona un `ProductVersionName` de "devops S3 v2" y un `ProductVersionDescription` de `MyProductVersionDescription`. Si desea implementar el cambio de plantilla en una nueva versión de producto, escriba un nombre de versión del producto que no se haya utilizado en ninguna versión de producto anterior en el mismo producto.

    Guarde el archivo como `sample_config.json`.

   ```
   {
       "SchemaVersion": "1.0",
       "ProductVersionName": "devops S3 v2",
       "ProductVersionDescription": "MyProductVersionDescription",
       "ProductType": "CLOUD_FORMATION_TEMPLATE",
       "Properties": {
           "TemplateFilePath": "/S3_template.json"
       }
   }
   ```

   Este archivo crea la información de versión del producto cada vez que se ejecute la canalización.

1. Cargue el archivo `sample_config.json` en el repositorio de AWS CodeCommit . Asegúrese de cargar este archivo en el repositorio de código fuente.

### Paso 3: Crear un producto en Service Catalog
<a name="tutorials-S3-servicecatalog-product2"></a>

1. Como administrador de TI, inicie sesión en la consola de Service Catalog., visite la página **Productos** y, a continuación, elija **Cargar nuevo producto**.

1. En la página **Upload new product (Cargar nuevo producto)**, complete lo siguiente:

   1. En **Product name (Nombre del producto)**, introduzca el nombre que desea usar para el nuevo producto.

   1. En **Description (Descripción)**, escriba la descripción del catálogo de productos. Esta descripción aparece en el listado de productos para ayudar al usuario a elegir el producto correcto. 

   1. En **Provided by (Proporcionado por)**, escriba el nombre del departamento de TI o del administrador.

   1. Elija **Siguiente**.

1. (Opcional) En **Enter support details (Introducir detalles de soporte)**, escriba la información de contacto de soporte del producto y elija **Next (Siguiente)**.

1. En **Version details (Detalles de la versión)**, realice lo siguiente:

   1. Elija **Upload a template file (Cargar un archivo de plantilla)**. Busque su archivo `S3_template.json` y cárguelo.

   1. En **Version title (Título de versión)**, escriba el nombre de la versión del producto (por ejemplo, "devops S3 v2").

   1. En **Description (Descripción)**, escriba detalles que distingan esta versión de otras versiones.

   1. Elija **Siguiente**.

1. En la página **Review (Revisar)**, compruebe que la información es correcta y, a continuación, elija **Confirm and upload (Confirmar y cargar)**. 

1. En la página **Products (Productos)**, en el navegador, copie la URL de su nuevo producto. Contiene el ID del producto. Copie y conserve este ID de producto. Lo usará al crear la canalización en CodePipeline.

   A continuación se muestra la dirección URL de un producto llamado `my-product`. Para extraer el ID del producto, copie el valor entre el signo igual (`=`) y el signo ampersand (`&`). En este ejemplo, el ID del producto es `prod-example123456`. 

   ```
   https://<region-URL>/servicecatalog/home?region=<region>#/admin-products?productCreated=prod-example123456&createdProductTitle=my-product
   ```
**nota**  
Copie la dirección URL de su producto antes de salir de la página. Una vez que salga de esta página, debe utilizar la CLI para obtener el ID del producto.

   Transcurridos unos segundos, el producto aparecerá en la página **Products (Productos)**. Puede que necesite actualizar el navegador para ver el producto en la lista.

### Paso 4: Crear la canalización
<a name="tutorials-S3-servicecatalog-pipeline2"></a>

1. Para asignar un nombre a la canalización y seleccionar los parámetros para la canalización, haga lo siguiente:

   1. Inicie sesión en Consola de administración de AWS y abra la CodePipeline consola en [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

   1. Elija **Empezar**. Elija **Crear canalización** y, a continuación, escriba un nombre para su canalización.

   1. En **Función de servicio**, elija **Nueva función de servicio** CodePipeline para poder crear una función de servicio en IAM.

   1. En **Advanced settings (Configuración avanzada)**, deje los valores predeterminados y elija **Next (Siguiente)**.

1. Para añadir una etapa de código fuente, haga lo siguiente:

   1. En **Source provider (Proveedor de código fuente)**, elija **AWS CodeCommit**.

   1. En **Repository name (Nombre de repositorio)** y **Branch name (Nombre de ramificación)**, escriba el repositorio y la ramificación que desea utilizar para su acción de código fuente.

   1. Elija **Siguiente**.

1. En **Add build stage (Añadir etapa de compilación)**, elija **Skip build stage (Omitir etapa de compilación)** y, a continuación, acepte el mensaje de advertencia eligiendo **Skip (Omitir)** una vez más.

1. En **Add deploy stage (Añadir etapa de implementación)**, lleve a cabo lo siguiente:

   1. En **Deploy provider (Proveedor de implementación)**, elija **AWS Service Catalog**.

   1. Elija **Use configuration file (Usar un archivo de configuración)**.

   1. En **ID de producto**, pegue el ID de producto copiado de la consola de Service Catalog.

   1. En **Configuration file path (Ruta de archivo de configuración)**, escriba la ruta del archivo de configuración en el repositorio.

   1. Elija **Siguiente**.

1. En **Review (Revisar)**, revise la configuración de la canalización y después elija **Create (Crear)**.

1. Después de que la canalización se ejecute correctamente, en su etapa de implementación, elija **Detalles** para abrir el producto en Service Catalog.  
![\[\]](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/images/deploy-servicecatalog-pipeline.png)

1. En su información del producto, seleccione el nombre de la versión para abrir la plantilla del producto. Vea la implementación de la plantilla.

### Paso 5: Enviar un cambio y verificar el producto en Service Catalog
<a name="tutorials-S3-servicecatalog-change2"></a>

1. Consulta tu canalización en la CodePipeline consola y, en la fase de origen, selecciona **Detalles**. El AWS CodeCommit repositorio de código fuente se abre en la consola. Elija **Edit (Editar)** y, a continuación, haga un cambio en el archivo (por ejemplo, en la descripción).

   ```
   "Description": "Name of Amazon S3 bucket to hold and version website content"
   ```

1. Confirme y envíe el cambio. La canalización comienza después de enviar el cambio. Cuando la ejecución de la canalización se haya completado, en la etapa de implementación, elija **Detalles** para abrir su producto en Service Catalog.

1. En su información del producto, seleccione el nuevo nombre de la versión para abrir la plantilla del producto. Vea el cambio de plantilla implementado.