Esta es la nueva Guía de referencia de plantillas de AWS CloudFormation. Actualice sus marcadores y enlaces. Para obtener ayuda sobre cómo empezar a usar CloudFormation, consulte la Guía del usuario de AWS CloudFormation.
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.
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.
Si es la primera vez que utiliza scripts auxiliares, le recomendamos que complete primero el tutorial Implementación de aplicaciones en Amazon EC2 de la Guía del usuario de AWS CloudFormation.
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::Sub
intrínseca.
UserData: !Base64 Fn::Sub: |- #!/bin/bash -xe yum update -y aws-cfn-bootstrap # Install the files and packages from the metadata /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource WebServerInstance --configsets InstallAndRun --region ${AWS::Region}
Recursos relacionados
Para ver un tutorial con una plantilla de ejemplo, consulte Implementación de aplicaciones en Amazon EC2 en la Guía del usuario de AWS CloudFormation.
Para ver un ejemplo de Windows, consulte Arranque de pilas de CloudFormation basadas en Windows en la Guía del usuario de AWS CloudFormation.
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 ver ejemplos adicionales de plantillas de pila LAMP que utilicen cfn-init
, consulte ec2-lamp-server