

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Declaração de pipeline
<a name="pipeline-requirements"></a>

O nível de pipeline e metadados de um pipeline tem uma estrutura básica que inclui os seguintes parâmetros e sintaxe. O parâmetro pipeline representa a estrutura de ações e estágios a serem executados no pipeline. 

Para obter mais informações, consulte o [PipelineDeclaration](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PipelineDeclaration.html)objeto no *Guia CodePipeline da API*.

O exemplo a seguir mostra o nível de pipeline e metadados da estrutura do pipeline em JSON e YAML para um pipeline do tipo V2.

------
#### [ YAML ]

```
pipeline:
  name: MyPipeline
  roleArn: >-
    arn:aws:iam::ACCOUNT_ID:role/service-role/AWSCodePipelineServiceRole-us-west-2-MyPipeline
  artifactStore:
    type: S3
    location: amzn-s3-demo-bucket
  stages:
    ...
  version: 6
  executionMode: SUPERSEDED
  pipelineType: V2
  variables:
  - name: MyVariable
    defaultValue: '1'
  triggers:
  - providerType: CodeStarSourceConnection
    gitConfiguration:
      sourceActionName: Source
      push:
      - branches:
          includes:
          - main
          excludes:
          - feature-branch
      pullRequest:
      - events:
        - CLOSED
        branches:
          includes:
          - main*
metadata:
  pipelineArn: 'arn:aws:codepipeline:us-west-2:ACCOUNT_ID:MyPipeline'
  created: '2019-12-12T06:49:02.733000+00:00'
  updated: '2020-09-10T06:34:07.447000+00:00'
  pollingDisabledAt: '2020-09-10T06:34:07.447000\$100:00'
```

------
#### [ JSON ]

```
{
    "pipeline": {
        "name": "MyPipeline",
        "roleArn": "arn:aws:iam::ACCOUNT_ID:role/service-role/AWSCodePipelineServiceRole-us-west-2-MyPipeline",
        "artifactStore": {
            "type": "S3",
            "location": "amzn-s3-demo-bucket"
        },
        "stages": {
            ...   
    },
        "version": 6,
        "executionMode": "SUPERSEDED",
                "pipelineType": "V2",
        "variables": [
            {
                "name": "MyVariable",
                "defaultValue": "1"
            }
        ],
        "triggers": [
            {
                "providerType": "CodeStarSourceConnection",
                "gitConfiguration": {
                    "sourceActionName": "Source",
                    "push": [
                        {
                            "branches": {
                                "includes": [
                                    "main"
                                ],
                                "excludes": [
                                    "feature-branch"
                                ]
                            }
                        }
                    ],
                    "pullRequest": [
                        {
                            "events": [
                                "CLOSED"
                            ],
                            "branches": {
                                "includes": [
                                    "main*"
                                ]
                            }
                        }
                    ]
                }
            }
        ]
    },
    "metadata": {
        "pipelineArn": "arn:aws:codepipeline:us-west-2:ACCOUNT_ID:MyPipeline",
        "created": "2019-12-12T06:49:02.733000+00:00",
        "updated": "2020-09-10T06:34:07.447000+00:00",
        "pollingDisabledAt": "2020-09-10T06:34:07.447000+00:00"
    }
}
```

------

## `name`
<a name="pipeline.name"></a>

O nome do pipeline. Quando você edita ou atualiza um pipeline, o nome do pipeline não pode ser alterado.

**nota**  
Se você deseja renomear um pipeline existente, pode usar o comando `get-pipeline` da CLI para criar um arquivo JSON que contenha a estrutura do pipeline. Depois, você pode usar o comando `create-pipeline` da CLI para criar um pipeline com essa estrutura e dar a ele um novo nome.

## `roleArn`
<a name="pipeline.roleArn"></a>

O ARN do IAM para a função de CodePipeline serviço, como arn:aws:iam: :80398Example:role/ \$1Service\$1Role. CodePipeline

Para usar o console e visualizar o ARN do perfil de serviço do pipeline em vez da estrutura JSON, escolha o pipeline no console e selecione **Configurações**. Na guia **Geral**, o campo **ARN do perfil de serviço** é exibido.

## `artifactStore` OU `artifactStores`
<a name="pipeline.artifactStore"></a>

O `artifactStore` campo contém o tipo de compartimento de artefatos e a localização de um pipeline com todas as ações na mesma AWS região. Se você adicionar ações em uma região diferente do seu pipeline, o `artifactStores` mapeamento será usado para listar o repositório de artefatos para cada AWS região em que as ações são executadas. Ao criar ou editar um pipeline, é necessário ter um bucket de artefato na região do pipeline e ter um bucket de artefato por região em que planeja executar uma ação. 

**nota**  
Na estrutura do pipeline, você deve incluir `artifactStore` ou `artifactStores` no pipeline, mas não é possível usar os dois. Se você criar uma ação entre regiões em seu pipeline, use `artifactStores`.

O exemplo a seguir mostra a estrutura básica de um pipeline com ações entre regiões que usa o 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`
<a name="pipeline.artifactstore.type"></a>

O tipo de localização do bucket de artefatos, especificado como Amazon S3.

### `location`
<a name="pipeline.artifactstore.location"></a>

O nome do bucket do Amazon S3 gerado automaticamente para você na primeira vez que você cria um pipeline usando o console, como codepipeline-us-east -2-1234567890, ou qualquer bucket do Amazon S3 que você provisiona para essa finalidade

## `stages`
<a name="pipeline.stages"></a>

Esse parâmetro contém o nome de cada estágio no pipeline. Para obter mais informações sobre os parâmetros e a sintaxe no nível de estágio da estrutura do pipeline, consulte o [StageDeclaration](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_StageDeclaration.html)objeto no *Guia da CodePipeline API*.

A estrutura do pipeline para estágios tem os seguintes requisitos:
+ Um pipeline deve ter pelo menos dois estágios.
+ O primeiro estágio de um pipeline deve ter pelo menos uma ação de origem. Só pode conter ações de origem.
+ Somente o primeiro estágio de um pipeline pode ter ações de origem.
+ Pelo menos um estágio em cada pipeline deve ter uma ação que não seja uma ação de origem.
+ Os nomes de todos os estágios de um pipeline devem ser exclusivos.
+ Os nomes artísticos não podem ser editados no CodePipeline console. Se você editar um nome artístico usando o. AWS CLI e o palco contiver uma ação com um ou mais parâmetros secretos (como um OAuth token), o valor desses parâmetros secretos não será preservado. É necessário inserir manualmente o valor dos parâmetros (que são mascarados por quatro asteriscos no JSON devolvido pela AWS CLI) e incluí-los na estrutura JSON.

**Importante**  
Os pipelines inativos por mais de 30 dias terão a sondagem desabilitada para o pipeline. Para obter mais informações, consulte [pollingDisabledAt](#metadata.pollingDisabledAt)na referência da estrutura do pipeline. Para obter as etapas a fim de migrar o pipeline da sondagem para a detecção de alterações baseada em eventos, consulte [Métodos de detecção da alteração](change-detection-methods.md).

## `version`
<a name="pipeline.version"></a>

O número de versão de um pipeline é gerado e atualizado automaticamente sempre que o pipeline é atualizado.

## `executionMode`
<a name="pipeline.executionmode"></a>

Você pode definir o modo de execução do pipeline para poder especificar o comportamento do pipeline para execuções consecutivas, como enfileiramento, substituição ou execução em modo paralelo. Para obter mais informações, consulte [Definir ou alterar o modo de execução do pipeline](execution-modes.md).

**Importante**  
Para pipelines em modo PARALLEL, a reversão do estágio não está disponível. Da mesma forma, condições de falha com um tipo de resultado de reversão não podem ser adicionadas a um pipeline de modo PARALLEL.

## `pipelineType`
<a name="pipeline.pipelineType"></a>

O tipo de pipeline especifica a estrutura e os recursos disponíveis no pipeline, como para um pipeline do tipo V2. Para obter mais informações, consulte [Tipos de pipeline](pipeline-types.md).

## `variables`
<a name="pipeline.variables"></a>

As variáveis em nível de pipeline são definidas quando o pipeline é criado e resolvido no runtime do pipeline. Para obter mais informações, consulte [Referência de variáveis](reference-variables.md). Para assistir a um tutorial com uma variável no nível do pipeline que é passada no momento da execução do pipeline, consulte. [Tutorial: Usar variáveis no nível do pipeline](tutorials-pipeline-variables.md)

## `triggers`
<a name="pipeline.triggers"></a>

Os gatilhos permitem configurar o pipeline para iniciar em um determinado tipo de evento ou tipo de evento filtrado, como quando uma alteração em uma ramificação específica ou solicitação pull é detectada. Os acionadores são configuráveis para ações de origem com conexões que usam a `CodeStarSourceConnection` ação em CodePipeline GitHub, como Bitbucket e. GitLab Para ter mais informações sobre ações de origem que usam conexões, consulte [Adicionar provedores de origem de terceiros usando CodeConnections](pipelines-connections.md).

Para obter informações e exemplos mais detalhados, consulte [Automatizar a inicialização de pipelines usando gatilhos e filtragem](pipelines-triggers.md).

Para filtragem, padrões de expressão regular no formato glob são compatíveis conforme detalhado em [Trabalhar com padrões glob na sintaxe](syntax-glob.md).

**nota**  
As ações de origem CodeCommit e do S3 exigem um recurso de detecção de alterações configurado (uma EventBridge regra) ou use a opção de pesquisar alterações na fonte no repositório. Para pipelines com uma ação de origem do Bitbucket ou do GitHub Enterprise Server, você não precisa configurar um webhook ou usar a pesquisa como padrão. GitHub A ação do Connections gerencia a detecção de alterações para você. 

**Importante**  
Os pipelines inativos por mais de 30 dias terão a sondagem desabilitada para o pipeline. Para obter mais informações, consulte [pollingDisabledAt](#metadata.pollingDisabledAt)na referência da estrutura do pipeline. Para obter as etapas a fim de migrar o pipeline da sondagem para a detecção de alterações baseada em eventos, consulte [Métodos de detecção da alteração](change-detection-methods.md).

### Campos de `gitConfiguration`
<a name="pipeline.triggers.fields"></a>

A configuração do Git para o acionador, inclusive os tipos de eventos e todos os parâmetros para filtragem por ramificações, caminhos de arquivo, tags ou eventos pull request. 

Os campos na estrutura JSON são definidos da seguinte forma:
+ `sourceActionName`: o nome da ação de origem do pipeline com a configuração do Git.
+ `push`: envie eventos com filtragem. Esses eventos usam o operador OU entre diferentes filtros push e o operador E dentro dos filtros.
  + `branches`: as ramificações a serem filtradas. As ramificações usam o operador E entre inclusões e exclusões. 
    + `includes`: padrões para filtrar as ramificações que serão incluídas. Inclui o uso de um operador OU.
    + `excludes`: padrões para filtrar as ramificações que serão excluídas. Exclui o uso de um operador OU.
  + `filePaths`: os nomes dos caminhos do arquivo a serem filtrados. 
    + `includes`: padrões para filtrar os caminhos de arquivo que serão incluídos. Inclui o uso de um operador OU.
    + `excludes`: padrões para filtrar os caminhos de arquivo que serão excluídos. Exclui o uso de um operador OU.
  + `tags`: os nomes das etiquetas a serem filtradas.
    + `includes`: padrões para filtrar as etiquetas que serão incluídas. Inclui o uso de um operador OU.
    + `excludes`: padrões para filtrar as etiquetas que serão excluídas. Exclui o uso de um operador OU.
+ `pullRequest`: eventos de solicitação pull com filtragem de eventos de solicitação pull e filtros de solicitação pull.
  + `events`: filtra eventos de solicitação pull abertos, atualizados ou fechados, conforme especificado.
  + `branches`: As ramificações a serem filtradas. As ramificações usam o operador E entre inclusões e exclusões. 
    + `includes`: padrões para filtrar as ramificações que serão incluídas. Inclui o uso de um operador OU.
    + `excludes`: padrões para filtrar as ramificações que serão excluídas. Exclui o uso de um operador OU.
  + `filePaths`: os nomes dos caminhos do arquivo a serem filtrados. 
    + `includes`: padrões para filtrar os caminhos de arquivo que serão incluídos. Inclui o uso de um operador OU.
    + `excludes`: padrões para filtrar os caminhos de arquivo que serão excluídos. Exclui o uso de um operador OU.

Este é um exemplo da configuração do acionador para tipos de evento push e pull request.

```
"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` do tipo de evento para inclusão e exclusão
<a name="w2aac54c27c27c15"></a>

O comportamento de inclusão e exclusão dos níveis dos campos de configuração do Git para tipos de evento **push** é mostrado na seguinte 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` do tipo de evento para inclusão e exclusão
<a name="w2aac54c27c27c17"></a>

O comportamento de inclusão e exclusão dos níveis dos campos de configuração do Git para tipos de evento **pull request** é mostrado na seguinte 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`
<a name="metadata.top-level"></a>

Os campos de metadados de pipeline são diferentes da estrutura do pipeline e não podem ser editados. Quando você atualiza um pipeline, a data no campo de metadados `updated` é alterada automaticamente.

### `pipelineArn`
<a name="metadata.pipelineArn"></a>

O nome do recurso da Amazon (ARN) do pipeline.

Para usar o console e visualizar o ARN do pipeline em vez da estrutura JSON, selecione o pipeline no console e selecione **Configurações**. Na guia **Geral**, o campo **ARN do pipeline** é exibido.

### `created`
<a name="metadata.created"></a>

A data e a hora em que o pipeline foi criado.

### `updated`
<a name="metadata.updated"></a>

A data e a hora em que o pipeline foi atualizado pela última vez.

### `pollingDisabledAt`
<a name="metadata.pollingDisabledAt"></a>

A data e a hora quando, para um pipeline configurado para sondagem para detecção de alterações, a sondagem foi desativada.

Os pipelines inativos por mais de 30 dias terão a sondagem desabilitada para o pipeline.
+ Os pipelines inativos terão a pesquisa desabilitada após 30 dias sem execuções.
+ Os pipelines que usam EventBridge CodeStar conexões ou webhooks não serão afetados.
+ Os pipelines ativos não serão afetados.

Para obter mais informações, consulte o `pollingDisabledAt` parâmetro em [PipelineMetadata](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PipelineMetadata.html)objeto no *Guia CodePipeline da API*. Para obter as etapas a fim de migrar o pipeline da sondagem para a detecção de alterações baseada em eventos, consulte [Métodos de detecção da alteração](change-detection-methods.md).