

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á.

# Usar JSON personalizado
<a name="workingstacks-json"></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).

Várias ações do OpsWorks Stacks permitem que você especifique um JSON personalizado, que o OpsWorks Stacks instala em instâncias e pode ser usado por receitas.

Você pode especificar JSON personalizado nas seguintes situações:
+ Quando você cria, atualiza ou clona um stack.

  [O AWS OpsWorks Stacks instala o JSON personalizado em todas as instâncias para todos os eventos subsequentes do ciclo de vida.](workingcookbook-events.md)
+ Quando você executa um comando de implantação ou stack.

  O AWS OpsWorks Stacks passa o JSON personalizado para instâncias somente para esse evento.

O JSON personalizado deve ser representado por e formatado como um objeto JSON válido. Por exemplo:

```
{
  "att1": "value1",
  "att2": "value2"
  ...
}
```

OpsWorks O Stacks armazena JSON personalizado nos seguintes locais:

Em instâncias do Linux:
+ `/var/chef/runs/run-ID/attribs.json`
+ `/var/chef/runs/run-ID/nodes/hostname.json`

Em instâncias do Windows:
+ `drive:\chef\runs\run-ID\attribs.json`
+ `drive:\chef\runs\run-ID\nodes\hostname.json`

**nota**  
No Chef 11.10 e em versões anteriores para o Linux, o JSON personalizado está localizado no seguinte caminho em instâncias do Linux; instâncias do Windows não estão disponíveis e não há um arquivo `attribs.json`. Os logs são armazenados na mesma pasta ou diretório que o JSON. Para obter mais informações sobre JSON personalizado no Chef 11.10 e em versões anteriores para o Linux, consulte [Overriding Attributes with Custom JSON](https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-json-override.html) e [Chef Logs](https://docs.aws.amazon.com/opsworks/latest/userguide/troubleshoot-debug-log.html#troubleshoot-debug-log-instance).  
`/var/lib/aws/opsworks/chef/hostname.json`

Nos caminhos anteriores, *run-ID* é um ID exclusivo que o OpsWorks Stacks atribui a cada execução do Chef em uma instância e *hostname* é o nome do host da instância.

Para acessar o JSON personalizado a partir das receitas do Chef, use a sintaxe `node` padrão do Chef.

Por exemplo, suponha que você deseje definir configurações simples para uma aplicação que quer implantar, como se a aplicação fica inicialmente visível e as cores de primeiro e segundo plano iniciais. Suponha que você defina essas configurações da aplicação com um objeto JSON da seguinte forma: 

```
{
  "state": "visible",
  "colors": {
    "foreground": "light-blue",
    "background": "dark-gray"
  }
}
```

Para declarar o JSON personalizado para um stack:

1. Na página de pilhas, escolha **Stack Settings** e **Edit**.

1. Para **Custom Chef JSON**, digite o objeto JSON e, em seguida, escolha **Save**.

**nota**  
Você pode declarar um JSON personalizado nos níveis de implantação, layer e pilha. Você pode querer fazer isso se quiser que alguns JSON personalizados fiquem visíveis apenas para uma implantação ou um layer individual. Ou, por exemplo, você pode querer substituir temporariamente JSON personalizados declarados no nível da stack por JSON personalizados declarados no nível do layer. Se você declarar JSON personalizados em vários níveis, os JSON personalizados declarados no nível da implantação substituirão os JSON personalizados declarados nos níveis de layer e pilha. Os JSON personalizados declarados no nível da camada substituem qualquer os JSON personalizados declarados apenas no nível da pilha.  
**Para usar o console OpsWorks Stacks para especificar JSON personalizado para uma implantação, na página **Implantar aplicativo**, escolha Avançado.** Insira o JSON personalizado na caixa **Custom Chef JSON** e escolha a opção **Save**.  
Para usar o console OpsWorks Stacks para especificar JSON personalizado para uma camada, na página **Camadas**, escolha **Configurações** para a camada desejada. Digite o JSON personalizado na caixa **Custom JSON** e escolha **Save**.  
Para obter mais informações, consulte [Editando a configuração de uma OpsWorks camada](workinglayers-basics-edit.md) e [Implementação de aplicativos](workingapps-deploying.md).

Quando você executa um comando de implantação ou stack, as receitas podem recuperar esses valores personalizados usando a sintaxe `node` padrão do Chef, que mapeia diretamente para a hierarquia no objeto JSON personalizado. Por exemplo, o seguinte código de receita grava mensagens para o log do Chef sobre os valores anteriores do JSON personalizado:

```
Chef::Log.info("********** The app's initial state is '#{node['state']}' **********")
Chef::Log.info("********** The app's initial foreground color is '#{node['colors']['foreground']}' **********")
Chef::Log.info("********** The app's initial background color is '#{node['colors']['background']}' **********")
```

Essa abordagem pode ser útil para passar dados para receitas. OpsWorks O Stacks adiciona esses dados à instância, e as receitas podem recuperar os dados usando a sintaxe padrão do Chef`node`. 

**nota**  
JSON personalizado é limitado a 120 KB. Caso precise de mais capacidade, recomendamos armazenar alguns dados no Amazon Simple Storage Service (Amazon S3). Suas receitas personalizadas podem usar a [CLI da AWS](https://aws.amazon.com/documentation/cli/) ou o [AWS SDK para Ruby](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/) para fazer download dos dados do bucket do Amazon S3 para sua instância.