

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.

# Étape 12 : Mettre à jour le livre de recettes pour utiliser JSON personnalisé
<a name="gettingstarted-cookbooks-custom-json"></a>

**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](https://repost.aws/) ou via le [AWS Support](https://aws.amazon.com/support) Premium.

Mettez à jour votre livre de recettes en ajoutant une recette qui fait référence au JSON personnalisé stocké sur l'instance.

Vous pouvez spécifier des informations au format JSON personnalisé chaque fois que vous créez, mettre à jour ou clonez une pile, ou lorsque vous exécutez une commande de pile ou de déploiement. Cela est utile, par exemple, pour rendre une petite portion invariable de données accessible à vos recettes sur l'instance au lieu d'obtenir ces données à partir d'une base de données. Pour de plus amples informations, veuillez consulter [Utilisation du JSON personnalisé](workingstacks-json.md). 

Pour cette procédure pas à pas, vous allez utiliser JSON personnalisé pour fournir des informations fictives à propos d'une facture client. Le JSON personnalisé est décrit ultérieurement dans cette étape.

**Pour mettre à jour le livre de recettes sur l'instance et exécuter la nouvelle recette**

1. Sur votre ordinateur local, dans le sous-répertoire `recipes` du répertoire `opsworks_cookbook_demo`, créez un fichier nommé `custom_json.rb` qui contient le code de recette suivant : 

   ```
   Chef::Log.info("********** For customer '#{node['customer-id']}' invoice '#{node['invoice-number']}' **********")
   Chef::Log.info("********** Invoice line number 1 is a '#{node['line-items']['line-1']}' **********")
   Chef::Log.info("********** Invoice line number 2 is a '#{node['line-items']['line-2']}' **********")
   Chef::Log.info("********** Invoice line number 3 is a '#{node['line-items']['line-3']}' **********")
   ```

   Cette recette affiche des messages dans le journal relatifs aux valeurs du JSON personnalisé.

1. Depuis le terminal ou l'invite de commande, utilisez la commande **tar** pour créer une nouvelle version du fichier `opsworks_cookbook_demo.tar.gz`, qui contient le répertoire `opsworks_cookbook_demo` et son contenu chargé.

1. Chargez le fichier `opsworks_cookbook_demo.tar.gz` mis à jour dans votre compartiment S3.

1. Suivez les procédures décrites dans [Étape 5 : Mettre à jour le livre de recettes sur l'instance et exécuter la recette](gettingstarted-cookbooks-copy-cookbook.md) pour mettre à jour le livre de recettes sur l'instance et exécuter la recette. Dans la procédure « Pour exécuter la recette », pour **Recipes to execute (Recettes à exécuter)**, tapez **opsworks\$1cookbook\$1demo::custom\$1json**. Pour **Advanced (Avancé)**, **Custom Chef JSON (JSON Chef personnalisé)**, tapez le JSON personnalisé suivant :

   ```
   {
     "customer-id": "0123",
     "invoice-number": "9876",
     "line-items": {
       "line-1": "tractor",
       "line-2": "passenger car",
       "line-3": "trailer"
     }
   }
   ```

**Pour tester la recette**

1. Avec la page **Running command execute\$1recipes (Exécution de la commande execute\$1recipes)** affichée à partir des procédures précédentes, pour **cookbooks-demo1**, pour **Log (Journal)**, choisissez **show (afficher)**. La page de journal **execute\$1recipes** s'affiche.

1. Faites défiler le journal pour trouver les entrées similaires aux entrées suivantes :

   ```
   [2015-11-14T14:18:30+00:00] INFO: ********** For customer '0123' invoice '9876' **********
   [2015-11-14T14:18:30+00:00] INFO: ********** Invoice line number 1 is a 'tractor' **********
   [2015-11-14T14:18:30+00:00] INFO: ********** Invoice line number 2 is a 'passenger car' **********
   [2015-11-14T14:18:30+00:00] INFO: ********** Invoice line number 3 is a 'trailer' **********
   ```

   Ces entrées affichent les informations du JSON personnalisé saisies dans la zone **Advanced (Avancé)**, **Custom Chef JSON (JSON Chef personnalisé)**.

À l'[étape suivante](gettingstarted-cookbooks-data-bags.md), vous allez mettre à jour le livre de recettes pour obtenir des informations provenant des sacs de données, qui sont des ensembles de paramètres de pile que OpsWorks Stacks stocke sur chaque instance.