Declaración de canalización
La canalización y el nivel de metadatos de una canalización tienen una estructura básica que incluye los siguientes parámetros y sintaxis. El parámetro de canalización representa la estructura de las acciones y etapas que se van a realizar en la canalización.
Para obtener más información, consulte el objeto PipelineDeclaration en la Guía de la API de CodePipeline.
El siguiente ejemplo muestra la canalización y el nivel de metadatos de la estructura de la canalización tanto en JSON como en YAML para una canalización de tipo V2.
name
El nombre de la canalización. El nombre de una canalización no se puede modificar al editarla o actualizarla.
nota
Si desea cambiar el nombre de una canalización existente, puede utilizar el comando get-pipeline de la CLI para crear un archivo JSON que incluya la estructura de la canalización. A continuación, puede utilizar el comando create-pipeline de la CLI para crear una canalización con esa estructura y asignarla un nombre nuevo.
roleArn
El ARN de IAM para el rol de servicio de CodePipeline, como arn:aws:iam::80398EXAMPLE:role/CodePipeline_Service_Role.
Para usar la consola a fin de ver el ARN del rol de servicio de la canalización en lugar de la estructura JSON, elija su canalización en la consola y, a continuación, seleccione Configuración. En la pestaña General, aparecerá el campo ARN del rol de servicio.
artifactStore O artifactStores
El campo artifactStore contiene el tipo de bucket de artefactos y la ubicación de una canalización con todas las acciones en la misma región de AWS. Si añade acciones en una región diferente a la de la canalización, se utiliza la asignación de artifactStores para obtener una lista de los buckets de artefactos de cada región de AWS donde se ejecutan las acciones. Al crear o editar una canalización, debe tener un bucket de artefactos en la región de la canalización, así como un bucket de artefactos por cada región en la que tiene previsto ejecutar una acción.
nota
En la estructura de la canalización, debe incluir artifactStore o artifactStores en su canalización, pero no puede usar ambos. Si crea una acción entre regiones en la canalización, debe utilizar artifactStores.
En el siguiente ejemplo, se muestra la estructura básica de una canalización con acciones entre regiones que utiliza el parámetro artifactStores:
"pipeline": { "name": "YourPipelineName", "roleArn": "CodePipeline_Service_Role", "artifactStores": { "us-east-1": { "type": "S3", "location": "S3 artifact bucket name, such as amzn-s3-demo-bucket" }, "us-west-2": { "type": "S3", "location": "S3 artifact bucket name, such as amzn-s3-demo-bucket" } }, "stages": [ { ...
type
El tipo de ubicación del bucket de artefactos, especificado como Amazon S3.
location
El nombre del bucket de Amazon S3 que se generó automáticamente la primera vez que creó una canalización con la consola, como codepipeline-us-east-2-1234567890, o cualquier bucket de Amazon S3 que aprovisione para este fin
stages
Este parámetro contiene el nombre de cada etapa de la canalización. Para obtener más información sobre los parámetros y la sintaxis a nivel de etapa de la estructura de canalización, consulte el objeto StageDeclaration en la Guía de la API de CodePipeline.
La estructura de la canalización para las etapas debe cumplir estos requisitos:
-
La canalización debe tener dos etapas como mínimo.
-
La primera fase de una canalización debe incluir al menos una acción de origen. Solo puede incluir acciones de origen.
-
La primera etapa de la canalización es la única que puede incluir acciones de origen.
-
Al menos una etapa de cada canalización debe contener una acción que no sea de origen.
-
Los nombres de las etapas de una canalización deben ser diferentes.
-
Los nombres de las etapas no pueden editarse en la consola de CodePipeline. Si edita el nombre de una etapa mediante el uso de AWS CLI y la etapa incluye una acción con uno o más parámetros secretos (como, por ejemplo, un token de OAuth), no se conservará el valor de dichos parámetros. Tendrá que escribir manualmente el valor de los parámetros (que están enmascarados con cuatro asteriscos en el archivo JSON que devuelve la AWS CLI) e incluirlos en la estructura JSON.
importante
Las canalizaciones que estén inactivas durante más de 30 días tendrán deshabilitado el sondeo para la canalización. Para obtener más información, consulte pollingDisabledAt en la referencia de la estructura de la canalización. Consulte los pasos para migrar una canalización que usa sondeos para que use la detección de cambios basada en eventos en Métodos de detección de cambios.
version
El número de versión de una canalización se genera automáticamente y se actualiza cada vez que se actualiza la canalización.
executionMode
Puede configurar el modo de ejecución de la canalización para poder especificar el comportamiento de la canalización para ejecuciones consecutivas, como poner en cola, reemplazar o ejecutar en modo paralelo. Para obtener más información, consulte Configuración o cambio del modo de ejecución de una canalización.
importante
Para las canalizaciones en modo PARALELO, la reversión de etapas no está disponible. Del mismo modo, las condiciones de error con un tipo de resultado de reversión no se pueden agregar a una canalización en modo PARALELO.
pipelineType
El tipo de canalización especifica la estructura y las características disponibles en la canalización, como en el caso de una canalización de tipo V2. Para obtener más información, consulte Tipos de canalización.
variables
Las variables a nivel de canalización se definen cuando la canalización se crea y se resuelven en el tiempo de ejecución de la canalización. Para obtener más informació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.
triggers
Los desencadenadores permiten configurar la canalización para que se inicie con un tipo de evento concreto o filtrado, por ejemplo, cuando se detecta un cambio en una ramificación específica o en una solicitud de extracción. Los desencadenadores se pueden configurar para las acciones de origen con conexiones que utilizan la acción CodeStarSourceConnection en CodePipeline, como GitHub, Bitbucket y GitLab. Para obtener más información acerca de las acciones de origen que utilizan conexiones, consulte Agregación de proveedores de origen de terceros a las canalizaciones mediante CodeConnections.
Para obtener más información y ejemplos detallados, consulte Automatización del inicio de las canalizaciones mediante desencadenadores y filtrado.
Para el filtrado, se admiten patrones de expresiones regulares en formato glob, tal y como se detalla en Trabajar con patrones glob en la sintaxis.
nota
Las acciones de origen de CodeCommit y S3 requieren un recurso de detección de cambios configurado (una regla de EventBridge) o utilizar la opción de sondear el repositorio en busca de cambios de origen. En el caso de las canalizaciones con una acción de origen de Bitbucket, GitHub o GitHub Enterprise Server, no es necesario configurar un webhook ni utilizar el sondeo de forma predeterminada. La acción de conexiones administra la detección de cambios por usted.
importante
Las canalizaciones que estén inactivas durante más de 30 días tendrán deshabilitado el sondeo para la canalización. Para obtener más información, consulte pollingDisabledAt en la referencia de la estructura de la canalización. Consulte los pasos para migrar una canalización que usa sondeos para que use la detección de cambios basada en eventos en Métodos de detección de cambios.
gitConfigurationCampos
La configuración de Git para el desencadenador, incluidos los tipos de eventos y cualquier parámetro para filtrar por ramificaciones, rutas de archivos, etiquetas o eventos de solicitud de extracción.
Los campos de la estructura JSON se definen de la siguiente manera:
-
sourceActionName: el nombre de la acción de origen de la canalización con la configuración de Git. -
push: eventos de inserción con filtrado. Estos eventos utilizan una operación OR entre distintos filtros de inserción y una operación AND en los filtros.-
branches: las ramificaciones se van a filtrar. Las ramificaciones utilizan una operación AND entre inclusiones y exclusiones.-
includes: patrones para filtrar las ramificaciones que se incluirán. Incluye el uso de una operación OR. -
excludes: patrones para filtrar las ramificaciones que se excluirán. Excluye el uso de una operación OR.
-
-
filePaths: los nombres de las rutas de archivo que se van a filtrar.-
includes: patrones para filtrar las rutas de archivo que se incluirán. Incluye el uso de una operación OR. -
excludes: patrones para filtrar las rutas de archivo que se excluirán. Excluye el uso de una operación OR.
-
-
tags: los nombres de las etiquetas que se van a filtrar.-
includes: patrones para filtrar las etiquetas que se incluirán. Incluye el uso de una operación OR. -
excludes: patrones para filtrar las etiquetas que se excluirán. Excluye el uso de una operación OR.
-
-
-
pullRequest: eventos de solicitud de extracción con filtrado de eventos de solicitud de extracción y filtros de solicitud de extracción.-
events: filtra los eventos de solicitud de extracción que se abran, actualicen o cierren según se especifique. -
branches: las ramificaciones se van a filtrar. Las ramificaciones utilizan una operación AND entre inclusiones y exclusiones.-
includes: patrones para filtrar las ramificaciones que se incluirán. Incluye el uso de una operación OR. -
excludes: patrones para filtrar las ramificaciones que se excluirán. Excluye el uso de una operación OR.
-
-
filePaths: los nombres de las rutas de archivo que se van a filtrar.-
includes: patrones para filtrar las rutas de archivo que se incluirán. Incluye el uso de una operación OR. -
excludes: patrones para filtrar las rutas de archivo que se excluirán. Excluye el uso de una operación OR.
-
-
El siguiente es un ejemplo de la configuración del desencadenador para los tipos de eventos de solicitud de inserción y extracción.
"triggers": [ { "provider": "Connection", "gitConfiguration": { "sourceActionName": "ApplicationSource", "push": [ { "filePaths": { "includes": [ "projectA/**", "common/**/*.js" ], "excludes": [ "**/README.md", "**/LICENSE", "**/CONTRIBUTING.md" ] }, "branches": { "includes": [ "feature/**", "release/**" ], "excludes": [ "mainline" ] }, "tags": { "includes": [ "release-v0", "release-v1" ], "excludes": [ "release-v2" ] } } ], "pullRequest": [ { "events": [ "CLOSED" ], "branches": { "includes": [ "feature/**", "release/**" ], "excludes": [ "mainline" ] }, "filePaths": { "includes": [ "projectA/**", "common/**/*.js" ], "excludes": [ "**/README.md", "**/LICENSE", "**/CONTRIBUTING.md" ] } } ] } } ],
Campos push del tipo de evento para inclusión y exclusión
El comportamiento de inclusión y exclusión de los niveles de los campos de configuración de Git para los tipos de eventos de inserción se muestra en la siguiente lista:
push(OR operation is used between push and pullRequest or multiples)filePaths(AND operation is used between filePaths, branches, and tags)includes(AND operation is used between includes and excludes)**/FILE.md, **/FILE2(OR operation is used between file path names)excludes(AND operation is used between includes and excludes)**/FILE.md, **/FILE2(OR operation is used between file path names)branches(AND operation is used between filePaths, branches, and tags)includes(AND operation is used between includes and excludes)BRANCH/**", "BRANCH2/**(OR operation is used between branch names)excludes(AND operation is used between includes and excludes)BRANCH/**", "BRANCH2/**(OR operation is used between branch names)tags(AND operation is used between filePaths, branches, and tags)includes(AND operation is used between includes and excludes)TAG/**", "TAG2/**(OR operation is used between tag names)excludes(AND operation is used between includes and excludes)TAG/**", "TAG2/**(OR operation is used between tag names)
Campos pull request del tipo de evento para inclusión y exclusión
El comportamiento de inclusión y exclusión de los niveles de los campos de configuración de Git para los tipos de eventos de solicitud de extracción se muestra en la siguiente lista:
pullRequest(OR operation is used between push and pullRequest or multiples)events(AND operation is used between events, filePaths, and branches). Includes/excludes are N/A for pull request events. filePaths(AND operation is used between events, filePaths, and branches)includes(AND operation is used between includes and excludes)**/FILE.md, **/FILE2(OR operation is used between file path names)excludes(AND operation is used between includes and excludes)**/FILE.md, **/FILE2(OR operation is used between file path names)branches(AND operation is used between events, filePaths, and branches)includes(AND operation is used between includes and excludes)BRANCH/**", "BRANCH2/**(OR operation is used between branch names)excludes(AND operation is used between includes and excludes)BRANCH/**", "BRANCH2/**(OR operation is used between branch names)
metadata
Los campos de metadatos de la canalización son distintos de la estructura de la canalización y no se pueden editar. Al actualizar una canalización, la fecha del campo de metadatos updated cambia automáticamente.
pipelineArn
El nombre de recurso de Amazon (ARN) de la canalización.
Para usar la consola a fin de ver el ARN de la canalización en lugar de la estructura JSON, elija su canalización en la consola y, a continuación, seleccione Configuración. En la pestaña General, aparecerá el campo ARN de la canalización.
created
Fecha y hora en que se creó la canalización.
updated
Fecha y hora en que se actualizó por última vez la canalización.
pollingDisabledAt
La fecha y la hora en las que se deshabilitó el sondeo, en el caso de una canalización configurada para el sondeo con fines de detección de cambios.
Las canalizaciones que estén inactivas durante más de 30 días tendrán deshabilitado el sondeo para la canalización.
-
Si no se llevan a cabo ejecuciones en 30 días, se deshabilitará el sondeo en las canalizaciones inactivas.
-
Las canalizaciones que utilicen EventBridge, CodeStar Connections o webhooks no se verán afectadas.
-
Las canalizaciones activas no se verán afectadas.
Para obtener más información, consulte el parámetro pollingDisabledAt bajo el objeto PipelineMetadata en la Guía de la API de CodePipeline. Consulte los pasos para migrar una canalización que usa sondeos para que use la detección de cambios basada en eventos en Métodos de detección de cambios.