Interaja com a configuração do componente - AWS IoT Greengrass

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

Interaja com a configuração do componente

O serviço IPC de configuração do componente permite que você faça o seguinte:

  • Obtenha e defina os parâmetros de configuração do componente.

  • Inscreva-se para receber atualizações de configuração de componentes.

  • Valide as atualizações de configuração dos componentes antes que o núcleo as aplique.

Versões mínimas do SDK

A tabela a seguir lista as versões mínimas do AWS IoT Device SDK que você deve usar para interagir com a configuração do componente.

GetConfiguration

Obtém um valor de configuração para um componente no dispositivo principal. Você especifica o caminho da chave para o qual obter um valor de configuração.

Solicitação

A solicitação dessa operação tem os seguintes parâmetros:

componentName(Python:) component_name

(Opcional) O nome do componente.

O padrão é o nome do componente que faz a solicitação.

keyPath(Python:) key_path

O caminho principal para o valor da configuração. Especifique uma lista em que cada entrada seja a chave para um único nível no objeto de configuração. Por exemplo, especifique ["mqtt", "port"] para obter o valor de port na configuração a seguir.

{ "mqtt": { "port": 443 } }

Para obter a configuração completa do componente, especifique uma lista vazia.

Resposta

A resposta dessa operação tem as seguintes informações:

componentName(Python:) component_name

O nome do componente.

value

A configuração solicitada como um objeto.

UpdateConfiguration

Atualiza um valor de configuração para esse componente no dispositivo principal.

Solicitação

A solicitação dessa operação tem os seguintes parâmetros:

keyPath(Python:) key_path

(Opcional) O caminho da chave para o nó do contêiner (o objeto) a ser atualizado. Especifique uma lista em que cada entrada seja a chave para um único nível no objeto de configuração. Por exemplo, especifique o caminho da chave ["mqtt"] e o valor de mesclagem { "port": 443 } para definir o valor port na configuração a seguir.

{ "mqtt": { "port": 443 } }

O caminho da chave deve especificar um nó de contêiner (um objeto) na configuração. Se o nó não existir na configuração do componente, essa operação o cria e define seu valor para o objeto emvalueToMerge.

O padrão é a raiz do objeto de configuração.

timestamp

O tempo atual da época do Unix em milissegundos. Essa operação usa esse carimbo de data/hora para resolver atualizações simultâneas na chave. Se a chave na configuração do componente tiver um carimbo de data/hora maior do que o carimbo de data/hora na solicitação, a solicitação falhará.

valueToMerge(Python:) value_to_merge

O objeto de configuração a ser mesclado no local especificado por você. keyPath Para ter mais informações, consulte Atualizar configurações de componentes.

Resposta

Essa operação não fornece nenhuma informação em sua resposta.

SubscribeToConfigurationUpdate

Inscreva-se para receber notificações quando a configuração de um componente for atualizada. Ao assinar uma chave, você recebe uma notificação quando algum filho dessa chave é atualizado.

Essa operação é uma operação de assinatura em que você assina um fluxo de mensagens de eventos. Para usar essa operação, defina um manipulador de resposta de fluxo com funções que manipulam mensagens de eventos, erros e encerramento de fluxo. Para ter mais informações, consulte Inscreva-se para receber transmissões de IPC eventos.

Tipo de mensagem do evento: ConfigurationUpdateEvents

Solicitação

A solicitação dessa operação tem os seguintes parâmetros:

componentName(Python:) component_name

(Opcional) O nome do componente.

O padrão é o nome do componente que faz a solicitação.

keyPath(Python:) key_path

O caminho principal para o valor de configuração para o qual se inscrever. Especifique uma lista em que cada entrada seja a chave para um único nível no objeto de configuração. Por exemplo, especifique ["mqtt", "port"] para obter o valor de port na configuração a seguir.

{ "mqtt": { "port": 443 } }

Para assinar as atualizações de todos os valores na configuração do componente, especifique uma lista vazia.

Resposta

A resposta dessa operação tem as seguintes informações:

messages

O fluxo de mensagens de notificação. Esse objeto,ConfigurationUpdateEvents, contém as seguintes informações:

configurationUpdateEvent(Python:) configuration_update_event

O evento de atualização da configuração. Esse objeto,ConfigurationUpdateEvent, contém as seguintes informações:

componentName(Python:) component_name

O nome do componente.

keyPath(Python:) key_path

O caminho principal para o valor de configuração que foi atualizado.

SubscribeToValidateConfigurationUpdates

Inscreva-se para receber notificações antes das atualizações de configuração desse componente. Isso permite que os componentes validem as atualizações de suas próprias configurações. Use a SendConfigurationValidityReport operação para dizer ao núcleo se a configuração é válida ou não.

Importante

As implantações locais não notificam os componentes sobre atualizações.

Essa operação é uma operação de assinatura em que você assina um fluxo de mensagens de eventos. Para usar essa operação, defina um manipulador de resposta de fluxo com funções que manipulam mensagens de eventos, erros e encerramento de fluxo. Para ter mais informações, consulte Inscreva-se para receber transmissões de IPC eventos.

Tipo de mensagem do evento: ValidateConfigurationUpdateEvents

Solicitação

A solicitação dessa operação não tem nenhum parâmetro.

Resposta

A resposta dessa operação tem as seguintes informações:

messages

O fluxo de mensagens de notificação. Esse objeto,ValidateConfigurationUpdateEvents, contém as seguintes informações:

validateConfigurationUpdateEvent(Python:) validate_configuration_update_event

O evento de atualização da configuração. Esse objeto,ValidateConfigurationUpdateEvent, contém as seguintes informações:

deploymentId(Python:) deployment_id

O ID da AWS IoT Greengrass implantação que atualiza o componente.

configuration

O objeto que contém a nova configuração.

SendConfigurationValidityReport

Diga ao núcleo se uma atualização de configuração desse componente é válida ou não. A implantação falhará se você informar ao núcleo que a nova configuração não é válida. Use a SubscribeToValidateConfigurationUpdates operação para se inscrever para validar as atualizações de configuração.

Se um componente não responder a uma notificação de atualização de configuração de validação, o núcleo aguardará a quantidade de tempo especificada na política de validação de configuração da implantação. Após esse tempo limite, o núcleo prossegue com a implantação. O tempo limite padrão de validação do componente é de 20 segundos. Para obter mais informações, consulte Criar implantações e o DeploymentConfigurationValidationPolicyobjeto que você pode fornecer ao chamar a CreateDeploymentoperação.

Solicitação

A solicitação dessa operação tem os seguintes parâmetros:

configurationValidityReport(Python:) configuration_validity_report

O relatório que informa ao núcleo se a atualização da configuração é válida ou não. Esse objeto,ConfigurationValidityReport, contém as seguintes informações:

status

O status de validade. Essa enumeração,ConfigurationValidityStatus, tem os seguintes valores:

  • ACCEPTED— A configuração é válida e o núcleo pode aplicá-la a esse componente.

  • REJECTED— A configuração não é válida e a implantação falha.

deploymentId(Python:) deployment_id

O ID da AWS IoT Greengrass implantação que solicitou a atualização da configuração.

message

(Opcional) Uma mensagem que informa por que a configuração não é válida.

Resposta

Essa operação não fornece nenhuma informação em sua resposta.