Il s’agit du nouveau Guide de référence des modèles CloudFormation . Veuillez mettre à jour vos favoris et vos liens. Pour obtenir de l'aide pour démarrer CloudFormation, consultez le guide de AWS CloudFormation l'utilisateur.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
cfn-hup
Le script d’assistance cfn-hup est un démon qui détecte les modifications des métadonnées de ressources et exécute les actions définies par l’utilisateur lorsqu’un changement est détecté. Cela vous permet de mettre à jour la configuration de vos EC2 instances Amazon en cours d'exécution par le biais de l'action UpdateStack API.
Pour plus d'informations, consultez le didacticiel de mise à jour d'une CloudFormation pile dans le guide de AWS CloudFormation l'utilisateur.
Rubriques
Syntaxe
cfn-hup --config|-c config.dir \ --no-daemon \ --verbose|-v
Options
| Nom | Description | Obligatoire |
|---|---|---|
|
|
Spécifie le chemin dans lequel le script |
Non |
|
|
Spécifiez cette option pour exécuter le script |
Non |
|
|
Spécifiez cette option pour utiliser le mode détaillé. |
Non |
Fichier de configuration cfn-hup.conf
Le fichier cfn-hup.conf stocke le nom de la pile et les informations d’identification AWS
ciblés par le démon cfn-hup.
Le fichier cfn-hup.conf utilise le format suivant :
[main] stack=<stack-name-or-id>
| Nom | Description | Obligatoire |
|---|---|---|
|
|
Nom ou ID de la pile. Type : chaîne |
Oui |
|
|
Fichier d'informations d'identification spécifique au propriétaire, dans le format utilisé pour les outils de ligne de commande. Type : chaîne Condition : le paramètre |
Non |
|
|
Nom d'un rôle IAM associé à l'instance. Type : chaîne |
Non |
|
|
Nom du Région AWS contenant la pile. Exemple : us-east-2 |
Non |
|
|
La valeur Cette valeur peut être spécifiée avec ou sans 0 de tête. Dans les deux cas, elle est interprétée comme un nombre octal (similaire à la commande Linux Type : octal entier compris entre Par défaut : |
Non |
|
|
Intervalle, en minutes, utilisé pour rechercher les modifications des métadonnées. Type : entier Par défaut : |
Non |
|
|
Spécifie si la journalisation détaillée doit être utilisée. Type : valeur booléenne Par défaut : |
Non |
Fichier de configuration hooks.conf
Le fichier de configuration hooks.conf définit les actions utilisateur que le démon cfn-hup appelle périodiquement. Le fichier hooks.conf utilise le format suivant :
[hookname] triggers=post.addorpost.updateorpost.remove path=Resources.<logicalResourceId>(.Metadataor.PhysicalResourceId)(.<optionalMetadatapath>) action=<arbitrary shell command>runas=<runas user>
Lors de l’exécution d’une opération, celle-ci est lancée dans une copie de l’environnement actuel (celui dans lequel cfn-hup s’exécute), avec CFN_OLD_METADATA défini sur la valeur précédente des métadonnées spécifiée par le chemin et CFN_NEW_METADATA défini sur la valeur actuelle.
Le fichier de configuration des hooks est chargé uniquement au démarrage du démon cfn-hup ; l’ajout de nouveaux hooks nécessite donc un redémarrage du démon. Un cache des anciennes valeurs de métadonnées est stocké dans /var/lib/cfn-hup/data/metadata_db ; vous pouvez supprimer ce cache pour forcer cfn-hup à exécuter à nouveau toutes les actions post.add.
| Nom | Description | Obligatoire |
|---|---|---|
|
|
Nom unique de ce hook. Type : chaîne |
Oui |
|
|
Liste CSV des conditions à détecter. Valeurs valides : Exemple : |
Oui |
|
|
Chemin d'accès vers l'objet de métadonnées. Prend en charge un chemin d'accès long arbitraire dans le bloc de métadonnées. Options de format de chemin d'accès
|
Oui |
|
|
Commande shell arbitraire qui est exécutée telle quelle. |
Oui |
|
|
Utilisateur sous lequel exécuter les commandes. |
Oui |
hooks.dannuaire
Pour permettre la composition de plusieurs applications ajoutant des hooks de notification de changement, cfn-hup prend en charge un répertoire nommé hooks.d, situé dans le répertoire de configuration des hooks. Vous pouvez placer un ou plusieurs fichiers de configuration de hooks supplémentaires dans le répertoire hooks.d. Les fichiers de hooks supplémentaires doivent respecter la même structure que le fichier hooks.conf.
Le démon cfn-hup analyse et charge chaque fichier présent dans ce répertoire. Si des hooks du répertoire hooks.d portent le même nom qu’un hook de hooks.conf, les hooks sont fusionnés (c’est-à-dire que hooks.d écrase hooks.conf pour les valeurs spécifiées dans les deux fichiers).
Exemples
Dans les exemples suivants, CloudFormation déclenche le fichier cfn-auto-reloader.conf hooks lorsque vous modifiez la AWS::CloudFormation::Init ressource associée à la LaunchConfig ressource.
JSON
... "LaunchConfig": { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Metadata" : { "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: 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" ...
Ressources connexes
Vous pouvez également visiter notre GitHub référentiel pour télécharger des exemples de modèles que nous utilisonscfn-hup, notamment les modèles suivants.