Usar JSON personalizado - AWS OpsWorks

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

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 ou por meio do Premium AWS Support.

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

Você pode especificar JSON personalizado nas seguintes situações:

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

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

AWS 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 e Chef Logs.

/var/lib/aws/opsworks/chef/hostname.json

Nos caminhos anteriores, run-ID é um ID exclusivo que o AWS OpsWorks Stacks atribui a cada execução do Chef em uma instância, e hostname é o nome de 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.

  2. 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 AWS OpsWorks Stacks para especificar o 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 AWS 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 e Implementação de aplicativos.

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. AWS OpsWorks O Stacks adiciona esses dados à instância, e as receitas podem recuperar os dados usando a sintaxe padrão do Chefnode.

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 ou o AWS SDK for Ruby para fazer download dos dados do bucket do Amazon S3 para sua instância.