

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ステップ 12: カスタム JSON を使用するようにクックブックを更新する
<a name="gettingstarted-cookbooks-custom-json"></a>

**重要**  
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、[AWS re:Post](https://repost.aws/) または[AWS プレミアムサポート](https://aws.amazon.com/support)を通じて AWS サポート チームにお問い合わせください。

インスタンスに保存されているカスタム JSON を参照するレシピを追加してクックブックを更新します。

スタックを作成、更新、またはクローン化するたび、あるいはデプロイまたはスタックコマンドを実行するたびに、カスタム JSON 形式で情報を指定できます。これは、データベースからこのデータを取得する代わりに、インスタンスのレシピでデータのごく一部を固定するときに役立ちます。詳細については、「[カスタム JSON の使用](workingstacks-json.md)」を参照してください。

このウォークスルーでは、カスタム JSON を使用して顧客の請求書に関する架空の情報を提供します。カスタム JSON については、このステップの後半で説明します。

**インスタンスのクックブックを更新し、新しいレシピを実行するには**

1. ローカルワークステーションの `recipes` ディレクトリにある `opsworks_cookbook_demo` サブディレクトリで、以下のレシピコードを含む `custom_json.rb` という名前のファイルを作成します。

   ```
   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']}' **********")
   ```

   このレシピは、カスタム JSON の値についてログにメッセージを表示します。

1. ターミナルまたはコマンドプロンプトで、**tar** コマンドを使用して `opsworks_cookbook_demo.tar.gz` というファイルの新しいバージョンを作成します。これには、`opsworks_cookbook_demo` ディレクトリとその更新されたコンテンツが含まれます。

1. 更新済みの `opsworks_cookbook_demo.tar.gz` ファイルを S3 バケットにアップロードします。

1. 「[ステップ 5: インスタンスのクックブックを更新し、レシピを実行する](gettingstarted-cookbooks-copy-cookbook.md)」の手順に従って、インスタンスのクックブックを更新し、レシピを実行します。「レシピを実行するには」の手順の [**Recipes to execute**] に、「**opsworks\$1cookbook\$1demo::custom\$1json**」と入力します。[**Advanced**]、[**Custom Chef JSON**] に、次のカスタム JSON を入力します。

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

**レシピをテストするには**

1. 前の手順の [**Running command execute\$1recipes**] ページを表示した状態で、[**cookbooks-demo1**]、[**Log**] の [**show**] を選択します。[**execute\$1recipes**] ログページが表示されます。

1. ログを下にスクロールして、次のようなエントリを見つけます。

   ```
   [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' **********
   ```

   これらのエントリには、[**Advanced**]、[**Custom Chef JSON**] ボックスに入力したカスタム JSON からの情報が表示されます。

[次のステップ](gettingstarted-cookbooks-data-bags.md)では、クックブックを更新してデータバッグから情報を取得します。データバッグは、 OpsWorks スタックが各インスタンスに保存するスタック設定のコレクションです。