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 AWS IoT Greengrass V2
Use as informações e soluções de solução de problemas desta seção para ajudar a resolver problemas com AWS IoT Greengrass Version 2.
Tópicos
Veja os AWS IoT Greengrass principais registros de software e componentes
O software AWS IoT Greengrass Core grava registros no sistema de arquivos local que você pode usar para visualizar informações em tempo real sobre o dispositivo principal. Você também pode configurar dispositivos principais para gravar registros em CloudWatch registros, para que você possa solucionar problemas remotamente nos dispositivos principais. Esses logs ajudam você a identificar problemas com os componentes, as implantações e os dispositivos principais. Para obter mais informações, consulte Monitore AWS IoT Greengrass os registros.
AWS IoT Greengrass Principais problemas de software
Solucione os AWS IoT Greengrass principais problemas do software.
Tópicos
Não é possível iniciar o software AWS IoT Greengrass principal como um serviço do sistema
Não é possível configurar o núcleo como um serviço do sistema
Failed to map segment from shared object: operation not permitted
com.aws.greengrass.util.exceptions.TLSAuthException: Failed to get trust manager
Operation aws.greengrass#<operation> is not supported by Greengrass
java.lang.NoClassDefFoundError: com/aws/greengrass/security/CryptoKeySpi
com.aws.greengrass.security.provider.pkcs11.PKCS11CryptoKeyService: CKR_OPERATION_NOT_INITIALIZED
ThrottlingException da ListDeployments API
ThrottlingException
da ListDeployments
API: você pode ver isso quando tem um grande número de implantações na conta.
Para resolver isso, faça o seguinte:
Se você usa o SDK, especifique o MaxResult parâmetro. Por exemplo, para JavasDK
com um valor pequeno (por exemplo, 5). Você pode usar as AWS Service Quotas para solicitar um aumento do limite de taxa da
DescribeJob
API. Você pode acessar o console de cota de serviço, selecionar cotas de AWS IoT e o nome do limite é limite de DescribeJob aceleração. Você pode aumentá-lo de 10 para 50.
Não é possível configurar o dispositivo principal
Se o instalador do software AWS IoT Greengrass Core falhar e você não conseguir configurar um dispositivo principal, talvez seja necessário desinstalar o software e tentar novamente. Para obter mais informações, consulte Desinstale o software AWS IoT Greengrass principal.
Não é possível iniciar o software AWS IoT Greengrass principal como um serviço do sistema
Se o software AWS IoT Greengrass principal não for iniciado, verifique os registros de serviço do sistema para identificar o problema. Um problema comum é quando o Java não está disponível na variável de ambiente PATH (Linux) ou na variável de sistema PATH (Windows).
Não é possível configurar o núcleo como um serviço do sistema
Você pode ver esse erro quando o instalador do software AWS IoT Greengrass Core não consegue ser configurado AWS IoT Greengrass como um serviço do sistema. Nos dispositivos Linux, esse erro costuma ocorrer se o dispositivo principal não tem o sistema de inicialização systemd
Execute um destes procedimentos:
-
Configure e execute o software AWS IoT Greengrass Core como um serviço do sistema. Você deve configurar o software como um serviço do sistema para usar todos os recursos do AWS IoT Greengrass. Você pode instalar o systemd
ou usar outro sistema de inicialização. Para obter mais informações, consulte Configurar o núcleo do Greengrass como um serviço do sistema. -
Execute o software AWS IoT Greengrass Core sem um serviço de sistema. Você pode executar o software usando um script de carregador que o instalador configura na pasta raiz do Greengrass. Para obter mais informações, consulte Execute o software AWS IoT Greengrass Core sem um serviço de sistema.
Não é possível conectar ao AWS IoT Core
Você pode ver esse erro quando o software AWS IoT Greengrass Core não consegue se conectar AWS IoT Core para recuperar trabalhos de implantação, por exemplo. Faça o seguinte:
-
Verifique se seu dispositivo principal pode se conectar à Internet AWS IoT Core e. Para obter mais informações sobre o AWS IoT Core endpoint ao qual seu dispositivo se conecta, consulteConfigurar o software AWS IoT Greengrass principal.
-
Verifique se o dispositivo AWS IoT principal usa um certificado que permite as
iot:Subscribe
permissõesiot:Connect
iot:Publish
iot:Receive
,, e. -
Se o dispositivo principal usa um proxy de rede, verifique se o dispositivo tem uma função do dispositivo e se essa função concede as permissões
iot:Connect
,iot:Publish
,iot:Receive
eiot:Subscribe
.
Erro de falta de memória
Geralmente, esse erro ocorre se o dispositivo não tem memória suficiente para alocar um objeto no heap Java. Em dispositivos com memória limitada, talvez seja necessário especificar um tamanho máximo de heap para controlar a alocação de memória. Para obter mais informações, consulte Controlar a alocação de memória com opções de JVM.
Não é possível instalar a CLI do Greengrass
Você pode ver a seguinte mensagem do console ao usar o --deploy-dev-tools
argumento no comando de instalação AWS IoT Greengrass do Core.
Thing group exists, it could have existing deployment and devices, hence NOT creating deployment for Greengrass first party dev tools, please manually create a deployment if you wish to
Isso ocorre quando o componente de CLI do Greengrass não é instalado porque seu dispositivo principal é membro de um grupo de itens que já tem uma implantação. Se essa mensagem for exibida, você poderá implantar manualmente o componente de CLI do Greengrass (aws.greengrass.Cli
) no dispositivo para instalar a CLI do Greengrass. Para obter mais informações, consulte Instalar a Greengrass CLI.
User root is not allowed to execute
Você pode ver esse erro quando o usuário que executa o software AWS IoT Greengrass Core (normalmenteroot
) não tem permissão para executar sudo
com nenhum usuário e nenhum grupo. Para o usuário padrão ggc_user
do sistema, esse erro é semelhante ao seguinte:
Sorry, user root is not allowed to execute <command> as ggc_user:ggc_group.
Verifique se o arquivo /etc/sudoers
dá permissão ao usuário para executar sudo
como outros grupos. A permissão para o usuário em /etc/sudoers
deve ser semelhante à do exemplo a seguir.
root ALL=(ALL:ALL) ALL
com.aws.greengrass.lifecyclemanager.GenericExternalService: Could not determine user/group to run with
Esse erro pode ocorrer quando o dispositivo principal tenta executar um componente, e o núcleo do Greengrass não especifica um usuário padrão do sistema a ser usado para executar componentes.
Para corrigir esse problema, configure o núcleo do Greengrass para especificar o usuário padrão do sistema que executa componentes. Para ter mais informações, consulte Configurar o usuário que executa os componentes e Configurar o usuário padrão do componente.
Failed to map segment from shared object: operation not permitted
Você pode ver esse erro quando o software AWS IoT Greengrass Core falha ao iniciar porque a /tmp
pasta está montada com noexec
permissões. Por padrão, a biblioteca Common Runtime (CRT) da AWS/tmp
.
Execute um destes procedimentos:
-
Execute o comando a seguir para remontar a pasta
/tmp
com permissõesexec
e tente novamente.sudo mount -o remount,exec /tmp
-
Se você executar o Greengrass nucleus v2.5.0 ou posterior, poderá definir uma opção de JVM para alterar a pasta que a biblioteca CRT usa. AWS Você pode especificar o
jvmOptions
parâmetro na configuração do componente nucleus do Greengrass em uma implantação ou ao instalar o AWS IoT Greengrass software Core./path/to/use
Substitua pelo caminho para uma pasta que a biblioteca AWS CRT possa usar.{ "jvmOptions": "-Daws.crt.lib.dir=\"
/path/to/use
\"" }
Falha ao configurar o serviço do Windows
Você pode ver esse erro se você instalar o software AWS IoT Greengrass Core em um dispositivo Microsoft Windows 2016. O software AWS IoT Greengrass Core não é compatível com o Windows 2016. Para obter uma lista dos sistemas operacionais compatíveis, consultePlataformas compatíveis.
Antes de usar o Windows 2016, você pode fazer o seguinte:
-
Descompacte o arquivo de instalação AWS IoT Greengrass do Core baixado
-
Abra o arquivo
bin/greengrass.xml.template
no diretório doGreengrass
. -
Adicione a tag
<autoRefresh>
ao final do arquivo logo antes da tag</service>
.</log> <autoRefresh>false</autoRefresh> </service>
com.aws.greengrass.util.exceptions.TLSAuthException: Failed to get trust manager
Você pode ver esse erro ao instalar o software AWS IoT Greengrass Core sem um arquivo de autoridade de certificação (CA) raiz.
2022-06-05T10:00:39.556Z [INFO] (main) com.aws.greengrass.lifecyclemanager.Kernel: service-loaded. {serviceName=DeploymentService} 2022-06-05T10:00:39.943Z [WARN] (main) com.aws.greengrass.componentmanager.ClientConfigurationUtils: configure-greengrass-mutual-auth. Error during configure greengrass client mutual auth. {} com.aws.greengrass.util.exceptions.TLSAuthException: Failed to get trust manager
Verifique se você especificou um arquivo de CA raiz válido com o parâmetro rootCaPath
no arquivo de configuração fornecido ao instalador. Para obter mais informações, consulte Instale o software AWS IoT Greengrass Core.
com.aws.greengrass.deployment.IotJobsHelper: No connection available during subscribing to Iot Jobs descriptions topic. Will retry in sometime
Você pode ver essa mensagem de aviso quando o dispositivo principal não consegue se conectar AWS IoT Core para assinar as notificações de trabalho de implantação. Faça o seguinte:
-
Verifique se o dispositivo principal está conectado à Internet e pode alcançar o ponto final de AWS IoT dados que você configurou. Para obter mais informações sobre os endpoints que os dispositivos principais usam, consulte Permitir o tráfego de dispositivos por meio de um proxy ou firewall.
-
Consulte os logs do Greengrass para ver se há outro erros que mostrem causas raiz diferentes.
software.amazon.awssdk.services.iam.model.IamException: The security token included in the request is invalid
Você pode ver esse erro ao instalar o software AWS IoT Greengrass Core com provisionamento automático, e o instalador usa um token de AWS sessão que não é válido. Faça o seguinte:
-
Se você usa credenciais de segurança temporárias, verifique se o token de sessão que você está copiando e colando está correto e completo.
-
Se você usa credenciais de segurança de longo prazo, verifique se o dispositivo não tem um token de sessão de quando você usava as credenciais temporárias. Faça o seguinte:
-
Execute o comando a seguir para cancelar a definição da variável de ambiente do token de sessão.
-
Verifique se o arquivo de AWS credenciais,
~/.aws/credentials
, contém um token de sessão,aws_session_token
. Em caso afirmativo, remova essa linha do arquivo.aws_session_token =
AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
-
Você também pode instalar o software AWS IoT Greengrass Core sem fornecer AWS credenciais. Para ter mais informações, consulte Instale o software AWS IoT Greengrass principal com provisionamento manual de recursos ou Instale o software AWS IoT Greengrass principal com provisionamento de AWS IoT frota.
software.amazon.awssdk.services.iot.model.IotException: User: <user> is not authorized to perform: iot:GetPolicy
Você pode ver esse erro ao instalar o software AWS IoT Greengrass Core com provisionamento automático, e o instalador usa AWS credenciais que não têm as permissões necessárias. Para obter mais informações sobre as permissões necessárias, consulte Política mínima de IAM para o instalador provisionar recursos.
Verifique as permissões para a identidade do IAM das credenciais e conceda à ela todas as permissões necessárias que estejam faltando.
Error: com.aws.greengrass.shadowmanager.sync.model.FullShadowSyncRequest: Could not execute cloud shadow get request
Você pode ver esse erro ao usar o componente do gerenciador de sombras para sincronizar as sombras do dispositivo. AWS IoT Core O código de status HTTP 403 indica que esse erro ocorreu porque a AWS IoT política do dispositivo principal não concede permissão para fazer chamadasGetThingShadow
.
com.aws.greengrass.shadowmanager.sync.model.FullShadowSyncRequest: Could not execute cloud shadow get request. {thing name=MyGreengrassCore, shadow name=MyShadow} 2021-07-14T21:09:02.456Z [ERROR] (pool-2-thread-109) com.aws.greengrass.shadowmanager.sync.SyncHandler: sync. Skipping sync request. {thing name=MyGreengrassCore, shadow name=MyShadow} com.aws.greengrass.shadowmanager.exception.SkipSyncRequestException: software.amazon.awssdk.services.iotdataplane.model.IotDataPlaneException: null (Service: IotDataPlane, Status Code: 403, Request ID: f6e713ba-1b01-414c-7b78-5beb3f3ad8f6, Extended Request ID: null)
Para sincronizar sombras locais com AWS IoT Core, a AWS IoT política do dispositivo principal deve conceder as seguintes permissões:
-
iot:GetThingShadow
-
iot:UpdateThingShadow
-
iot:DeleteThingShadow
Verifique a AWS IoT política do dispositivo principal e adicione as permissões necessárias que estão faltando. Para obter mais informações, consulte:
-
AWS IoT Core ações políticas no Guia do AWS IoT desenvolvedor
Operation aws.greengrass#<operation> is not supported by Greengrass
Você pode ver esse erro ao usar uma operação de comunicação entre processos (IPC) em um componente personalizado do Greengrass, e o componente AWS fornecido necessário não está instalado no dispositivo principal.
Para corrigir esse problema, adicione o componente necessário como uma dependência em sua receita de componentes, para que o software AWS IoT Greengrass Core instale o componente necessário quando você implanta seu componente.
-
Recuperar valores de segredos:
aws.greengrass.SecretManager
-
Interagir com sombras locais:
aws.greengrass.ShadowManager
-
Gerenciar implantações e componentes locais:
aws.greengrass.Cli
v2.6.0 ou posterior -
Autenticar e autorizar dispositivos cliente:
aws.greengrass.clientdevices.Auth
v2.2.0 ou posterior
java.io.FileNotFoundException: <stream-manager-store-root-dir>/stream_manager_metadata_store (Permission denied)
Esse erro pode ocorrer no arquivo de log do Gerenciador de fluxos (aws.greengrass.StreamManager.log
) quando você configura o Gerenciador de fluxos para usar uma pasta raiz que não existe ou que não tem as permissões corretas. Para obter mais informações sobre como configurar essa pasta, consulte a configuração do Gerenciador de fluxos.
com.aws.greengrass.security.provider.pkcs11.PKCS11CryptoKeyService: Private key or certificate with label <label> does not exist
Esse erro ocorre quando o componente do provedor PKCS #11 não consegue encontrar ou carregar a chave privada ou o certificado que você especifica ao configurar o software AWS IoT Greengrass Core para usar um módulo de segurança de hardware (HSM). Faça o seguinte:
-
Verifique se a chave privada e o certificado estão armazenados no HSM usando o slot, o PIN do usuário e a etiqueta do objeto que você configura para usar no software AWS IoT Greengrass Core.
-
Verifique se a chave privada e o certificado usam o mesmo rótulo de objeto no HSM.
-
Se o seu HSM suportar objetos IDs, verifique se a chave privada e o certificado usam o mesmo ID de objeto no HSM.
Leia a documentação do HSM para saber como consultar detalhes sobre os tokens de segurança. Se você precisar alterar o slot, o rótulo ou o ID do objeto de um token de segurança, consulte a documentação do HSM para saber como fazer isso.
software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException: User: <user> is not authorized to perform: secretsmanager:GetSecretValue on resource: <arn>
Esse erro pode ocorrer quando você usa o componente gerenciador de segredos para implantar um AWS Secrets Manager segredo. Se o perfil do IAM de troca de tokens do dispositivo principal não conceder permissão para obter o segredo, haverá falha na implantação e os logs do Greengrass incluirão esse erro.
Para autorizar um dispositivo principal a fazer download de um segredo
-
Adicione a permissão
secretsmanager:GetSecretValue
ao perfil de troca de tokens do dispositivo principal. O exemplo de declaração de política a seguir concede permissão para obter o valor de um segredo.{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyGreengrassSecret-abcdef" ] }
Para obter mais informações, consulte Autorize os dispositivos principais a interagir com os serviços da AWS.
-
Reaplique a implantação ao dispositivo principal. Execute um destes procedimentos:
-
Revise a implantação sem nenhuma alteração. O dispositivo principal tenta fazer download do segredo novamente quando recebe a implantação revisada. Para obter mais informações, consulte Revisões das implantações.
-
Reinicie o software AWS IoT Greengrass principal para repetir a implantação. Para ter mais informações, consulte Execute o software AWS IoT Greengrass Core
A implantação será bem-sucedida se o Gerenciador de segredos fizer download do segredo sem problemas.
-
software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException: Access to KMS is not allowed
Esse erro pode ocorrer quando você usa o componente gerenciador de segredos para implantar um AWS Secrets Manager segredo criptografado por uma AWS Key Management Service chave. Se o perfil do IAM de troca de tokens do dispositivo principal não conceder permissão para descriptografar o segredo, haverá falha na implantação e os logs do Greengrass incluirão esse erro.
Para corrigir o problema, adicione a permissão kms:Decrypt
ao perfil de troca de tokens do dispositivo principal. Para obter mais informações, consulte:
-
Criptografia e descriptografia de segredos no Guia do usuário do AWS Secrets Manager
-
Autorize os dispositivos principais a interagir com os serviços da AWS
java.lang.NoClassDefFoundError: com/aws/greengrass/security/CryptoKeySpi
Você pode ver esse erro ao tentar instalar o software AWS IoT Greengrass Core com segurança de hardware e usar uma versão anterior do Greengrass nucleus que não oferece suporte à integração de segurança de hardware. Para usar a integração de segurança de hardware, você deve ter o núcleo do Greengrass versão 2.5.3 ou mais recente.
com.aws.greengrass.security.provider.pkcs11.PKCS11CryptoKeyService: CKR_OPERATION_NOT_INITIALIZED
Você pode ver esse erro ao usar a TPM2 biblioteca ao executar o AWS IoT Greengrass Core como um serviço do sistema.
Esse erro indica que você precisa adicionar uma variável de ambiente que forneça a localização do armazenamento PKCS #11 no arquivo de serviço AWS IoT Greengrass Core systemd.
Para obter mais informações, consulte a seção de requisitos da documentação do componente Fornecedor PKCS#11.
Greengrass core device stuck on nucleus v2.12.3
Se o dispositivo principal do Greengrass não revisar sua implantação da versão 2.12.3 do núcleo, talvez seja necessário fazer download e substituir o arquivo Greengrass.jar
pelo núcleo do Greengrass versão 2.12.2. Faça o seguinte:
-
No dispositivo principal do Greengrass, execute o comando a seguir para interromper o software de núcleo do Greengrass.
-
Em seu dispositivo principal, baixe o AWS IoT Greengrass software para um arquivo chamado
greengrass-2.12.2.zip
. -
Descompacte o software AWS IoT Greengrass Core em uma pasta no seu dispositivo.
GreengrassInstaller
Substitua pela pasta que você deseja usar. -
Execute o comando a seguir para substituir o arquivo JAR do Greengrass da versão 2.12.3 do núcleo pelo da versão 2.12.2 do núcleo.
-
Execute o comando a seguir para iniciar o software de núcleo do Greengrass.
Greengrass nucleus v2.14.0 systemd template issue
Você pode encontrar esse problema se tiver instalado o Greengrass nucleus v2.14.0 em um dispositivo Linux com seu modelo de serviço systemd padrão. Faça o seguinte:
-
Em seu dispositivo principal do Greengrass, execute o comando a seguir para reverter o arquivo de serviço systemd para a forma como está no nucleus v2.13.0 e versões anteriores.
-
Implemente as alterações.
AWS IoT Greengrass problemas de nuvem
Use as informações a seguir para solucionar problemas com o AWS IoT Greengrass console e a API. Cada entrada corresponde a uma mensagem de erro que você pode ver ao executar uma ação.
An error occurred (AccessDeniedException) when calling the CreateComponentVersion operation: User: arn:aws:iam::123456789012:user/<username> is not authorized to perform: null
Você pode ver esse erro ao criar uma versão do componente a partir do AWS IoT Greengrass console ou com a CreateComponentVersionoperação.
Esse erro indica que a fórmula não é um JSON ou YAML válido. Verifique a sintaxe da fórmula, corrija qualquer problema de sintaxe e tente novamente. Você pode usar um verificador de sintaxe JSON ou YAML on-line para identificar problemas de sintaxe na fórmula.
Invalid Input: Encountered following errors in Artifacts: {<s3ArtifactUri> = Specified artifact resource cannot be accessed}
Você pode ver esse erro ao criar uma versão do componente a partir do AWS IoT Greengrass console ou com a CreateComponentVersionoperação. Esse erro indica que um artefato do S3 na fórmula do componente não é válido.
Faça o seguinte:
-
Verifique se o bucket do S3 está no mesmo Região da AWS local em que você criou o componente. AWS IoT Greengrass não oferece suporte a solicitações entre regiões de artefatos de componentes.
-
Verifique se o URI do artefato é um URL válido de objeto do S3 e se o artefato existe nesse URL.
-
Verifique se você Conta da AWS tem permissão para acessar o artefato na URL do objeto do S3.
INACTIVE deployment status
Você pode obter um status de INACTIVE
implantação ao chamar a ListDeploymentsAPI sem as AWS IoT políticas dependentes necessárias. Você deve ter as permissões necessárias para obter um status de implantação preciso. Para encontrar as ações dependentes, consulte Ações definidas pelo AWS IoT Greengrass V2 e siga as permissões necessárias para ListDeployments
. Sem as AWS IoT permissões dependentes necessárias, você ainda verá o status de implantação, mas poderá ver um status de implantação impreciso deINACTIVE
.
Problemas na implantação do dispositivo principal
Solucione problemas na implantação em dispositivos principais do Greengrass. Cada entrada corresponde a uma mensagem de log que você pode ver no dispositivo principal.
Error: com.aws.greengrass.componentmanager.exceptions.PackageDownloadException: Failed to download artifact
Você pode ver esse erro quando o software AWS IoT Greengrass Core não consegue baixar um artefato de componente quando o dispositivo principal aplica uma implantação. O resultado desse erro é uma falha na implantação.
Quando você recebe esse erro, o log também inclui um rastreamento de pilha que é possível usar para identificar o problema específico. Cada uma das entradas a seguir corresponde a uma mensagem que você pode ver no rastreamento de pilha da mensagem de erro Failed to download artifact
.
Tópicos
software.amazon.awssdk.services.s3.model.S3Exception: null (Service: S3, Status Code: 403, Request ID: null, ...)
O PackageDownloadException erro pode incluir esse rastreamento de pilha nos seguintes casos:
-
O artefato do componente não está disponível no URL do objeto do S3 que você especifica na fórmula do componente. Verifique se você carregou o artefato no bucket do S3 e se o URI do artefato corresponde ao URL do objeto do S3 do artefato no bucket.
-
A função de troca de tokens do dispositivo principal não permite que o software AWS IoT Greengrass Core baixe o artefato do componente da URL do objeto do S3 que você especifica na receita do componente. Garanta que o perfil de troca de tokens permita
s3:GetObject
no URL do objeto do S3 em que o artefato está disponível.
software.amazon.awssdk.services.s3.model.S3Exception: Access Denied (Service: S3, Status Code: 403, Request ID: <requestID>
O PackageDownloadException erro pode incluir esse rastreamento de pilha quando o dispositivo principal não tem permissão para fazer chamadass3:GetBucketLocation
. A mensagem de erro também inclui uma das mensagens abaixo.
reason: Failed to determine S3 bucket location
Garanta que o perfil de troca de tokens do dispositivo principal permita s3:GetBucketLocation
no bucket do S3 em que o artefato está disponível.
Error: com.aws.greengrass.componentmanager.exceptions.ArtifactChecksumMismatchException: Integrity check for downloaded artifact failed. Probably due to file corruption.
Você pode ver esse erro quando o software AWS IoT Greengrass Core não consegue baixar um artefato de componente quando o dispositivo principal aplica uma implantação. A implantação falha porque a soma de verificação do arquivo de artefato baixado não corresponde à soma de verificação AWS IoT Greengrass calculada quando você criou o componente.
Faça o seguinte:
-
Verifique se o arquivo de artefato foi alterado no bucket do S3 em que você o hospeda. Se o arquivo tiver sido alterado desde que você criou o componente, restaure-o à versão anterior que o dispositivo principal espera. Se você não puder restaurar o arquivo à versão anterior ou se quiser usar a nova versão do arquivo, crie uma nova versão do componente com o arquivo de artefato.
-
Verifique a conexão com a Internet do dispositivo principal. Esse erro poderá ocorrer se o arquivo de artefato for corrompido durante o download. Crie uma nova implantação e tente novamente.
Error: com.aws.greengrass.componentmanager.exceptions.NoAvailableComponentVersionException: Failed to negotiate component <name> version with cloud and no local applicable version satisfying requirement <requirements>
Esse erro pode ocorrer quando um dispositivo principal não encontra uma versão do componente que atenda aos requisitos das implantações para esse dispositivo principal. O dispositivo principal verifica o componente no AWS IoT Greengrass serviço e no dispositivo local. A mensagem de erro inclui o destino de cada implantação e os requisitos de versão dessa implantação para o componente. O destino da implantação pode ser um item, um grupo de itens ou LOCAL_DEPLOYMENT
, que representa a implantação local no dispositivo principal.
Esse problema pode ocorrer nos seguintes casos:
-
O dispositivo principal é o destino de várias implantações que têm requisitos de versão de componente conflitantes. Por exemplo, o dispositivo principal pode ser o destino de várias implantações que incluem um componente
com.example.HelloWorld
, em que uma implantação requer a versão 1.0.0 e a outra requer a versão 1.0.1. É impossível ter um componente que atenda aos dois requisitos, portanto há falha na implantação. -
A versão do componente não existe no AWS IoT Greengrass serviço ou no dispositivo local. O componente pode ter sido excluído, por exemplo.
-
Existem versões de componente que atendem aos requisitos de versão, mas nenhuma é compatível com a plataforma do dispositivo principal.
-
A AWS IoT política do dispositivo principal não concede a
greengrass:ResolveComponentCandidates
permissão. ProcureStatus Code: 403
no log de erros para identificar esse problema. Para resolver esse problema, adicione a permissãogreengrass:ResolveComponentCandidates
à política do AWS IoT do dispositivo principal. Para obter mais informações, consulte AWS IoT Política mínima para dispositivos AWS IoT Greengrass V2 principais.
Para resolver esse problema, revise as implantações para incluir as versões de componente compatíveis ou remover as que são incompatíveis. Para obter mais informações sobre como revisar as implantações na nuvem, consulte Revisões das implantações. Para obter mais informações sobre como revisar as implantações locais, consulte o comando deployment create da CLI do AWS IoT Greengrass.
software.amazon.awssdk.services.greengrassv2data.model.ResourceNotFoundException: The latest version of Component <componentName> doesn't claim platform <coreDevicePlatform> compatibility
Esse erro pode ocorrer quando você implanta um componente em um dispositivo principal e o componente não lista uma plataforma compatível com a do dispositivo principal. Execute um destes procedimentos:
-
Se for um componente personalizado do Greengrass, você poderá atualizá-lo para que seja compatível com o dispositivo principal. Adicione um novo manifesto ou atualize um manifesto existente para corresponder à plataforma do dispositivo principal. Para obter mais informações, consulte AWS IoT Greengrass referência da receita do componente.
-
Se o componente for fornecido pela AWS, verifique se outra versão do componente é compatível com o dispositivo principal. Se nenhuma versão for compatível, entre em contato conosco em AWS re:Post
usando a tag AWS IoT Greengrass ou pelo Suporte .
com.aws.greengrass.componentmanager.exceptions.PackagingException: The deployment attempts to update the nucleus from aws.greengrass.Nucleus-<version> to aws.greengrass.Nucleus-<version> but no component of type nucleus was included as target component
Esse erro pode ocorrer quando você implanta um componente que depende do núcleo do Greengrass e o dispositivo principal executa uma versão do núcleo do Greengrass mais antiga do que a versão secundária mais recente disponível. Esse erro ocorre porque o software AWS IoT Greengrass Core tenta atualizar automaticamente os componentes para a versão compatível mais recente. No entanto, o software AWS IoT Greengrass Core impede que o núcleo do Greengrass seja atualizado para uma nova versão secundária, porque vários componentes AWS fornecidos dependem de versões secundárias específicas do núcleo do Greengrass. Para obter mais informações, consulte Comportamento da atualização do núcleo do Greengrass.
Você deve revisar a implantação para especificar a versão do núcleo do Greengrass que deseja usar. Execute um destes procedimentos:
-
Revise a implantação para especificar a versão do núcleo do Greengrass executada pelo dispositivo principal no momento.
-
Revise a implantação para especificar uma versão secundária mais recente do núcleo do Greengrass. Se você escolher essa opção, também deverá atualizar as versões de todos os componentes AWS fornecidos que dependem de versões secundárias específicas do núcleo do Greengrass. Para obter mais informações, consulte Componentes fornecidos pela AWS.
Error: com.aws.greengrass.deployment.exceptions.DeploymentException: Unable to process deployment. Greengrass launch directory is not set up or Greengrass is not set up as a system service
Esse erro pode ocorrer quando você move um dispositivo do Greengrass de um grupo de itens para outro, e depois volta para o grupo original com implantações que exigem a reinicialização do Greengrass.
Para resolver esse problema, recrie o diretório de inicialização do dispositivo. Também é altamente recomendável atualizar para a versão 2.9.6 ou posterior do núcleo do Greengrass.
Veja a seguir um script do Linux para recriar o diretório de inicialização. Salve o script em um arquivo chamado fix_directory.sh
.
#!/bin/bash set -e GG_ROOT=$1 GG_VERSION=$2 CURRENT="$GG_ROOT/alts/current" if [ ! -L "$CURRENT" ]; then mkdir -p $GG_ROOT/alts/directory_fix echo "Relinking $GG_ROOT/alts/directory_fix to $CURRENT" ln -sf $GG_ROOT/alts/directory_fix $CURRENT fi TARGET=$(readlink $CURRENT) if [[ ! -d "$TARGET" ]]; then echo "Creating directory: $TARGET" mkdir -p "$TARGET" fi DISTRO_LINK="$TARGET/distro" DISTRO="$GG_ROOT/packages/artifacts-unarchived/aws.greengrass.Nucleus/$GG_VERSION/aws.greengrass.nucleus/" echo "Relinking Nucleus artifacts to $DISTRO_LINK" ln -sf $DISTRO $DISTRO_LINK
Para rodar o script, execute o seguinte comando:
[root@ip-172-31-27-165 ~]#
./fix_directory.sh /greengrass/v2
2.9.5
Relinking /greengrass/v2/alts/directory_fix to /greengrass/v2/alts/current Relinking Nucleus artifacts to /greengrass/v2/alts/directory_fix/distro
Info: com.aws.greengrass.deployment.exceptions.RetryableDeploymentDocumentDownloadException: Greengrass Cloud Service returned an error when getting full deployment configuration
Esse erro pode ocorrer quando o dispositivo principal recebe um documento de implantação grande, maior que 7 KB (para implantações que têm itens como destino) ou 31 KB (para implantações que têm grupos de itens como destino). Para recuperar um documento de implantação grande, a AWS IoT política de um dispositivo principal deve permitir a greengrass:GetDeploymentConfiguration
permissão. Esse erro pode ocorrer quando o dispositivo principal não tem essa permissão. Quando esse erro ocorre, a implantação faz tentativas indefinidamente, e o status é Em andamento (IN_PROGRESS
).
Para resolver esse problema, adicione a greengrass:GetDeploymentConfiguration
permissão à AWS IoT política do dispositivo principal. Para obter mais informações, consulte Atualizar a AWS IoT política de um dispositivo principal.
Warn: com.aws.greengrass.deployment.DeploymentService: Failed to get thing group hierarchy
Você pode ver esse aviso quando o dispositivo principal recebe uma implantação e a AWS IoT política do dispositivo principal não permite a greengrass:ListThingGroupsForCoreDevice
permissão. Quando você cria uma implantação, o dispositivo principal usa essa permissão para identificar os grupos de itens e remover os componentes de qualquer grupo do qual você removeu o dispositivo principal. Se o dispositivo principal executa o núcleo do Greengrass versão 2.5.0, há falha na implantação. Se o dispositivo principal executa o núcleo do Greengrass versão 2.5.1 ou mais recente, a implantação prossegue, mas não remove os componentes. Para obter mais informações sobre o comportamento de remoção de grupos de itens, consulte Implemente AWS IoT Greengrass componentes em dispositivos.
Para atualizar o comportamento do dispositivo principal para remover componentes de grupos de coisas dos quais você remove o dispositivo principal, adicione a greengrass:ListThingGroupsForCoreDevice
permissão à AWS IoT política do dispositivo principal. Para obter mais informações, consulte Atualizar a AWS IoT política de um dispositivo principal.
Info: com.aws.greengrass.deployment.DeploymentDocumentDownloader: Calling Greengrass cloud to get full deployment configuration
Essa mensagem informativa pode aparecer várias vezes sem um erro, porque o dispositivo principal registra o erro no nível de log DEBUG
. Esse problema pode ocorrer quando o dispositivo principal recebe um documento de implantação grande. Quando esse problema ocorre, a implantação faz tentativas indefinidamente, e o status é Em andamento (IN_PROGRESS
). Para obter mais informações sobre como resolver esse problema, consulte esta entrada de solução de problemas.
Caused by: software.amazon.awssdk.services.greengrassv2data.model.GreengrassV2DataException: null (Service: GreengrassV2Data, Status Code: 403, Request ID: <some_request_id>, Extended Request ID: null)
Esse erro pode ocorrer quando uma API de plano de dados não tem a permissão iot:Connect
. Caso você não tenha a política correta, receberá uma exceção GreengrassV2DataException: 403
. Para criar uma política de permissão, siga estas instruções: Crie uma AWS IoT política.
Problemas em componente de dispositivos principais
Solucione problemas no componente do Greengrass em dispositivos principais.
Tópicos
Warn: '<command>' is not recognized as an internal or external command
A configuração do componente não é atualizada ao alterar a configuração padrão
com.aws.greengrass.tes.CredentialsProviderError: Could not load credentials from any providers
copyFrom: <configurationPath> is already a container, not a leaf
aws.greengrass.StreamManager: Instant exceeds minimum or maximum instant
Warn: '<command>' is not recognized as an internal or external command
Você pode ver esse erro nos registros de um componente do Greengrass quando o software AWS IoT Greengrass principal falha ao executar um comando no script de ciclo de vida do componente. O estado do componente passa a ser BROKEN
como resultado desse erro. Esse erro poderá ocorrer se o usuário do sistema que executa o componente, por exemplo ggc_user
, não encontrar o executável do comando nas pastas em PATH
Nos dispositivos Windows, verifique se a pasta que contém o executável está em PATH
para o usuário do sistema que executa o componente. Se ela não estiver em PATH
, faça um dos seguintes procedimentos:
-
Adicione a pasta do executável à variável de sistema
PATH
, que está disponível para todos os usuários. Em seguida, reinicie o componente.Se você executar o Greengrass nucleus 2.5.0, depois de atualizar a variável do
PATH
sistema, você deverá reiniciar o software AWS IoT Greengrass Core para executar os componentes com a atualização.PATH
Se o software AWS IoT Greengrass Core não usar a atualizaçãoPATH
depois de reiniciar o software, reinicie o dispositivo e tente novamente. Para obter mais informações, consulte Execute o software AWS IoT Greengrass Core. -
Adicione a pasta do executável à variável de usuário
PATH
para o usuário do sistema que executa o componente.
O script Python não registra mensagens em log
Os dispositivos principais do Greengrass coletam logs que você pode usar para identificar problemas com componentes. Se as mensagens stdout
e stderr
do script Python não constarem nos logs do componente, talvez você tenha que liberar ou desabilitar o buffer para esses fluxos de saída padrão em Python. Faça o seguinte:
-
Execute o Python com o argumento -u
para desabilitar o buffer em stdout
estderr
. -
Use Setenv na fórmula do componente para definir a variável de ambiente PYTHONUNBUFFERED
como uma string não vazia. Essa variável de ambiente desabilita o buffer em stdout
estderr
. -
Libere o buffer para os fluxos
stdout
oustderr
. Execute um destes procedimentos:-
Libere uma mensagem durante a impressão.
import sys print('Hello, error!', file=sys.stderr, flush=True)
-
Libere uma mensagem após a impressão. Você pode enviar várias mensagens antes de liberar o fluxo.
import sys print('Hello, error!', file=sys.stderr) sys.stderr.flush()
-
Para obter mais informações sobre como verificar se o script Python gera mensagens de log, consulte Monitore AWS IoT Greengrass os registros.
A configuração do componente não é atualizada ao alterar a configuração padrão
Quando você altera DefaultConfiguration
na fórmula de um componente, a nova configuração padrão não substitui a configuração existente do componente durante a implantação. Para aplicar a nova configuração padrão, você deve redefinir a configuração do componente ao padrão. Ao implantar o componente, especifique uma única string vazia como a atualização de redefinição.
awsiot.greengrasscoreipc.model.UnauthorizedError
Esse erro pode ocorrer nos logs de um componente do Greengrass quando ele não tem permissão para executar uma operação de IPC em um recurso. Para conceder permissão a um componente para chamar uma operação de IPC, defina uma política de autorização de IPC na configuração do componente. Para obter mais informações, consulte Autorizar componentes a realizar operações de IPC.
dica
Se você alterar DefaultConfiguration
na fórmula de um componente, deverá redefinir a configuração do componente à nova configuração padrão. Ao implantar o componente, especifique uma única string vazia como a atualização de redefinição. Para obter mais informações, consulte A configuração do componente não é atualizada ao alterar a configuração padrão.
com.aws.greengrass.authorization.exceptions.AuthorizationException: Duplicate policy ID "<id>" for principal "<componentList>"
Esse erro poderá ocorrer se várias políticas de autorização de IPC, inclusive em todos os componentes do dispositivo principal, usarem o mesmo ID de política.
Verifique as políticas de autorização de IPC dos componentes, corrija as possíveis duplicatas e tente novamente. Para criar uma política exclusiva IDs, recomendamos que você combine o nome do componente, o nome do serviço IPC e um contador. Para obter mais informações, consulte Autorizar componentes a realizar operações de IPC.
dica
Se você alterar DefaultConfiguration
na fórmula de um componente, deverá redefinir a configuração do componente à nova configuração padrão. Ao implantar o componente, especifique uma única string vazia como a atualização de redefinição. Para obter mais informações, consulte A configuração do componente não é atualizada ao alterar a configuração padrão.
com.aws.greengrass.tes.CredentialRequestHandler: Error in retrieving AwsCredentials from TES (HTTP 400)
Você pode ver esse erro quando um dispositivo principal não consegue obter AWS credenciais do serviço de troca de tokens. O código de status HTTP 400 indica que esse erro ocorreu porque a função IAM de troca de tokens do dispositivo principal não existe ou não tem uma relação de confiança que permita que o provedor de AWS IoT credenciais a assuma.
Faça o seguinte:
-
Identifique o perfil de troca de tokens que o dispositivo principal utiliza. A mensagem de erro inclui o alias da AWS IoT função do dispositivo principal, que aponta para a função de troca de tokens. Execute o comando a seguir em seu computador de desenvolvimento e
MyGreengrassCoreTokenExchangeRoleAlias
substitua pelo nome do alias da AWS IoT função na mensagem de erro.aws iot describe-role-alias --role-alias
MyGreengrassCoreTokenExchangeRoleAlias
A resposta inclui o nome do recurso da Amazon (ARN) do perfil do IAM de troca de tokens.
{ "roleAliasDescription": { "roleAlias": "MyGreengrassCoreTokenExchangeRoleAlias", "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/MyGreengrassCoreTokenExchangeRoleAlias", "roleArn": "arn:aws:iam::123456789012:role/MyGreengrassV2TokenExchangeRole", "owner": "123456789012", "credentialDurationSeconds": 3600, "creationDate": "2021-02-05T16:46:18.042000-08:00", "lastModifiedDate": "2021-02-05T16:46:18.042000-08:00" } }
-
Verifique se o perfil existe. Execute o comando a seguir e
MyGreengrassV2TokenExchangeRole
substitua pelo nome da função de troca de tokens.aws iam get-role --role-name
MyGreengrassV2TokenExchangeRole
Se o comando retornar o erro
NoSuchEntity
, o perfil não existe e você deve criá-lo. Para obter mais informações sobre como criar e configurar o perfil, consulte Autorize os dispositivos principais a interagir com os serviços da AWS. -
Verifique se a função tem uma relação de confiança que permita que o provedor de AWS IoT credenciais a assuma. A resposta da etapa anterior contém
AssumeRolePolicyDocument
, que define as relações de confiança do perfil. O perfil deve definir uma relação de confiança que permita quecredentials.iot.amazonaws.com
o utilize. Esse documento deve ser semelhante ao exemplo abaixo.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Se as relações de confiança do perfil não permitirem que
credentials.iot.amazonaws.com
o utilize, você deverá adicionar uma relação de confiança ao perfil. Para obter mais informações, consulte Modificar um perfil no Guia do usuário do AWS Identity and Access Management .
com.aws.greengrass.tes.CredentialRequestHandler: Error in retrieving AwsCredentials from TES (HTTP 403)
Você pode ver esse erro quando um dispositivo principal não consegue obter AWS credenciais do serviço de troca de tokens. O código de status HTTP 403 indica que esse erro ocorreu porque as AWS IoT políticas do dispositivo principal não concedem a iot:AssumeRoleWithCertificate
permissão para o alias de AWS IoT função do dispositivo principal.
Analise as AWS IoT políticas do dispositivo principal e adicione a iot:AssumeRoleWithCertificate
permissão para o alias de AWS IoT função do dispositivo principal. A mensagem de erro inclui o alias da AWS IoT função atual do dispositivo principal. Para obter mais informações sobre essa permissão e como atualizar as AWS IoT políticas do dispositivo principal, consulte AWS IoT Política mínima para dispositivos AWS IoT Greengrass V2 principais Atualizar a AWS IoT política de um dispositivo principal e.
com.aws.greengrass.tes.CredentialsProviderError: Could not load credentials from any providers
Você pode ver esse erro quando o componente tenta solicitar AWS credenciais e não consegue se conectar ao serviço de troca de tokens.
Faça o seguinte:
-
Verifique se o componente declara uma dependência com o componente de serviço de troca de tokens,
aws.greengrass.TokenExchangeService
. Em caso negativo, adicione a dependência e reimplante o componente. -
Se o componente for executado no docker, certifique-se de aplicar as configurações de rede e as variáveis de ambiente corretas, de acordo com Use AWS credenciais em componentes de contêiner do Docker (Linux).
-
Se o componente estiver escrito em NodeJS, defina dns. setDefaultResultFaça o pedido
para ipv4first
. -
Verifique se há uma entrada em
/etc/hosts
que comece com::1
e contenhalocalhost
. Remova a entrada para confirmar se ela que fez com que o componente se conectasse ao serviço de troca de tokens pelo endereço errado.
Received error when attempting to retrieve ECS metadata: Could not connect to the endpoint URL: "<tokenExchangeServiceEndpoint>"
Você pode ver esse erro quando o componente não executa o serviço de troca de tokens e um componente tenta solicitar AWS credenciais.
Faça o seguinte:
-
Verifique se o componente declara uma dependência com o componente de serviço de troca de tokens,
aws.greengrass.TokenExchangeService
. Em caso negativo, adicione a dependência e reimplante o componente. -
Verifique se o componente usa AWS credenciais em seu ciclo de
install
vida. AWS IoT Greengrass não garante a disponibilidade do serviço de troca de tokens durante oinstall
ciclo de vida. Atualize o componente para mover o código que usa as credenciais da AWS para o ciclo de vida destartup
ourun
e, em seguida, reimplante o componente.
copyFrom: <configurationPath> is already a container, not a leaf
Esse erro pode ocorrer quando você altera um valor de configuração de um tipo de contêiner (lista ou objeto) para um tipo que não seja de contêiner (string, número ou booliano). Faça o seguinte:
-
Verifique se a configuração padrão na fórmula do componente define esse valor de configuração como lista ou objeto. Em caso afirmativo, remova-o ou altere-o.
-
Crie uma implantação para redefinir esse valor de configuração ao valor padrão. Para ter mais informações, consulte Criar implantações e Atualizar configurações do componente.
Em seguida, você pode definir esse valor de configuração como string, número ou booliano.
com.aws.greengrass.componentmanager.plugins.docker.exceptions.DockerLoginException: Error logging into the registry using credentials - 'The stub received bad data.'
Esse erro pode ocorrer nos logs do núcleo do Greengrass quando o componente Gerenciador de aplicações do Docker tenta fazer download de uma imagem do Docker de um repositório privado no Amazon Elastic Container Registry (Amazon ECR). Esse erro ocorre se você usa o assistente de credenciais do Dockerwincred
(docker-credential-wincred
). Como resultado, o Amazon ECR não pode armazenar as credenciais de login.
Faça uma das seguintes ações:
-
Se você não usa o assistente de credenciais do Docker
wincred
, remova o programadocker-credential-wincred
do dispositivo principal. -
Se você usa o assistente de credenciais do Docker
wincred
, faça o seguinte:-
Renomeie o programa
docker-credential-wincred
no dispositivo principal. Substituawincred
por um novo nome para o assistente de credenciais do Docker para Windows. Por exemplo, você pode renomeá-lo paradocker-credential-wincredreal
. -
Atualize a opção
credsStore
no arquivo de configuração do Docker (.docker/config.json
) para usar o novo nome para o assistente de credenciais do Docker para Windows. Por exemplo, se você renomeou o programa paradocker-credential-wincredreal
, atualize a opçãocredsStore
parawincredreal
.{ "credsStore": "
wincredreal
" }
-
java.io.IOException: Cannot run program "cmd" ...: [LogonUser] The password for this account has expired.
Esse erro pode ocorrer em um dispositivo principal do Windows quando a senha do usuário do sistema que executa os processos do componente, como ggc_user
, expirou. Como resultado, o software AWS IoT Greengrass Core não consegue executar processos de componentes como esse usuário do sistema.
Para atualizar a senha de um usuário do sistema Greengrass
-
Execute o comando a seguir como administrador para definir a senha do usuário.
ggc_user
Substitua pelo usuário do sistema epassword
substitua pela senha a ser definida.net user
ggc_user
password
-
Use o PsExec utilitário
para armazenar a nova senha do usuário na instância do Credential Manager da LocalSystem conta. password
Substitua pela senha do usuário que você definiu.psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
dica
Dependendo da configuração do Windows, a senha do usuário pode ser definida para expirar em uma data futura. Para garantir que as aplicações Greengrass continuem operando, monitore quando a senha expira e atualize-a antes disso. Também é possível definir que a senha nunca expire.
-
Para verificar quando um usuário e senha expiram, execute o comando a seguir.
net user
ggc_user
| findstr /C:expires -
Para definir que a senha de um usuário nunca expire, execute o seguinte comando.
wmic UserAccount where "Name='
ggc_user
'" set PasswordExpires=False -
Se você estiver usando o Windows 10 ou posterior, onde o
wmic
comando está obsoleto, execute o comando a seguir. PowerShell Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = '
ggc_user
'" | Set-CimInstance -Property @{PasswordExpires="False"}
aws.greengrass.StreamManager: Instant exceeds minimum or maximum instant
Ao atualizar o Gerenciador de fluxos v2.0.7 para uma versão entre v2.0.8 e v2.0.11, você pode ver o seguinte erro nos logs do componente Gerenciador de fluxos quando ele não pode ser iniciado.
2021-07-16T00:54:58.568Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. Caused by: com.fasterxml.jackson.databind.JsonMappingException: Instant exceeds minimum or maximum instant (through reference chain: com.amazonaws.iot.greengrass.streammanager.export.PersistedSuccessExportStatesV1["lastExportTime"]). {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=STARTING} 2021-07-16T00:54:58.579Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. Caused by: java.time.DateTimeException: Instant exceeds minimum or maximum instant. {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=STARTING}
Se você implantou o Gerenciador de fluxos v2.0.7 e deseja atualizar para uma versão mais recente, atualize-o diretamente para a versão 2.0.12. Para obter mais informações sobre o componente Gerenciador de fluxos, consulte Gerenciador de fluxos.
Problemas com o componente de função do Lambda do dispositivo principal
Solucione problemas com o componente de função do Lambda em dispositivos principais.
Tópicos
The following cgroup subsystems are not mounted: devices, memory
Esse erro pode ocorrer quando você executa uma função do Lambda em contêiner nos seguintes casos:
-
O dispositivo principal não tem o cgroup v1 habilitado para a memória ou os cgroups do dispositivo.
-
O dispositivo principal tem cgroups v2 habilitados. As funções do Lambda do Greengrass exigem cgroups v1, e os cgroups v1 e v2 são mutuamente exclusivos.
Para habilitar os cgroups v1, inicialize o dispositivo com os parâmetros do kernel Linux abaixo.
cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
dica
Em um Raspberry Pi, edite o arquivo /boot/cmdline.txt
para definir os parâmetros do kernel do dispositivo.
ipc_client.py:64,HTTP Error 400:Bad Request, b'No subscription exists for the source <label-or-lambda-arn> and subject <label-or-lambda-arn>
Você pode ver esse erro ao executar uma função Lambda V1, que usa AWS IoT Greengrass o SDK principal, em um dispositivo V2 core sem especificar uma assinatura no componente antigo do roteador de assinatura. Para corrigir esse problema, implante e configure o roteador legado de assinatura para especificar as assinaturas necessárias. Para obter mais informações, consulte Importar funções do Lambda no V1.
Versão do componente descontinuada
Você pode ver uma notificação no Personal Health Dashboard (PHD) quando uma versão do componente em seu dispositivo principal foi descontinuada. A versão do componente envia essa notificação ao PHD em até 60 minutos após ser descontinuada.
Para ver quais implantações você precisa revisar, faça o seguinte usando a AWS Command Line Interface:
-
Execute o comando a seguir para obter uma lista dos seus dispositivos principais.
aws greengrassv2 list-core-devices
-
Execute o comando a seguir para recuperar o status dos componentes em cada dispositivo principal da Etapa 1. Substitua
pelo nome de cada dispositivo principal que será consultado.coreDeviceName
aws greengrassv2 list-installed-components --core-device-thing-name
coreDeviceName
-
Agrupe os dispositivos principais com a versão descontinuada do componente instalada das etapas anteriores.
-
Execute o comando a seguir para recuperar o status de todas as tarefas de implantação de cada dispositivo principal da Etapa 3. Substitua
pelo nome do dispositivo principal que será consultado.coreDeviceName
aws greengrassv2 list-effective-deployments --core-device-thing-name
coreDeviceName
A resposta contém a lista de tarefas de implantação do dispositivo principal. Você pode revisar a implantação para escolher outra versão do componente. Para obter mais informações sobre como revisar uma implantação, consulte Revisar implantações.
Problemas na interface de linha de comando do Greengrass
Solucione problemas com a CLI do Greengrass.
java.lang.RuntimeException: Unable to create ipc client
Você pode ver esse erro ao executar um comando da CLI do Greengrass e especificar uma pasta raiz diferente daquela em que o software AWS IoT Greengrass Core está instalado.
Execute uma das ações a seguir para definir o caminho raiz e
substituí-lo pelo caminho para a instalação AWS IoT Greengrass do software Core:/greengrass/v2
-
Defina a variável de ambiente
GGC_ROOT_PATH
como
./greengrass/v2
-
Adicione o argumento
--ggcRootPath
ao comando, conforme mostrado no exemplo abaixo./greengrass/v2
greengrass-cli --ggcRootPath
<command> <subcommand> [arguments]/greengrass/v2
AWS Command Line Interface problemas
Solucione AWS CLI problemas para AWS IoT Greengrass V2.
Error: Invalid choice: 'greengrassv2'
Você pode ver esse erro ao executar um AWS IoT Greengrass V2 comando com o AWS CLI (por exemplo,aws greengrassv2 list-core-devices
).
Esse erro indica que você tem uma versão do AWS CLI que não é compatível AWS IoT Greengrass V2. Para usar AWS IoT Greengrass V2 com o AWS CLI, você deve ter uma das seguintes versões ou posteriores:
-
Versão AWS CLI V1 mínima: v1.18.197
-
Versão AWS CLI V2 mínima: v2.1.11
dica
Você pode executar o comando a seguir para verificar a versão do AWS CLI que você tem.
aws --version
Para resolver esse problema, atualize o AWS CLI para uma versão posterior que ofereça suporte AWS IoT Greengrass V2. Para obter mais informações, consulte Como instalar, atualizar e desinstalar a AWS CLI no Guia do usuário da AWS Command Line Interface .