Atualizar configurações do componente
As configurações de componente são objetos JSON que definem os parâmetros de cada componente. A fórmula de cada componente define sua configuração padrão, que você modifica ao implantar componentes em dispositivos principais.
Ao criar uma implantação, você pode especificar a atualização de configuração que será aplicada a cada componente. As atualizações de configuração são operações de patch, ou seja, a atualização modifica a configuração do componente que existe no dispositivo principal. Se o dispositivo principal não tiver o componente, a atualização de configuração modificará e aplicará a configuração padrão a essa implantação.
A atualização de configuração define atualizações de redefinição e de mesclagem. As atualizações de redefinição determinam os valores de configuração que devem ser redefinidos aos padrões ou removidos. As atualizações de mesclagem determinam os novos valores de configuração que serão definidos no componente. Quando você implanta uma atualização de configuração, o software de núcleo do AWS IoT Greengrass executa a atualização de redefinição antes da atualização de mesclagem.
Os componentes podem validar as atualizações de configuração que você implanta. O componente faz a assinatura para receber uma notificação quando a implantação altera sua configuração e pode rejeitar uma configuração à qual não ofereça suporte. Para ter mais informações, consulte Interagir com a configuração do componente.
Atualizações de redefinição
As atualizações de redefinição determinam os valores que devem ser redefinidos aos padrões no dispositivo principal. Se um valor de configuração não tiver um padrão, a atualização de redefinição o removerá da configuração do componente. Isso pode ajudar você a corrigir um componente com falha por causa de uma configuração inválida.
Use uma lista de ponteiros JSON para determinar os valores de configuração que devem ser redefinidos. Os ponteiros JSON começam com uma barra /
. Para identificar um valor em uma configuração de componente aninhado, use barras (/
) para separar as chaves de cada nível na configuração. Para obter mais informações, consulte a Especificação de ponteiros JSON
nota
Você pode redefinir somente uma lista inteira aos valores padrão. Você não pode usar as atualizações de redefinição para redefinir apenas um elemento de uma lista.
Para redefinir toda a configuração de um componente aos valores padrão, especifique uma única string vazia como a atualização de redefinição.
"reset": [""]
Atualizações de mesclagem
As atualizações de mesclagem definem os valores de configuração que serão inseridos na configuração do componente no núcleo. A atualização de mesclagem é um objeto JSON que o software de núcleo do AWS IoT Greengrass mescla depois de redefinir os valores nos caminhos que você especifica na atualização de redefinição. Ao usar os SDKs da AWS CLI ou da AWS, você deve serializar esse objeto JSON como uma string.
Você pode mesclar um par de chave/valor que não existe na configuração padrão do componente. Você também pode mesclar um par de chave/valor que tenha um tipo diferente do valor com a mesma chave. O novo valor substitui o valor antigo. Isso significa que você pode alterar a estrutura do objeto de configuração.
Você pode mesclar valores nulos e strings, listas e objetos vazios.
nota
Você não pode usar atualizações de mesclagem com a finalidade de inserir ou anexar um elemento a uma lista. Você pode substituir uma lista inteira ou definir um objeto em que cada elemento tenha uma chave exclusiva.
O AWS IoT Greengrass usa JSON para valores de configuração. O JSON especifica um tipo de número, mas não diferencia entre números inteiros e flutuantes. Como resultado, os valores de configuração podem ser convertidos em flutuantes no AWS IoT Greengrass. Para garantir que seu componente use o tipo de dados correto, recomendamos que você defina valores de configuração numéricos como strings. Em seguida, faça com que seu componente os analise como números inteiros ou flutuantes. Isso garante que seus valores de configuração tenham o mesmo tipo na configuração e no seu dispositivo principal.
Usar variáveis de fórmula em atualizações de mesclagem
Esse recurso está disponível para a versão 2.6.0 e posterior do componente de núcleo do Greengrass.
Se você definir a opção de configuração interpolateComponentConfiguration do núcleo do Greengrass como true
, poderá usar variáveis de fórmula, que não seja a variável de fórmula
, nas atualizações de mesclagem. Por exemplo, você pode usar a variável de fórmula component_dependency_name
:configuration:json_pointer
{iot:thingName}
em uma atualização de mesclagem para incluir o nome do item do AWS IoT dispositivo principal em um valor de configuração do componente, como uma política de autorização de comunicação entre processos (IPC).
Exemplos
O exemplo a seguir demonstra as atualizações de configuração para um componente do painel que tem a configuração padrão abaixo. Este componente de exemplo exibe informações sobre equipamentos industriais.
{ "name": null, "mode": "REQUEST", "network": { "useHttps": true, "port": { "http": 80, "https": 443 }, }, "tags": [] }
exemplo Exemplo 1: atualização de mesclagem
Você cria uma implantação que aplica a atualização de configuração a seguir, que especifica uma atualização de mesclagem, mas não uma atualização de redefinição. Essa atualização de configuração instrui o componente a exibir o painel na porta HTTP 8080 com os dados de duas caldeiras.
Após essa atualização, o componente do painel terá a configuração abaixo.
{ "name": "Factory 2A", "mode": "REQUEST", "network": { "useHttps": false, "port": { "http": 8080, "https": 443 } }, "tags": [ "/boiler/1/temperature", "/boiler/1/pressure", "/boiler/2/temperature", "/boiler/2/pressure" ] }
exemplo Exemplo 2: redefinir e mesclar atualizações
Em seguida, você cria uma implantação que aplica a atualização de configuração a seguir, que especifica uma atualização de redefinição e uma de mesclagem. Essas atualizações especificam a exibição do painel na porta HTTPS padrão com os dados das caldeiras diferentes. Essas atualizações modificam a configuração resultante das atualizações de configuração no exemplo anterior.
Após essa atualização, o componente do painel terá a configuração abaixo.
{ "name": "Factory 2A", "mode": "REQUEST", "network": { "useHttps": true, "port": { "http": 8080, "https": 443 } }, "tags": [ "/boiler/3/temperature", "/boiler/3/pressure", "/boiler/4/temperature", "/boiler/4/pressure", ] }