Uso de parámetros para especificar valores de módulo
En CloudFormation, puede usar plantillas de parámetros para personalizar las pilas al proporcionar valores de entrada durante la creación o actualización de la pila. Estos parámetros le permiten cambiar ciertos aspectos de la pila en función de sus necesidades. Para obtener más información sobre cómo definir parámetros de plantilla, consulte Referencia sintáctica de la sección Parameters para las plantillas de CloudFormation.
Del mismo modo, los módulos también pueden tener parámetros. Estos parámetros del módulo le permiten introducir valores personalizados en el módulo desde la plantilla (u otro módulo) que lo está utilizando. A continuación, el módulo puede utilizar estos valores personalizados para establecer los valores de propiedades de los recursos que contiene.
También puede definir parámetros de plantilla que establecen las propiedades del módulo, de modo que puedes introducir valores que se pasan al módulo en el momento de la operación de pila.
Si un módulo contiene un módulo anidado que tiene sus propios parámetros del módulo, puede:
-
Especificar los valores de los parámetros del módulo anidado directamente en el módulo principal.
-
Definir los parámetros correspondientes del módulo en el módulo principal que permitan que los parámetros del módulo anidado sean establecidos por la plantilla (o módulo) en la que está contenido el módulo principal.
Uso de parámetros de plantilla para especificar valores de parámetros del módulo
El siguiente ejemplo muestra cómo definir parámetros de plantilla que pasan valores a un módulo.
Esta plantilla que contiene My::S3::SampleBucket::MODULE
define un parámetro de plantilla BucketName
, que permite al usuario especificar un nombre de bucket de S3 durante la operación de pila.
# Template containing My::S3::SampleBucket::MODULE Parameters: BucketName: Description: Name for your sample bucket Type: String Resources: MyBucket: Type: 'My::S3::SampleBucket::MODULE' Properties: BucketName: !Ref BucketName
Especificación de propiedades en recursos de un módulo secundario desde el módulo principal
El ejemplo siguiente ilustra cómo especificar valores de parámetro en un módulo anidado dentro de otro módulo.
Este primer módulo, My::S3::SampleBucketPrivate::MODULE
, será el módulo secundario. Define dos parámetros: BucketName
y AccessControl
. Los valores especificados para estos parámetros se utilizan para especificar las propiedades BucketName
y AccessControl
del recurso AWS::S3::Bucket
que contiene el módulo. A continuación se muestra el fragmento de plantilla para My::S3::SampleBucketPrivate::MODULE
.
# My::S3::SampleBucketPrivate::MODULE AWSTemplateFormatVersion: 2010-09-09 Description: A sample S3 Bucket with Versioning and DeletionPolicy. Parameters: BucketName: Description: Name for the bucket Type: String AccessControl: Description: AccessControl for the bucket Type: String Resources: S3Bucket: Type: 'AWS::S3::Bucket' Properties: BucketName: !Ref BucketName AccessControl: !Ref AccessControl DeletionPolicy: Retain VersioningConfiguration: Status: Enabled
A continuación, el módulo anterior se anida dentro de un módulo principal, My::S3::SampleBucket::MODULE
. El módulo principal, My::S3::SampleBucket::MODULE
, establece los parámetros del módulo secundario de las siguientes maneras:
-
Establece el parámetro
AccessControl
deMy::S3::SampleBucketPrivate::MODULE
aPrivate
. -
Para
BucketName
, define un parámetro de módulo, que permitirá que el nombre del bucket se especifique en la plantilla (o módulo) que contieneMy::S3::SampleBucket::MODULE
.
# My::S3::SampleBucket::MODULE AWSTemplateFormatVersion: 2010-09-09 Description: A sample S3 Bucket. With Private AccessControl. Parameters: BucketName: Description: Name for your sample bucket Type: String Resources: MyBucket: Type: 'My::S3::SampleBucketPrivate::MODULE' Properties: BucketName: !Ref BucketName AccessControl: Private
Especificación de restricciones para parámetros de módulo
Los parámetros del módulo no admiten la restricción de ejecución. Para comprobar la restricción en un parámetro de módulo, cree un parámetro de plantilla con las restricciones deseadas. A continuación, haga referencia a ese parámetro de plantilla en el parámetro del módulo. Para obtener más información sobre cómo definir parámetros de plantilla, consulte Referencia sintáctica de la sección Parameters para las plantillas de CloudFormation.