ステップ 12: カスタム JSON を使用するようにクックブックを更新する - AWS OpsWorks

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

ステップ 12: カスタム JSON を使用するようにクックブックを更新する

重要

AWS OpsWorks Stacks は新規顧客を受け付けなくなりました。既存のお客様は、2024 年 5 月 26 日までは OpsWorks コンソール、 API、 CLI、および CloudFormation リソースを通常どおり使用できますが、その時点でこれらのリソースは廃止されます。この移行に備えて、できるだけ早くスタックを AWS Systems Manager に移行することをおすすめします。詳細については、AWS OpsWorks Stacks サポート終了に関する FAQ および AWS Systems Manager アプリケーションマネージャへの AWS OpsWorks Stacks アプリケーションの移行 を参照してください。

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

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

このウォークスルーでは、カスタム 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 の値についてログにメッセージを表示します。

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

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

  4. ステップ 5: インスタンスのクックブックを更新し、レシピを実行する」の手順に従って、インスタンスのクックブックを更新し、レシピを実行します。「レシピを実行するには」の手順の [Recipes to execute] に、「opsworks_cookbook_demo::custom_json」と入力します。[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_recipes] ページを表示した状態で、[cookbooks-demo1]、[Log] の [show] を選択します。[execute_recipes] ログページが表示されます。

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

    [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 からの情報が表示されます。

次のステップでは、クックブックを更新してデータバッグから情報を入手します。これらは AWS OpsWorks スタックが各インスタンスに保存するスタック設定のコレクションです。