Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

cfn-hup

Modo de enfoque
cfn-hup - AWS CloudFormation
Filtrar vista

El script auxiliar cfn-hup es un daemon que detecta cambios en los metadatos de recursos y ejecuta acciones especificadas por el usuario cuando se detecta un cambio. Esto le permite llevar a cabo actualizaciones de la configuración en las instancias de Amazon EC2 que se están ejecutando a través de la acción de la API UpdateStack.

Sintaxis

cfn-hup --config|-c config.dir \ --no-daemon \ --verbose|-v

Opciones

Nombre Descripción Obligatorio

--config|-c config.dir

Especifica la ruta que el script cfn-hup busca para los directorios cfn-hup.conf y hooks.d. En Windows, la ruta predeterminada es system_drive\cfn. En Linux, la ruta predeterminada es /etc/cfn.

No

--no-daemon

Especifique esta opción para ejecutar el script cfn-hup una vez y salir.

No

-v, --verbose

Especifique esta opción para utilizar el modo detallado.

No

Archivo de configuración cfn-hup.conf

En el archivo cfn-hup.conf se almacena el nombre de la pila y las credenciales de AWS a las cuales se dirige el daemon cfn-hup.

El archivo cfn-hup.conf usa el formato siguiente:

[main] stack=<stack-name-or-id>
Nombre Descripción Obligatorio

stack

Un nombre de pila o ID.

Tipo: cadena

credential-file

Un archivo de credencial exclusivo del propietario, en el mismo formato utilizado para las herramientas de líneas de comandos.

Tipo: cadena

Condición: el parámetro role sustituye a este parámetro.

No

role

El nombre de un rol de IAM asociado a la instancia.

Tipo: cadena

No

region

Nombre de la región de AWS que contiene la pila.

Ejemplo: us-east-2

No

umask

umask que usa el daemon cfn-hup.

Este valor se puede especificar con o sin 0 inicial. En ambos casos, se interpreta como un número octal (similar al comando umask de Linux). Este parámetro no tiene efecto en Windows.

Tipo: número entero octal entre 0 y 0777

Valor predeterminado: 022, versión 1.4–22 y superiores. El valor predeterminado 022 oculta permisos de escritura de grupo y mundiales, por lo que los archivos creados por el daemon cfn-hup no cuentan con permisos de escritura de grupo ni mundiales de forma predeterminada. El valor predeterminado para las versiones que comprenden de la 1.4 a la 21 y versiones anteriores es 0, que no oculta nada.

No

interval

El intervalo usado para comprobar si hay cambios en los metadatos de recursos en cuestión de minutos.

Tipo: entero

Valor predeterminado: 15

No

verbose

Especifica si se debe utilizar el registro detallado.

Tipo: Booleano

Valor predeterminado: false

No

Archivo de configuración de la hooks.conf

Las acciones del usuario a las que el daemon cfn-hup llama periódicamente se definen en el archivo de configuración hooks.conf. El archivo hooks.conf usa el formato siguiente:

[hookname] triggers=post.add or post.update or post.remove path=Resources.<logicalResourceId> (.Metadata or .PhysicalResourceId)(.<optionalMetadatapath>) action=<arbitrary shell command> runas=<runas user>

Cuando se ejecuta la operación, se ejecuta en una copia del entorno actual (en el que se encuentra cfn-hup), con CFN_OLD_METADATA establecido en el valor de metadatos anterior especificado por ruta y CFN_NEW_METADATA establecido en el valor actual.

El archivo de configuración de enlaces se carga solo al iniciarse el daemon cfn-hup, de manera que los nuevos enlaces necesitarán que se reinicie el daemon. Se almacena una memoria caché de los valores de metadatos anteriores en /var/lib/cfn-hup/data/metadata_db, pero puede eliminarla para forzar cfn-hup y que se ejecuten de nuevo todas las acciones post.add.

Nombre Descripción Obligatorio

hookname

Un nombre único para este enlace.

Tipo: cadena

triggers

Una lista delimitada por comas de condiciones para detectar.

Valores válidos: post.add, post.update o post.remove

Ejemplo: post.add, post.update

path

La ruta al objeto de los metadatos. Admite una ruta de profundidad arbitraria dentro del bloque de metadatos.

Opciones de formato de ruta
  • Resources.<LogicalResourceId>:— monitorea la hora de la última actualización del recurso que se desencadena con cualquier cambio en el recurso.

  • Recursos.<LogicalResourceId>.PhysicalResourceId:— monitorea el ID lógico del recurso que se desencadena solo cuando cambia la identidad del recurso asociado (como una nueva instancia de EC2).

  • Resources.<LogicalResourceId>Metadata(.ruta opcional):— monitorea los metadatos de un recurso para comprobar si se producen cambios (es posible especificar una ruta secundaria de metadatos en un nivel de profundidad arbitrario para monitorear valores específicos).

action

Un comando de shell arbitrario que se ejecuta como determinado.

runas

Usuario con el que ejecutar los comandos. cfn-hup utiliza el comando su para cambiar al usuario.

Directorio hooks.d

Para permitir la composición de varias aplicaciones que implementan enlaces de notificación de cambios, cfn-hup admite un directorio denominado hooks.d que se encuentra en el directorio de configuración de enlaces. Puede meter uno o varios archivos de configuración de enlaces adicionales en el directorio hooks.d. Los archivos de enlaces adicionales deben utilizar el mismo formato que el archivo hooks.conf.

El daemon cfn-hup analiza y carga cada archivo en este directorio. Si algún enlace del directorio hooks.d tiene el mismo nombre que un enlace de hooks.conf, los enlaces se fusionarán (es decir, hooks.d sobrescribirá a hooks.conf para cualquier valor que se especifique en ambos archivos).

Ejemplos

En el siguiente ejemplo, CloudFormation desencadena el archivo de enlaces cfn-auto-reloader.conf cuando cambia el recurso AWS::CloudFormation::Init que está asociado al recurso LaunchConfig.

JSON

... "LaunchConfig": { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Metadata" : { "QBVersion": {"Ref": "paramQBVersion"}, "AWS::CloudFormation::Init" : { ... "/etc/cfn/hooks.d/cfn-auto-reloader.conf": { "content": { "Fn::Join": [ "", [ "[cfn-auto-reloader-hook]\n", "triggers=post.update\n", "path=Resources.LaunchConfig.Metadata.AWS::CloudFormation::Init\n", "action=/opt/aws/bin/cfn-init -v ", " --stack ", { "Ref" : "AWS::StackName" }, " --resource LaunchConfig ", " --configsets wordpress_install ", " --region ", { "Ref" : "AWS::Region" }, "\n", "runas=root\n" ]]}, "mode" : "000400", "owner" : "root", "group" : "root" } ...

YAML

... LaunchConfig: Type: "AWS::AutoScaling::LaunchConfiguration" Metadata: QBVersion: !Ref paramQBVersion AWS::CloudFormation::Init: ... /etc/cfn/hooks.d/cfn-auto-reloader.conf: content: !Sub | [cfn-auto-reloader-hook] triggers=post.update path=Resources.LaunchConfig.Metadata.AWS::CloudFormation::Init action=/opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource LaunchConfig --configsets wordpress_install --region ${AWS::Region} runas=root mode: "000400" owner: "root" group: "root" ...

Para ver una plantilla de ejemplo, consulte Implementación de aplicaciones en Amazon EC2 con CloudFormation en la Guía del usuario de AWS CloudFormation.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.