Étape 14 : Mettre à jour le livre de recettes pour utiliser l'itération - 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.

Étape 14 : Mettre à jour le livre de recettes pour utiliser l'itération

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.

Mettez à jour votre livre de recettes en ajoutant une recette qui utilise l'itération, technique qui répète le code de la recette plusieurs fois. Cette recette affiche les messages du journal relatifs à un élément de conteneur de données qui inclut un contenu multiple.

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é iteration_demo.rb qui contient le code suivant :

    stack = search("aws_opsworks_stack").first Chef::Log.info("********** Content of 'custom_cookbooks_source' **********") stack["custom_cookbooks_source"].each do |content| Chef::Log.info("********** '#{content}' **********") end
    Note

    L'écriture du code de recette précédent est plus courte, plus souple et plus fiable que l'écriture du code suivant qui n'utilise pas l'itération :

    stack = search("aws_opsworks_stack").first Chef::Log.info("********** Content of 'custom_cookbooks_source' **********") Chef::Log::info("********** '[\"type\", \"#{stack['custom_cookbooks_source']['type']}\"]' **********") Chef::Log::info("********** '[\"url\", \"#{stack['custom_cookbooks_source']['url']}\"]' **********") Chef::Log::info("********** '[\"username\", \"#{stack['custom_cookbooks_source']['username']}\"]' **********") Chef::Log::info("********** '[\"password\", \"#{stack['custom_cookbooks_source']['password']}\"]' **********") Chef::Log::info("********** '[\"ssh_key\", \"#{stack['custom_cookbooks_source']['ssh_key']}\"]' **********") Chef::Log::info("********** '[\"revision\", \"#{stack['custom_cookbooks_source']['revision']}\"]' **********")
  2. 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é.

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

  4. Suivez les procédures décrites dans Étape 5 : Mettre à jour le livre de recettes sur l'instance et exécuter la recette 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_cookbook_demo::iteration_demo.

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

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

    [2015-11-16T19:56:56+00:00] INFO: ********** Content of 'custom_cookbooks_source' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["type", "s3"]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["url", "https://s3.amazonaws.com/opsworks-demo-bucket/opsworks_cookbook_demo.tar.gz"]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["username", "secret-key-value"]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["password", "secret-access-key-value"]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["ssh_key", nil]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["revision", nil]' **********

    Cette recette affiche les messages du journal relatifs à un élément de conteneur de données qui inclut un contenu multiple. L'élément de conteneur de données est dans le conteneur de données aws_opsworks_stack. L'élément de conteneur de données possède un contenu nommé custom_cookbooks_source. A l'intérieur de ce contenu figurent six contenus nommés type, url, username, password, ssh_key et revision ; leurs valeurs sont également affichées.

Dans l'étape suivante, vous allez mettre à jour le livre de recettes pour n'exécuter le code de la recette que dans certaines conditions.