Parámetros
Utilice la sección Parameters
opcional para personalizar sus plantillas. Los parámetros le permiten introducir valores personalizados a su plantilla cada vez que crea o actualiza una pila.
Definición de un parámetro en una plantilla
En el siguiente ejemplo se declara un parámetro denominado InstanceTypeParameter
. Este parámetro le permite especificar el tipo de instancia Amazon EC2 para la pila que se usará al crear o actualizar la pila.
Tenga en cuenta que InstanceTypeParameter
tiene un valor predeterminado de t2.micro
. Este es el valor que AWS CloudFormation usa para aprovisionar la pila a menos que se proporcione otro valor.
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.
Referencia a un parámetro dentro de una plantilla
Puede usar la función intrínseca Ref
para hacer referencia a un parámetro, mientras que AWS CloudFormation utiliza el valor del parámetro para aprovisionar la pila. Puede hacer referencia a los parámetros en las secciones Resources
y Outputs
de la misma plantilla.
En el siguiente ejemplo, la propiedad InstanceType
del recurso de instancia de EC2 hace referencia al valor del 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 generales para los parámetros
Los siguientes requisitos se aplican al usar los parámetros:
-
Puede tener un máximo de 200 parámetros en una plantilla de AWS CloudFormation.
-
Cada parámetro debe recibir un nombre lógico (también llamado ID lógico), que tiene que ser alfanumérico y único entre todos los nombres lógicos dentro de la plantilla.
-
A cada parámetro se le debe asignar un tipo de parámetro compatible con AWS CloudFormation. Para obtener más información, consulte Tipo.
-
A cada parámetro se le debe asignar un valor en tiempo de ejecución para que AWS CloudFormation aprovisione correctamente la pila. Si lo desea, puede especificar un valor predeterminado para que AWS CloudFormation lo use a menos que se proporcione otro valor.
-
Los parámetros se deben declarar y se debe hacer referencia a ellos desde la misma plantilla. Puede hacer referencia a los parámetros en las secciones
Resources
yOutputs
de la plantilla.
JSON
"Parameters" : { "
ParameterLogicalID
" : { "Type" : "DataType
", "ParameterProperty
" : "value
" } }
YAML
Parameters:
ParameterLogicalID
: Type:DataType
ParameterProperty
:value
Propiedades
AllowedPattern
-
Una expresión regular que representa los patrones que hay que permitir para tipos
String
oCommaDelimitedList
. Cuando se aplica a un parámetro del tipoString
, el patrón debe coincidir con todo el valor del parámetro proporcionado. Cuando se aplica a un parámetro del tipoCommaDelimitedList
, el patrón debe coincidir con cada valor de la lista.Obligatorio: no
AllowedValues
-
Una matriz que contiene la lista de valores permitidos para el parámetro. Cuando se aplica a un parámetro del tipo
String
, el valor del parámetro debe ser uno de los valores permitidos. Cuando se aplica a un parámetro del tipoCommaDelimitedList
, cada valor de la lista debe ser uno de los valores permitidos especificados.Obligatorio: no
nota
Si usa YAML y quiere usar cadenas
Yes
yNo
paraAllowedValues
, use comillas simples para evitar que el analizador YAML considere estos valores booleanos. ConstraintDescription
-
Una cadena que explica una restricción cuando se infringe la restricción. Por ejemplo, sin una descripción de la restricción, un parámetro con un patrón permitido de
[A-Za-z0-9]+
muestra el siguiente mensaje de error cuando el usuario especifica un valor no válido:Malformed input-Parameter MyParameter must match pattern [A-Za-z0-9]+
Al añadir una descripción de restricción, como, por ejemplo debe contener únicamente letras (mayúsculas y minúsculas) y números, puede mostrar el siguiente mensaje de error personalizado:
Malformed input-Parameter MyParameter must only contain uppercase and lowercase letters and numbers
Obligatorio: no
Default
-
Un valor del tipo apropiado para la plantilla que se debe utilizar si no se especifica ningún valor al crear una pila. Si define restricciones para el parámetro, debe especificar un valor que cumpla dichas restricciones.
Obligatorio: no
Description
-
Una cadena de hasta 4000 caracteres que describe el parámetro.
Obligatorio: no
MaxLength
-
Cualquier valor entero que determina el mayor número de caracteres que desea permitir para tipos de
String
.Obligatorio: no
MaxValue
-
Un valor numérico que determina el mayor valor numérico que desea permitir para tipos de
Number
.Obligatorio: no
MinLength
-
Un valor entero que determina el menor número de caracteres que desea permitir para tipos de
String
.Obligatorio: no
MinValue
-
Un valor numérico que determina el menor valor numérico que desea permitir para tipos de
Number
.Obligatorio: no
NoEcho
-
Si se va a enmascarar el valor del parámetro para impedir que se muestre en la consola, en las herramientas de línea de comandos o en la API. Si establece el atributo
NoEcho
entrue
, CloudFormation devuelve el valor del parámetro enmascarado como asteriscos (*****) para cualquier llamada que describa la pila o los eventos de la pila, excepto para la información almacenada en las ubicaciones especificadas a continuación.Obligatorio: no
importante
El uso del atributo
NoEcho
no enmascara ninguna información almacenada en lo que se muestra a continuación:-
La sección de la plantilla
Metadata
. CloudFormation no transforma, modifica ni redacta ninguna información que incluya en la secciónMetadata
. Para obtener más información, consulte Metadatos. -
La sección de la plantilla
Outputs
. Para obtener más información, consulte Salidas. -
El atributo
Metadata
de una definición de recurso. Para obtener más información, consulte Atributo Metadata.
Recomendamos encarecidamente que no utilice estos mecanismos para incluir información confidencial, como contraseñas o secretos.
importante
En lugar de integrar información confidencial directamente en las plantillas de CloudFormation, se recomienda utilizar parámetros dinámicos en la plantilla de la pila para hacer referencia a la información confidencial almacenada y administrada fuera de CloudFormation, como en AWS Systems Manager Parameter Store o AWS Secrets Manager.
Para obtener más información, consulte las Prácticas recomendadas de No integre credenciales en sus plantillas.
importante
Recomendamos encarecidamente no incluir parámetros
NoEcho
ni ningún dato confidencial en las propiedades de los recursos que formen parte del identificador principal de un recurso.Cuando se incluye un parámetro de
NoEcho
en una propiedad que forma un identificador de recursos principal, CloudFormation puede usar el valor de texto sin formato real en el identificador del recurso principal. Este ID de recurso puede aparecer en cualquier destino o salida derivada.Para determinar qué propiedades de recursos comprenden el identificador principal de un tipo de recurso, consulte la documentación de referencia de recursos para ese recurso. En la sección Return values (Valores de devolución), el valor de devolución de la función
Ref
representa las propiedades del recurso que comprenden el identificador principal del tipo de recurso. -
Type
-
El tipo de datos para el parámetro (
DataType
).Obligatorio: sí
AWS CloudFormation es compatible con los siguientes tipos de parámetros:
String
-
Una cadena literal.
Por ejemplo, los usuarios podrían especificar
"MyUserName"
. Number
-
Un número entero o flotante. AWS CloudFormation valida el valor del parámetro como un número; sin embargo, cuando se utiliza el parámetro en otro sitio en la plantilla (por ejemplo, mediante la utilización de la función intrínseca
Ref
), el valor del parámetro se convierte en una cadena.Por ejemplo, los usuarios podrían especificar
"8888"
. List<Number>
-
Una matriz de números enteros o flotantes separados por comas. AWS CloudFormation valida el valor del parámetro como números; sin embargo, cuando se utiliza el parámetro en otro sitio en la plantilla (por ejemplo, mediante la utilización de la función intrínseca
Ref
), el valor del parámetro se convierte en una lista de cadenas.Por ejemplo, los usuarios podrían especificar
"80,20"
y unaRef
daría lugar a["80","20"]
. CommaDelimitedList
-
Una matriz de cadenas literales que están separadas por comas. El número total de cadenas debería ser uno más que el número total de comas. Además, en cada cadena de miembro se elimina el espacio.
Por ejemplo, los usuarios podrían especificar
"test,dev,prod"
y unaRef
daría lugar a["test","dev","prod"]
. - Tipos de parámetros específicos de AWS
-
Valores de AWS, como nombres de pares de claves e ID de VPC de Amazon EC2. Para obtener más información, consulte Tipos de parámetros específicos de AWS.
- Tipos de parámetros
SSM
-
Parámetros correspondientes a los parámetros existentes en Administrador de sistemas Parameter Store. Puede especificar una clave de Systems Manager como el valor del parámetro
SSM
y AWS CloudFormation recupera el valor más reciente de Parameter Store que se usará para la pila. Para obtener más información, consulte Tipos de parámetros de SSM.
Tipos de parámetros específicos de AWS
Los tipos de parámetros específicos de AWS son útiles para la captura de valores no válidos al comienzo de la creación o actualización de una pila. Para especificar parámetros con tipos específicos de AWS, un usuario de plantilla debe escribir valores existentes de AWS que estén en la cuenta de AWS. AWS CloudFormation valida dichos valores de entrada y los compara con los valores existentes en la cuenta. Por ejemplo, con el tipo de parámetro AWS::EC2::VPC::Id
, un usuario debe escribir un ID de VPC existente que está en la cuenta y en la región en la que está creando la pila.
Si desea permitir que los usuarios de la plantilla introduzcan valores de entrada de diferentes cuentas de AWS, no defina parámetros con tipos específicos de AWS; en su lugar, defina los parámetros de tipo String
(o CommaDelimitedList
).
Tipos de parámetros específicos de AWS compatibles
AWS CloudFormation es compatible con los siguientes tipos específicos de AWS:
AWS::EC2::AvailabilityZone::Name
-
Una zona de disponibilidad, como por ejemplo
us-west-2a
. AWS::EC2::Image::Id
-
Un ID de imagen de Amazon EC2, como por ejemplo
ami-0ff8a91507f77f867
. Tenga en cuenta que la consola de AWS CloudFormation no muestra una lista desplegable de valores para este tipo de parámetro. AWS::EC2::Instance::Id
-
Un ID de instancia Amazon EC2, como por ejemplo
i-1e731a32
. AWS::EC2::KeyPair::KeyName
-
Un nombre del par de claves de Amazon EC2.
AWS::EC2::SecurityGroup::GroupName
-
Un nombre del grupo de seguridad de VPC predeterminado o EC2-Classic, como por ejemplo
my-sg-abc
. AWS::EC2::SecurityGroup::Id
-
Un ID de grupo de seguridad, como por ejemplo
sg-a123fd85
. AWS::EC2::Subnet::Id
-
Un ID de subred, como por ejemplo
subnet-123a351e
. AWS::EC2::Volume::Id
-
Un ID de volumen de Amazon EBS, como por ejemplo
vol-3cdd3f56
. AWS::EC2::VPC::Id
-
Un ID de VPC, como por ejemplo
vpc-a123baa3
. AWS::Route53::HostedZone::Id
-
Un ID de zona alojada de Amazon Route 53, como por ejemplo
Z23YXV4OVPL04A
. List<AWS::EC2::AvailabilityZone::Name>
-
Una matriz de las zonas de disponibilidad de una región, como por ejemplo
us-west-2a, us-west-2b
. List<AWS::EC2::Image::Id>
-
Una matriz de ID de imagen de Amazon EC2, como por ejemplo
ami-0ff8a91507f77f867, ami-0a584ac55a7631c0c
. Tenga en cuenta que la consola de AWS CloudFormation no muestra una lista desplegable de valores para este tipo de parámetro. List<AWS::EC2::Instance::Id>
-
Una matriz de ID de instancia Amazon EC2, como por ejemplo
i-1e731a32, i-1e731a34
. List<AWS::EC2::SecurityGroup::GroupName>
-
Una matriz de los nombres de los grupos de seguridad de VPC predeterminados o EC2-Classic, como por ejemplo
my-sg-abc, my-sg-def
. List<AWS::EC2::SecurityGroup::Id>
-
Una matriz de los ID de grupos de seguridad, como por ejemplo
sg-a123fd85, sg-b456fd85
. List<AWS::EC2::Subnet::Id>
-
Una matriz de los IDs de subred, como por ejemplo
subnet-123a351e, subnet-456b351e
. List<AWS::EC2::Volume::Id>
-
Una matriz de ID de volumen de Amazon EBS, como por ejemplo
vol-3cdd3f56, vol-4cdd3f56
. List<AWS::EC2::VPC::Id>
-
Una matriz de los ID de VPC, como por ejemplo
vpc-a123baa3, vpc-b456baa3
. List<AWS::Route53::HostedZone::Id>
-
Una matriz de ID de zonas alojadas de Amazon Route 53, como por ejemplo
Z23YXV4OVPL04A, Z23YXV4OVPL04B
.
Tipos de parámetros de SSM
Los tipos de parámetros SSM corresponden a parámetros existentes en el Systems Manager Parameter Store. Puede especificar una clave de Systems Manager como el valor del parámetro SSM
y AWS CloudFormation recupera el valor más reciente de Parameter Store que se usará para la pila. Para los parámetros SSM almacenados en el mismo Cuenta de AWS, introduzca el nombre del parámetro. Para los parámetros SSM compartidos por otra Cuenta de AWS, introduzca el ARN completo del parámetro. Para obtener más información acerca de los parámetros de Systems Manager, consulte Systems Manager Parameter Store y Trabajar con parámetros compartidos en la Guía del usuario de AWS Systems Manager.
También puede usar el patrón de parámetro dinámico ssm
o ssm-secure
para especificar valores de parámetros en su plantilla. Para obtener más información, consulte Uso de referencias dinámicas para especificar valores de plantillas.
Al crear o actualizar pilas y crear conjuntos de cambios, AWS CloudFormation usa los valores que existan en Parameter Store en el momento de la ejecución de la operación. Si un parámetro especificado no existe en Parameter Store con la cuenta de AWS del intermediario, AWS CloudFormation devuelve un error de validación.
Al ejecutar un conjunto de cambios, AWS CloudFormation usa los valores que es especifican en el conjunto de cambios. Debe revisar estos valores antes de ejecutar el conjunto de cambios porque pueden cambiar en el almacén de parámetros entre el momento de la creación del conjunto de cambios y su ejecución.
sugerencia
Puede ver los valores resueltos de los parámetros SSM
en la pestaña Parameters (Parámetros) de la pila de la consola o mediante la ejecución de describe-stacks
o describe-change-set
. Estos son los valores que se usan actualmente en la definición de pilas para las claves de parámetro Administrador de sistemas correspondientes. Tenga en cuenta que estos valores se establecen al crearse o actualizarse la pila, por lo que pueden diferir de los valores más recientes de Parameter Store.
Si especifica SecureStrings como valores de parámetros con el patrón ssm-secure
, AWS CloudFormation no almacena el valor de la cadena segura ni lo muestra en la consola o en los resultados de las llamadas a la API.
Como el valor de un parámetro SSM
es una clave de parámetro de Administrador de sistemas, debe tener en cuenta el siguiente comportamiento:
-
Para las actualizaciones de pilas, la opción Use existing value (Usar valor existente) de la consola y el atributo
UsePreviousValue
paraupdate-stack
indican a AWS CloudFormation que use la clave de parámetro de Systems Manager, no su valor. AWS CloudFormation siempre recupera los valores más recientes de Parameter Store al actualizar las pilas.Sin embargo, si utiliza el patrón de parámetro dinámico
ssm
ossm-secure
para especificar los valores de los parámetros, debe especificar una versión del parámetro de Systems Manager para que AWS CloudFormation lo use. -
AWS CloudFormation puede llevar a cabo una validación en claves de parámetros de Systems Manager, pero no a sus valores correspondientes. Con fines de validación, puede tratar las claves de parámetro como cadenas. Debería llevar a cabo cualquier validación de los valores de parámetros de Administrador de sistemas en Parameter Store.
Consulte Tipos de parámetros de SSM para ver ejemplos de uso de los tipos de parámetros SSM
.
Tipos de parámetros SSM admitidos
AWS CloudFormation admite los siguientes tipos de parámetros SSM
:
AWS::SSM::Parameter::Name
-
El nombre de una clave de parámetro de Systems Manager.
Use este parámetro si desea transferir la clave de parámetro. Por ejemplo, puede usar este tipo para validar que el parámetro existe.
AWS::SSM::Parameter::Value<String>
-
Un parámetro de Systems Manager cuyo valor es una cadena. Esto corresponde al tipo de parámetro
String
en Parameter Store. AWS::SSM::Parameter::Value<List<String>>
oAWS::SSM::Parameter::Value<CommaDelimitedList>
-
Un parámetro de Administrador de sistemas cuyo valor es una lista de cadenas. Esto corresponde al tipo de parámetro
StringList
en Parameter Store. AWS::SSM::Parameter::Value<
AWS-specific parameter type
>-
Un parámetro de Systems Manager cuyo valor es un tipo de parámetro específico de AWS. Por ejemplo, lo siguiente especifica el tipo
AWS::EC2::KeyPair::KeyName
:AWS::SSM::Parameter::Value<AWS::EC2::KeyPair::KeyName>
AWS::SSM::Parameter::Value<List<
AWS-specific parameter type
>>-
Un parámetro de Systems Manager cuyo valor es una lista de tipos de parámetros específicos de AWS. Por ejemplo, lo siguiente especifica una lista de tipos
AWS::EC2::KeyPair::KeyName
:AWS::SSM::Parameter::Value<List<AWS::EC2::KeyPair::KeyName>>
Tipos de parámetros SSM no admitidos
AWS CloudFormation no admite los siguientes tipos de parámetros SSM
:
-
Listas de tipos de parámetros de
SSM
; por ejemplo:List<AWS::SSM::Parameter::Value<String>>
Además, AWS CloudFormation no es compatible con la definición de parámetros de plantillas como tipos de parámetros de Systems Manager SecureString
. Sin embargo, también puede especificar SecureString como valores de parámetros para algunos recursos, usando patrones de parámetros dinámicos. Para obtener más información, consulte Uso de referencias dinámicas para especificar valores de plantillas.
Agrupación y orden de parámetros en la consola de AWS CloudFormation
Cuando utiliza la consola de AWS CloudFormation para crear o actualizar una pila, la consola muestra alfabéticamente parámetros de entrada por su ID lógico. Para anular el orden predeterminado, puede utilizar la clave de metadatos AWS::CloudFormation::Interface
. Al agrupar y ordenar parámetros, facilita a los usuarios la especificación de los valores de los parámetros. Por ejemplo, puede agrupar todos los parámetros relacionados con la VPC de forma que no estén diseminados en una lista alfabética.
En la clave de metadatos, puede especificar los grupos que desea crear, los parámetros que desea incluir en cada grupo y el orden en el que la consola muestra cada parámetro dentro de su grupo. También puede definir nombres de parámetros fáciles de recordar, de forma que la consola muestre nombres descriptivos en lugar de los ID lógicos. Todos los parámetros a los que se hace referencia en la clave de metadatos deben declararse en la sección Parameters
de la plantilla.
Para obtener más información y un ejemplo de la clave de metadatos AWS::CloudFormation::Interface
, consulte AWS::CloudFormation::Interface.
Ejemplos
Parámetros de entrada básica
La siguiente sección Parameters
de ejemplo declara dos parámetros. El parámetro DBPort
es de tipo Number
con un valor predeterminado de 3306
. El valor mínimo que se puede especificar es 1150
y el valor máximo que se puede especificar es 65535
. El parámetro DBPwd
es de tipo String
sin valor predeterminado. La propiedad NoEcho
se establece en true
para impedir que las llamadas describe stack, como el comando aws cloudformation describe-stacks
de la AWS CLI, devuelvan el valor del parámetro. La longitud mínima que se puede especificar es 1
y la longitud máxima que se puede especificar es 41
. El patrón permite caracteres alfabéticos en mayúsculas y minúsculas, y números.
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 de AWS
Cuando se utilizan tipos de parámetros específicos de AWS, un usuario que utilice la plantilla para crear o actualizar una pila debe especificar valores de AWS existentes que estén en la cuenta del usuario y en la región de la pila actual. Los tipos de parámetros específicos de AWS ayudan a garantizar que los valores de entrada para estos tipos de parámetros existan y sean correctos antes de que AWS CloudFormation cree o actualice cualquier recurso. Por ejemplo, si utiliza el tipo de parámetro AWS::EC2::KeyPair::KeyName
, AWS CloudFormation valida el valor de entrada frente a los nombres de pares de clave existentes de los usuarios antes de crear cualquier recurso, como instancias de Amazon EC2.
Si un usuario utiliza la AWS Management Console, AWS CloudFormation rellena previamente los tipos de parámetros específicos de AWS con valores válidos. De esta forma el usuario no tiene que recordar y escribir correctamente un nombre específico o ID. Simplemente seleccionarían uno o más valores de una lista desplegable. Además, en función del tipo de parámetro, los usuarios pueden buscar valores por ID, nombre o el valor de la etiqueta del nombre. Para obtener más información, consulte Especificación del nombre de pila y los parámetros.
El siguiente ejemplo declara dos parámetros con los tipos AWS::EC2::KeyPair::KeyName
y AWS::EC2::Subnet::Id
. Estos tipos limitan los valores válidos a nombres de pares de claves existentes y los ID de subred. Dado que el parámetro mySubnetIDs
se especifica como una lista, un usuario puede especificar uno o varios ID de subred.
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>"
Compatibilidad con la AWS CLI y la API
En la actualidad, los usuarios no pueden utilizar la AWS CLI o la API de AWS CloudFormation a fin de ver una lista de los valores válidos para los parámetros específicos de AWS. Sin embargo, pueden ver información sobre cada uno de los parámetros, como el tipo de parámetros, ejecutando el comando aws cloudformation get-template-summary
o la API GetTemplateSummary
.
Tipo de parámetros de lista delimitados por comas
Puede utilizar el tipo de parámetro CommaDelimitedList
para especificar múltiples valores de cadena en un único parámetro. De esta forma, puede utilizar un único parámetro en lugar de diferentes parámetros para especificar múltiples valores. Por ejemplo, si crea tres subredes diferentes con sus propios bloques de CIDR, podría utilizar tres parámetros diferentes para especificar tres bloques de CIDR diferentes. Sin embargo, es más sencillo utilizar un único parámetro que toma una lista de tres bloques de CIDR, tal y como se muestra en el siguiente fragmento de código:
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"
Devuelva un valor de un parámetro de lista delimitada por comas
Para consultar un valor específico en una lista, utilice la función intrínseca Fn::Select
en la sección Resources
de la plantilla. Puede transferir el valor de índice del objeto que desea y una lista de objetos, tal y como se muestra en el siguiente fragmento de código:
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 de SSM
Tipo AWS::SSM::Parameter::Value
<String>
En la siguiente plantilla se declara un 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
El siguiente comando crea una pila basada en la plantilla de ejemplo. Proporciona la clave de parámetro de Systems Manager (myInstanceType
) como valor del parámetro de la plantilla InstanceType
. Se presupone que el parámetro myInstanceType
existe en Parameter Store en la cuenta de AWS del intermediario.
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
>
En la siguiente plantilla se declara un 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
El siguiente comando crea una pila basada en la plantilla de ejemplo. Proporciona la clave de parámetro de Systems Manager (myLatestAMI
) como valor del parámetro de la plantilla ImageId
. Se presupone que el parámetro myLatestAMI
existe en Parameter Store en la cuenta de AWS del intermediario.
aws cloudformation create-stack --stack-name S2 --template-body
example template
--parameters ParameterKey=ImageId,ParameterValue=myLatestAMI