カスタムによる属性の上書き JSON - AWS OpsWorks

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

カスタムによる属性の上書き JSON

重要

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

注記

なぜなら、 AWS OpsWorks スタックは、Windows スタックでは Linux スタックとは異なる方法で Chef の実行を処理します。このセクションで説明する手法を Windows スタックで使用することはできません。

を上書きする最も簡単な方法 AWS OpsWorks スタック属性は、スタック設定とデプロイ属性だけでなくJSON、組み込みおよびカスタムクックブック属性よりも優先されるカスタム で定義することですdefault。詳細については、「属性の優先順位」を参照してください。

重要

スタック設定およびデプロイ属性を上書きする場合は注意が必要です。例えば、opsworks 名前空間の属性を上書きすると、組み込みのレシピに問題が生じる可能性があります。詳細については、「スタック設定およびデプロイメント属性」を参照してください。

カスタム を使用して一意の属性JSONを定義することもできます。通常は、カスタムレシピにデータを渡すためです。属性は単にノードオブジェクトに組み込まれ、レシピは標準の Chef ノード構文を使用してオブジェクトを参照できます。

カスタム を指定する方法 JSON

カスタム を使用して属性値をJSON上書きするには、まず属性の完全修飾属性名を決定する必要があります。次に、上書きする属性を含むJSONオブジェクトを作成し、 を任意の値に設定します。わかりやすくするために、「スタック設定およびデプロイ属性: Linux」および「組み込みクックブックの属性」に、一般的に使用されるスタック設定、デプロイ、および組み込みのクックブックの属性、およびそれらの完全修飾名がまとめられています。

オブジェクトの親子関係は、適切な完全修飾 Chef ノードに対応している必要があります。たとえば、Apache の次の属性を変更するとします。

  • ノードが node[:apache][:keepalivetimeout] であり、デフォルト値が 3 である keepalivetimeout 属性。

  • ノードが node[:apache][:logrotate][:schedule] であり、デフォルト値が "daily" である logrotate schedule 属性。

属性を上書きし"weekly"、値をそれぞれ 5および に設定するには、次のカスタム を使用しますJSON。

{ "apache" : { "keepalivetimeout" : 5, "logrotate" : { "schedule" : "weekly" } } }

カスタムを指定するタイミング JSON

次のタスクにカスタムJSON構造を指定できます。

タスクごとに、 AWS OpsWorks スタックは、カスタムJSON属性をスタック設定およびデプロイ属性とマージし、インスタンスに送信してノードオブジェクトにマージします。ただし、以下の点に注意してください。

  • スタックの作成、クローン作成、または更新JSON時にカスタム を指定すると、属性は後続のすべてのライフサイクルイベントとスタックコマンドのスタック設定とデプロイ属性にマージされます。

  • デプロイJSONにカスタムを指定すると、属性は対応するイベントに対してのみスタック設定とデプロイ属性にマージされます。

    これらのカスタム属性を後続のデプロイに使用する場合は、カスタムを再度明示的に指定する必要がありますJSON。

レシピによって使用される場合、属性はインスタンスにのみ影響することを覚えておく必要があります。属性値を上書きしても、それ以降のレシピでその属性が参照されない場合、その変更は有効ではありません。関連するレシピを実行する前にカスタムJSONが送信されていることを確認するか、適切なレシピが再実行されることを確認する必要があります。

カスタムJSONベストプラクティス

カスタム を使用して、任意の JSONを上書きできます。 AWS OpsWorks スタック属性ですが、手動での情報の入力はやや面倒であり、ソース管理の対象ではありません。Custom JSONは、以下の目的で最適に使用されます。

  • 少数の属性のみを上書きする必要があり、その他の目的でカスタムクックブックを使用する必要がない場合。

    カスタム を使用するとJSON、クックブックリポジトリをセットアップして維持するオーバーヘッドを回避して、いくつかの属性を上書きできます。

  • パスワードや認証キーなどの機密情報を含む値。

    クックブック属性はリポジトリに保存されるため、どの機密情報にも何らかの漏洩のリスクがあります。代わりに、ダミー値で属性を定義しJSON、カスタム を使用して実際の値を設定します。

  • 異なることが予想される値。

    たとえば、本稼働用スタックを別の開発およびステージングスタックでサポートする方法が推奨されています。これらのスタックが、支払いを受け付けるアプリケーションをサポートしているとします。カスタム を使用して支払いエンドポイントJSONを指定する場合は、ステージングスタックURLのテストを指定できます。更新されたスタックを本番稼働用スタックに移行する準備ができたら、同じクックブックを使用し、カスタム を使用して支払いエンドポイントを本番稼働用 JSONに設定することができますURL。

  • 特定のスタックまたはデプロイコマンドに固有の値。