Tutorial: Crear una canalización que se implemente en Service Catalog - AWS CodePipeline

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

Service Catalog le permite crear y aprovisionar productos basándose en plantillas de AWS CloudFormation. En este tutorial se muestra cómo crear y configurar una canalización para implementar su plantilla de producto en Service Catalog y enviar los cambios que haya realizado al repositorio de código fuente (ya creado en GitHub, CodeCommit o Amazon S3).

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:

Opción 1: Realizar la implementación en Service Catalog sin un archivo de configuración

En este ejemplo, cargue el archivo de plantilla de ejemplo de de un bucket de S3 y cree el producto en Service Catalog. A continuación, cree la canalización y especifique la configuración de la implementación en la consola de CodePipeline.

Paso 1: Cargar un archivo de plantilla de ejemplo en un repositorio de código fuente

  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 a AWS CloudFormation crear un bucket de S3 que se puede utilizar en Service Catalog.

  2. Cargue el archivo S3_template.json en el repositorio de AWS CodeCommit.

Paso 2: Crear un producto en Service Catalog

  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.

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

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

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

    4. Elija Siguiente.

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

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

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

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

    4. Elija Siguiente.

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

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

  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 la AWS Management Console y abra la consola de CodePipeline en https://console.aws.amazon.com/codepipeline/.

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

    3. En Tipo de canalización, elija V1 para los fines de este tutorial. También puede elegir V2; sin embargo, tenga en cuenta que los tipos de canalización difieren en cuanto a características y precio. Para obtener más información, consulte Tipos de canalización.

    4. En Rol de servicio, elija Nuevo rol de servicio para permitir que CodePipeline cree un rol de servicio en IAM.

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

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

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

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

    3. Elija Siguiente.

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

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

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

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

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

    5. En Tipo de producto, elija la plantilla de AWS CloudFormation.

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

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

    8. Elija Siguiente.

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

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

    
              Ver la etapa de implementación de Service Catalog de la canalización
  7. 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

  1. Vea la canalización en la consola de CodePipeline y en su etapa de código fuente elija Detalles. El repositorio de código fuente de AWS CodeCommit 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"
  2. 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.

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

En este ejemplo, cargue el archivo de plantilla de ejemplo de de un bucket de S3 y cree 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

  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 a AWS CloudFormation crear un bucket de S3 que se puede utilizar en Service Catalog.

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

  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.

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

  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.

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

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

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

    4. Elija Siguiente.

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

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

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

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

    4. Elija Siguiente.

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

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

  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 la AWS Management Console y abra la consola de CodePipeline en https://console.aws.amazon.com/codepipeline/.

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

    3. En Rol de servicio, elija Nuevo rol de servicio para permitir que CodePipeline cree un rol de servicio en IAM.

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

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

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

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

    3. Elija Siguiente.

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

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

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

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

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

    5. Elija Siguiente.

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

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

    
              Ver la etapa de implementación de Service Catalog de la canalización
  7. 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

  1. Vea la canalización en la consola de CodePipeline y en la etapa de código fuente elija Detalles. El repositorio de código fuente de AWS CodeCommit 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"
  2. 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.

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