翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
カスタム の使用 JSON
重要
- AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、 にお問い合わせください。 AWS Support でのチーム AWS re:Post
複数 AWS OpsWorks スタックアクションではJSON、カスタム を指定できます。 AWS OpsWorks スタックはインスタンスにインストールされ、レシピで使用できます。
カスタム は、次の状況JSONで指定できます。
-
スタックを作成、更新、またはクローン化する
AWS OpsWorks スタックは、後続のすべてのライフサイクルイベントについて、すべてのインスタンスJSONにカスタム をインストールします。 AWS OpsWorks スタックライフサイクルイベント
-
デプロイメントコマンドまたはスタックコマンドを実行する
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 Logs による属性の上書き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 に を割り当てます。hostname
はインスタンスのホスト名です。
Chef レシピJSONからカスタムにアクセスするには、標準の Chef node
構文を使用します。
たとえば、デプロイするアプリケーション用のシンプルな設定 (アプリケーションが最初に表示されるかどうか、アプリケーションの初期の前景色と背景色など) を定義するとします。次のようにJSON、 オブジェクトを使用してこれらのアプリ設定を定義するとします。
{ "state": "visible", "colors": { "foreground": "light-blue", "background": "dark-gray" } }
スタックのカスタムJSONを宣言するには:
-
スタックのページで、[Stack Settings]、[Edit] の順番に選択します。
-
カスタム Chef JSONに JSON オブジェクトを入力し、保存 を選択します。
注記
デプロイJSON、レイヤー、スタックレベルでカスタムを宣言できます。カスタムの一部を個々のデプロイまたはレイヤーにのみJSON表示する場合は、これを行うことをお勧めします。または、例えば、スタックレベルでJSON宣言されたカスタムを、レイヤーレベルでJSON宣言されたカスタムで一時的に上書きできます。複数のレベルでカスタムJSONを宣言する場合、デプロイレベルでJSON宣言されたカスタムは、レイヤーレベルとスタックレベルの両方でJSON宣言されたカスタムよりも優先されます。レイヤーレベルでJSON宣言されたカスタムは、スタックレベルでのみJSON宣言されたカスタムよりも優先されます。
を使用するには AWS OpsWorks デプロイのカスタムを指定するスタックコンソールJSONで、アプリのデプロイページでアドバンスト を選択します。Custom Chef JSON ボックスにJSONカスタムを入力し、保存 を選択します。
を使用するには AWS OpsWorks スタックコンソールでレイヤーJSONのカスタムを指定し、レイヤーページで目的のレイヤーの設定を選択します。カスタム ボックスにJSONカスタム JSON を入力し、保存 を選択します。
詳細については、「 OpsWorks レイヤーの設定の編集」および「アプリケーションのデプロイ」を参照してください。
デプロイコマンドまたはスタックコマンドを実行すると、レシピは標準の Chef node
構文を使用してこれらのカスタム値を取得できます。これは、カスタムJSONオブジェクトの階層に直接マッピングされます。例えば、次のレシピコードは、前述のカスタム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