cfn-init
En una plantilla de CloudFormation, puede utilizar AWS::CloudFormation::Init
en la sección Metadata
de un recurso de Amazon EC2 para definir las tareas de inicialización. Para obtener más información, consulte AWS::CloudFormation::Init en la Guía del usuario de AWS CloudFormation.
El script auxiliar cfn-init
lee metadatos de plantilla de la clave AWS::CloudFormation::Init
y actúa de forma acorde para lo siguiente:
-
Obtener y analizar metadatos de CloudFormation
-
Instalación de paquetes
-
Escribir archivos en el disco
-
Habilitar/deshabilitar e iniciar/detener servicios
El script auxiliar cfn-init
se suele ejecutar a partir de los datos de usuario de una instancia de Amazon EC2 o de una plantilla de lanzamiento.
nota
Si utiliza cfn-init
para actualizar un archivo existente, crea una copia de seguridad del archivo original en el mismo directorio con una extensión .bak. Por ejemplo, si actualiza /
, la acción produce dos archivos: path
/to
/file_name
/
incluye el contenido original del archivo y path
/to
/file_name
.bak/
incluye los contenidos actualizados.path
/to
/file_name
Sintaxis
cfn-init --stack|-s
stack.name.or.id
\ --resource|-rlogical.resource.id
\ --regionregion
\ --access-keyaccess.key
\ --secret-keysecret.key
\ --rolerolename
\ --credential-file|-fcredential.file
\ --configsets|-cconfig.sets
\ --url|-uservice.url
\ --http-proxyHTTP.proxy
\ --https-proxyHTTPS.proxy
\ --verbose|-v
nota
cfn-init
no requiere credenciales, por lo que no tiene que usar las opciones --access-key
, --secret-key
, --role
ni --credential-file
. Sin embargo, si no se especifican credenciales, CloudFormation comprueba la pertenencia a la pila y limita el ámbito de la llamada a la pila al que pertenece a la instancia. Para obtener más información, consulte Permisos para los scripts auxiliares.
Opciones
Nombre | Descripción | Obligatorio |
---|---|---|
|
Nombre o ID de la pila. Tipo: cadena Valor predeterminado: Ninguno Ejemplo: |
Sí |
|
El ID de recurso lógico del recurso que contiene los metadatos. Tipo: cadena Ejemplo: |
Sí |
|
El punto de enlace regional de CloudFormation que se debe utilizar. Tipo: cadena Valor predeterminado: Ejemplo: |
No |
|
Clave de acceso de AWS para una cuenta con permiso para llamar a Tipo: cadena |
No |
|
Clave de acceso secreta de AWS que corresponde a la clave de acceso de AWS especificada. Tipo: cadena |
No |
|
El nombre de un rol de IAM asociado a la instancia. Tipo: cadena Condición: El parámetro del archivo de credenciales sustituye a este parámetro. |
No |
|
Un archivo que contiene una clave de acceso secreta y una clave de acceso. El parámetro del archivo de credenciales sustituye a los parámetros --role, --access-key y --secret-key. Tipo: cadena |
No |
|
Una lista separada por comas de configsets para ejecutar (en orden). Tipo: cadena Valor predeterminado: |
No |
|
El punto de enlace de CloudFormation que se debe usar. Tipo: cadena |
No |
|
Un proxy HTTP (no SSL). Use el siguiente formato Tipo: cadena |
No |
|
Un proxy HTTPS. Use el siguiente formato Tipo: cadena |
No |
|
Resultados detallados. Esto es útil para la depuración de casos en los que se produce un error en la inicialización de notaPara depurar eventos de inicialización, debe activar |
No |
|
Muestra un mensaje de ayuda y sale. |
No |
Ejemplos
Ejemplo de Amazon Linux
En los siguientes ejemplos se muestra la propiedad UserData
de una instancia de EC2, que ejecuta el configset InstallAndRun
asociado al recurso WebServerInstance
.
Para incluir la última versión, agregue yum install -y aws-cfn-bootstrap
a UserData
.
JSON
Propiedad UserData
que usa la función Fn::Join
intrínseca.
{ "UserData": { "Fn::Base64": { "Fn::Join": [ "", [ "#!/bin/bash -xe\n", "", "yum install -y aws-cfn-bootstrap", "/opt/aws/bin/cfn-init -v ", " --stack ", { "Ref": "AWS::StackName" }, " --resource WebServerInstance ", " --configsets InstallAndRun ", " --region ", { "Ref": "AWS::Region" }, "\n" ] ] } } }
YAML
Propiedad UserData
que usa la función Fn::Join
intrínseca.
UserData: !Base64 'Fn::Join': - '' - - | #!/bin/bash -xe - '' - yum install -y aws-cfn-bootstrap - '/opt/aws/bin/cfn-init -v ' - ' --stack ' - !Ref 'AWS::StackName' - ' --resource WebServerInstance ' - ' --configsets InstallAndRun ' - ' --region ' - !Ref 'AWS::Region' - |+
JSON
Propiedad UserData
que usa la función Fn::Sub
intrínseca.
{ "UserData": { "Fn::Base64": { "Fn::Sub": [ "#!/bin/bash -x\n# Install the files and packages from the metadata\n/opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}\n\n# Signal the status from cfn-init\n/opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}\n", {} ] } } }
YAML
Propiedad UserData
que usa la función Fn::Sub
intrínseca.
UserData: !Base64 'Fn::Sub': - > #!/bin/bash -x # Install the files and packages from the metadata /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region} # Signal the status from cfn-init /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region} - {}
Recursos relacionados
También puede visitar nuestro repositorio de GitHub para descargar las plantillas de ejemplo que usan cfn-init
, entre las que se incluyen las siguientes.
Para las plantillas de Windows, consulte Trabajar con plantillas de pilas de Microsoft Windows en la Guía del usuario de AWS CloudFormation.