

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.

# Automatización del inicio de las canalizaciones mediante desencadenadores y filtrado
<a name="pipelines-triggers"></a>

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 activadores se pueden configurar para las acciones de origen con conexiones que utilizan la `CodeStarSourceConnection` acción en CodePipeline, por ejemplo 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](pipelines-connections.md).

Las acciones de origen, como CodeCommit S3, utilizan la detección automática de cambios para iniciar las canalizaciones cuando se realiza un cambio. Para obtener más información, consulte [CodeCommit acciones de origen y EventBridge](triggering.md).

Puede especificar desencadenadores mediante la consola o la CLI.

Los tipos de filtros se especifican de la siguiente manera: 
+ **Sin filtro**

  Esta configuración de desencadenador inicia la canalización con cualquier inserción a la ramificación predeterminada especificada como parte de la configuración de la acción.
+ **Especificar filtro**

  Añada un filtro que inicie la canalización con un filtro específico, por ejemplo, en los nombres de las ramificaciones de una inserción de código, y obtenga la confirmación exacta. Esto también configura la canalización para que no se inicie automáticamente cuando se produzcan cambios.
  + **Inserción**
    + Las combinaciones de filtros válidas son las siguientes:
      + **Etiquetas de Git**

        Include o exclude
      + **sucursales**

        Include o exclude
      + **ramas \$1 rutas de archivos**

        Include o exclude
  + **Solicitud de extracción**
    + Las combinaciones de filtros válidas son las siguientes:
      + **ramas**

        Include o exclude
      + **ramas \$1 rutas de archivos**

        Include o exclude
+ **No detectar cambios**

  Este tipo de filtro no añade ningún desencadenador y la canalización no se inicia automáticamente aunque se produzcan cambios.

La siguiente tabla proporciona opciones de filtro válidas para cada tipo de evento. En la tabla también se muestran qué configuraciones de desencadenador son verdaderas o falsas de forma predeterminada para la detección automática de cambios en la configuración de la acción.


****  

| Configuración de desencadenadores | Tipo de evento | Opciones de filtro | Detección de cambios | 
| --- | --- | --- | --- | 
| Agregar un desencadenador, sin filtro | none | none | true | 
| Agregar un desencadenador: filtrar en la inserción de código | evento de inserción | Etiquetas de Git, ramificaciones, rutas de archivo | false | 
| Agregar un desencadenador: filtrar las solicitudes de inserción  | solicitudes de extracción | ramificaciones, rutas de archivo | false | 
| Sin desencadenador: no detectar | none | none | false | 

**nota**  
Este tipo de desencadenador utiliza la detección automática de cambios (como el tipo de desencadenador `Webhook`). Los proveedores de acciones fuente que utilizan este tipo de activador son conexiones configuradas para la inserción de código (Bitbucket Cloud GitHub, GitHub Enterprise Server, GitLab .com y GitLab autogestionadas).

Para ver las definiciones de los campos y más referencias sobre los desencadenadores, consulte 

Para obtener una lista de las definiciones de campos de la estructura JSON, consulte [`triggers`](pipeline-requirements.md#pipeline.triggers).

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](syntax-glob.md).

**nota**  
En algunos casos, en el caso de las canalizaciones con desencadenadores que se filtran en rutas de archivo, es posible que una canalización no se inicie al crear por primera vez una ramificación con un filtro de ruta de archivo. Para obtener más información, consulte [Es posible que las canalizaciones con conexiones que utilicen el filtrado de desencadenadores por rutas de archivo no se inicien al crear la ramificación](troubleshooting.md#troubleshooting-file-paths-filtering).

## Consideraciones sobre los filtros de desencadenadores
<a name="pipelines-filter-considerations"></a>

Las siguientes consideraciones se aplican cuando se utilizan desencadenadores.
+ No puede agregar más de un desencadenador por acción de origen.
+ Puede agregar varios tipos de filtros a un desencadenador. Para ver un ejemplo, consulta [4: un desencadenador con dos tipos de filtros de inserción con conflictos de inclusiones y exclusiones](#example-filter-multiple-push).
+ En el caso de un desencadenador con filtros de ramificaciones y rutas de archivo, al insertar la ramificación por primera vez, la canalización no se ejecutará debido a que no se podrá acceder a la lista de archivos modificados para la ramificación recién creada.
+ La fusión de una solicitud de extracción podría desencadenar dos ejecuciones de canalización en los casos en los que las configuraciones de los desencadenadores de solicitudes de inserción (filtro de ramificaciones) y de extracción (filtro de ramificaciones) se cruzasen entre sí.
+ Si un filtro desencadena la canalización con eventos de solicitud de extracción, para un tipo de evento de solicitud de extracción cerrada, es posible que el proveedor de repositorios externo de su conexión tenga un estado diferente para un evento de fusión. Por ejemplo, en Bitbucket, el evento de Git de una fusión no es un evento de cierre de solicitud de extracción. Sin embargo GitHub, si se fusiona una solicitud de extracción, se cierra el proceso. Para obtener más información, consulte [Eventos de solicitud de extracción para desencadenadores por proveedor](#pipelines-filter-pullrequest-events).

## Eventos de solicitud de extracción para desencadenadores por proveedor
<a name="pipelines-filter-pullrequest-events"></a>

La siguiente tabla proporciona un resumen de los eventos de Git (por ejemplo, para el cierre de solicitudes de extracción) que dan como resultado tipos de eventos de solicitud de extracción, por proveedor.


****  

|  | Proveedor de repositorios de la conexión | Evento PR para el desencadenador | Bitbucket | GitHub | GHES | GitLab | 
| --- | --- | --- | --- | --- | --- | --- | 
| Abrir: esta opción desencadena la canalización cuando se crea una solicitud de extracción para la ruta de la rama o el archivo. | La creación de una solicitud de extracción da como resultado un evento de Git abierto. | La creación de una solicitud de extracción da como resultado un evento de Git abierto. | La creación de una solicitud de extracción da como resultado un evento de Git abierto. | La creación de una solicitud de extracción da como resultado un evento de Git abierto. | 
| Actualizar: esta opción desencadena la canalización cuando se publica una revisión de una solicitud de extracción para la ruta de la ramificación o el archivo. | La publicación de una actualización da como resultado un evento de Git actualizado. | La publicación de una actualización da como resultado un evento de Git actualizado. | La publicación de una actualización da como resultado un evento de Git actualizado. | La publicación de una actualización da como resultado un evento de Git actualizado. | 
| Cerrada: esta opción activa la canalización cuando se cierra una solicitud de extracción para la branch/file ruta. | La fusión de una solicitud de extracción en Bitbucket produce un evento de Git cerrado. Importante: Si se cierra manualmente una solicitud de extracción en Bitbucket sin fusión, no se produce un evento de Git cerrado. | Al fusionar o cerrar manualmente una solicitud de extracción, se produce un evento de Git cerrado. | Al fusionar o cerrar manualmente una solicitud de extracción, se produce un evento de Git cerrado. | Al fusionar o cerrar manualmente una solicitud de extracción, se produce un evento de Git cerrado. | 

## Ejemplos de filtros de desencadenador
<a name="pipelines-filter-examples"></a>

En el caso de una configuración de Git con filtros para los tipos de eventos de solicitudes de inserción y extracción, los filtros especificados pueden entrar en conflicto entre sí. A continuación, se muestran ejemplos de combinaciones de filtros válidas para eventos de solicitudes de inserción y extracción. Un desencadenador puede contener varios tipos de filtros, como dos tipos de filtros de inserción en la configuración del desencadenador, y los tipos de filtro de solicitud de inserción y extracción utilizarán una operación OR entre ellos, lo que significa que cualquier coincidencia iniciará la canalización. Del mismo modo, cada tipo de filtro puede incluir varios filtros, como filePaths y ramificaciones; dichos filtros utilizarán una operación AND, lo que significa que solo una coincidencia completa iniciará la canalización. Cada tipo de filtro puede contener inclusiones y exclusiones, donde las exclusiones tienen prioridad sobre las inclusiones. Si la ruta de una rama o un archivo coincide con un patrón de exclusión, no se activará la canalización, aunque también coincida con un patrón de inclusión. Cuando una confirmación cambia varios archivos, cada uno de ellos se evalúa de forma independiente con respecto al filtro; si se aprueba algún archivo modificado (coincide con una inclusión y no coincide con una exclusión), se iniciará la canalización. Los nombres incluidos en la opción de inclusión/exclusión, como los nombres de las ramificaciones, utilizan una operación OR. La siguiente lista resume las operaciones de cada parte del objeto de configuración de Git.

Para obtener una lista de las definiciones de campos de la estructura JSON y una referencia detallada de las inclusiones y exclusiones, consulte [`triggers`](pipeline-requirements.md#pipeline.triggers).

**Example 1: un tipo de filtro con filtros para las ramificaciones y las rutas de archivo (operación AND)**  <a name="example-filter-branches-filepaths"></a>
En el caso de tipos de filtro únicos, como el de solicitud de extracción, se pueden combinar los filtros; dichos filtros utilizarán una operación AND, lo que significa que solo una coincidencia completa iniciará la canalización. En el siguiente ejemplo se muestra una configuración de Git para un tipo de evento de inserción con dos filtros diferentes (`filePaths` y `branches`). En el siguiente ejemplo, `filePaths` utilizará la operación AND con `branches`:  

```
{
  "filePaths": {
    "includes": ["common/**/*.js"]
  },
  "branches": {
    "includes": ["feature/**"]
  }
}
```
Con la configuración de Git anterior, este ejemplo muestra un evento que iniciará la ejecución de la canalización, ya que la operación AND se realiza correctamente. En otras palabras, se incluye la ruta del archivo `common/app.js` para el filtro, que inicia la canalización como AND aunque la ramificación `refs/heads/feature/triggers ` especificada no haya tenido ningún impacto.  

```
{
  "ref": "refs/heads/feature/triggers",
  ...
  "commits": [
    {
      ...
      "modified": [
        "common/app.js"
      ]
      ...
    }
  ]
}
```
En este ejemplo, se muestra un evento para un desencadenador con la configuración anterior que no iniciará la ejecución de la canalización debido a que se puede filtrar por ramificación pero no por ruta.  

```
{
   "ref": "refs/heads/feature/triggers",
  ...
  "commits": [
    {
      ...
      "modified": [
        "src/Main.java"
      ]
      ...
    }
  ]
}
```

**Example 2: Las exclusiones tienen prioridad sobre las inclusiones**  <a name="example-filter-includes-excludes"></a>
Dentro de un único filtro, las exclusiones tienen prioridad sobre las inclusiones. El siguiente ejemplo muestra una configuración de Git con un único filtro (`branches`) dentro del objeto de configuración. Esto significa que si una rama coincide con un patrón de exclusión (`feature-branch`en el ejemplo), la canalización no se activará, aunque también coincida con un patrón de inclusión. Si el patrón de inclusión coincide y el patrón de no exclusión coincide, como en el caso de la `main` rama, se activará la canalización.  
En el siguiente ejemplo de JSON:   
+ La inserción de una confirmación para la ramificación `main` desencadenará la canalización.
+ La inserción de una confirmación para la ramificación `feature-branch` no desencadenará la canalización.

```
{
  "branches": {
      "Includes": [
          "main"
      ],
      "Excludes": [
          "feature-branch"
      ]
   }
```

**Example 3: Un disparador con tipos de filtros de solicitud de inserción y extracción (operación OR), filtros para rutas de archivos y ramas (operación AND) y includes/excludes (excluye tener prioridad)**  <a name="example-filter-push-pullrequest"></a>
Los objetos de configuración de los desencadenadores, como un desencadenador que contenga un tipo de evento de inserción y un tipo de evento de solicitud de extracción, utilizan una operación OR entre los dos tipos de eventos. En el siguiente ejemplo, se muestra una configuración de desencadenador con un tipo de evento de inserción con la ramificación `main` incluida y un tipo de evento de solicitud de extracción con la misma ramificación `main` excluida. Además, el tipo de evento de inserción tiene una ruta de archivo `LICENSE.txt` excluida y una ruta de archivo `README.MD` incluida. Para el segundo tipo de evento, una solicitud de extracción que esté `Closed` o esté `Created` en la `feature-branch` sucursal (incluida) inicia la canalización, y la canalización no se inicia al crear o cerrar una solicitud de extracción en la sucursal `feature-branch-2` o `main` sucursales (excluida). Dentro de cada tipo de evento, las exclusiones tienen prioridad sobre las inclusiones. Por ejemplo, en el caso de un evento de solicitud de extracción en la `feature-branch` sucursal (incluido en la solicitud de extracción), el tipo de evento de inserción excluye la `feature-branch` rama, por lo que la inserción no activará la canalización.  
En el ejemplo siguiente:   
+ La inserción de una confirmación en la ramificación `main` (incluida) para la ruta del archivo `README.MD` (incluida), se desencadenará la canalización.
+ En la ramificación `feature-branch` (excluida), la inserción de una confirmación no desencadenará la canalización.
+ En la ramificación incluida, la edición de la ruta del archivo `README.MD` (incluida) desencadena la canalización.
+ En la rama incluida, editar solo la ruta del `LICENSE.TXT` archivo (excluida) no activa la canalización. Sin embargo, si la misma confirmación también cambia `README.MD` (incluida), la canalización se activará porque cada archivo se evalúa de forma independiente.
+ En la `feature-branch` sucursal, al cerrar una solicitud de extracción, se activará la canalización, ya que `feature-branch` se incluye para el tipo de evento de solicitud de extracción y para el tipo de evento CLOSED matches.
En la siguiente imagen se muestra la configuración.  

![\[Ejemplo de configuración de desencadenador con un tipo de filtro de inserción y un tipo de filtro de solicitud de extracción\]](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/images/example-trigger-filters-pushpluspullrequest.png)

A continuación, se muestra el código JSON de ejemplo de la configuración.  

```
"triggers": [
            {
                "providerType": "CodeStarSourceConnection",
                "gitConfiguration": {
                    "sourceActionName": "Source",
                    "push": [
                        {
                            "branches": {
                                "includes": [
                                    "main"
                                ],
                                "excludes": [
                                    "feature-branch",
                                    "feature-branch-2"
                                ]
                            },
                            "filePaths": {
                                "includes": [
                                    "README.md"
                                ],
                                "excludes": [
                                    "LICENSE.txt"
                                ]
                            }
                        }
                    ],
                    "pullRequest": [
                        {
                            "events": [
                                "CLOSED",
                                "OPEN"
                            ],
                            "branches": {
                                "includes": [
                                    "feature-branch"
                                ],
                                "excludes": [
                                    "feature-branch-2",
                                    "main"
                                ]
                            }
                        }
                    ]
                }
            }
        ]
    },
```

**Example 4: un desencadenador con dos tipos de filtros de inserción con conflictos de inclusiones y exclusiones**  <a name="example-filter-multiple-push"></a>
En la siguiente imagen, se muestra un tipo de filtro de inserción que especifica el filtro en la etiqueta `release-1` (incluida). Se ha añadido un segundo tipo de filtro de inserción que especifica que se debe filtrar por la ramificación `main` (incluida) y no iniciarse si se produce una inserción para las ramificaciones `feature*` (excluidas).  
Para el ejemplo siguiente:  
+ Al pulsar una tecla de apertura de la `feature-branch` rama `release-1` (incluida en el caso del primer filtro de inserción) (excluida la del segundo filtro de inserción), se activará la canalización, ya que los dos tipos de filtros de inserción utilizan una operación OR entre ellos y el primer filtro de inserción (etiqueta`release-1`) coincide. `feature*`
+ Si se inserta una versión desde la ramificación `main` (incluida para el segundo filtro de inserción), se iniciará la canalización.
   
En el siguiente ejemplo de la página de edición, se muestran los dos tipos de filtros de inserción y su configuración para inclusiones y exclusiones.   

![\[Ejemplo de configuración de desencadenador con un tipo de filtro de inserción que incluye la etiqueta release-1 y un tipo de filtro de inserción que incluye la ramificación main* y excluye las ramificaciones feature*\]](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/images/example-trigger-filters-pushtags-pushbranches.png)


A continuación, se muestra el código JSON de ejemplo de la configuración.

```
"triggers": [
            {
                "providerType": "CodeStarSourceConnection",
                "gitConfiguration": {
                    "sourceActionName": "Source",
                    "push": [
                        {
                            "tags": {
                                "includes": [
                                    "release-1"
                                ]
                            }
                        },
                        {
                            "branches": {
                                "includes": [
                                    "main*"
                                ],
                                "excludes": [
                                    "feature*"
                                ]
                            }
                        }
                    ]
                }
            }
        ]
    },
```

**Example 5: El disparador está configurado mientras que la configuración de acción predeterminada BranchName se utiliza para un inicio manual**  <a name="example-filter-default-manual"></a>
  
El campo predeterminado de configuración de acciones `BranchName` define la ramificación que se usará cuando la canalización se inicie manualmente, mientras que se pueden usar desencadenadores con filtros para cualquier ramificación o ramificaciones que especifique.  
A continuación, se muestra el código JSON de ejemplo para la configuración de acciones con el campo `BranchName`.  

```
{
                "name": "Source",
                "actions": [
                    {
                        "name": "Source",
                        "actionTypeId": {
                            "category": "Source",
                            "owner": "AWS",
                            "provider": "CodeStarSourceConnection",
                            "version": "1"
                        },
                        "runOrder": 1,
                        "configuration": {
                            "BranchName": "main",
                            "ConnectionArn": "ARN",
                            "DetectChanges": "false",
                            "FullRepositoryId": "owner-name/my-bitbucket-repo",
                            "OutputArtifactFormat": "CODE_ZIP"
                        },
                        "outputArtifacts": [
                            {
                                "name": "SourceArtifact"
                            }
                        ],
                        "inputArtifacts": [],
                        "region": "us-west-2",
                        "namespace": "SourceVariables"
                    }
                ],
```
El siguiente ejemplo de salida de acción muestra que se utilizó la ramificación main predeterminada cuando la canalización se inició manualmente.  

![\[Ejemplo de página de salida de acción para una canalización iniciada manualmente\]](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/images/example-source-action-manual.png)

En el siguiente ejemplo de salida de acción, se muestra la solicitud de extracción y la ramificación que se utilizó para el desencadenador cuando se filtró por solicitud de extracción.  

![\[Ejemplo de página de salida de acción para una canalización iniciada con un tipo de filtro de solicitud de extracción para el desencadenador\]](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/images/example-source-action-pr.png)


# Agregación de un desencadenador con la inserción de código sin filtro
<a name="pipelines-trigger-add"></a>

Los desencadenadores permiten configurar la canalización para que se inicie con un tipo de evento concreto, como una solicitud de extracción o inserción de código. Los desencadenadores se pueden configurar para las acciones de origen con conexiones que utilizan la CodeStarSourceConnection acción en CodePipeline, por ejemplo GitHub, Bitbucket y GitLab.

**Agregación de un desencadenador (consola)**

1. Inicia sesión en la CodePipeline consola Consola de administración de AWS y ábrela en [http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

   Se muestran los nombres y el estado de todas las canalizaciones asociadas a tu AWS cuenta. 

1. En **Nombre**, elija el nombre de la canalización que desea editar. De lo contrario, siga estos pasos en el asistente de creación de canalizaciones.

1. En la página de detalles de la canalización, elija **Edit**. 

1. En la página **Editar**, seleccione la acción de origen que desee editar. Seleccione **Editar activadores**. Elija la opción para agregar un desencadenador.

1. En **Tipo de desencadenador**, elija **Sin filtro**.

# Agregación de desencadenadores con tipos de eventos de solicitud de inserción o extracción de código
<a name="pipelines-filter"></a>

Puede configurar filtros para que los desencadenadores de canalización inicien las ejecuciones de canalización para diferentes eventos de Git, como la inserción de etiquetas o ramificaciones, los cambios en rutas de archivo específicas, las solicitudes de extracción abiertas en una ramificación específica, etc. Puede utilizar la AWS CodePipeline consola o los **update-pipeline** comandos **create-pipeline** y de la misma AWS CLI para configurar los filtros de activación.

**nota**  
El campo `BranchName` de configuración una acción define una sola rama, mientras que los desencadenadores con filtros se pueden usar para las ramas que se especifiquen. En el caso de una canalización en la que se utilizan desencadenadores para filtrar las ramas por solicitud de inserción o extracción, la canalización no utilizará la rama predeterminada del campo `BranchName` en la configuración de la acción. Sin embargo, la rama del campo `BranchName` en la configuración de la acción es la predeterminada cuando la canalización se inicia manualmente. Para ver un ejemplo, consulta [5: El disparador está configurado mientras que la configuración de acción predeterminada BranchName se utiliza para un inicio manual](pipelines-triggers.md#example-filter-default-manual).

Puede especificar filtros para los siguientes tipos de desencadenadores: 
+ **Inserción**

  Un desencadenador de inserción inicia una canalización cuando se envía un cambio al repositorio de origen. La ejecución utilizará la confirmación de la ramificación *a* la que se realice la inserción (es decir, la ramificación de destino). Puede filtrar desencadenadores de inserción en ramificaciones, rutas de archivo o etiquetas de Git.
+ **Solicitud de extracción**

  Un desencadenador de solicitud de extracción inicia una canalización cuando se abre, actualiza o cierra una solicitud de extracción en el repositorio de origen. La ejecución utilizará la confirmación de la ramificación de origen *a* la que se realice la extracción (es decir, la ramificación de origen). Puede filtrar los desencadenadores de las solicitudes de extracción por ramificaciones y rutas de archivo.

  Los tipos de eventos admitidos para las solicitudes de extracción se incluyen a continuación. Todos los demás eventos de solicitudes de extracción no se tienen en cuenta.
  + Opened (Abiertos)
  + Actualizado
  + Cerrado (fusionado)
**nota**  
El comportamiento de algunos eventos de solicitud de extracción puede variar según el proveedor. Para obtener más información, consulte [Eventos de solicitud de extracción para desencadenadores por proveedor](pipelines-triggers.md#pipelines-filter-pullrequest-events).

La definición de canalización permite combinar diferentes filtros en la misma configuración de desencadenador de inserción. Para obtener más detalles acerca de la definición de canalización, consulte [Agregación de filtros para los tipos de eventos de solicitud de inserción y extracción (CLI)](#pipelines-filter-cli). Para obtener una lista de las definiciones de campos, consulte los [desencadenadores](pipeline-requirements.md#pipeline.triggers) en la *Referencia de la estructura de canalización* de esta guía.

**Topics**
+ [Agregación de filtros para los tipos de eventos de solicitud de inserción y extracción (consola)](#pipelines-filter-console)
+ [Agregación de filtros para los tipos de eventos de solicitud de inserción y extracción (CLI)](#pipelines-filter-cli)
+ [Añade filtros para los tipos de eventos de solicitudes push y pull (CloudFormation plantillas)](#pipelines-filter-cfn)

## Agregación de filtros para los tipos de eventos de solicitud de inserción y extracción (consola)
<a name="pipelines-filter-console"></a>

Puede utilizar la consola para agregar filtros para los eventos de inserción, así como incluir o excluir ramificaciones o rutas de archivo.

**Agregación de filtros (consola)**

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

   Se muestran los nombres y el estado de todas las canalizaciones asociadas a tu AWS cuenta. 

1. En **Nombre**, elija el nombre de la canalización que desea editar. De lo contrario, siga estos pasos en el asistente de creación de canalizaciones.

1. En la página de detalles de la canalización, elija **Edit**. 

1. En la página **Editar**, seleccione la acción de origen que desee editar. Seleccione **Editar activadores**. Elija **Especificar filtro**.

1. En **Tipo de evento**, elija **Insertar** entre las siguientes opciones.
   + Seleccione **Insertar** para iniciar la canalización cuando se inserte un cambio en su repositorio de origen. Al elegir esta opción, los campos especifican filtros para las ramificaciones y las rutas de archivo o las etiquetas de Git.
   + Seleccione **Solicitud de extracción** para iniciar una canalización cuando se abra, actualice o cierre una solicitud de extracción en el repositorio de origen. Al elegir esta opción, los campos especifican filtros para las ramificaciones de destino y las rutas de archivo.

1. En **Inserción**, en **Tipo de filtro**, elija una de las siguientes opciones.
   + Seleccione **Ramificación** para especificar las ramificaciones del repositorio de origen que el desencadenador supervisa para saber cuándo iniciar la ejecución de un flujo de trabajo. En **Incluir**, introduzca los patrones de los nombres de las ramificaciones en formato glob que desee especificar para la configuración de desencadenador a fin de iniciar la canalización al realizar cambios en las ramificaciones especificadas. En **Excluir**, introduzca los patrones regex de los nombres de las ramificaciones en formato glob que desee especificar para que la configuración del desencadenador los ignore y no se inicie la canalización al realizar cambios en las ramificaciones especificadas. Para obtener más información, consulte [Trabajar con patrones glob en la sintaxis](syntax-glob.md).
**nota**  
Si tanto la inclusión como la exclusión tienen el mismo patrón, la opción predeterminada es excluir el patrón.

     Puede usar patrones glob para definir los nombres de las ramificaciones. Por ejemplo, use `main*` para hacer coincidir todas las ramificaciones que comiencen por `main`. Para obtener más información, consulte [Trabajar con patrones glob en la sintaxis](syntax-glob.md).

     En el caso de un desencadenador de inserción, especifique las ramificaciones *en* las que va a realizar la inserción, es decir, las ramificaciones de *destino*. En el caso de un desencadenador de solicitud de extracción, especifique las ramificaciones de destino en las que se va a abrir la solicitud de extracción.
   + (Opcional) En **Rutas de archivo**, especifique las rutas de archivo para su desencadenador. Introduzca los nombres en **Incluir** y **Excluir** según corresponda.

     Puede usar patrones glob para definir los nombres de las rutas de archivo. Por ejemplo, use `prod*` para hacer coincidir todas las rutas de archivo que comiencen por `prod`. Para obtener más información, consulte [Trabajar con patrones glob en la sintaxis](syntax-glob.md).
   + Para configurar la configuración del desencadenador de canalización para que comience con las etiquetas de Git, seleccione **Etiquetas**. En **Incluir**, introduzca los patrones de los nombres de las etiquetas en formato glob que desee especificar para la configuración del desencadenador a fin de iniciar la canalización al liberar la etiqueta o etiquetas especificadas. En **Excluir**, introduzca los patrones regex de los nombres de las etiquetas en formato glob que desee especificar para que la configuración del desencadenador los ignore y no inicie la canalización al liberar la etiqueta o etiquetas especificadas. Si tanto la inclusión como la exclusión tienen el mismo patrón de etiquetas, la opción predeterminada es excluir el patrón de etiquetas.

1. En **Inserción**, en **Tipo de filtro**, elija una de las siguientes opciones.
   + Seleccione **Ramificación** para especificar las ramificaciones del repositorio de origen que el desencadenador supervisa para saber cuándo iniciar la ejecución de un flujo de trabajo. En **Incluir**, introduzca los patrones de los nombres de las ramificaciones en formato glob que desee especificar para la configuración de desencadenador a fin de iniciar la canalización al realizar cambios en las ramificaciones especificadas. En **Excluir**, introduzca los patrones regex de los nombres de las ramificaciones en formato glob que desee especificar para que la configuración del desencadenador los ignore y no se inicie la canalización al realizar cambios en las ramificaciones especificadas. Para obtener más información, consulte [Trabajar con patrones glob en la sintaxis](syntax-glob.md).
**nota**  
Si tanto la inclusión como la exclusión tienen el mismo patrón, la opción predeterminada es excluir el patrón.

     Puede usar patrones glob para definir los nombres de las ramificaciones. Por ejemplo, use `main*` para hacer coincidir todas las ramificaciones que comiencen por `main`. Para obtener más información, consulte [Trabajar con patrones glob en la sintaxis](syntax-glob.md).

     En el caso de un desencadenador de inserción, especifique las ramificaciones *en* las que va a realizar la inserción, es decir, las ramificaciones de *destino*. En el caso de un desencadenador de solicitud de extracción, especifique las ramificaciones de destino en las que se va a abrir la solicitud de extracción.
   + (Opcional) En **Rutas de archivo**, especifique las rutas de archivo para su desencadenador. Introduzca los nombres en **Incluir** y **Excluir** según corresponda.

     Puede usar patrones glob para definir los nombres de las rutas de archivo. Por ejemplo, use `prod*` para hacer coincidir todas las rutas de archivo que comiencen por `prod`. Para obtener más información, consulte [Trabajar con patrones glob en la sintaxis](syntax-glob.md).
   + Elija **Solicitud de extracción** para establecer la configuración de los desencadenadores de modo que se empiece con los eventos de solicitud de extracción que se especifiquen.

## Agregación de filtros para los tipos de eventos de solicitud de inserción y extracción (CLI)
<a name="pipelines-filter-cli"></a>

Puede actualizar el archivo JSON de la canalización para agregar filtros a los desencadenadores.

Para usar el AWS CLI para crear o actualizar tu canalización, usa el `update-pipeline` comando `create-pipeline` o.

El siguiente ejemplo de estructura JSON proporciona una referencia para las definiciones de campo mediante `create-pipeline`.

Para obtener una lista de las definiciones de campos, consulte los [desencadenadores](pipeline-requirements.md#pipeline.triggers) en la *Referencia de la estructura de canalización* de esta guía.

```
{
    "pipeline": {
        "name": "MyServicePipeline",
        "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"
                                ]
                            }
                        }
                    ]
                }
            }
        ],
        "stages": [
            {
                "name": "Source",
                "actions": [
                    {
                        "name": "ApplicationSource",
                        "configuration": {
                            "BranchName": "mainline",
                            "ConnectionArn": "arn:aws:codestar-connections:eu-central-1:111122223333:connection/fe9ff2e8-ee25-40c9-829e-65f8EXAMPLE",
                            "FullRepositoryId": "monorepo-example",
                            "OutputArtifactFormat": "CODE_ZIP"
                        }
                    }
                ]
            }
        ]
    }
}
```

## Añade filtros para los tipos de eventos de solicitudes push y pull (CloudFormation plantillas)
<a name="pipelines-filter-cfn"></a>

Puedes actualizar el recurso de canalización CloudFormation para añadir el filtrado de activadores.

A continuación se muestra un ejemplo de un fragmento de plantilla que proporciona una referencia de YAML para las definiciones de los campos de desencadenadores. Para obtener una lista de las definiciones de campos, consulte los [desencadenadores](pipeline-requirements.md#pipeline.triggers) en la *Referencia de la estructura de canalización* de esta guía.

Para ver un ejemplo de plantilla completo de una configuración de fuente de conexión y filtro de activación, consulte Configuración de [canalización con dos etapas y activación](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#aws-resource-codepipeline-pipeline--examples--Pipeline_with_two_stages_and_trigger_configuration) en la *Guía del CloudFormation usuario*.

```
pipeline:
  name: MyServicePipeline
  executionMode: PARALLEL
  triggers:
    - provider: CodeConnection
      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'
  stages:
    - name: Source
      actions:
        - name: ApplicationSource
          configuration:
            BranchName: mainline
            ConnectionArn: arn:aws:codestar-connections:eu-central-1:111122223333:connection/fe9ff2e8-ee25-40c9-829e-65f85EXAMPLE
            FullRepositoryId: monorepo-example
            OutputArtifactFormat: CODE_ZIP
```

# Agregación de un desencadenador para desactivar la detección de cambios
<a name="pipelines-trigger-no-detection"></a>

Los desencadenadores permiten configurar la canalización para que se inicie con un tipo de evento concreto, como una solicitud de extracción o inserción de código. 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.

**Agregación de un desencadenador para desactivar la detección de cambios (consola)**

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

   Se muestran los nombres y estados de todas las canalizaciones asociadas con su cuenta de AWS. 

1. En **Nombre**, elija el nombre de la canalización que desea editar. De lo contrario, siga estos pasos en el asistente de creación de canalizaciones.

1. En la página de detalles de la canalización, elija **Edit**. 

1. En la página **Editar**, seleccione la acción de origen que desee editar. Seleccione **Editar activadores**. Elija la opción para agregar un desencadenador.

1. En **Tipo de desencadenador**, elija **No detectar cambios**.