Tutorial: Uso de variables a nivel de canalización - AWS CodePipeline

Tutorial: Uso de variables a nivel de canalización

En este tutorial, creará una canalización en la que añadirá una variable a nivel de canalización y ejecutará una acción de compilación de CodeBuild que generará el valor de la variable.

importante

Como parte de la creación de una canalización, CodePipeline utilizará un bucket de artefactos de S3 proporcionado por el cliente para los artefactos. (Es diferente del bucket que se usa para una acción de origen de S3). Si el bucket de artefactos de S3 se encuentra en una cuenta diferente a la cuenta de su canalización, asegúrese de que el bucket de artefactos de S3 pertenezca a Cuentas de AWS que sean seguras y fiables.

Requisitos previos

Antes de empezar, debe hacer lo siguiente:

  • Cree un repositorio de CodeCommit.

  • Añada un archivo .txt al repositorio.

Paso 1: Crear la canalización y compilar el proyecto

En esta sección, debe crear una canalización con las siguientes acciones:

  • Una etapa de origen con una conexión al repositorio de CodeCommit.

  • Una etapa de compilación con una acción de compilación de AWS CodeBuild.

Para crear una canalización con el asistente
  1. Inicie sesión en la consola de CodePipeline en https://console.aws.amazon.com/codepipeline/.

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

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

  4. En Paso 2: elegir la configuración de la canalización, en Nombre de la canalización, escriba MyVariablesPipeline.

  5. En Tipo de canalización, mantenga la selección predeterminada en V2. Los tipos de canalización difieren en características y precio. Para obtener más información, consulte Tipos de canalización.

  6. En Service role (Rol de servicio), elija New service role (Nuevo rol de servicio).

    nota

    Si, en cambio, elige utilizar la función de servicio de CodePipeline existente, asegúrese de haber agregado el permiso de IAM codeconnections:UseConnection a la política de la función de servicio. Para obtener instrucciones acerca de la función de servicio de CodePipeline, consulte Agregar permisos a la función de servicio de CodePipeline.

  7. En Variables, seleccione Añadir variable. En Name (Nombre), escriba timeout. En Predeterminado, escriba 1000. En la descripción, introduzca la siguiente descripción: Timeout.

    Esto creará una variable en la que podrá declarar el valor cuando comience la ejecución de la canalización. Los nombres de las variables deben coincidir con [A-Za-z0-9@\-_]+ y pueden ser cualquier cosa excepto una cadena vacía.

  8. Para Configuración avanzada deje los valores predeterminados. En Artifact store (Almacén de artefactos), elija Default location (Ubicación predeterminada) para utilizar el almacén de artefactos predeterminado, como el bucket de artefacto de Amazon S3 que se estableció como predeterminado, para la canalización en la región que seleccionó para esta.

    nota

    Este no es el bucket de origen para su código fuente. Este es el almacén de artefactos de la canalización. Cada canalización debe tener su propio almacén de artefactos independiente, como un bucket de S3.

    Elija Siguiente.

  9. En la página Paso 3: agregar la etapa de origen, agregue una etapa de origen:

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

    2. En Nombre del repositorio y Nombre de la ramificación, elija su repositorio y ramificación.

    Elija Siguiente.

  10. En Paso 4: agregación de la etapa de compilación, agregue una etapa de compilación:

    1. En Build provider (Proveedor de compilación), elija AWS CodeBuild. En el campo Region (Región) conserve el valor predeterminado de la región de la canalización.

    2. Elija Crear proyecto.

    3. En Project name (Nombre de proyecto), escriba un nombre para este proyecto de compilación.

    4. En Environment image (Imagen de entorno), elija Managed image (Imagen administrada). En Operating system (Sistema operativo), elija Ubuntu.

    5. En Runtime, elija Standard (Estándar). En Imagen, elija aws/codebuild/standard:5.0.

    6. En Service role (Rol de servicio), elija New service role (Nuevo rol de servicio).

      nota

      Anote el nombre de su rol de servicio de CodeBuild. Necesitará el nombre del rol para el paso final de este tutorial.

    7. En Buildspec, para Build specifications (Especificaciones de la compilación), elija Insert build commands (Insertar comandos de compilación). Elija Cambiar a editor y pegue lo siguiente en Comandos de compilación: En la especificación de compilación, se utilizará la variable de cliente $CUSTOM_VAR1 para generar la variable de canalización en el registro de compilación. En el siguiente paso, creará la variable de salida $CUSTOM_VAR1 como variable de entorno.

      version: 0.2 #env: #variables: # key: "value" # key: "value" #parameter-store: # key: "value" # key: "value" #git-credential-helper: yes phases: install: #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions. #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails. runtime-versions: nodejs: 12 #commands: # - command # - command #pre_build: #commands: # - command # - command build: commands: - echo $CUSTOM_VAR1 #post_build: #commands: # - command # - command artifacts: files: - '*' # - location name: $(date +%Y-%m-%d) #discard-paths: yes #base-directory: location #cache: #paths: # - paths
    8. Elija Continue to CodePipeline (Continuar en CodePipeline). Esto vuelve a la consola de CodePipeline y crea un proyecto de CodePipeline que utiliza los comandos de compilación para la configuración. El proyecto de compilación utiliza un rol de servicio para administrar los permisos del Servicio de AWS. Es posible que este paso tarde un par de minutos.

    9. En Variables de entorno (opcional), para crear una variable de entorno como variable de entrada para la acción de creación que resolverá la variable a nivel de canalización, elija Añadir variable de entorno. Esto creará la variable especificada en la especificación de compilación como $CUSTOM_VAR1. En Name (Nombre), escriba CUSTOM_VAR1. En Valor, escriba #{variables.timeout}. En Tipo, elija Plaintext.

      El valor #{variables.timeout} de la variable de entorno se basa en el espacio de nombres de la variable de nivel de canalización variables y en la variable de nivel de canalización timeout creada para la canalización en el paso 7.

    10. Elija Siguiente.

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

  12. En la página Paso 6: agregar la etapa de implementación, elija Omitir la etapa de implementación y, a continuación, acepte el mensaje de advertencia eligiendo Omitir una vez más. Elija Siguiente.

  13. En el Paso 7: revisión, elija Crear la canalización.

Paso 2: Publicar los cambios y ver los registros

  1. Después de que la canalización se ejecute correctamente, en la etapa de implementación, elija Ver detalles.

    En la página de detalles, elija la pestaña Registros. Consulte el resultado de la compilación de CodeBuild. Los comandos muestran el valor de la variable introducida.

  2. En el panel de navegación de la izquierda, elija Historial.

    Elija la ejecución reciente y, a continuación, elija la pestaña Variables. Vea el valor resuelto de la variable de canalización.