

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

**Important**  
Le AWS OpsWorks Stacks service a atteint sa fin de vie le 26 mai 2024 et a été désactivé tant pour les nouveaux clients que pour les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez l' AWS Support équipe sur [AWS Re:Post](https://repost.aws/) ou via le [AWS Support](https://aws.amazon.com/support) Premium.

Les recettes et les modèles dépendent de différents valeurs, telles que les paramètres de configuration. Plutôt que de coder ces valeurs en dur directement dans les recettes ou les modèles, vous pouvez créer un fichier attribut avec un attribut représentant chaque valeur. Vous utilisez ensuite les attributs dans vos recettes ou modèles, au lieu des valeurs explicites. L'avantage de l'utilisation des attributs est que vous pouvez remplacer leurs valeurs sans toucher le livre de recettes. Pour cette raison, vous devez toujours utiliser des attributs pour définir les types de valeurs suivants :
+ Valeurs susceptibles de varier de pile en pile ou avec le temps, comme les noms d'utilisateur.

  Si vous codez ces valeurs en dur, vous devez modifier le modèle ou la recette chaque fois que vous avez besoin de changer une valeur. En utilisant des attributs pour définir ces valeurs, vous pouvez utiliser les mêmes livres de recettes pour chaque pile et juste remplacer les attributs appropriés.
+ Valeurs sensibles, telles que mots de passe ou clés secrètes.

  Le placement de valeurs sensibles explicites dans votre livre de recettes peut accroître le risque d'exposition. Au lieu de cela, définissez les attributs avec des valeurs fictives et remplacez-les pour définir les valeurs réelles. Le meilleur moyen de remplacer ces attributs est un JSON personnalisé. Pour de plus amples informations, veuillez consulter [Utilisation du JSON personnalisé](workingcookbook-json-override.md).

Pour plus d'informations sur les attributs et leur remplacement, consultez [Remplacement des attributs](workingcookbook-attributes.md). 

L'exemple suivant constitue une partie d'un exemple de fichier attribut.

```
...
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 Stacks définit les attributs en utilisant la syntaxe suivante :

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

Vous pouvez utiliser également le signe deux-points (:), comme suit :

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

Une définition d'attribut comprend les éléments suivants :

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

Le préfixe `node.` est facultatif et généralement omis, comme illustré dans l'exemple.

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

Le type détermine si l'attribut peut être remplacé. OpsWorks Les attributs Stacks utilisent généralement l'un des types suivants :
+ `default` est le type le plus couramment utilisé, car il permet que l'attribut soit remplacé.
+ `normal`définit un attribut qui remplace l'une des valeurs d'attribut OpsWorks Stacks standard.

**Note**  
Chef prend en charge des types supplémentaires, qui ne sont pas nécessaires pour OpsWorks Stacks mais qui peuvent être utiles pour votre projet. Pour plus d'informations, consultez [À propos des attributs](http://docs.chef.io/attributes.html).

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

Le nom d'attribut utilise la syntaxe de nœud Chef standard, `[:attribute][:subattribute][...]`. Vous pouvez utiliser n'importe quel nom de votre choix pour vos attributs. Cependant, comme expliqué dans [Remplacement des attributs](workingcookbook-attributes.md), les attributs de livres de recettes personnalisés sont fusionnés dans l'objet de nœud de l'instance, ainsi que les attributs de configuration et de déploiement de la pile, et l'[outil Ohai](https://docs.chef.io/ohai.html) de Chef. Les noms de configuration généralement utilisés comme *port* ou *utilisateur* peuvent apparaître dans un grand nombre de livres de recettes.

Pour éviter les conflits de nom, la convention consiste à créer des noms d'attribut qualifiés avec au moins deux éléments, comme illustré dans l'exemple. Le premier élément doit être unique et est généralement basé sur un nom de produit, comme *Apache*. Il est suivi d'un ou de plusieurs sous-attributs qui identifient la valeur particulière, comme `[:user]` ou `[:port]`. Vous pouvez utiliser autant de sous-attributs qu'approprié pour votre projet.

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

Un attribut peut être défini avec les types de valeurs suivants :
+ Une chaîne, telle que `default[:apache][:keepalive] = 'Off'`.
+ Un nombre (sans guillemets), tel que `default[:apache][:timeout] = 120`.
+ Une valeur booléenne, qui peut être `true` ou `false` (sans guillemets).
+ Une liste de valeurs, telle que `default[:apache][:listen_ports] = [ '80','443' ]`

Comme le fichier attribut est une application Ruby, vous pouvez également utiliser les opérateurs logiques et syntaxiques de nœud pour attribuer des valeurs basées sur d'autres attributs. Pour plus d'informations sur la façon de définir les attributs, consultez [À propos des attributs](https://docs.chef.io/chef_overview_attributes.html). [Pour des exemples de fichiers d'attributs fonctionnels, consultez les livres de recettes intégrés à OpsWorks Stacks sur opsworks-cookbooks. https://github.com/aws/](https://github.com/aws/opsworks-cookbooks)