

# CloudFormationReferência de propriedades de configuração DO
<a name="continuous-delivery-codepipeline-action-reference"></a>

Ao criar um pipeline do CodePipeline, adicione uma ação `Deploy` a esse pipeline com o CloudFormation como provedor. Depois, especifique qual ação do CloudFormation o pipeline invocará e as configurações da ação. Este tópico descreve as propriedades de configuração do CloudFormation. Para especificar propriedades, você pode usar o console do CodePipeline ou criar um objeto JSON para ser usado na AWS CLI, na API do CodePipeline ou nos modelos do CloudFormation.

**Topics**
+ [Propriedades de configuração (console)](#continuous-delivery-codepipeline-action-reference-console)
+ [Propriedades de configuração (objeto JSON)](#continuous-delivery-codepipeline-action-reference-json)
+ [Consulte também](#continuous-delivery-codepipeline-action-reference-see-also)

## Propriedades de configuração (console)
<a name="continuous-delivery-codepipeline-action-reference-console"></a>

O [console](https://console.aws.amazon.com/codepipeline/) do CodePipeline mostra as propriedades de configuração e indica as propriedades que são necessárias com base no modo de ação que você escolher.

**nota**  
Ao criar um novo pipeline, você pode especificar somente os modos de ação **Criar ou atualizar uma pilha** ou **Criar ou substituir um conjunto de alterações**. As propriedades na seção **Advanced (Avançado)** estão disponíveis somente quando você edita um pipeline.

**Modo de ação**  
A ação do CloudFormation que o CodePipeline invoca ao processar o estágio associado. Escolha um dos seguintes modos de ação:  
+ **Criar ou substituir um conjunto de alterações** cria o conjunto de alterações, se ele não existe, com base no nome da pilha e no modelo que você envia. Se o conjunto de alterações existir, o CloudFormation o exclui e, em seguida, cria um novo.
+ **Criar ou atualizar uma pilha** cria a pilha, se a pilha especificada não existe. Se a pilha existir, o CloudFormation a atualiza. Use esta ação para atualizar pilhas existentes. O CodePipeline não substituirá a pilha.
+ **Excluir uma pilha** exclui uma pilha. Se você especificar uma pilha que não existe, a ação será concluída com êxito sem excluir uma pilha.
+ **Executar um conjunto de alterações** executa um conjunto de alterações.
+ **Substituir uma pilha com falhas** cria a pilha, se a pilha especificada não existe. Se a pilha existir e estiver em estado de falha (reportado como `ROLLBACK_COMPLETE`, `ROLLBACK_FAILED`, `CREATE_FAILED`, `DELETE_FAILED` ou `UPDATE_ROLLBACK_FAILED`), o CloudFormation excluirá a pilha e criará uma nova. Se a pilha não estiver em um estado de falha, o CloudFormation a atualiza. Use esta ação para substituir as pilhas com falha sem recuperá-las nem solucionar o problema delas. Geralmente, esse modo é escolhido para testes.

**Nome da pilha**  
O nome associado a uma pilha existente ou a uma pilha que você deseja criar. O nome deve ser exclusivo na região da AWS em que você está criando a pilha.  
Um nome de pilha pode conter apenas caracteres alfanuméricos (sensíveis a maiúsculas e minúsculas) e hífens. Ele deve começar com um caractere alfabético e não pode ter mais de 128 caracteres.

**Change set name (Nome do conjunto de alterações**  
O nome de um conjunto de alterações existente ou um novo conjunto de alterações que você deseja criar para a pilha especificada.

**Modelo**  
O local de um arquivo de modelo do CloudFormation, que segue o formato `ArtifactName::TemplateFileName`.

**Configuração do modelo**  
O local de um arquivo de configuração do modelo, que segure o formato `ArtifactName::TemplateConfigurationFileName`. O arquivo de configuração de modelo pode conter valores de parâmetros do modelo, uma política de pilha e tags. Se você incluir informações confidenciais, como senhas, restrinja o acesso a este arquivo. Para obter mais informações, consulte [CloudFormationArtefatos do](continuous-delivery-codepipeline-cfn-artifacts.md).

**Capacidades**  
Para pilhas que contêm determinados recursos, confirme explicitamente que o CloudFormation pode criar ou atualizar esses recursos. Por exemplo, especifique `CAPABILITY_IAM` se o modelo da pilha contiver recursos do AWS Identity and Access Management (IAM). Para obter mais informações, consulte os parâmetros de solicitação da operação da API [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html).  
Se houver recursos do IAM no modelo de pilha, especifique essa propriedade.  
Você pode especificar mais de uma funcionalidade.

**Nome do perfil**  
O nome do perfil de serviço do IAM que o CloudFormation assume quando ele opera em recursos na pilha especificada.

**Nome do arquivo de saída**  
Na seção **Advanced (Avançado)**, você pode especificar um nome de arquivo de saída, como `CreateStackOutput.json`, que o CodePipeline adiciona ao [artefato de saída](https://docs.aws.amazon.com/codepipeline/latest/userguide/concepts.html#concepts-artifacts) depois de executar a ação especificada. O artefato de saída contém um arquivo JSON com o conteúdo da seção `Outputs` do modelo CloudFormation.  
Se você não especificar um nome, o CodePipeline não gerará um artefato de saída.

**Substituições de parâmetros**  
Os parâmetros são definidos em seu modelo e permitem que você insira valores personalizados ao criar ou atualizar uma pilha. É possível especificar um objeto JSON que substitui os valores dos parâmetros do modelo no arquivo de configuração do modelo. Todos os nomes de parâmetros devem estar presentes no modelo de pilha. Para obter mais informações, consulte [Sintaxe de Parameters de modelo do CloudFormation](parameters-section-structure.md).  
Há um limite de tamanho máximo de 1 KB para o objeto JSON que pode ser armazenado na propriedade `ParameterOverrides`.
Recomendamos que você use o arquivo de configuração do modelo para especificar a maioria dos valores de parâmetro. Use substituições de parâmetros para especificar somente valores de parâmetros dinâmicos. Os parâmetros dinâmicos são desconhecidos até que você execute o pipeline.  
O exemplo a seguir define um valor para o parâmetro `ParameterName` usando uma função de substituição de parâmetro. A função recupera um valor de um artefato de entrada do CodePipeline. Para obter mais informações sobre funções de substituição de parâmetros, consulte [Usar funções de substituição de parâmetros com pipelines CodePipeline](continuous-delivery-codepipeline-parameter-override-functions.md).  

```
{
  "ParameterName" : { "Fn::GetParam" : ["ArtifactName", "config-file-name.json", "ParamName"]}
}
```

## Propriedades de configuração (objeto JSON)
<a name="continuous-delivery-codepipeline-action-reference-json"></a>

Ao especificar `CloudFormation` como um provedor para uma ação de estágio, defina as seguintes propriedades na propriedade `Configuration`. Use o objeto JSON para a AWS CLI, a API do CodePipeline ou nos modelos do CloudFormation. Veja exemplos em [Demonstração: Criar um pipeline para pilhas de produção e teste](continuous-delivery-codepipeline-basic-walkthrough.md) e [CloudFormationReferência de propriedades de configuração DO](#continuous-delivery-codepipeline-action-reference).

`ActionMode`  
A ação do CloudFormation que o CodePipeline invoca ao processar o estágio associado. Especifique apenas um dos seguintes modos de ação:  
+ `CHANGE_SET_EXECUTE` executa o conjunto de alterações.
+ `CHANGE_SET_REPLACE` cria um conjunto de alterações, se ainda não existir, com base no nome da pilha e no modelo enviado. Se o conjunto de alterações existir, o CloudFormation o exclui e, em seguida, cria um novo.
+ `CREATE_UPDATE` cria a pilha se a especificada não existir. Se a pilha existir, o CloudFormation a atualiza. Use esta ação para atualizar pilhas existentes. O CodePipeline não substituirá a pilha.
+ `DELETE_ONLY` exclui uma pilha. Se você especificar uma pilha que não existe, a ação será concluída com êxito sem excluir uma pilha.
+ `REPLACE_ON_FAILURE` cria uma pilha quando a pilha especificada não existe. Se a pilha existir e estiver no estado de falha (reportado como `ROLLBACK_COMPLETE`, `ROLLBACK_FAILED`, `CREATE_FAILED`, `DELETE_FAILED` ou `UPDATE_ROLLBACK_FAILED`), o CloudFormation a excluirá e, em seguida, criará uma nova. Se a pilha não estiver em um estado de falha, o CloudFormation a atualiza. Use esta ação para substituir automaticamente as pilhas com falha sem recuperá-las nem solucionar o problema delas. Geralmente, esse modo é escolhido para testes.
Essa propriedade é obrigatória.

`Capabilities`  
Para pilhas que contêm determinados recursos, confirme explicitamente que o CloudFormation pode criar ou atualizar esses recursos. Por exemplo, especifique `CAPABILITY_IAM` se o modelo da pilha contiver recursos do AWS Identity and Access Management (IAM). Para obter mais informações, consulte os parâmetros de solicitação da operação da API [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html).  
Essa propriedade é condicional. Se houver recursos do IAM no modelo de pilha, especifique essa propriedade.  
Você pode especificar várias funcionalidades. O exemplo a seguir adiciona as propriedades `CAPABILITY_IAM` e `CAPABILITY_AUTO_EXPAND` ao modelo:  

```
configuration:
  ActionMode: CHANGE_SET_REPLACE
  Capabilities: CAPABILITY_IAM,CAPABILITY_AUTO_EXPAND
  ChangeSetName: pipeline-changeset
  RoleArn: CloudFormation_Role_ARN
  StackName: my-pipeline-stack
  TemplateConfiguration: 'my-pipeline-stack::template-configuration.json'
  TemplatePath: 'my-pipeline-stack::template-export.yml'
```

```
 "configuration": {
        "ActionMode": "CHANGE_SET_REPLACE",
        "Capabilities": "CAPABILITY_IAM,CAPABILITY_AUTO_EXPAND",
        "ChangeSetName": "pipeline-changeset",
        "RoleArn": "CloudFormation_Role_ARN",
        "StackName": "my-pipeline-stack",
        "TemplateConfiguration": "my-pipeline-stack::template-configuration.json",
        "TemplatePath": "my-pipeline-stack::template-export.yml"
    }
```

`ChangeSetName`  
O nome de um conjunto de alterações existente ou um novo conjunto de alterações que você deseja criar para a pilha especificada.  
Essa propriedade é necessária para os seguintes modos de ação: `CHANGE_SET_REPLACE` e `CHANGE_SET_EXECUTE`. Para todos os outros modos de ação, essa propriedade será ignorado.

`OutputFileName`  
Um nome para o arquivo de saída, como `CreateStackOutput.json`. O CodePipeline adiciona o arquivo ao [artefato de saída](https://docs.aws.amazon.com/codepipeline/latest/userguide/concepts.html#concepts-artifacts) depois de executar a ação especificada. O artefato de saída contém um arquivo JSON com o conteúdo da seção `Outputs` do modelo CloudFormation.  
Essa propriedade é opcional. Se você não especificar um nome, o CodePipeline não gerará um artefato de saída.

`ParameterOverrides`  
Os parâmetros são definidos em seu modelo e permitem que você insira valores personalizados ao criar ou atualizar uma pilha. É possível especificar um objeto JSON que substitui os valores dos parâmetros do modelo no arquivo de configuração do modelo. Todos os nomes de parâmetros devem estar presentes no modelo de pilha. Para obter mais informações, consulte [Sintaxe de Parameters de modelo do CloudFormation](parameters-section-structure.md).  
O exemplo a seguir adiciona as substituições dos parâmetros `InstanceType` e `KeyName` ao modelo:  

```
configuration:
  ActionMode: CHANGE_SET_REPLACE
  Capabilities: CAPABILITY_NAMED_IAM
  ChangeSetName: pipeline-changeset
  ParameterOverrides: '{"InstanceType": "t2.small","KeyName": "my-keypair"}'
  RoleArn: CloudFormation_Role_ARN
  StackName: my-pipeline-stack
  TemplateConfiguration: 'my-pipeline-stack::template-configuration.json'
  TemplatePath: 'my-pipeline-stack::template-export.yml'
```

```
"configuration": {
        "ActionMode": "CHANGE_SET_REPLACE",
        "Capabilities": "CAPABILITY_NAMED_IAM",
        "ChangeSetName": "pipeline-changeset",
        "ParameterOverrides": "{\"InstanceType\": \"t2.small\",\"KeyName\": \"my-keypair\"}",
        "RoleArn": "CloudFormation_Role_ARN",
        "StackName": "my-pipeline-stack",
        "TemplateConfiguration": "my-pipeline-stack::template-configuration.json",
        "TemplatePath": "my-pipeline-stack::template-export.yml"
    }
```
O tamanho máximo do objeto JSON que pode ser armazenado na propriedade `ParameterOverrides` é 1 kilobyte.
Recomendamos que você use o arquivo de configuração do modelo para especificar a maioria dos valores de parâmetro. Use substituições de parâmetros para especificar somente valores de parâmetros dinâmicos. Os valores dos parâmetros dinâmicos são desconhecidos até que você execute o pipeline.  
O exemplo a seguir define um valor para o parâmetro `ParameterName` usando uma função de substituição de parâmetro. A função recupera um valor de um artefato de entrada do CodePipeline. Para obter mais informações sobre funções de substituição de parâmetros, consulte [Usar funções de substituição de parâmetros com pipelines CodePipeline](continuous-delivery-codepipeline-parameter-override-functions.md).  

```
{
  "ParameterName" : { "Fn::GetParam" : ["ArtifactName", "config-file-name.json", "ParamName"]}
}
```
Essa propriedade é opcional.

`RoleArn`  
O nome do recurso da Amazon (ARN) do perfil de serviço do IAM que o CloudFormation assume quando ele funciona com recursos em uma pilha.  
Essa propriedade é necessária para os seguintes modos de ação: `CREATE_UPDATE`, `REPLACE_ON_FAILURE`, `DELETE_ONLY` e `CHANGE_SET_REPLACE`. `RoleArn` não é aplicado ao executar um conjunto de alterações. Se você não usar o CodePipeline para criar o conjunto de alterações, verifique se o conjunto de alterações ou a pilha está associada a uma função.

`StackName`  
O nome de uma pilha existente ou de uma pilha que você deseja criar.  
Essa propriedade é necessária para todos os modos de ação.

`TemplateConfiguration`  
`TemplateConfiguration` é o arquivo de configuração do modelo. Inclua o arquivo em um artefato de entrada para essa ação. O nome do arquivo de configuração de modelo segue este formato:   
`Artifactname::TemplateConfigurationFileName`  
`Artifactname` é o nome do artefato de entrada, da forma como aparece no CodePipeline. Por exemplo, um estágio de origem com o nome de artefato de `SourceArtifact` e um nome de arquivo de `test-configuration.json` cria um nome `TemplateConfiguration`, conforme mostrado neste exemplo:  

```
"TemplateConfiguration": "SourceArtifact::test-configuration.json"
```
O arquivo de configuração de modelo pode conter valores de parâmetro do modelo e uma política de pilha. Se você incluir informações confidenciais, como senhas, restrinja o acesso a este arquivo. Para obter um exemplo de arquivo de configuração de modelo, consulte [CloudFormationArtefatos do](continuous-delivery-codepipeline-cfn-artifacts.md).  
Essa propriedade é opcional.

`TemplatePath`  
`TemplatePath` representa o arquivo de modelo do CloudFormation. Inclua o arquivo em um artefato de entrada para essa ação. O nome do arquivo segue este formato:  
`Artifactname::TemplateFileName`  
`Artifactname` é o nome do artefato de entrada, da forma como aparece no CodePipeline. Por exemplo, um estágio de origem com o nome de artefato de `SourceArtifact` e um nome de arquivo de `template.yaml` cria um nome `TemplatePath`, conforme mostrado neste exemplo:  

```
"TemplatePath": "SourceArtifact::template.yaml"
```
Essa propriedade é necessária para os seguintes modos de ação: `CREATE_UPDATE`, `REPLACE_ON_FAILURE` e `CHANGE_SET_REPLACE`. Para todos os outros modos de ação, essa propriedade será ignorado.

## Consulte também
<a name="continuous-delivery-codepipeline-action-reference-see-also"></a>

Os recursos relacionados a seguir podem ajudar você à medida que trabalha com esses parâmetros.
+ Para obter mais informações sobre os parâmetros de ação do CloudFormation no CodePipeline, consulte [CloudFormation deploy action configuration reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CloudFormation.html) no *AWS CodePipeline User Guide*.
+ Para obter exemplos de valores do modelo por provedor de ação, como para o campo `Owner` ou para os campos `configuration`, consulte a [Referência de estruturas de ações](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) no *Guia do usuário do AWS CodePipeline*.
+ Para baixar exemplos de modelos de pilha de pipeline no formato YAML ou JSON, consulte [Tutorial: Create a pipeline with CloudFormation](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-cloudformation.html) no *AWS CodePipeline User Guide*.