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.
Creación de una canalización, etapas y acciones
Puede utilizar la AWS CodePipeline consola o la AWS CLI para crear una canalización. Las canalizaciones deben tener dos etapas como mínimo. La primera etapa de una canalización debe ser una etapa de origen. La canalización debe tener al menos otra etapa que sea una etapa de compilación o implementación.
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.
Puedes añadir acciones a tu canalización que estén en una canalización Región de AWS diferente a la tuya. Una acción interregional es aquella en la que un Servicio de AWS es el proveedor de una acción y el tipo de acción o el tipo de proveedor se encuentra en una AWS región diferente a la de tu cartera. Para obtener más información, consulte Agregar una acción entre regiones en CodePipeline.
También puede crear canalizaciones que creen e implementen aplicaciones basadas en contenedores utilizando Amazon ECS como proveedor de implementación. Antes de crear una canalización que implemente aplicaciones basadas en contenedores con Amazon ECS, debe crear un archivo de definiciones de imágenes, tal y como se describe en Referencia del archivo de definiciones de imágenes.
CodePipeline utiliza métodos de detección de cambios para iniciar tu canalización cuando se introduce un cambio en el código fuente. Estos métodos de detección se basan en el tipo de código fuente:
-
CodePipeline usa Amazon CloudWatch Events para detectar cambios en el repositorio y la rama de CodeCommit origen o en el bucket de código fuente de S3.
nota
Si utiliza la consola para crear o editar una canalización, los recursos de detección de cambios se crean automáticamente. Si usa la AWS CLI para crear la canalización, debe crear los recursos adicionales usted mismo. Para obtener más información, consulte CodeCommit acciones de origen y EventBridge.
Temas
Creación de una canalización personalizada (consola)
Para crear una canalización personalizada en la consola, necesita proporcionar la ubicación del archivo de código fuente e información acerca de los proveedores que utilizará para las acciones.
Cuando se usa la consola para crear una canalización, se debe incluir una etapa de código fuente y una de las siguientes etapas, o ambas:
-
Una etapa de compilación.
-
Una etapa de implementación.
Cuando utiliza el asistente de canalización, CodePipeline crea los nombres de las etapas (fuente, compilación, puesta en escena). Estos nombres no se pueden cambiar. Puede usar nombres más específicos (por ejemplo, BuildToGamma o DeployToProd) para las etapas que añada más adelante.
Paso 1: Crear la canalización y asignarle un nombre
Inicie sesión en la CodePipeline consola AWS Management Console y ábrala en http://console.aws.amazon. com/codesuite/codepipeline/home
. -
En la página Welcome, elija Create pipeline.
Si es la primera vez que lo usas CodePipeline, selecciona Comenzar.
-
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 Next (Siguiente).
-
En la página Paso 2: elegir la configuración de la canalización, en Nombre de la canalización, escriba el nombre de la canalización.
En una sola AWS cuenta, cada canalización que crees en una AWS región debe tener un nombre único. Los nombres se pueden reutilizar para canalizaciones de regiones diferentes.
nota
Después de crear una canalización, no podrá cambiar el nombre. Para obtener información acerca de otras limitaciones, consulte Cuotas en AWS CodePipeline.
-
En Tipo de canalización, elija una de las siguientes opciones: Los tipos de canalización difieren en características y precio. Para obtener más información, consulte Tipos de canalización.
-
Las canalizaciones de tipo V1 tienen una estructura JSON que contiene parámetros estándares de canalización, etapa y nivel de acción.
-
Las canalizaciones de tipo V2 tienen la misma estructura que las de tipo V1, además de compatibilidad con parámetros adicionales, como los desencadenadores en las etiquetas de Git y las variables a nivel de canalización.
-
-
En Service role (Rol de servicio), realice una de las operaciones siguientes:
-
Elija Nueva función de servicio para CodePipeline poder crear una nueva función de servicio en IAM.
-
Elija Existing service role (Rol de servicio existente) para utilizar un rol de servicio que ya se ha creado en IAM. En Role ARN (ARN del rol), elija en la lista el ARN del rol de servicio.
nota
En función de cuándo se creó el rol de servicio, es posible que tenga que actualizar sus permisos para admitir otros Servicios de AWS. Para obtener más información, consulte Agregar permisos al rol de servicio de CodePipeline.
Para obtener más información acerca del rol de servicio y su instrucción de política, consulte Administre la función CodePipeline de servicio.
-
-
(Opcional) En Variables, seleccione Añadir variable para añadir variables a nivel de canalización.
Para obtener más información acerca de las variables a nivel de canalización, consulte Referencia de variables. Para ver un tutorial con una variable a nivel de canalización que se transfiere en el momento de la ejecución de la canalización, consulte Tutorial: Uso de variables a nivel de canalización.
nota
Si bien es opcional añadir variables a nivel de canalización, en el caso de una canalización especificada con variables a nivel de canalización en la que no se proporcionen valores, la ejecución de la canalización fallará.
-
(Opcional) Expanda Advanced settings (Configuración avanzada).
-
En Artifact store (Almacén de artefactos), ejecute una de estas acciones:
-
Elige la ubicación predeterminada para usar el almacén de artefactos predeterminado, como el depósito de artefactos de S3 designado como predeterminado, para tu canalización en la Región de AWS que hayas seleccionado para tu canalización.
-
Elija Custom location (Ubicación personalizada) si ya dispone de un almacén de artefactos (por ejemplo, un bucket de artefactos de S3) en la misma región que la canalización. En Bucket, elija el nombre del bucket.
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. Al crear o editar una canalización, debes tener una cubeta de artefactos en la región de la canalización y una cubeta de artefactos por cada AWS región en la que vayas a ejecutar una acción.
Para obtener más información, consulte Artefactos de entrada y salida y CodePipeline referencia de estructura de tubería.
-
-
(Opcional) En Encryption key (Clave de cifrado), realice una de las siguientes operaciones:
-
Para usar el CodePipeline valor predeterminado AWS KMS key para cifrar los datos del almacén de artefactos de la canalización (depósito S3), elige la clave gestionada predeterminada. AWS
-
Si desea utilizar su clave administrada por el cliente para cifrar los datos del almacén de artefactos de canalización (bucket de S3), elija Clave administrada por el cliente. Elija el ID de clave, el ARN de clave o el ARN de alias.
-
-
Elija Next (Siguiente).
Paso 2: Crear una etapa de código fuente
-
En la página Paso 3: agregar la etapa de origen, en Proveedor de origen, elija el tipo de repositorio en el que se almacena el código fuente y, a continuación, especifique las opciones obligatorias. Los campos adicionales se muestran según el proveedor de origen seleccionado de la siguiente manera.
-
Para Bitbucket Cloud GitHub (mediante una GitHub aplicación), GitHub Enterprise Server, GitLab .com o de forma autogestionada: GitLab
-
En Conexión, seleccione una conexión existente o cree una nueva. Para crear o gestionar una conexión para tu acción de GitHub origen, consulta. GitHub conexiones
-
Elija el repositorio que desea usar como ubicación de origen para la canalización.
Elija agregar un desencadenador o filtrar los tipos de desencadenadores para iniciar la canalización. Para obtener más información acerca de cómo trabajar con desencadenadores, consulte Agregue tipos de eventos de activación con código, push o pull request. Para obtener más información acerca de filtros con patrones de glob, consulte Trabajar con patrones glob en la sintaxis.
-
En Formato del artefacto de salida, debe elegir el formato de los artefactos.
-
Para almacenar los artefactos de salida de la GitHub acción mediante el método predeterminado, elija CodePipelinedefault. La acción accede a los archivos del GitHub repositorio y almacena los artefactos en un archivo ZIP en el almacén de artefactos de Pipeline.
-
Para almacenar un archivo JSON que contiene una referencia URL al repositorio de manera que las acciones posteriores puedan ejecutar comandos Git directamente, elija Clonación completa. Esta opción solo la pueden utilizar las acciones posteriores de CodeBuild .
Si eliges esta opción, tendrás que actualizar los permisos de tu rol de servicio del CodeBuild proyecto, tal y como se muestra en la siguiente. Solución de problemas CodePipeline Para ver un tutorial que muestra cómo utilizar la opción Clonación completa, consulte Tutorial: Utilice un clon completo con una fuente de GitHub canalización.
-
-
-
Para Amazon S3:
-
En Amazon S3 location (Ubicación de Amazon S3), proporcione el nombre del bucket de S3 y la ruta del objeto de un bucket con control de versiones habilitado. El formato del nombre de bucket y la ruta tiene un aspecto similar a este:
s3://
bucketName
/folderName
/objectName
nota
Si Amazon S3 es el proveedor de origen de la canalización, debe comprimir los archivos de origen en un solo archivo.zip y cargarlo en el bucket de origen. También puede cargar un archivo sin comprimir; sin embargo, se producirá un error en las acciones posteriores que esperan un archivo.zip.
-
Tras elegir el bucket de origen de S3, CodePipeline crea la regla de Amazon CloudWatch Events y la AWS CloudTrail ruta que se va a crear para esta canalización. En Change detection options, deje los valores predeterminados. Esto te CodePipeline permite usar Amazon CloudWatch Events y AWS CloudTrail detectar cambios en tu nueva canalización. Elija Next (Siguiente).
-
-
Para AWS CodeCommit:
-
En Nombre del repositorio, elige el nombre del CodeCommit repositorio que quieres usar como ubicación de origen de tu canalización. En Branch name, en la lista desplegable, elija la ramificación que desee usar.
-
En Formato del artefacto de salida, debe elegir el formato de los artefactos.
-
Para almacenar los artefactos de salida de la CodeCommit acción mediante el método predeterminado, selecciona CodePipelinepredeterminado. La acción accede a los archivos del CodeCommit repositorio y almacena los artefactos en un archivo ZIP en el almacén de artefactos de Pipeline.
-
Para almacenar un archivo JSON que contiene una referencia URL al repositorio de manera que las acciones posteriores puedan ejecutar comandos Git directamente, elija Clonación completa. Esta opción solo la pueden utilizar las acciones posteriores de CodeBuild .
Si eliges esta opción, tendrás que añadir el
codecommit:GitPull
permiso a tu función de CodeBuild servicio, tal y como se muestra en la siguiente. Añade CodeBuild GitClone permisos para las acciones CodeCommit de origen También tendrá que añadir loscodecommit:GetRepository
permisos a su función de CodePipeline servicio, como se muestra enAgregar permisos al rol de servicio de CodePipeline. Para ver un tutorial que muestra cómo utilizar la opción Clonación completa, consulte Tutorial: Utilice un clon completo con una fuente de GitHub canalización.
-
-
Tras elegir el nombre y la sucursal del CodeCommit repositorio, aparece un mensaje en las opciones de detección de cambios en el que se muestra la regla de Amazon CloudWatch Events que se va a crear para esta canalización. En Change detection options, deje los valores predeterminados. Esto te CodePipeline permite usar Amazon CloudWatch Events para detectar cambios en tu nueva canalización.
-
-
Para Amazon ECR:
-
En Nombre de repositorio, elija el nombre de su repositorio de Amazon ECR.
-
En Image tag (Etiqueta de imagen), especifique el nombre de la imagen y la versión, si es diferente de LATEST.
-
En Output Artifacts, elija el artefacto de salida predeterminado, por ejemplo MyApp, el que contenga el nombre de la imagen y la información del URI del repositorio que desee utilizar en la siguiente etapa.
Para ver un tutorial sobre cómo crear una canalización para Amazon ECS con implementaciones CodeDeploy azul-verde que incluya una etapa de origen de Amazon ECR, consulte. Tutorial: Creación de una canalización con una fuente y ECS-to-CodeDeploy una implementación de Amazon ECR
Cuando se incluye una etapa de origen de Amazon ECR en la canalización, la acción de origen genera un archivo
imageDetail.json
como artefacto de salida al confirmar un cambio. Para obtener más información sobre el archivoimageDetail.json
, consulte Archivo imageDetail.json para las acciones de implementación blue/green de . -
nota
El objeto y el tipo de archivo deben ser compatibles con el sistema de despliegue que vaya a utilizar (por ejemplo, Elastic Beanstalk o). CodeDeploy Algunos tipos de archivos compatibles son .zip, .tar, y .tgz. Para obtener más información acerca de los tipos de contenedores compatibles con Elastic Beanstalk, consulte Personalización y configuración de entornos y Plataformas compatibles. Para obtener más información sobre cómo implementar las revisiones con CodeDeploy, consulte Cargar la revisión de su aplicación y Preparar una revisión.
-
-
Para configurar la etapa para el reintento automático, seleccione Habilitar el reintento automático en caso de fallo de una etapa. Para obtener más información acerca del reintento automático, consulte Configuración de una etapa para el reintento automático en caso de fallo.
-
Elija Next (Siguiente).
Paso 4: creación de una etapa de compilación
Este paso es opcional si tiene previsto crear una etapa de implementación.
-
En la página Paso 4: Añadir la fase de creación, realice una de las siguientes acciones y, a continuación, seleccione Siguiente:
-
Elija Omitir la etapa de compilación si planea crear una etapa de prueba o implementación.
-
Para elegir la acción de Comandos para la etapa de compilación, elija Comandos.
nota
Si ejecuta la acción de Comandos, se le cobrarán cargos por separado en AWS CodeBuild.
En Comandos, introduzca los comandos del intérprete de comandos para su acción. Para obtener más información acerca de la acción de Comandos, consulte Referencia de la acción de Comandos.
-
Para elegir otros proveedores de compilación CodeBuild, por ejemplo, elija Otros proveedores. En Build provider (Proveedor de compilación), elija el proveedor de acciones personalizadas de servicios de compilación y proporcione los detalles de la configuración para ese proveedor. Si desea ver un ejemplo de cómo añadir Jenkins como proveedor de compilación, consulte Tutorial: Crear una canalización de cuatro etapas.
-
En Build provider (Proveedor de compilación), elija AWS CodeBuild.
En Región, elige la AWS región en la que se encuentra el recurso. El campo Región designa dónde se crean los AWS recursos para este tipo de acción y tipo de proveedor. Este campo solo se muestra en el caso de las acciones en las que el proveedor de la acción es un Servicio de AWS. El campo Región se establece de forma predeterminada en la misma AWS región que tu canalización.
En Project name (Nombre del proyecto), elija el proyecto de compilación. Si ya ha creado un proyecto de construcción en CodeBuild, elíjalo. O bien, puede crear un proyecto de construcción CodeBuild y, a continuación, volver a esta tarea. Siga las instrucciones de Crear una canalización que use CodeBuild en la Guía del usuario de CodeBuild.
En Variables de entorno, para añadir variables de CodeBuild entorno a la acción de compilación, selecciona Añadir variable de entorno. Cada variable se compone de tres entradas:
-
En Name (Nombre), escriba el nombre de la clave o de la variable de entorno.
-
En Value (Valor), escriba el valor de la variable de entorno. Si elige Parámetro para el tipo de variable, asegúrese de que este valor sea el nombre de un parámetro que ya haya almacenado en el Almacén de parámetros de AWS Systems Manager.
nota
Se desaconseja encarecidamente el uso de variables de entorno para almacenar valores confidenciales, especialmente AWS las credenciales. Cuando utiliza la CodeBuild consola o la AWS CLI, las variables de entorno se muestran en texto plano. Para valores confidenciales, se recomienda utilizar el tipo Parameter (Parámetro) en su lugar.
-
(Opcional) En Type (Tipo), especifique el tipo de variable de entorno. Los valores válidos son Texto sin formato o Parámetro. El valor predeterminado es Texto sin formato.
(Opcional) En Tipo de compilación, seleccione una de las siguientes opciones:
-
Para ejecutar cada compilación en una sola ejecución de acción de compilación, elija Compilación única.
-
Para ejecutar varias compilaciones en la misma ejecución de acción de compilación, elija Compilación por lote.
(Opcional) Si opta por ejecutar compilaciones por lotes, puede elegir Combinar todos los artefactos del lote en una sola ubicación para colocar todos los artefactos de compilación en un único artefacto de salida.
-
-
-
Para configurar la etapa para el reintento automático, seleccione Habilitar el reintento automático en caso de fallo de una etapa. Para obtener más información acerca del reintento automático, consulte Configuración de una etapa para el reintento automático en caso de fallo.
-
Elija Next (Siguiente).
Paso 5: Crear una etapa de prueba
Este paso es opcional si planea crear una etapa de compilación o implementación.
-
En la página Paso 5: Añadir una etapa de prueba, realice una de las siguientes acciones y, a continuación, seleccione Siguiente:
-
Elija Omitir la etapa de prueba si planea crear una etapa de compilación o implementación.
-
En Proveedor de pruebas, elija el proveedor de acciones de prueba y complete los campos correspondientes.
-
-
Elija Next (Siguiente).
Paso 6: Crear una etapa de despliegue
Este paso es opcional si ya ha creado una etapa de compilación.
-
En la página Paso 6: Añadir la fase de despliegue, realice una de las siguientes acciones y, a continuación, seleccione Siguiente:
-
Elija Omitir la etapa de despliegue si creó una etapa de compilación o prueba en los pasos anteriores.
nota
Esta opción no aparece si ya te has saltado la fase de compilación o prueba.
-
En Deploy provider (Proveedor de implementación), elija una acción personalizada que haya creado para un proveedor de implementación.
En Región, solo para acciones entre regiones, elija la AWS región en la que se crea el recurso. El campo Región designa dónde se crean los recursos de AWS para este tipo de acción y de proveedor. Este campo solo se muestra en el caso de las acciones en las que el proveedor de la acción es un Servicio de AWS. El campo Región se establece de forma predeterminada en la misma AWS región que tu canalización.
-
En Deploy provider (Proveedor de implementación), hay campos disponibles para los proveedores predeterminados, tal como se indica a continuación:
-
CodeDeploy
En Nombre de la aplicación, ingresa o elige el nombre de una CodeDeploy aplicación existente. En Deployment group (Grupo de implementaciones), escriba el nombre de un grupo de implementaciones para la aplicación. Elija Next (Siguiente). También puede crear una aplicación, un grupo de implementaciones o ambas cosas en la consola de CodeDeploy.
-
AWS Elastic Beanstalk
En Nombre de aplicación, escriba o seleccione el nombre de una aplicación de Elastic Beanstalk disponible. En Environment name (Nombre de entorno), especifique un entorno para la aplicación. Elija Next (Siguiente). También puede crear una aplicación, un entorno o ambas cosas en la consola de Elastic Beanstalk.
-
AWS OpsWorks Stacks
En Stack (Pila), escriba o elija el nombre de la pila que desea utilizar. En Layer, elija la capa a la que pertenecen las instancias de destino. En Aplicación, elija la aplicación que desea actualizar e implementar. Si necesita crear una aplicación, elija Crear una nueva en AWS OpsWorks.
Para obtener información sobre cómo añadir una aplicación a una pila y a una capa AWS OpsWorks, consulte Añadir aplicaciones en la Guía del AWS OpsWorks usuario.
Para ver un end-to-end ejemplo de cómo utilizar una canalización simple CodePipeline como fuente del código que se ejecuta en AWS OpsWorks capas, consulte Utilización CodePipeline con AWS OpsWorks Stacks.
-
AWS CloudFormation
Realice una de las siguientes acciones:
-
En el modo Acción, elija Crear o actualizar una pila, introduzca un nombre de pila y un nombre de archivo de plantilla y, a continuación, elija el nombre del rol que AWS CloudFormation desee asumir. Si lo prefiere, escriba el nombre de un archivo de configuración y elija una opción de capacidad de IAM.
-
En el modo Acción, elija Crear o reemplazar un conjunto de cambios, introduzca un nombre de pila y un nombre de conjunto de cambios y, a continuación, elija el nombre del rol que AWS CloudFormation desee asumir. Si lo prefiere, escriba el nombre de un archivo de configuración y elija una opción de capacidad de IAM.
Para obtener información sobre la integración de AWS CloudFormation funciones en una canalización CodePipeline, consulte Continuous Delivery with CodePipeline en la Guía del AWS CloudFormation usuario.
-
-
Amazon ECS
En Nombre de clúster, escriba o seleccione el nombre de un clúster de Amazon ECS disponible. En Service name (Nombre de servicio), escriba o elija el nombre del servicio que se ejecuta en el clúster. También puede crear un clúster y un servicio. En Image filename (Nombre de archivo de imagen), escriba el nombre del archivo de definiciones de imágenes que describe el contenedor y la imagen de su servicio.
nota
La acción de implementación de Amazon ECS requiere un archivo
imagedefinitions.json
como entrada. El nombre predeterminado del archivo es imagedefinitions.json. Si decide utilizar otro nombre de archivo, debe especificarlo al crear la canalización etapa de implementación. Para obtener más información, consulte Archivo imagedefinitions.json para las acciones de implementación estándar de .Elija Next (Siguiente).
nota
Asegúrese de que su clúster de Amazon ECS se ha configurado con dos o más instancias. Los clústeres de Amazon ECS deben incluir al menos dos instancias para poder mantener una como la instancia principal y usar la otra para alojar las nuevas implementaciones.
Si desea ver un tutorial sobre la implementación de aplicaciones basadas en contenedores con la canalización, consulte Tutorial: Implementación continua con CodePipeline.
-
Amazon ECS (Blue/Green) (Amazon ECS (azul/verde))
Introduzca el grupo de CodeDeploy aplicaciones y despliegues, la definición de la tarea de Amazon ECS y la información AppSpec del archivo y, a continuación, seleccione Siguiente.
nota
La acción Amazon ECS (Blue/Green) (Amazon ECS (azul/verde)) requiere un archivo imageDetail.json como artefacto de entrada de la acción de implementación. Dado que la acción de origen de Amazon ECR crea este archivo, no es necesario que las canalizaciones con una acción de origen de Amazon ECR proporcionen un archivo
imageDetail.json
. Para obtener más información, consulte Archivo imageDetail.json para las acciones de implementación blue/green de .Para ver un tutorial sobre cómo crear una canalización para las implementaciones azul-verde en un clúster de Amazon ECS con CodeDeploy, consulte. Tutorial: Creación de una canalización con una fuente y ECS-to-CodeDeploy una implementación de Amazon ECR
-
AWS Service Catalog
Elija Enter deployment configuration (Especificar configuración de implementación) si desea utilizar campos de la consola para especificar la configuración, o elija Configuration file (Archivo de configuración) si tiene un archivo de configuración. Especifique la información de configuración y del producto y, a continuación, elija Next (Siguiente).
Si desea ver un tutorial sobre la implementación de cambios de producto en con la canalización, consulte Tutorial: Crear una canalización que se implemente en Service Catalog.
-
Alexa Skills Kit
En Alexa Skill ID (ID de habilidad de Alexa), escriba el ID de habilidad para la habilidad de Alexa. En Client ID (ID de cliente) y en Client secret (Secreto de cliente), escriba las credenciales generadas con un perfil de seguridad de Login with Amazon (LWA). En Refresh token (Token de actualización), especifique el token de actualización que ha generado mediante el comando de la CLI de ASK para recuperar un token de actualización. Elija Next (Siguiente).
Si desea ver un tutorial sobre la implementación de habilidades de Alexa con una canalización y sobre cómo generar las credenciales de LWA, consulte Tutorial: Crear una canalización que implemente una habilidad de Amazon Alexa.
-
Amazon S3
En Bucket, escriba el nombre del bucket de S3 que desea utilizar. Elija Extract file before deploy (Extraer el archivo antes de la implementación) si el artefacto de entrada a la etapa de implementación es un archivo ZIP. Si selecciona Extract file before deploy (Extraer el archivo antes de la implementación), es posible que también pueda introducir un valor para la Deployment path (Ruta de la implementación) en la que se descomprimirá el archivo ZIP. Si no selecciona dicha opción, deberá introducir un valor en S3 object key (Clave de objeto de S3).
nota
La mayoría de los artefactos de salida de las etapas de código fuente y compilación están comprimidos. Todos los proveedores de origen de la canalización excepto Amazon S3 comprimirán los archivos de origen antes de suministrárselos al artefacto de entrada de la siguiente acción.
(Opcional) En ACL predefinida, introduzca la ACL predefinida para aplicarla al objeto que se implementa en Amazon S3.
nota
La aplicación de una ACL predefinida sobrescribe cualquier ACL existente aplicada al objeto.
(Opcional) En Cache control (Control de caché), especifique los parámetros de control de caché de las solicitudes para descargar objetos del bucket. Para una lista de valores válidos, consulte el
Cache-Control
campo del encabezado para las operaciones HTTP Para introducir varios valores en CacheControl, utilice una coma entre cada valor. Puede añadir un espacio después de cada coma (opcional), tal y como se muestra en este ejemplo. La entrada de ejemplo anterior se muestra en la CLI de la siguiente manera:
"CacheControl": "public, max-age=0, no-transform"
Elija Next (Siguiente).
Para obtener un tutorial que explica cómo crear una canalización con un proveedor de acción de implementación de Amazon S3, consulte Tutorial: Crear una canalización que utilice Amazon S3 como proveedor de implementación.
-
-
-
Para configurar la etapa para el reintento automático, seleccione Habilitar el reintento automático en caso de fallo de una etapa. Para obtener más información acerca del reintento automático, consulte Configuración de una etapa para el reintento automático en caso de fallo.
-
Para configurar la etapa para la reversión automática, seleccione Configurar la reversión automática en caso de fallo en una etapa. Para obtener más información acerca de la reversión automática, consulte Configuración de una etapa para la reversión automática.
-
Elija Next Step (Paso siguiente).
Paso 7: Revise la canalización
-
En la página Paso 7: Revisar, revisa la configuración de la canalización y, a continuación, selecciona Crear canalización para crear la canalización o Anterior para volver atrás y editar las opciones elegidas. Para salir del asistente sin crear una canalización, elija Cancel.
Ahora que ha creado su canalización, puede verla en la consola. La canalización comienza a ejecutarse una vez creada. Para obtener más información, consulte Vea las canalizaciones y los detalles en CodePipeline. Para obtener más información acerca de cómo realizar cambios en la canalización, consulte Editar una canalización en CodePipeline.
Crear una canalización (CLI)
Para utilizarla AWS CLI para crear una canalización, debes crear un archivo JSON para definir la estructura de la canalización y, a continuación, ejecutar el create-pipeline comando con el --cli-input-json
parámetro.
importante
No puedes usar el AWS CLI para crear una canalización que incluya las acciones de los socios. En su lugar, debes usar la CodePipeline consola.
Para obtener más información sobre la estructura de la canalización, consulta CodePipeline referencia de estructura de tubería y create-pipeline en la referencia de la CodePipeline API.
Para crear un archivo JSON, utilice el archivo JSON de canalización de ejemplo, edítelo y, a continuación, llame a ese archivo cuando ejecute el comando create-pipeline.
Requisitos previos:
Necesita el ARN del rol de servicio para CodePipeline el que creó. Empezar con CodePipeline Al ejecutar el comando, se utiliza el ARN del rol de CodePipeline servicio en el archivo JSON de canalización. create-pipeline Para obtener más información sobre cómo crear un rol de servicio, consulte Creación del rol de servicio de CodePipeline. A diferencia de la consola, al ejecutar el create-pipeline comando en el AWS CLI no existe la opción de crear el rol de CodePipeline servicio automáticamente. El rol de servicio debe existir previamente.
Necesita el nombre de un bucket de S3 donde se almacenarán los artefactos de la canalización. Este bucket debe estar en la misma región que la canalización. El nombre del bucket se utiliza en el archivo JSON de la canalización al ejecutar el comando create-pipeline. A diferencia de la consola, al ejecutar el create-pipeline comando en la AWS CLI no se crea un depósito de S3 para almacenar artefactos. El bucket debe existir previamente.
nota
También puede usar el comando get-pipeline para obtener una copia de la estructura JSON de esa canalización y, después, modificar esa estructura en un editor de texto sin formato.
Temas
Para crear el archivo JSON
-
En un terminal (Linux, macOS o Unix) o en el símbolo del sistema (Windows), cree un nuevo archivo de texto en un directorio local.
-
(Opcional) Puede agregar una o varias variables a nivel de canalización. Puede hacer referencia a este valor en la configuración de CodePipeline las acciones. Puede añadir los nombres y valores de las variables al crear la canalización, y también puede optar por asignar valores al iniciar la canalización en la consola.
nota
Si bien es opcional añadir variables a nivel de canalización, en el caso de una canalización especificada con variables a nivel de canalización en la que no se proporcionen valores, la ejecución de la canalización fallará.
Una variable a nivel de canalización se resuelve en el tiempo de ejecución de la canalización. Todas las variables son inmutables, lo que significa que no se pueden actualizar después de asignar un valor. Las variables a nivel de canalización con valores resueltos se mostrarán en el historial de cada ejecución.
Las variables se proporcionan a nivel de canalización mediante el atributo de variables de la estructura de canalización. En el siguiente ejemplo, la variable
Variable1
tiene un valor deValue1
."variables": [ { "name": "Timeout", "defaultValue": "1000", "description": "description" } ]
Agrega esta estructura al JSON de su canalización o al JSON de ejemplo en el siguiente paso. Para obtener más información acerca de las variables, incluida la información de los espacios de nombres, consulte Referencia de variables.
-
Abra el archivo en un editor de texto sin formato y edite los valores para que reflejen la estructura que desea crear. Como mínimo, deberá cambiar el nombre de la canalización. Considere también la posibilidad de cambiar:
-
El bucket de S3 en el que se almacenan los artefactos de esta canalización.
-
La ubicación de código fuente del código.
-
El proveedor de implementación.
-
Cómo desea implementar el código.
-
Las etiquetas de la canalización.
La siguiente estructura de canalización de dos etapas refleja los valores que debería plantearse modificar en la canalización. Probablemente, su canalización tenga más de dos etapas:
{ "pipeline": { "roleArn": "arn:aws:iam::80398EXAMPLE::role/AWS-CodePipeline-Service", "stages": [ { "name": "
Source
", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "MyApp" } ], "configuration": { "S3Bucket": "amzn-s3-demo-source-bucket
", "S3ObjectKey": "ExampleCodePipelineSampleBundle.zip
", "PollForSourceChanges": "false" }, "runOrder": 1 } ] }, { "name": "Staging", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Deploy-CodeDeploy-Application
", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "CodePipelineDemoApplication
", "DeploymentGroupName": "CodePipelineDemoFleet
" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "codepipeline-us-east-2-250656481468" }, "name": "MyFirstPipeline", "version": 1, "variables": [ { "name": "Timeout", "defaultValue": "1000", "description": "description" } ] }, "triggers": [ { "providerType": "CodeStarSourceConnection", "gitConfiguration": { "sourceActionName": "Source", "push": [ { "tags": { "includes": [ "v1" ], "excludes": [ "v2" ] } } ] } } ] "metadata": { "pipelineArn": "arn:aws:codepipeline:us-east-2:80398EXAMPLE:MyFirstPipeline", "updated": 1501626591.112, "created": 1501626591.112 }, "tags": [{ "key": "Project", "value": "ProjectA" }] }Este ejemplo etiqueta la canalización incluyendo la clave de etiqueta
Project
y el valorProjectA
en la canalización. Para obtener más información sobre cómo etiquetar los recursos CodePipeline, consulteEtiquetado de recursos.Asegúrese de que el parámetro
PollForSourceChanges
del archivo JSON se ha establecido de la siguiente manera:"PollForSourceChanges": "false",
CodePipeline usa Amazon CloudWatch Events para detectar cambios en el repositorio y la rama de CodeCommit origen o en el bucket de código fuente de S3. El siguiente paso incluye instrucciones para crear manualmente estos recursos para la canalización. Al definir la marca como
false
, se deshabilitan las comprobaciones periódicas, que no son necesarias cuando se utilizan los métodos de detección de cambios recomendados. -
-
Para crear una acción de compilación, prueba o implementación en una región diferente a la de la canalización, debe añadir lo siguiente a la estructura de canalización. Para obtener instrucciones, consulte Agregar una acción entre regiones en CodePipeline.
-
Añada el parámetro
Region
a la estructura de la canalización de su acción. -
Utilice el
artifactStores
parámetro para especificar un depósito de artefactos para cada AWS región en la que tenga una acción.
-
-
Cuando esté satisfecho con la estructura, guarde el archivo con un nombre como
pipeline.json
.
Creación de una canalización
-
Ejecute el comando create-pipeline y use el parámetro
--cli-input-json
para especificar el archivo JSON creado anteriormente.Para crear una canalización
MySecondPipeline
con el nombre de un archivo JSON denominado pipeline.json que incluya el nombre «MySecondPipeline
» como valorname
en el JSON, el comando tendría el siguiente aspecto:aws codepipeline create-pipeline --cli-input-json file://pipeline.json
importante
Asegúrese de incluir
file://
antes del nombre de archivo. Es obligatorio en este comando.Este comando devuelve la estructura de toda la canalización que ha creado.
-
Para ver la canalización, abre la CodePipeline consola y selecciónela de la lista de canalizaciones, o usa el comando. get-pipeline-state Para obtener más información, consulte Vea las canalizaciones y los detalles en CodePipeline.
-
Si utiliza la CLI para crear una canalización, debe crear manualmente los recursos de detección de cambios recomendados para la canalización:
-
En el caso de una canalización con un CodeCommit repositorio, debe crear manualmente la regla de CloudWatch eventos, tal y como se describe enCrear una EventBridge regla para una CodeCommit fuente (CLI).
-
Para una canalización con una fuente de Amazon S3, debe crear manualmente la regla y el seguimiento de CloudWatch eventos, AWS CloudTrail tal y como se describe enConexión a Amazon S3: acciones de origen que utilizan EventBridge y AWS CloudTrail.
-
Creación de una canalización a partir de plantillas estáticas
Es posible crear en la consola una canalización que utilice una plantilla para configurar una canalización con el código fuente y las propiedades que especifique. Debe proporcionar la ubicación del archivo de código fuente e información acerca de los proveedores que utilizará para las acciones. Puede especificar una acción de origen para Amazon ECR o cualquier repositorio de terceros compatible con CodeConnections, por ejemplo. GitHub
La plantilla creará una pila AWS CloudFormation para tu canalización que incluye los siguientes recursos:
-
Se crea una canalización con el tipo de canalización V2. En Tipo de canalización, elija una de las siguientes opciones: Los tipos de canalización difieren en características y precio. Para obtener más información, consulte Tipos de canalización.
-
Se crea un rol de servicio para la canalización y se hace referencia a él en la plantilla.
-
Un almacén de artefactos se crea mediante el almacén de artefactos predeterminado, como el bucket de artefactos de S3 designado por defecto, para la canalización en la Región de AWS que haya seleccionado para dicha canalización.
Para ver la colección de plantillas iniciales de código abierto que se utilizan para el asistente de creación de plantillas estáticas, consulta el repositorio en https://github.com/aws/codepipeline-starter-templates
Cuando utiliza plantillas estáticas para crear una canalización, la estructura de la canalización se configura en cada plantilla según las necesidades del caso de uso. Por ejemplo, la plantilla de un despliegue en AWS CloudFormation se utiliza como ejemplo en este procedimiento. La plantilla genera una canalización denominada DeployToCloudFormationServicecon la siguiente estructura:
-
Una etapa de compilación que contiene una acción de origen con la configuración que se especifica en el asistente.
-
Una etapa de implementación con una acción de implementación y una pila de recursos asociada en AWS CloudFormation.
Cuando utilizas una plantilla estática para crear una canalización, CodePipeline crea los nombres de las etapas (fuente, compilación, puesta en escena). Estos nombres no se pueden cambiar. Puedes usar nombres más específicos (por ejemplo, BuildToGamma o DeployToProd) para las etapas que añadas más adelante.
Paso 1: elección de la opción de creación
Inicie sesión en la CodePipeline consola AWS Management Console y ábrala en http://console.aws.amazon. com/codesuite/codepipeline/home
. -
En la página Welcome, elija Create pipeline.
Si es la primera vez que lo usas CodePipeline, selecciona Comenzar.
-
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 la canalización desde una plantilla. Elija Next (Siguiente).
Paso 2: elección de plantilla
Elija una plantilla para crear una canalización con una etapa de implementación, una automatización o una canalización de CI.
-
En la página Paso 2: elección de plantilla realice una de las siguientes acciones y, a continuación, seleccione Siguiente.
-
Elija Implementación si planea crear una etapa de implementación. Vea las opciones de plantillas que se implementan en ECR o CloudFormation. Para este ejemplo, elija Implementación y, a continuación, elija implementar CloudFormation en.
-
Elija Integración continua si planea crear una canalización de CI. Consulte las opciones de canalización de CI, como la compilación en Gradle.
-
Elija Automatización si planea crear una canalización automatizada. Consulte las opciones de automatización, como programar una compilación en Python.
-
-
Paso 3: elección del código fuente
-
En la página Paso 3: elección del código fuente, en Proveedor de origen, elija el proveedor en el que se almacena el código fuente, especifique las opciones obligatorias y, a continuación, elija Paso siguiente.
-
Para Bitbucket Cloud GitHub (mediante una GitHub aplicación), GitHub Enterprise Server, GitLab .com o de forma autogestionada: GitLab
-
En Conexión, seleccione una conexión existente o cree una nueva. Para crear o gestionar una conexión para tu acción de GitHub origen, consulta. GitHub conexiones
-
Elija el repositorio que desea usar como ubicación de origen para la canalización.
Elija agregar un desencadenador o filtrar los tipos de desencadenadores para iniciar la canalización. Para obtener más información acerca de cómo trabajar con desencadenadores, consulte Agregue tipos de eventos de activación con código, push o pull request. Para obtener más información acerca de filtros con patrones de glob, consulte Trabajar con patrones glob en la sintaxis.
-
En Formato del artefacto de salida, debe elegir el formato de los artefactos.
-
Para almacenar los artefactos de salida de la GitHub acción mediante el método predeterminado, elija CodePipelinedefault. La acción accede a los archivos del GitHub repositorio y almacena los artefactos en un archivo ZIP en el almacén de artefactos de Pipeline.
-
Para almacenar un archivo JSON que contiene una referencia URL al repositorio de manera que las acciones posteriores puedan ejecutar comandos Git directamente, elija Clonación completa. Esta opción solo la pueden utilizar las acciones posteriores de CodeBuild .
Si eliges esta opción, tendrás que actualizar los permisos de tu rol de servicio del CodeBuild proyecto, tal y como se muestra en la siguiente. Solución de problemas CodePipeline Para ver un tutorial que muestra cómo utilizar la opción Clonación completa, consulte Tutorial: Utilice un clon completo con una fuente de GitHub canalización.
-
-
-
Para Amazon ECR:
-
En Nombre de repositorio, elija el nombre de su repositorio de Amazon ECR.
-
En Image tag (Etiqueta de imagen), especifique el nombre de la imagen y la versión, si es diferente de LATEST.
-
En Artefactos de salida, elija el artefacto de salida predeterminado, por ejemplo MyApp, el que contenga el nombre de la imagen y la información del URI del repositorio que desee utilizar en la siguiente etapa.
Cuando se incluye una etapa de origen de Amazon ECR en la canalización, la acción de origen genera un archivo
imageDetail.json
como artefacto de salida al confirmar un cambio. Para obtener más información sobre el archivoimageDetail.json
, consulte Archivo imageDetail.json para las acciones de implementación blue/green de . -
nota
El objeto y el tipo de archivo deben ser compatibles con el sistema de despliegue que vaya a utilizar (por ejemplo, Elastic Beanstalk o). CodeDeploy Algunos tipos de archivos compatibles son .zip, .tar, y .tgz. Para obtener más información acerca de los tipos de contenedores compatibles con Elastic Beanstalk, consulte Personalización y configuración de entornos y Plataformas compatibles. Para obtener más información sobre cómo implementar las revisiones con CodeDeploy, consulte Cargar la revisión de su aplicación y Preparar una revisión.
-
Paso 4: configuración de plantilla
Para este ejemplo, se CloudFormation seleccionó la implementación en. En este paso, añada la configuración de la plantilla.

-
En Paso 4: configuración de plantilla, en Nombre de la pila, introduzca un nombre para la canalización.
-
Edite la política de IAM del marcador de posición para los permisos que se aplican a la plantilla.
-
Elija Crear la canalización desde una plantilla.
-
Aparecerá un mensaje en el que se indicará que se están creando los recursos de la canalización.
Paso 5: visualización de la canalización
-
Ahora que has creado tu canalización, puedes verla en la CodePipeline consola y ver la pila en ella AWS CloudFormation. La canalización comienza a ejecutarse una vez creada. Para obtener más información, consulte Vea las canalizaciones y los detalles en CodePipeline. Para obtener más información acerca de cómo realizar cambios en la canalización, consulte Editar una canalización en CodePipeline.