Remplacement des attributs par un JSON personnalisé - AWS OpsWorks

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.

Remplacement des attributs par un JSON personnalisé

Important

Le AWS OpsWorks Stacks service a atteint sa fin de vie le 26 mai 2024 et a été désactivé tant pour les nouveaux clients que pour les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez l' AWS Support équipe sur AWS Re:Post ou via le AWS Support Premium.

Note

Comme AWS OpsWorks Stacks gère les exécutions de Chef différemment pour les piles Windows et pour les piles Linux, vous ne pouvez pas utiliser les techniques décrites dans cette section pour les piles Windows.

Le moyen le plus simple de remplacer un attribut AWS OpsWorks Stacks consiste à le définir dans du JSON personnalisé, qui a priorité sur les attributs de configuration et de déploiement de la pile, ainsi que sur les attributs de livre de recettes intégrés et personnalisés. default Pour plus d’informations, consultez Priorité des attributs.

Important

Vous devez remplacer les attributs de configuration et de déploiement de la pile avec soin. Par exemple, le remplacement des attributs dans l'espace de noms opsworks peut interférer avec les recettes intégrées. Pour plus d’informations, consultez Attributs de déploiement et de configuration de pile.

Vous pouvez également utiliser le JSON personnalisé pour définir les attributs uniques, généralement pour transmettre des données à vos recettes personnalisées. Les attributs sont simplement intégrés à l'objet de nœud et les recettes peuvent les référence à l'aide de la syntaxe de nœud standard de Chef.

Procédure pour spécifier le JSON personnalisé

Pour utiliser le JSON personnalisé afin de remplacer une valeur d'attribut, vous devez tout d'abord déterminer le nom qualifié de l'attribut. Vous créez ensuite un objet JSON qui contient les attributs que vous voulez remplacer, défini sur vos valeurs préférées. Pour plus de commodité, les documents Attributs de déploiement et de configuration de pile : Linux et Attributs des livres de recettes intégrés utilisent généralement les attributs de configuration de la pile, de déploiement et de livres de recettes intégrés, avec leurs noms pleinement qualifiés.

Les relations parent-enfant de l'objet doivent correspondre aux nœuds pleinement qualifiés appropriés de Chef. Par exemple, supposons que vous souhaitiez modifier les attributs suivants d'Apache :

  • L'attribut keepalivetimeout, dont le nœud est node[:apache][:keepalivetimeout] et a une valeur par défaut de 3.

  • L'attribut logrotate schedule, dont le nœud est node[:apache][:logrotate][:schedule] et a une valeur par défaut de "daily".

Pour remplacer les attributs et définir les valeurs sur 5 et "weekly", respectivement, vous devez utiliser le JSON personnalisé suivant :

{ "apache" : { "keepalivetimeout" : 5, "logrotate" : { "schedule" : "weekly" } } }

Quand spécifier le JSON personnalisé

Vous pouvez spécifier une structure de JSON personnalisé pour les tâches suivantes :

Pour chaque tâche, AWS OpsWorks Stacks fusionne les attributs JSON personnalisés avec les attributs de configuration et de déploiement de la pile et les envoie aux instances pour qu'elles soient fusionnées dans l'objet du nœud. Toutefois, notez les points suivants :

  • Si vous spécifiez le JSON personnalisé lorsque vous créez, clonez ou mettez à jour une pile, les attributs sont fusionnés avec les attributs de configuration et de déploiement de la pile pour tous les événements du cycle de vie et les commandes de pile qui suivront.

  • Si vous spécifiez un JSON personnalisé pour un déploiement, les attributs sont fusionnés dans les attributs de configuration et de déploiement de la pile uniquement pour l'événement correspondant.

    Si vous souhaitez utiliser ces attributs personnalisés pour les déploiements suivants, vous devez spécifier explicitement le JSON personnalisé à nouveau.

Il est important de se souvenir que les attributs affectent uniquement l'instance lorsqu'ils sont utilisés par des recettes. Si vous remplacez une valeur d'attribut, mais qu'aucune recette ultérieure ne fait référence à l'attribut, la modification n'a aucun effet. Vous devez soit vous assurer que le JSON personnalisé est envoyé avant l'exécution des recettes associées, soit veiller à ce que les recettes appropriées soient exécutées à nouveau.

Bonnes pratiques pour le JSON personnalisé

Vous pouvez utiliser du JSON personnalisé pour remplacer n'importe quel attribut AWS OpsWorks Stacks, mais la saisie manuelle des informations est quelque peu fastidieuse et ne fait l'objet d'aucun contrôle de source. Le JSON personnalisé est plus adapté pour les raisons suivantes :

  • Lorsque vous voulez remplacer uniquement un petit nombre d'attributs et vous n'avez pas besoin d'utiliser les livres personnalisés dans d'autres buts.

    Avec le JSON personnalisé, vous pouvez éviter la complexité de la configuration et de la gestion d'un référentiel de livres de recettes uniquement pour remplacer deux attributs.

  • Valeurs sensibles, telles que les mots de passe ou les clés d'authentification.

    Les attributs des livres de recettes sont stockés dans un référentiel, c'est pourquoi les informations sensibles risquent d'être compromises. C'est pourquoi il est préférable de définir les attributs avec des valeurs fictives et d'utiliser le JSON personnalisé pour définir les valeurs réelles.

  • Valeurs qui sont censées varier.

    Par exemple, une pratique recommandée consiste à avoir votre pile de production prise en charge par des piles de développement et intermédiaires distinctes. Supposons que ces piles prennent en charge une application qui accepte les paiements. Si vous utilisez le JSON personnalisé pour spécifier le point de terminaison du paiement, vous pouvez spécifier une URL de test pour votre pile intermédiaire. Lorsque vous êtes prêt à migrer une pile mise à jour vers votre pile de production, vous pouvez utiliser les mêmes livres de recettes et le JSON personnalisé pour définir le point de terminaison de paiement sur l'URL de production.

  • Les valeurs qui sont propres à une commande spécifique de pile ou de déploiement.