カスタム の使用 JSON - AWS OpsWorks

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

カスタム の使用 JSON

重要

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

いくつかの AWS OpsWorks スタックアクションでは、 AWS OpsWorks スタックがインスタンスにインストールしJSON、レシピで使用できるカスタム を指定できます。

カスタム は、以下の状況JSONで指定できます。

  • スタックを作成、更新、またはクローン化する

    AWS OpsWorks スタックは、後続のすべてのライフサイクルイベントのカスタム をすべてのインスタンスJSONにインストールします。

  • デプロイメントコマンドまたはスタックコマンドを実行する

    AWS OpsWorks スタックは、そのイベントのインスタンスにのみカスタムJSONを渡します。

カスタム JSON は、有効な JSON オブジェクトで表され、その形式である必要があります。以下に例を示します。

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

AWS OpsWorks スタックは次のJSON場所にカスタム を保存します。

Linux インスタンスの場合:

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

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

Windows インスタンスの場合:

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

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

注記

Linux 用の Chef 11.10 以前のバージョンでは、カスタム JSONは Linux インスタンスの次のパスにあり、Windows インスタンスは使用できず、 attribs.json ファイルもありません。ログは、 と同じフォルダまたはディレクトリに保存されますJSON。Linux 用の JSON Chef 11.10 以前のバージョンのカスタムの詳細については、「カスタムログと Chef ログによる属性の上書きJSON」を参照してください。 https://docs.aws.amazon.com/opsworks/latest/userguide/troubleshoot-debug-log.html#troubleshoot-debug-log-instance

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

上記のパスでは、 run-IDは AWS OpsWorks スタックがインスタンスで実行される各 Chef に割り当てる一意の ID であり、 hostnameはインスタンスのホスト名です。

Chef レシピJSONからカスタムにアクセスするには、標準の Chef node構文を使用します。

たとえば、デプロイするアプリケーション用のシンプルな設定 (アプリケーションが最初に表示されるかどうか、アプリケーションの初期の前景色と背景色など) を定義するとします。次のようにJSON、 オブジェクトを使用してこれらのアプリ設定を定義するとします。

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

スタックのカスタムJSONを宣言するには:

  1. スタックのページで、[Stack Settings]、[Edit] の順番に選択します。

  2. カスタム Chef でJSON、 JSON オブジェクトを入力し、保存を選択します。

注記

カスタム JSONは、デプロイ、レイヤー、スタックレベルで宣言できます。カスタムを個々のデプロイまたはレイヤーにのみ表示する場合はJSON、これを行うことができます。または、例えば、スタックレベルでJSON宣言されたカスタム をレイヤーレベルでJSON宣言されたカスタム で一時的に上書きできます。JSON 複数のレベルでカスタムを宣言する場合、デプロイレベルでJSON宣言されたカスタムは、レイヤーレベルとスタックレベルの両方でJSON宣言されたカスタムよりも優先されます。レイヤーレベルでJSON宣言されたカスタムは、スタックレベルでのみJSON宣言されたカスタムを上書きします。

AWS OpsWorks スタックコンソールを使用してデプロイJSONのカスタムを指定するには、アプリケーションのデプロイページでアドバンストを選択します。カスタム Chef ボックスにJSONカスタムJSONを入力し、保存を選択します。

AWS OpsWorks スタックコンソールを使用してJSONレイヤーのカスタムを指定するには、レイヤーページで、目的のレイヤーの設定を選択します。カスタム ボックスにJSONカスタム JSON を入力し、保存 を選択します。

詳細については、 OpsWorks レイヤーの設定の編集およびアプリケーションのデプロイを参照してください。

デプロイまたはスタックコマンドを実行すると、レシピは、カスタムJSONオブジェクトの階層に直接マッピングされる標準の Chef node構文を使用して、これらのカスタム値を取得できます。たとえば、次のレシピコードは、前述のカスタムJSON値に関するメッセージを Chef ログに書き込みます。

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

このアプローチは、レシピにデータを渡すのに役立ちます。 AWS OpsWorks スタックはそのデータをインスタンスに追加し、 レシピは標準の Chef node構文を使用してデータを取得できます。

注記

カスタムJSONは 120 KB に制限されています。さらに容量が必要な場合は、Amazon Simple Storage Service (Amazon S3) でデータの一部を保存することをお勧めします。その後、カスタムレシピは AWSCLIまたは を使用してAWS SDK for Ruby、Amazon S3 バケットからインスタンスにデータをダウンロードできます。