Solução de problemas de dispositivos cliente - 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á.

Solução de problemas de dispositivos cliente

Use as informações e as soluções de problemas nesta seção para ajudar a resolver problemas nos dispositivos cliente do Greengrass e nos componentes do dispositivo cliente.

Problemas de descoberta do Greengrass

Use as informações a seguir para ajudar a solucionar os problemas com a descoberta do Greengrass. Esses problemas podem ocorrer quando os dispositivos cliente usam a API de descoberta do Greengrass para identificar um dispositivo principal do Greengrass ao qual eles podem se conectar.

Problemas de descoberta do Greengrass (API HTTP)

Use as informações a seguir para ajudar a solucionar os problemas com a descoberta do Greengrass. Você poderá ver esses erros se testar a API de descoberta com cURL.

curl: (52) Empty reply from server

Você poderá ver esse erro se especificar um certificado do AWS IoT inativo na solicitação.

Verifique se o dispositivo cliente tem um certificado anexado e se o certificado está ativo. Para obter mais informações, consulte Anexar um item ou uma política a um certificado de cliente e Ativar ou desativar um certificado de cliente no Guia do desenvolvedor do AWS IoT Core.

HTTP 403: {"message":null,"traceId":"a1b2c3d4-5678-90ab-cdef-11111EXAMPLE"}

Você poderá ver esse erro se o dispositivo cliente não tiver permissão para chamar greengrass:Discover para ele mesmo.

Verifique se o certificado do dispositivo cliente tem uma política que permita greengrass:Discover. Você não pode usar variáveis de política de itens (iot:Connection.Thing.*) na seção Resource para essa permissão. Para ter mais informações, consulte Autenticação e autorização de descoberta.

HTTP 404: {"errorMessage":"The thing provided for discovery was not found"}

Você pode ver esse erro nos seguintes casos:

  • O dispositivo cliente não está associado a nenhum dispositivo principal do Greengrass ou grupo do AWS IoT Greengrass V1.

  • Nenhum dos dispositivos principais do Greengrass associados ao dispositivo cliente ou grupos do AWS IoT Greengrass V1 tem um endpoint do agente MQTT.

  • Nenhum dos dispositivos principais do Greengrass associados ao dispositivo cliente executa o componente de autorização do dispositivo cliente.

Verifique se o dispositivo cliente está associado ao dispositivo principal ao qual você deseja que ele se conecte. Em seguida, verifique se o dispositivo principal executa o componente de autorização do dispositivo cliente e tem, pelo menos, um endpoint do agente MQTT. Para obter mais informações, consulte as informações a seguir.

Problemas de descoberta do Greengrass (AWS IoT Device SDK v2 para Python)

Use as informações a seguir para solucionar problemas com a descoberta do Greengrass no AWS IoT Device SDK v2 para Python.

awscrt.exceptions.AwsCrtError: AWS_ERROR_HTTP_CONNECTION_CLOSED: The connection has closed or is closing.

Você poderá ver esse erro se especificar um certificado do AWS IoT inativo na solicitação.

Verifique se o dispositivo cliente tem um certificado anexado e se o certificado está ativo. Para obter mais informações, consulte Anexar um item ou uma política a um certificado de cliente e Ativar ou desativar um certificado de cliente no Guia do desenvolvedor do AWS IoT Core.

awsiot.greengrass_discovery.DiscoveryException: ('Error during discover call: response_code=403', 403)

Você poderá ver esse erro se o dispositivo cliente não tiver permissão para chamar greengrass:Discover para ele mesmo.

Verifique se o certificado do dispositivo cliente tem uma política que permita greengrass:Discover. Você não pode usar variáveis de política de itens (iot:Connection.Thing.*) na seção Resource para essa permissão. Para ter mais informações, consulte Autenticação e autorização de descoberta.

awsiot.greengrass_discovery.DiscoveryException: ('Error during discover call: response_code=404', 404)

Você pode ver esse erro nos seguintes casos:

  • O dispositivo cliente não está associado a nenhum dispositivo principal do Greengrass ou grupo do AWS IoT Greengrass V1.

  • Nenhum dos dispositivos principais do Greengrass associados ao dispositivo cliente ou grupos do AWS IoT Greengrass V1 tem um endpoint do agente MQTT.

  • Nenhum dos dispositivos principais do Greengrass associados ao dispositivo cliente executa o componente de autorização do dispositivo cliente.

Verifique se o dispositivo cliente está associado ao dispositivo principal ao qual você deseja que ele se conecte. Em seguida, verifique se o dispositivo principal executa o componente de autorização do dispositivo cliente e tem, pelo menos, um endpoint do agente MQTT. Para obter mais informações, consulte as informações a seguir.

Problemas de descoberta do Greengrass (AWS IoT Device SDK v2 para C++)

Use as informações a seguir para solucionar problemas com a descoberta do Greengrass no AWS IoT Device SDK v2 para C++.

aws-c-http: AWS_ERROR_HTTP_CONNECTION_CLOSED, The connection has closed or is closing.

Você poderá ver esse erro se especificar um certificado do AWS IoT inativo na solicitação.

Verifique se o dispositivo cliente tem um certificado anexado e se o certificado está ativo. Para obter mais informações, consulte Anexar um item ou uma política a um certificado de cliente e Ativar ou desativar um certificado de cliente no Guia do desenvolvedor do AWS IoT Core.

aws-c-common: AWS_ERROR_UNKNOWN, Unknown error. (HTTP 403)

Você poderá ver esse erro se o dispositivo cliente não tiver permissão para chamar greengrass:Discover para ele mesmo.

Verifique se o certificado do dispositivo cliente tem uma política que permita greengrass:Discover. Você não pode usar variáveis de política de itens (iot:Connection.Thing.*) na seção Resource para essa permissão. Para ter mais informações, consulte Autenticação e autorização de descoberta.

aws-c-common: AWS_ERROR_UNKNOWN, Unknown error. (HTTP 404)

Você pode ver esse erro nos seguintes casos:

  • O dispositivo cliente não está associado a nenhum dispositivo principal do Greengrass ou grupo do AWS IoT Greengrass V1.

  • Nenhum dos dispositivos principais do Greengrass associados ao dispositivo cliente ou grupos do AWS IoT Greengrass V1 tem um endpoint do agente MQTT.

  • Nenhum dos dispositivos principais do Greengrass associados ao dispositivo cliente executa o componente de autorização do dispositivo cliente.

Verifique se o dispositivo cliente está associado ao dispositivo principal ao qual você deseja que ele se conecte. Em seguida, verifique se o dispositivo principal executa o componente de autorização do dispositivo cliente e tem, pelo menos, um endpoint do agente MQTT. Para obter mais informações, consulte as informações a seguir.

Problemas de descoberta do Greengrass (AWS IoT Device SDK v2 para JavaScript)

Use as informações a seguir para solucionar problemas com a descoberta do Greengrass no AWS IoT Device SDK v2 para JavaScript.

Error: aws-c-http: AWS_ERROR_HTTP_CONNECTION_CLOSED, The connection has closed or is closing.

Você poderá ver esse erro se especificar um certificado do AWS IoT inativo na solicitação.

Verifique se o dispositivo cliente tem um certificado anexado e se o certificado está ativo. Para obter mais informações, consulte Anexar um item ou uma política a um certificado de cliente e Ativar ou desativar um certificado de cliente no Guia do desenvolvedor do AWS IoT Core.

Error: Discovery failed (headers: [object Object]) { response_code: 403 }

Você poderá ver esse erro se o dispositivo cliente não tiver permissão para chamar greengrass:Discover para ele mesmo.

Verifique se o certificado do dispositivo cliente tem uma política que permita greengrass:Discover. Você não pode usar variáveis de política de itens (iot:Connection.Thing.*) na seção Resource para essa permissão. Para ter mais informações, consulte Autenticação e autorização de descoberta.

Error: Discovery failed (headers: [object Object]) { response_code: 404 }

Você pode ver esse erro nos seguintes casos:

  • O dispositivo cliente não está associado a nenhum dispositivo principal do Greengrass ou grupo do AWS IoT Greengrass V1.

  • Nenhum dos dispositivos principais do Greengrass associados ao dispositivo cliente ou grupos do AWS IoT Greengrass V1 tem um endpoint do agente MQTT.

  • Nenhum dos dispositivos principais do Greengrass associados ao dispositivo cliente executa o componente de autorização do dispositivo cliente.

Verifique se o dispositivo cliente está associado ao dispositivo principal ao qual você deseja que ele se conecte. Em seguida, verifique se o dispositivo principal executa o componente de autorização do dispositivo cliente e tem, pelo menos, um endpoint do agente MQTT. Para obter mais informações, consulte as informações a seguir.

Error: Discovery failed (headers: [object Object])

Você pode ver esse erro (sem um código de resposta HTTP) ao executar a amostra de descoberta do Greengrass. Esse erro pode ocorrer por vários motivos.

Problemas de descoberta do Greengrass (AWS IoT Device SDK v2 para Java)

Use as informações a seguir para solucionar problemas com a descoberta do Greengrass no AWS IoT Device SDK v2 para Java.

software.amazon.awssdk.crt.CrtRuntimeException: Error Getting Response Status Code from HttpStream. (aws_last_error: AWS_ERROR_HTTP_DATA_NOT_AVAILABLE(2062), This data is not yet available.)

Você poderá ver esse erro se especificar um certificado do AWS IoT inativo na solicitação.

Verifique se o dispositivo cliente tem um certificado anexado e se o certificado está ativo. Para obter mais informações, consulte Anexar um item ou uma política a um certificado de cliente e Ativar ou desativar um certificado de cliente no Guia do desenvolvedor do AWS IoT Core.

java.lang.RuntimeException: Error x-amzn-ErrorType(403)

Você poderá ver esse erro se o dispositivo cliente não tiver permissão para chamar greengrass:Discover para ele mesmo.

Verifique se o certificado do dispositivo cliente tem uma política que permita greengrass:Discover. Você não pode usar variáveis de política de itens (iot:Connection.Thing.*) na seção Resource para essa permissão. Para ter mais informações, consulte Autenticação e autorização de descoberta.

java.lang.RuntimeException: Error x-amzn-ErrorType(404)

Você pode ver esse erro nos seguintes casos:

  • O dispositivo cliente não está associado a nenhum dispositivo principal do Greengrass ou grupo do AWS IoT Greengrass V1.

  • Nenhum dos dispositivos principais do Greengrass associados ao dispositivo cliente ou grupos do AWS IoT Greengrass V1 tem um endpoint do agente MQTT.

  • Nenhum dos dispositivos principais do Greengrass associados ao dispositivo cliente executa o componente de autorização do dispositivo cliente.

Verifique se o dispositivo cliente está associado ao dispositivo principal ao qual você deseja que ele se conecte. Em seguida, verifique se o dispositivo principal executa o componente de autorização do dispositivo cliente e tem, pelo menos, um endpoint do agente MQTT. Para obter mais informações, consulte as informações a seguir.

Problemas de conexão MQTT

Use as informações a seguir para solucionar problemas com as conexões MQTT de dispositivos cliente. Esses problemas podem ocorrer quando os dispositivos cliente tentam se conectar a um dispositivo principal por MQTT.

io.moquette.broker.Authorizator: Client does not have read permissions on the topic

Você pode ver esse erro nos logs do Greengrass quando um dispositivo cliente tenta assinar um tópico MQTT para o qual não tem permissão. A mensagem de erro inclui o tópico.

Verifique se a configuração do componente de autorização do dispositivo cliente inclui o seguinte:

  • Um grupo de dispositivos que corresponde ao dispositivo cliente.

  • Uma política de autorização do dispositivo cliente para esse grupo de dispositivos que concede a permissão mqtt:subscribe para o tópico.

Para obter mais informações sobre como implantar e configurar o componente de autorização do dispositivo cliente, consulte o seguinte:

Problemas de conexão MQTT (Python)

Use as informações a seguir para solucionar problemas com as conexões MQTT de dispositivos cliente ao usar o AWS IoT Device SDK v2 para Python.

AWS_ERROR_MQTT_PROTOCOL_ERROR: Protocol error occurred

Você poderá ver esse erro se o componente de autorização do dispositivo cliente não definir uma política de autorização do dispositivo cliente que conceda permissão para o dispositivo cliente se conectar.

Verifique se a configuração do componente de autorização do dispositivo cliente inclui o seguinte:

  • Um grupo de dispositivos que corresponde ao dispositivo cliente.

  • Uma política de autorização do dispositivo cliente para esse grupo de dispositivos que concede a permissão mqtt:connect para o dispositivo cliente.

Para obter mais informações sobre como implantar e configurar o componente de autorização do dispositivo cliente, consulte o seguinte:

AWS_ERROR_MQTT_UNEXPECTED_HANGUP: Unexpected hangup occurred

Você poderá ver esse erro se o componente de autorização do dispositivo cliente não definir uma política de autorização do dispositivo cliente que conceda permissão para o dispositivo cliente se conectar.

Verifique se a configuração do componente de autorização do dispositivo cliente inclui o seguinte:

  • Um grupo de dispositivos que corresponde ao dispositivo cliente.

  • Uma política de autorização do dispositivo cliente para esse grupo de dispositivos que concede a permissão mqtt:connect para o dispositivo cliente.

Para obter mais informações sobre como implantar e configurar o componente de autorização do dispositivo cliente, consulte o seguinte:

Problemas de conexão MQTT (C++)

Use as informações a seguir para solucionar problemas com as conexões MQTT de dispositivos cliente ao usar o AWS IoT Device SDK v2 para C++.

AWS_ERROR_MQTT_PROTOCOL_ERROR: Protocol error occurred

Você poderá ver esse erro se o componente de autorização do dispositivo cliente não definir uma política de autorização do dispositivo cliente que conceda permissão para o dispositivo cliente se conectar.

Verifique se a configuração do componente de autorização do dispositivo cliente inclui o seguinte:

  • Um grupo de dispositivos que corresponde ao dispositivo cliente.

  • Uma política de autorização do dispositivo cliente para esse grupo de dispositivos que concede a permissão mqtt:connect para o dispositivo cliente.

Para obter mais informações sobre como implantar e configurar o componente de autorização do dispositivo cliente, consulte o seguinte:

AWS_ERROR_MQTT_UNEXPECTED_HANGUP: Unexpected hangup occurred

Você poderá ver esse erro se o componente de autorização do dispositivo cliente não definir uma política de autorização do dispositivo cliente que conceda permissão para o dispositivo cliente se conectar.

Verifique se a configuração do componente de autorização do dispositivo cliente inclui o seguinte:

  • Um grupo de dispositivos que corresponde ao dispositivo cliente.

  • Uma política de autorização do dispositivo cliente para esse grupo de dispositivos que concede a permissão mqtt:connect para o dispositivo cliente.

Para obter mais informações sobre como implantar e configurar o componente de autorização do dispositivo cliente, consulte o seguinte:

Problemas de conexão MQTT (Java)

Use as informações a seguir para solucionar problemas com as conexões MQTT de dispositivos cliente ao usar o AWS IoT Device SDK v2 para Java.

software.amazon.awssdk.crt.mqtt.MqttException: Protocol error occurred

Você poderá ver esse erro se o componente de autorização do dispositivo cliente não definir uma política de autorização do dispositivo cliente que conceda permissão para o dispositivo cliente se conectar.

Verifique se a configuração do componente de autorização do dispositivo cliente inclui o seguinte:

  • Um grupo de dispositivos que corresponde ao dispositivo cliente.

  • Uma política de autorização do dispositivo cliente para esse grupo de dispositivos que concede a permissão mqtt:connect para o dispositivo cliente.

Para obter mais informações sobre como implantar e configurar o componente de autorização do dispositivo cliente, consulte o seguinte:

AWS_ERROR_MQTT_UNEXPECTED_HANGUP: Unexpected hangup occurred

Você poderá ver esse erro se o componente de autorização do dispositivo cliente não definir uma política de autorização do dispositivo cliente que conceda permissão para o dispositivo cliente se conectar.

Verifique se a configuração do componente de autorização do dispositivo cliente inclui o seguinte:

  • Um grupo de dispositivos que corresponde ao dispositivo cliente.

  • Uma política de autorização do dispositivo cliente para esse grupo de dispositivos que concede a permissão mqtt:connect para o dispositivo cliente.

Para obter mais informações sobre como implantar e configurar o componente de autorização do dispositivo cliente, consulte o seguinte:

Problemas de conexão MQTT (JavaScript)

Use as informações a seguir para solucionar problemas com as conexões MQTT de dispositivos cliente ao usar o AWS IoT Device SDK v2 para JavaScript.

AWS_ERROR_MQTT_PROTOCOL_ERROR: Protocol error occurred

Você poderá ver esse erro se o componente de autorização do dispositivo cliente não definir uma política de autorização do dispositivo cliente que conceda permissão para o dispositivo cliente se conectar.

Verifique se a configuração do componente de autorização do dispositivo cliente inclui o seguinte:

  • Um grupo de dispositivos que corresponde ao dispositivo cliente.

  • Uma política de autorização do dispositivo cliente para esse grupo de dispositivos que concede a permissão mqtt:connect para o dispositivo cliente.

Para obter mais informações sobre como implantar e configurar o componente de autorização do dispositivo cliente, consulte o seguinte:

AWS_ERROR_MQTT_UNEXPECTED_HANGUP: Unexpected hangup occurred

Você poderá ver esse erro se o componente de autorização do dispositivo cliente não definir uma política de autorização do dispositivo cliente que conceda permissão para o dispositivo cliente se conectar.

Verifique se a configuração do componente de autorização do dispositivo cliente inclui o seguinte:

  • Um grupo de dispositivos que corresponde ao dispositivo cliente.

  • Uma política de autorização do dispositivo cliente para esse grupo de dispositivos que concede a permissão mqtt:connect para o dispositivo cliente.

Para obter mais informações sobre como implantar e configurar o componente de autorização do dispositivo cliente, consulte o seguinte: