Utilisation du 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.

Utilisation du 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.

Plusieurs actions AWS OpsWorks Stacks vous permettent de spécifier un JSON personnalisé, que AWS OpsWorks Stacks installe sur les instances et peut être utilisé par des recettes.

Vous pouvez spécifier un JSON personnalisé dans les cas suivants :

  • Lorsque vous créez, mettez à jour ou clonez une pile.

    AWS OpsWorks Stacks installe le JSON personnalisé sur toutes les instances pour tous les événements du cycle de vie ultérieurs.

  • Lorsque vous exécutez une commande déploiement ou de pile.

    AWS OpsWorks Stacks transmet le JSON personnalisé aux instances uniquement pour cet événement.

Le JSON personnalisé doit être représenté par, et formaté comme, un objet JSON valide. Par exemple :

{ "att1": "value1", "att2": "value2" ... }

AWS OpsWorks Stacks stocke le JSON personnalisé aux emplacements suivants :

Sur les instances Linux :

  • /var/chef/runs/run-ID/attribs.json

  • /var/chef/runs/run-ID/nodes/hostname.json

Sur les instances Windows :

  • drive:\chef\runs\run-ID\attribs.json

  • drive:\chef\runs\run-ID\nodes\hostname.json

Note

Dans Chef 11.10 et les versions antérieures pour Linux, le JSON personnalisé se trouve dans le chemin d'accès suivant sur les instances Linux, les instances Windows ne sont pas disponibles et il n'y a aucun fichier attribs.json. Les journaux sont stockes dans le même répertoire ou dossier que le JSON. Pour plus d'informations sur le JSON personnalisé dans Chef 11.10 et les versions antérieures pour Linux, consultez Remplacement des attributs par le JSON personnalisé et Journaux de Chef.

/var/lib/aws/opsworks/chef/hostname.json

Dans les chemins précédents, run-ID est un ID unique attribué par AWS OpsWorks Stacks à chaque exécution Chef sur une instance et hostname est le nom d'hôte de l'instance.

Pour accéder au JSON personnalisé à partir des recettes de Chef, utilisez la syntaxe node standard de Chef.

Par exemple, supposons que vous souhaitiez définir des paramètres simples pour une application que vous souhaitez déployer, par exemple si l'application est visible au départ et les couleurs initiales de premier plan et d'arrière plan de l'application. Supposons que vous définissez ces paramètres d'application avec un objet JSON comme suit :

{ "state": "visible", "colors": { "foreground": "light-blue", "background": "dark-gray" } }

Pour déclarer le JSON personnalisé pour une pile :

  1. Sur la page de la pile, choisissez Paramètres de pile, puis Modifier.

  2. Pour Custom Chef JSON (Chef JSON personnalisé), saisissez l'objet JSON et choisissez Enregistrer.

Note

Vous pouvez déclarer un JSON personnalisé aux niveaux du déploiement, de la couche et de la pile. Vous pouvez le faire si vous voulez qu'une partie du JSON personnalisé soit uniquement visible par un déploiement et une couche. Vous pouvez aussi chercher à remplacer temporairement un JSON personnalisé déclaré au niveau de la pile par un JSON personnalisé déclaré au niveau de la couche. Si vous déclarez un JSON personnalisé à plusieurs niveaux, celui qui est déclaré au niveau du déploiement remplace n'importe quel JSON personnalisé déclaré aux niveaux de la couche et de la pile. Le JSON personnalisé déclaré au niveau de la couche remplace n'importe quel JSON personnalisé déclaré uniquement au niveau de la pile.

Pour utiliser la console AWS OpsWorks Stacks afin de spécifier le JSON personnalisé pour un déploiement, sur la page Déployer l'application, sélectionnez Avancé. Tapez le JSON personnalisé dans la zone Custom Chef JSON (JSON Chef personnalisé), puis choisissez Enregistrer.

Pour utiliser la console AWS OpsWorks Stacks afin de spécifier un JSON personnalisé pour une couche, sur la page Couches, sélectionnez Paramètres pour la couche souhaitée. Saisissez le JSON personnalisé dans la zone JSON personnalisé, puis choisissez Enregistrer.

Pour plus d’informations, consultez Modification de OpsWorks la configuration d'une couche et Déploiement d'applications.

Lorsque vous exécutez une commande déploiement ou de pile, les recettes peuvent extraire ces valeurs personnalisées à l'aide de la syntaxe node standard de Chef, qui mappe directement à la hiérarchie de l'objet JSON personnalisé. Par exemple, le code de recette suivant écrit des messages dans le journal de Chef sur les valeurs JSON personnalisées précédentes :

Chef::Log.info("********** The app's initial state is '#{node['state']}' **********") Chef::Log.info("********** The app's initial foreground color is '#{node['colors']['foreground']}' **********") Chef::Log.info("********** The app's initial background color is '#{node['colors']['background']}' **********")

Cette approche peut être utile pour transmettre des données à des recettes. AWS OpsWorks Stacks ajoute ces données à l'instance, et les recettes peuvent récupérer les données en utilisant la node syntaxe standard de Chef.

Note

Le JSON personnalisé est limité à 120 Ko. Si vous avez besoin de plus de capacité, nous vous recommandons de stocker certaines données sur Amazon Simple Storage Service (Amazon S3). Vos recettes personnalisées peuvent ensuite utiliser l'interface de ligne de commande AWS ou le AWS SDK for Rubypour télécharger les données du compartiment Amazon S3 vers votre instance.