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 não está mais aceitando novos clientes. Os clientes atuais poderão usar o console do OpsWorks, a API, a CLI e os recursos do CloudFormation normalmente até 26 de maio de 2024, quando serão descontinuados. Para se preparar para essa transição, recomendamos que você transfira suas pilhas para o AWS Systems Manager o mais rápido possível. Para obter mais informações, consulte AWS OpsWorks Stacks Perguntas frequentes sobre o fim da vida útil e Como migrar seus aplicativos AWS OpsWorks Stacks para o Application Manager AWS Systems Manager.

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

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

  • Quando você cria, atualiza ou clona um stack.

    O AWS OpsWorks Stacks instala JSON personalizado em todas as instâncias para todos os eventos de ciclo de vida subsequentes.

  • Quando você executa um comando de implantação ou stack.

    O AWS OpsWorks Stacks passa o JSON personalizado às instâncias apenas para esse evento.

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

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

O AWS OpsWorks 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 do AWS OpsWorks Stacks para especificar o JSON personalizado de uma implantação, acesse a página Deploy App (Implantar aplicativo) e escolha a opção Advanced (Avançado). Insira o JSON personalizado na caixa Custom Chef JSON e escolha a opção Save.

Para usar o console do AWS OpsWorks Stacks para especificar JSON personalizado para um layer, na página Layers (Camadas), escolha Settings (Configurações) para a camada desejada. Digite o JSON personalizado na caixa Custom JSON e escolha Save.

Para obter mais informações, consulte Como editar a configuração de uma OpsWorks Layer 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 recuperá-los usando uma sintaxe node padrão do Chef.

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.