

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

# 属性
<a name="workingcookbook-installingcustom-components-attributes"></a>

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

レシピとテンプレートは、設定を指定するさまざまな値に依存しています。それらの値をレシピやテンプレートに直接ハードコードするのではなく、各値を表す属性が記載された属性ファイルを作成します。レシピとテンプレートには、明示的な値ではなく、この属性を指定します。属性を使用する利点は、クックブックに変更を加えることなしに、値を上書きできることです。このような理由から、次に示すタイプの値の定義には、常に属性を使用するようにしてください。
+ ユーザー名などの、スタックごとに異なる、または時間とともに変化する値。

  このような値をハードコードした場合は、値を変更するたびにレシピやテンプレートを変更する必要が生じます。これらの値の定義に属性を使用することで、すべてのスタックに対して同じクックブックを使用し、該当する属性のみを上書きすることができます。
+ パスワードやシークレットキーなどの機密情報を含む値。

  クックブックに機密情報を明示的に入力すると、漏洩の危険が増します。代わりに、ダミーの値を指定した属性を定義し、実際の値は上書きで設定するようにします。値を上書きする最良の方法は、カスタム JSON を使用することです。詳細については、「[カスタム JSON の使用](workingcookbook-json-override.md)」を参照してください。

属性および属性を上書きする方法の詳細については、「[属性の上書き](workingcookbook-attributes.md)」を参照してください。

次の例は、属性ファイルの例の一部です。

```
...
default["apache"]["listen_ports"] = [ '80','443' ]
default["apache"]["contact"] = 'ops@example.com'
default["apache"]["timeout"] = 120
default["apache"]["keepalive"] = 'Off'
default["apache"]["keepaliverequests"] = 100
default["apache"]["keepalivetimeout"] = 3
default["apache"]["prefork"]["startservers"] = 16
default["apache"]["prefork"]["minspareservers"] = 16
default["apache"]["prefork"]["maxspareservers"] = 32
default["apache"]["prefork"]["serverlimit"] = 400
default["apache"]["prefork"]["maxclients"] = 400
default["apache"]["prefork"]["maxrequestsperchild"] = 10000
...
```

 OpsWorks スタックは、次の構文を使用して属性を定義します。

```
node.type["attribute"]["subattribute"]["..."]=value
```

次のように、コロン (:) を使用することもできます。

```
node.type[:attribute][:subattribute][:...]=value
```

属性の定義には、次のようなコンポーネントが含まれます。

## `node.`
<a name="node"></a>

`node.` プレフィックスはオプションです。例に示すように、通常は省略されます。

## `type`
<a name="type"></a>

タイプは、属性を上書きできるかどうかを制御します。 OpsWorks スタック属性は通常、次のいずれかのタイプを使用します。
+ `default` は、属性の上書きが許可されるため、最も一般的に使用されるタイプです。
+ `normal` は、標準の OpsWorks スタック属性値のいずれかを上書きする属性を定義します。

**注記**  
Chef は追加のタイプをサポートしています。これは OpsWorks スタックには必要ありませんが、プロジェクトに役立つ場合があります。詳細については、「[属性について](http://docs.chef.io/attributes.html)」を参照してください。

## `attribute name`
<a name="attribute-name"></a>

属性名には、Chef の標準ノード構文である `[:attribute][:subattribute][...]` を使用します。属性には、希望する任意の名前を使用することができます。ただし、「[属性の上書き](workingcookbook-attributes.md)」で説明されているように、カスタムクックブック属性は、スタック設定とデプロイ属性、および Chef の [Ohai ツール](https://docs.chef.io/ohai.html)とともに、インスタンスのノードオブジェクト内にマージされます。*port* や *user* などは、一般的に使用される設定名であるため、さまざまなクックブックに出現する可能性があります。

名前の競合を避けるためには、命名規則に従います。例に示すように、少なくとも 2 つの要素を使用して修飾した属性名を作成します。1 つ目は、*Apache* のように、通常は製品名に基づいた一意の要素を使用します。次に、`[:user]` や `[:port]` などの、特定の値を識別できる 1 つ以上のサブ属性が続きます。プロジェクトの要件に合った数のサブ属性を使用することができます。

## `value`
<a name="value"></a>

属性は、次のようなタイプの値に設定することができます。
+ `default[:apache][:keepalive] = 'Off'` のような文字列。
+ `default[:apache][:timeout] = 120` のような数値 (引用符なし)。
+ `true` または `false` のブール値 (引用符なし)。
+ `default[:apache][:listen_ports] = [ '80','443' ]` のような値のリスト。

属性ファイルは Ruby アプリケーションです。そのため、ノード構文と論理演算子を使用して、他の属性に基づいた値を割り当てることもできます。属性の定義方法の詳細については、「[属性について](https://docs.chef.io/chef_overview_attributes.html)」を参照してください。属性ファイルの動作例については、[https://github.com/aws/opsworks-cookbooks](https://github.com/aws/opsworks-cookbooks) OpsWorks の スタック組み込みクックブックを参照してください。