属性の優先順位 - AWS OpsWorks

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

属性の優先順位

重要

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

属性を一意に定義した場合、Chef によってその属性はノードオブジェクトに組み込まれるだけです。ただし、任意の属性ソースが任意の属性を定義できるため、同じ属性に複数の定義が存在し、値が異なる可能性があります。例えば、組み込みのapache2クックブックは を定義しますがnode[:apache][:keepalive]、カスタムJSONまたはカスタムクックブックでその属性を定義することもできます。属性に複数の定義がある場合、後で説明する順序に従って定義が評価され、最も優先順位の高い定義がノードオブジェクトに組み込まれます。

属性は次のように定義されます。

node.type[:attribute][:sub_attribute][:...]=value

属性に複数の定義がある場合、タイプによって優先される定義が決まり、その定義がノードオブジェクトに組み込まれます。 AWS OpsWorks スタックでは、次の属性タイプを使用します。

  • default (デフォルト) - これは最も一般的なタイプであり、基本的に「この属性がまだ定義されていない場合はこの値を使用する」ことを意味します。属性のすべての定義が default タイプである場合、評価順序の最初の定義が優先され、それ以降の値は無視されます。次の点に注意してください。 AWS OpsWorks スタックは、すべてのスタック設定とデプロイ属性定義を default type に設定します。

  • normal (通常) - このタイプの属性は、評価順序で以前に定義されているすべての default または normal 属性を上書きします。たとえば、組み込みクックブックの最初の属性が default タイプであり、2 番目が normal タイプのユーザー定義属性である場合、2 番目の定義が優先されます。

  • set (セット) - これは、古いクックブックに表示される可能性のある非推奨のタイプです。このタイプは、優先順位が同じである normal に置き換えられました。

Chef は、他のすべての属性定義よりも優先される automatic タイプなど、いくつかの追加属性タイプをサポートしています。Chef の Ohai ツールによって生成された属性定義は、すべて automatic タイプであるため、事実上読み取り専用です。上書きする理由がなく、 と異なるため、通常は問題ではありません。 AWS OpsWorks スタックの属性。ただし、カスタムクックブック属性の名前を指定するときには、Ohai 属性とは異なる名前になるように注意する必要があります。詳細については、「属性について」を参照してください。

注記

Ohai ツールは、コマンドラインから実行できる実行可能ファイルです。インスタンスの Ohai 属性のリストを取得するには、ターミナルウィンドウでインスタンスにログインし、ohai を実行します。それによって非常に長い出力が生成することに注意してください。

ノードオブジェクトにさまざまな属性定義を組み込む手順を以下に示します。

  1. カスタムスタック設定属性をスタック設定属性とデプロイ属性にマージします。

    カスタムJSON属性は、スタックまたは特定のデプロイに対して設定できます。これらの属性は最初に評価されるため、事実上 normal タイプです。カスタム でも 1 つ以上のスタック設定属性が定義されている場合JSON、カスタムJSON値が優先されます。それ以外の場合 AWS OpsWorks スタックは、カスタムJSON属性をスタック設定に組み込むだけです。

  2. デプロイカスタムJSON属性をスタック設定とデプロイ属性にマージします。

    デプロイカスタムJSON属性も効果的なnormalタイプであるため、組み込みおよびカスタムスタック設定、およびJSON組み込みデプロイ よりも優先されますJSON。

  3. インスタンスのノードオブジェクトにスタック設定およびデプロイ属性をマージします。

  4. インスタンスの組み込みクックブック属性をノードオブジェクトにマージします。

    組み込みクックブック属性はすべて default タイプです。1 つ以上の組み込みクックブック属性がスタック設定とデプロイ属性でも定義されている場合、通常はカスタムで定義しているためJSON、スタック設定定義は組み込みクックブック定義よりも優先されます。他の組み込みクックブック属性はすべて、単にノードオブジェクトに組み込まれます。

  5. インスタンスのカスタムクックブック属性をノードオブジェクトにマージします。

    カスタムクックブック属性は、通常 normal タイプまたは default タイプです。一意の属性はノードオブジェクトに組み込まれます。ステップ 1~3 でもカスタムクックブック属性が定義されている場合 (通常はカスタム で定義した場合JSON)、優先順位はカスタムクックブック属性のタイプによって異なります。

    • ステップ 1~3 で定義された属性は、カスタムクックブック default 属性よりも優先されます。

    • カスタムクックブック normal 属性は、ステップ 1~3 の定義よりも優先されます。

重要

スタック設定属性または組み込みクックブック属性を上書きするために、カスタムクックブックの default 属性を使用しないでください。カスタムクックブックの属性は最後に評価されるため、default 属性の優先順位は最も低く、何も上書きすることができません。