

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Precedência de atributo
<a name="workingcookbook-attributes-precedence"></a>

**Importante**  
O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no [AWS re:POST](https://repost.aws/) ou por meio do Premium [AWS Support](https://aws.amazon.com/support).

Se um atributo for unicamente definido, Chef simplesmente o incorpora no objeto de nó. No entanto, qualquer fonte de atributo pode definir qualquer atributo, então é possível para o mesmo atributo ter múltiplas definições com valores diferentes. Por exemplo, livro de receitas `apache2` integrado define `node[:apache][:keepalive]`, mas você também pode definir esse atributo em JSON ou em um livro de receitas personalizados. Se um atributo tiver múltiplas definições, eles são avaliados em uma ordem descrita posteriormente e o objeto de nó recebe a definição com a precedência mais alta.

Um atributo é definido como seguinte:

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

Se um atributo tiver várias definições, o tipo determina qual definição tem precedência e essa definição é incorporada ao objeto do nó. OpsWorks O Stacks usa os seguintes tipos de atributos:
+ **padrão**: esse é o tipo mais comum e significa essencialmente “usar este valor se o atributo ainda não tiver sido definido”. Se todas as definições de um atributo forem do tipo `default`, a primeira definição na ordem de avaliação tem precedência e os valores subsequentes são ignorados. Observe que o OpsWorks Stacks define todas as definições de configuração e atributos de implantação da pilha como `default` tipo.
+ **normal**: atributos com esse tipo sobrepõem quaisquer atributos `default` ou `normal` que foram definidos anteriormente na ordem da avaliação. Por exemplo, se o primeiro atributo for de um livro de receitas integrado e tiver um tipo `default` e o segundo for um atributo definido por usuário com um tipo `normal`, a segunda definição tem precedência.
+ **set**: este é um tipo obsoleto que você pode ver em livros de receitas mais antigos. Foi anulado por `normal`, que tem a mesma precedência. 

Chef oferece suporte a vários tipos de atributo adicionais, incluindo um tipo `automatic` que leva precedência sobre todas outras definições de atributo. As definições de atributo geradas pela ferramenta Ohai do Chef são todas do tipo `automatic`, então elas são, efetivamente, apenas leitura. Isso geralmente não é um problema, porque não há razão para substituí-los e eles são distintos dos atributos dos OpsWorks Stacks. No entanto, você deve ter cuidado ao nomear seus atributos de livro de receitas personalizados para que eles sejam diferentes dos atributos Ohai. Para obter mais informações, consulte [Sobre atributos](http://docs.chef.io/attributes.html).

**nota**  
A ferramenta Ohai é um executável que você pode rodar a partir da linha de comando. Para listar atributos Ohai de uma instância, entre na instância e execute `ohai` em uma janela de terminal. Esteja ciente de que isso produz uma saída muito longa.

Veja as etapas que incorporam as várias definições de atributo no objeto de nó:

1. Une quaisquer atributos de configuração de stack personalizados nos atributos de configuração de stack e implantação. 

   Atributos JSON personalizados podem ser definidos para o stack, ou para uma implantação em particular. Eles são os primeiros na ordem de avaliação e são tipos `normal` eficazes. Se um ou mais atributos de configuração de stack também estiverem definidos em JSON personalizado, os valores de JSON personalizado tomam precedência. Caso contrário, o OpsWorks Stacks incorpora apenas os atributos JSON personalizados na configuração de stack. 

1. Une quaisquer atributos JSON personalizados de implantação nos atributos de configuração de stack e implantação.

   Implantação de atributos JSON personalizados também é eficaz nos tipos `normal`, então eles tomam precedência sobre JSON de configuração de stack integrada e personalizada e JSON de implantação integrada.

1. Une os atributos de implementação e configuração do stack no objeto de nó da instância.

1. Une os atributos de livro de receitas integrados da instância no objeto de nó.

   Os atributos de livro de receitas integrados são todos do tipo `default`. Se um ou mais atributos de livro de receitas integrados também estiverem definidos nos atributos de configuração e implantação da pilha, normalmente porque você os definiu com um JSON personalizado, as definições de configuração da pilha terão precedência sobre as definições do livro de receitas incorporado. Todos os outros atributos de livro de receitas integrados são facilmente incorporados no objeto de nó.

1. Une os atributos de livro de receitas personalizados da instância no objeto de nó.

   Atributos de livro de receitas personalizados são, geralmente, do tipo `normal` ou `default`. Atributos únicos são incorporados no objeto de nó. Se quaisquer atributos de livro de receitas personalizado também foram definidos nas Etapas 1 a 3 (geralmente porque você os definiu com JSON personalizado), a precedência depende do tipo do atributo do livro de receitas personalizado:
   + Os atributos definidos nas Etapas 1 a 3 têm precedência sobre atributos de livros de receitas personalizados. `default`
   + Atributos `normal` de livros de receitas personalizados têm precedência sobre as definições das Etapas 1 a 3. 

**Importante**  
Não use atributos `default` de livro de receitas personalizados para sobrepor configuração de stack ou atributos de livro de receitas integrados. Como atributos de livro de receitas personalizados são avaliados por último, os atributos `default` tem a menor precedência, e não podem sobrepor nada.