カスタム の使用 JSON - AWS OpsWorks

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

カスタム の使用 JSON

重要

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

複数 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を宣言するには:

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

  2. カスタム 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または を使用できます。 AWS SDK for Ruby は、Amazon S3 バケットからインスタンスにデータをダウンロードします。