Referência de propriedades de configuração DO AWS CloudFormation - AWS CloudFormation

Referência de propriedades de configuração DO AWS CloudFormation

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

Propriedades de configuração (console)

O console 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 AWS 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 AWS 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 AWS 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 AWS CloudFormation excluirá a pilha e criará uma nova. Se a pilha não estiver em um estado de falha, o AWS 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 stack

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.

nota

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 AWS 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 ter mais informações, consulte Artefatos do AWS CloudFormation.

Capacidades

Para pilhas que contêm determinados recursos, confirme explicitamente que o AWS 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 CreateStack.

Se houver recursos do IAM no modelo de pilha, especifique essa propriedade.

Você pode especificar mais de uma funcionalidade.

Nome da função

O nome do perfil de serviço do IAM que o AWS 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 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 AWS 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 Definir um parâmetro em um modelo.

nota

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.

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

Propriedades de configuração (objeto JSON)

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 modelos da AWS CLI, da API do CodePipeline ou do AWS CloudFormation. Veja exemplos em Demonstração: Criar um pipeline para pilhas de produção e teste e Referência de propriedades de configuração DO AWS CloudFormation.

ActionMode

A ação do AWS 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 AWS 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 AWS 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 AWS CloudFormation a excluirá e, em seguida, criará uma nova. Se a pilha não estiver em um estado de falha, o AWS 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 AWS 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 CreateStack.

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:

YAML
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'
JSON
"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 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 AWS 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 Definir um parâmetro em um modelo.

O exemplo a seguir adiciona as substituições dos parâmetros KeyName e InstanceType ao modelo:

YAML
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'
JSON
"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" }
nota

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.

{ "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 AWS 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 Artefatos do AWS CloudFormation.

Essa propriedade é opcional.

TemplatePath

TemplatePath representa o arquivo de modelo do AWS 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

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 AWS CloudFormation no CodePipeline, consulte a referência de configuração de ações do AWS CloudFormation no Guia do usuário do AWS CodePipeline.

  • 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 no Guia do usuário do AWS CodePipeline.

  • Para baixar exemplos de modelos de pilha de pipeline no formato YAML ou JSON, consulte os tutoriais em Criar um pipeline com o AWS CloudFormation, no Guia do usuário do AWS CodePipeline.

  • Para obter um arquivo de configuração do modelo de exemplo, consulte Artefatos do AWS CloudFormation.