Parâmetros - AWS CloudFormation

Parâmetros

Use seção opcional Parameters para personalizar os modelos. Os parâmetros permitem que você insira valores personalizados em seu modelo toda vez que criar ou atualizar uma pilha.

Definir um parâmetro em um modelo

O exemplo a seguir declara um parâmetro chamado InstanceTypeParameter. Esse parâmetro permite que você especifique o tipo de instância do Amazon EC2 para a pilha a ser usada ao criar ou atualizar a pilha.

Observe que InstanceTypeParameter tem um valor padrão de t2.micro. Esse é o valor que o AWS CloudFormation usará para provisionar a pilha, a menos que outro valor seja fornecido.

JSON

"Parameters" : { "InstanceTypeParameter" : { "Type" : "String", "Default" : "t2.micro", "AllowedValues" : ["t2.micro", "m1.small", "m1.large"], "Description" : "Enter t2.micro, m1.small, or m1.large. Default is t2.micro." } }

YAML

Parameters: InstanceTypeParameter: Type: String Default: t2.micro AllowedValues: - t2.micro - m1.small - m1.large Description: Enter t2.micro, m1.small, or m1.large. Default is t2.micro.

Fazer referência a um parâmetro em um modelo

Você usa a função intrínseca Ref para fazer referência a um parâmetro, e o AWS CloudFormation usa o valor do parâmetro para provisionar a pilha. Você pode fazer referência a parâmetros nas seções Resources e Outputs do mesmo modelo.

No exemplo a seguir, a propriedade InstanceType do recurso da instância do EC2 faz referência ao valor do parâmetro InstanceTypeParameter:

JSON

"Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "InstanceType" : { "Ref" : "InstanceTypeParameter" }, "ImageId" : "ami-0ff8a91507f77f867" } }

YAML

Ec2Instance: Type: AWS::EC2::Instance Properties: InstanceType: Ref: InstanceTypeParameter ImageId: ami-0ff8a91507f77f867

Requisitos gerais de parâmetros

Os seguintes requisitos se aplicam ao usar parâmetros:

  • Você pode ter no máximo 200 parâmetros em um modelo do AWS CloudFormation.

  • Cada parâmetro deve receber um nome lógico (também chamado de ID lógico), que deve ser alfanumérico e exclusivo entre todos os nomes lógicos no modelo.

  • A cada parâmetro deve ser atribuído um tipo de parâmetro que seja compatível com o AWS CloudFormation. Para obter mais informações, consulte Tipo.

  • A cada parâmetro deve ser atribuído um valor em tempo de execução para que o AWS CloudFormation provisione a pilha com êxito. Opcionalmente, você pode especificar um valor padrão para o AWS CloudFormation usar, a menos que outro valor seja fornecido.

  • Os parâmetros devem ser declarados e referenciados no mesmo modelo. Você pode fazer referência a parâmetros nas seções Resources e Outputs do modelo.

JSON

"Parameters" : { "ParameterLogicalID" : { "Type" : "DataType", "ParameterProperty" : "value" } }

YAML

Parameters: ParameterLogicalID: Type: DataType ParameterProperty: value

Properties

AllowedPattern

Uma expressão regular que representa os padrões a serem permitidos para tipos String. O padrão deve corresponder ao valor inteiro fornecido para o parâmetro.

Required: No

AllowedValues

Uma matriz que contém a lista de valores permitidos para o parâmetro.

Required: No

ConstraintDescription

Uma sequência que explica uma restrição quando a restrição é violada. Por exemplo, sem uma descrição da restrição, um parâmetro que tem um padrão permitido de [A-Za-z0-9]+ exibe a seguinte mensagem de erro quando o usuário especifica um valor inválido:

Malformed input-Parameter MyParameter must match pattern [A-Za-z0-9]+

Ao adicionar uma descrição de restrição, como deve conter apenas letras (maiúsculas e minúsculas) e números, você pode exibir a seguinte mensagem de erro personalizada:

Malformed input-Parameter MyParameter must only contain uppercase and lowercase letters and numbers

Required: No

Default

Um valor do tipo apropriado para o modelo a ser usado se nenhum valor for especificado quando uma pilha é criada. Se definir restrições para o parâmetro, você deverá especificar um valor que esteja de acordo com essas restrições.

Required: No

Description

Uma sequência de até 4000 caracteres que descreve o parâmetro.

Required: No

MaxLength

Um valor inteiro que determina o maior número de caracteres que você deseja permitir para tipos String.

Required: No

MaxValue

Um valor numérico que determina o maior valor numérico que você deseja permitir para tipos Number.

Required: No

MinLength

Um valor inteiro que determina o menor número de caracteres que você deseja permitir para tipos String.

Required: No

MinValue

Um valor numérico que determina o menor valor numérico que você deseja permitir para tipos Number.

Required: No

NoEcho

Se o valor do parâmetro deve ser mascarado para impedir que ele seja exibido no console, nas ferramentas de linha de comando ou na API. Se você definir o atributo NoEcho como true, o CloudFormation retornará o valor do parâmetro mascarado como asteriscos (*****) para qualquer chamada que descreva a pilha ou os eventos de pilha, exceto informações armazenadas nos locais especificados abaixo.

Required: No

Importante

O uso do atributo NoEcho não mascara nenhuma informação armazenada no seguinte:

  • A seção de modelo de Metadata. O CloudFormation não transforma, modifica nem edita nenhuma informação incluída na seção Metadata. Para obter mais informações, consulte Metadados.

  • A seção Outputs do modelo. Para obter mais informações, consulte Saídas.

  • O atributo Metadata da definição de um recurso. Para obter mais informações, Atributo de metadados.

É altamente recomendável que não use esses mecanismos para incluir informações confidenciais, como senhas ou segredos.

Importante

Em vez de incorporar informações confidenciais diretamente aos modelos do CloudFormation, recomendamos usar os parâmetros dinâmicos no modelo da pilha para fazer referência a informações confidenciais armazenadas e gerenciadas fora do CloudFormation, como no AWS Systems Manager Parameter Store e no AWS Secrets Manager.

Para obter mais informações, consulte a melhor prática Não incorporar credenciais em seus modelos.

Importante

É altamente recomendável incluir parâmetros NoEcho ou quaisquer dados confidenciais, em propriedades de recursos que fazem parte do identificador principal de um recurso.

Quando um parâmetro NoEcho é incluído em uma propriedade que forma um identificador de recurso primário, o CloudFormation pode usar o valor real de texto sem formatação no identificador de recurso principal. Esse ID de recurso pode aparecer em quaisquer saídas ou destinos derivados.

Para determinar quais propriedades de recurso compõem o identificador principal de um tipo de recurso, consulte documentação de referência de recursos para esse recurso. Na seção Return values (Valores de retorno), o valor de retorno da função Ref representa as propriedades do recurso que compõem o identificador principal do tipo de recurso.

Type

O tipo de dados para o parâmetro (DataType).

Required: Yes

O AWS CloudFormation oferece suporte aos seguintes tipos de parâmetros:

String

Uma sequência literal.

Por exemplo, os usuários podem especificar "MyUserName".

Number

Um número inteiro ou flutuante. O AWS CloudFormation valida o valor do parâmetro como um número. No entanto, quando você usar o parâmetro em outro lugar no modelo (por exemplo, usando a função intrínseca Ref), o valor do parâmetro se tornará uma sequência.

Por exemplo, os usuários podem especificar "8888".

List<Number>

Uma matriz de números inteiros ou flutuantes separados por vírgulas. O AWS CloudFormation valida o valor do parâmetro como números. No entanto, quando você usar o parâmetro em outro lugar no modelo (por exemplo, usando a função intrínseca Ref), o valor do parâmetro se tornará uma lista de sequência.

Por exemplo, os usuários poderiam especificar "80,20", e uma Ref resultaria em ["80","20"].

CommaDelimitedList

Uma matriz de sequências literais que são separadas por vírgulas. O total de sequências deve ser um número a mais que o número total de vírgulas. Além disso, cada sequência membro é truncado por espaço.

Por exemplo, os usuários poderiam especificar "test,dev,prod", e uma Ref resultaria em ["test","dev","prod"].

Tipos de parâmetros específicos da AWS

Os valore da AWS, como nomes de pares de chaves do Amazon EC2 e IDs de VPC. Para obter mais informações, consulte Tipos de parâmetros específicos da AWS.

Tipos de parâmetros SSM

Parâmetros que correspondem a parâmetros existentes no Armazenamento de parâmetros do Systems Manager. Você especifica uma chave de parâmetro do Systems Manager com o valor do parâmetro SSM, e o AWS CloudFormation busca o valor mais recente no Armazenamento de parâmetros a ser usado para a pilha. Para obter mais informações, consulte Tipos de parâmetros SSM.

Tipos de parâmetros específicos da AWS

Os tipos de parâmetros específicos da AWS são úteis para detectar valores inválidos no início da criação ou da atualização de uma pilha. Para especificar parâmetros com tipos específicos da AWS, um usuário do modelo deve especificar valores da AWS existentes em sua conta da AWS. O AWS CloudFormation valida esses valores de entrada em relação aos valores já existentes na conta. Por exemplo, com o tipo de parâmetro AWS::EC2::VPC::Id, um usuário deve inserir um ID de VPC existente que esteja em sua conta e na região em que ele está criando a pilha.

Se você deseja permitir que os usuários do modelo insiram valores de entrada de diferentes contas da AWS, não defina parâmetros com tipos específicos da AWS. Em vez disso, defina parâmetros do tipo String (ou CommaDelimitedList).

Tipos de parâmetros específicos da AWS compatíveis

O AWS CloudFormation oferece suporte aos seguintes tipos específicos da AWS:

AWS::EC2::AvailabilityZone::Name

Uma Zona de disponibilidade, como us-west-2a.

AWS::EC2::Image::Id

Um ID de imagem do Amazon EC2, como ami-0ff8a91507f77f867. Observe que o console do AWS CloudFormation não mostra uma lista suspensa de valores para esse tipo de parâmetro.

AWS::EC2::Instance::Id

Um ID de instância do Amazon EC2, como i-1e731a32.

AWS::EC2::KeyPair::KeyName

Um nome do par de chaves do Amazon EC2.

AWS::EC2::SecurityGroup::GroupName

Um nome de security group do EC2-Classic ou da VPC padrão, como o nome do security group my-sg-abc.

AWS::EC2::SecurityGroup::Id

Um ID de security group, como sg-a123fd85.

AWS::EC2::Subnet::Id

Um ID de sub-rede, como subnet-123a351e.

AWS::EC2::Volume::Id

Um ID de volume do Amazon EBS, como vol-3cdd3f56.

AWS::EC2::VPC::Id

Um ID de VPC, como vpc-a123baa3.

AWS::Route53::HostedZone::Id

Um ID de zona hospedada do Amazon Route 53, como Z23YXV4OVPL04A.

List<AWS::EC2::AvailabilityZone::Name>

Uma matriz de Zonas de disponibilidade de uma região, como us-west-2a, us-west-2b.

List<AWS::EC2::Image::Id>

Uma matriz de IDs de imagens do Amazon EC2, como ami-0ff8a91507f77f867, ami-0a584ac55a7631c0c. Observe que o console do AWS CloudFormation não mostra uma lista suspensa de valores para esse tipo de parâmetro.

List<AWS::EC2::Instance::Id>

Uma matriz de IDs de instâncias do Amazon EC2, como i-1e731a32, i-1e731a34.

List<AWS::EC2::SecurityGroup::GroupName>

Uma matriz de nomes de security groups do EC2-Classic ou de VPC padrão, como my-sg-abc, my-sg-def.

List<AWS::EC2::SecurityGroup::Id>

Uma matriz de IDs de security groups, como sg-a123fd85, sg-b456fd85.

List<AWS::EC2::Subnet::Id>

Uma matriz de IDs de sub-rede, como subnet-123a351e, subnet-456b351e.

List<AWS::EC2::Volume::Id>

Uma matriz de IDs de volumes do Amazon EBS, como vol-3cdd3f56, vol-4cdd3f56.

List<AWS::EC2::VPC::Id>

Uma matriz de IDs de VPC, como vpc-a123baa3, vpc-b456baa3.

List<AWS::Route53::HostedZone::Id>

Uma matriz de IDs de zonas hospedadas do Amazon Route 53, como Z23YXV4OVPL04A, Z23YXV4OVPL04B.

Tipos de parâmetros SSM

Os tipos de parâmetros SSM correspondem a parâmetros existentes no repositório de parâmetros do Systems Manager. Você especifica uma chave de parâmetro do Systems Manager com o valor do parâmetro SSM, e o AWS CloudFormation busca o valor mais recente no Armazenamento de parâmetros a ser usado para a pilha. Para obter mais informações sobre os parâmetros do Systems Manager, consulte Repositório de parâmetros do Systems Manager, no Guia do usuário do AWS Systems Manager.

Você também pode usar o padrão de parâmetro dinâmico ssm-secure ou ssm para especificar valores de parâmetros no seu modelo. Para obter mais informações, consulte Usar referências dinâmicas para especificar valores de modelos.

Ao criar ou atualizar pilhas e criar conjuntos de alterações, o AWS CloudFormation usa quaisquer valores existentes no Armazenamento de parâmetros no momento em que a operação é executada. Se não houver um parâmetro especificado no armazenamento de parâmetros, sob a conta da AWS do chamador, o AWS CloudFormation retornará um erro de validação.

Quando você executa um conjunto de alterações, o AWS CloudFormation usa os valores especificados no conjunto de alterações. Você deve analisar esses valores antes de executar o conjunto de alterações, pois eles podem ser alterados no Armazenamento de parâmetros entre o momento em que você cria o conjunto de alterações e momento em que o executa.

dica

Você pode ver os valores resolvidos para parâmetros SSM na guia Parameters da pilha no console ou executando describe-stacks ou describe-change-set. Esses são os valores que são usados atualmente na definição da pilha para as chaves dos parâmetros do Systems Manager correspondentes. Observe que esses valores são definidos quando a pilha é criada ou atualizada e, portanto, podem ser diferentes dos últimos valores no Armazenamento de parâmetros.

Se você especificar sequências seguras como valores de parâmetro usando o padrão ssm-secure, o AWS CloudFormation não armazenará o valor de sequência segura ou não o exibirá no console ou nos resultados das chamadas de API.

Como o valor de um parâmetro SSM é uma chave de parâmetro do Systems Manager, você deve estar ciente do seguinte comportamento:

  • Para atualizações de pilha, a opção Use existing value (Usar valor existente) no console e o atributo UsePreviousValue em update-stack instruem o AWS CloudFormation a usar a chave de parâmetro do Systems Manager existente, e não o seu valor. O AWS CloudFormation sempre busca os valores mais recentes no repositório de parâmetros ao atualizar pilhas.

    No entanto, se você usar o padrão de parâmetro dinâmico ssm-secure ou ssm para especificar valores de parâmetros, deverá especificar uma versão do parâmetro Systems Manager para o AWS CloudFormation usar.

  • O AWS CloudFormation pode realizar a validação de chaves de parâmetros do Systems Manager, mas não de seus valores correspondentes. Para fins de validação, você pode tratar as chaves de parâmetros como sequências. Você deve fazer qualquer validação de valores de parâmetros do Systems Manager no armazenamento de parâmetros.

Consulte SSM Tipos de parâmetros para obter exemplos que usam tipos de parâmetros do SSM.

Tipos de parâmetros SSM compatíveis

O AWS CloudFormation oferece suporte aos seguintes tipos de parâmetros do SSM:

AWS::SSM::Parameter::Name

O nome de uma chave de parâmetro do Systems Manager.

Use esse parâmetro quando desejar passar a chave do parâmetro. Por exemplo, você pode usar esse tipo para validar se o parâmetro existe.

AWS::SSM::Parameter::Value<String>

Um parâmetro do Systems Manager cujo valor é uma sequência. Corresponde ao tipo de parâmetro String no Armazenamento de parâmetros.

AWS::SSM::Parameter::Value<List<String>> ou AWS::SSM::Parameter::Value<CommaDelimitedList>

Um parâmetro do Systems Manager cujo valor é uma lista de sequências. Corresponde ao tipo de parâmetro StringList no Armazenamento de parâmetros.

AWS::SSM::Parameter::Value<AWS-specific parameter type>

Um parâmetro do Systems Manager cujo valor é um Tipo de parâmetro específico da AWS. Por exemplo, o seguinte especifica o tipo AWS::EC2::KeyPair::KeyName:

AWS::SSM::Parameter::Value<AWS::EC2::KeyPair::KeyName>

AWS::SSM::Parameter::Value<List<AWS-specific parameter type>>

Um parâmetro do Systems Manager cujo valor é uma lista de Tipos de parâmetros específicos da AWS. Por exemplo, o seguinte especifica uma lista de tipos AWS::EC2::KeyPair::KeyName:

AWS::SSM::Parameter::Value<List<AWS::EC2::KeyPair::KeyName>>

Tipos de parâmetros SSM incompatíveis

O AWS CloudFormation não é compatível com os seguintes tipos de parâmetros do SSM:

  • Listas de tipos de parâmetros do SSM. Por exemplo: List<AWS::SSM::Parameter::Value<String>>

Além disso, o AWS CloudFormation não é compatível com a definição de parâmetros de modelo como tipos de parâmetros SecureString do Systems Manager. No entanto, você pode especificar sequências seguras como valores de parâmetros para determinados recursos usando padrões de parâmetro dinâmicos. Para obter mais informações, consulte Usar referências dinâmicas para especificar valores de modelos.

Agrupar e classificar parâmetros no console do AWS CloudFormation

Quando você usa o console do AWS CloudFormation para criar ou atualizar uma pilha, o console lista alfabeticamente os parâmetros de entrada por ID lógico. Para substituir a classificação padrão, você pode usar a chave de metadados AWS::CloudFormation::Interface: O agrupamento e a classificação de parâmetros facilita a especificação dos valores dos parâmetros pelos usuários. Por exemplo, você pode agrupar todos os parâmetros relacionados à VPC para que eles não fiquem espalhados em uma lista alfabética.

Na chave de metadados, você pode especificar os grupos a serem criados, os parâmetros a serem incluídos em cada grupo e a ordem na qual o console mostra cada parâmetro em seu grupo. Você também pode definir nomes de parâmetros amigáveis para que o console mostre nomes descritivos em vez de IDs lógicos. Todos os parâmetros aos quais você faz referência na chave de metadados devem ser declarados na seção Parameters do modelo.

Para obter mais informações e um exemplo da chave de metadados AWS::CloudFormation::Interface, consulte AWS::CloudFormation::Interface.

Exemplos

Parâmetros de entrada básicos

O exemplo de seção Parameters a seguir declara dois parâmetros. O parâmetro DBPort é do tipo Number com um padrão de 3306. O valor mínimo que pode ser especificado é 1150, e o valor máximo que pode ser especificado é 65535. O parâmetro DBPwd é do tipo String sem valor padrão. A propriedade NoEcho é definida como true para impedir que as chamadas de pilha de descrição, como o comando da aws cloudformation describe-stacks AWS CLI, retornem o valor do parâmetro. O comprimento mínimo que pode ser especificado é 1, e o valor máximo é 41. O padrão permite caracteres alfabéticos maiúsculos e minúsculos e numerais.

JSON

"Parameters" : { "DBPort" : { "Default" : "3306", "Description" : "TCP/IP port for the database", "Type" : "Number", "MinValue" : "1150", "MaxValue" : "65535" }, "DBPwd" : { "NoEcho" : "true", "Description" : "The database admin account password", "Type" : "String", "MinLength" : "1", "MaxLength" : "41", "AllowedPattern" : "^[a-zA-Z0-9]*$" } }

YAML

Parameters: DBPort: Default: 3306 Description: TCP/IP port for the database Type: Number MinValue: 1150 MaxValue: 65535 DBPwd: NoEcho: true Description: The database admin account password Type: String MinLength: 1 MaxLength: 41 AllowedPattern: ^[a-zA-Z0-9]*$

Tipos de parâmetros específicos da AWS

Quando você usa tipos de parâmetros específicos da AWS, um usuário que usa seu modelo para criar ou atualizar uma pilha deve especificar valores existentes da AWS que estão na conta do usuário e na região da pilha atual. Os tipos de parâmetros específicos da AWS ajudam a garantir que os valores de entrada para esses tipos existam e estejam corretos antes de o AWS CloudFormation criar ou atualizar quaisquer recursos. Por exemplo, se você usar o tipo de parâmetro AWS::EC2::KeyPair::KeyName, o AWS CloudFormation validará o valor de entrada em relação aos nomes dos pares de chaves existentes dos usuários antes de criar qualquer recurso, como instâncias do Amazon EC2.

Se um usuário usar o AWS Management Console, o AWS CloudFormation preencherá os tipos de parâmetros específicos da AWS antecipadamente com os valores válidos. Dessa forma, a usuária não precisa se lembrar e inserir corretamente um nome ou ID específico. Ela apenas seleciona um ou mais valores em uma lista suspensa. Além disso, dependendo do tipo do parâmetro, os usuários podem pesquisar valores por ID, nome ou valor da tag Name. Para obter mais informações, consulte Especificar o nome e os parâmetros da pilha.

O exemplo a seguir declara dois parâmetros com os tipos AWS::EC2::KeyPair::KeyName e AWS::EC2::Subnet::Id. Esses tipos limitam os valores válidos aos nomes de pares de chaves e IDs de sub-rede existentes. Como o parâmetro mySubnetIDs é especificado como uma lista, um usuário pode especificar um ou mais IDs de sub-rede.

JSON

"Parameters" : { "myKeyPair" : { "Description" : "Amazon EC2 Key Pair", "Type" : "AWS::EC2::KeyPair::KeyName" }, "mySubnetIDs" : { "Description" : "Subnet IDs", "Type" : "List<AWS::EC2::Subnet::Id>" } }

YAML

Parameters: myKeyPair: Description: Amazon EC2 Key Pair Type: "AWS::EC2::KeyPair::KeyName" mySubnetIDs: Description: Subnet IDs Type: "List<AWS::EC2::Subnet::Id>"

Suporte à AWS CLI e à APIs

No momento, os usuários não podem usar a AWS CLI ou a API do AWS CloudFormation para visualizar uma lista de valores válidos para parâmetros específicos da AWS. No entanto, eles podem visualizar informações sobre cada parâmetro, como o tipo de parâmetro, usando o comando aws cloudformation get-template-summary ou a API GetTemplateSummary.

Tipo de parâmetros da lista delimitada por vírgula

Você pode usar o tipo de parâmetro CommaDelimitedList para especificar vários valores de sequência em um único parâmetro. Dessa forma, você pode usar um único parâmetro, em vez de muitos parâmetros diferentes para especificar vários valores. Por exemplo, para criar três diferentes sub-redes com seus próprios blocos CIDR, você pode usar três parâmetros diferentes para especificar três blocos CIDR diferentes. Mas é mais simples usar apenas um único parâmetro que usa uma lista de três blocos CIDR, conforme mostrado no trecho a seguir:

JSON

"Parameters" : { "DbSubnetIpBlocks": { "Description": "Comma-delimited list of three CIDR blocks", "Type": "CommaDelimitedList", "Default": "10.0.48.0/24, 10.0.112.0/24, 10.0.176.0/24" } }

YAML

Parameters: DbSubnetIpBlocks: Description: "Comma-delimited list of three CIDR blocks" Type: CommaDelimitedList Default: "10.0.48.0/24, 10.0.112.0/24, 10.0.176.0/24"

Retornar um valor de um parâmetro da lista delimitada por vírgula

Para fazer referência a um valor específico em uma lista, use a função intrínseca Fn::Select na seção Resources de seu modelo. Você passa o valor do índice do objeto que você deseja e uma lista de objetos, conforme mostrado no seguinte trecho:

JSON
"DbSubnet1" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "0", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "0", {"Ref" : "DbSubnetIpBlocks"} ] } } }, "DbSubnet2" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "1", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "1", {"Ref" : "DbSubnetIpBlocks"} ] } } }, "DbSubnet3" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "2", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "2", {"Ref" : "DbSubnetIpBlocks"} ] } } }
YAML
DbSubnet1: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - "${AWS::Region}${AZ}" - AZ: !Select [0, !Ref VpcAzs] VpcId: !Ref VPC CidrBlock: !Select [0, !Ref DbSubnetIpBlocks] DbSubnet2: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - "${AWS::Region}${AZ}" - AZ: !Select [1, !Ref VpcAzs] VpcId: !Ref VPC CidrBlock: !Select [1, !Ref DbSubnetIpBlocks] DbSubnet3: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - "${AWS::Region}${AZ}" - AZ: !Select [2, !Ref VpcAzs] VpcId: !Ref VPC CidrBlock: !Select [2, !Ref DbSubnetIpBlocks]

Tipos de parâmetros SSM

Tipo AWS::SSM::Parameter::Value<String>

O modelo a seguir declara um tipo de parâmetro AWS::SSM::Parameter::Value<String>.

JSON
{ "Parameters": { "InstanceType": { "Type": "AWS::SSM::Parameter::Value<String>" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "InstanceType": { "Ref": "InstanceType" } } } } }
YAML
Parameters: InstanceType: Type: 'AWS::SSM::Parameter::Value<String>' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: InstanceType: !Ref InstanceType

O comando a seguir cria uma pilha com base no modelo de exemplo. Ele fornece ao Systems Manager a chave do parâmetro (myInstanceType) como o valor do parâmetro do modelo InstanceType. Isso pressupõe que o parâmetro myInstanceType existe no armazenamento de parâmetros sob a conta da AWS do chamador.

aws cloudformation create-stack --stack-name S1 --template-body example template --parameters ParameterKey=InstanceType,ParameterValue=myInstanceType

 

Tipo AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>

O modelo a seguir declara um tipo de parâmetro AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>.

JSON
{ "Parameters": { "ImageId": { "Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": { "Ref": "ImageId" } } } } }
YAML
Parameters: ImageId: Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: !Ref ImageId

O comando a seguir cria uma pilha com base no modelo de exemplo. Ele fornece ao Systems Manager a chave do parâmetro (myLatestAMI) como o valor do parâmetro do modelo ImageId. Isso pressupõe que o parâmetro myLatestAMI existe no armazenamento de parâmetros sob a conta da AWS do chamador.

aws cloudformation create-stack --stack-name S2 --template-body example template --parameters ParameterKey=ImageId,ParameterValue=myLatestAMI