Configurar o software AWS IoT Greengrass principal - 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á.

Configurar o software AWS IoT Greengrass principal

O software AWS IoT Greengrass Core fornece opções que você pode usar para configurar o software. Você pode criar implantações para configurar o software AWS IoT Greengrass Core em cada dispositivo principal.

Implemente o componente central do Greengrass

AWS IoT Greengrass fornece o software AWS IoT Greengrass Core como um componente que você pode implantar em seus dispositivos principais do Greengrass. Você pode criar uma implantação para aplicar a mesma configuração a vários dispositivos principais do Greengrass. Para obter mais informações, consulte Núcleo Greengrass e Atualize o software AWS IoT Greengrass principal (OTA).

Configurar o núcleo do Greengrass como um serviço do sistema

Você deve configurar o software AWS IoT Greengrass Core como um serviço do sistema no sistema inicial do seu dispositivo para fazer o seguinte:

  • Inicie o software AWS IoT Greengrass Core quando o dispositivo for inicializado. Essa é uma boa prática se você gerencia grandes frotas de dispositivos.

  • Instale e execute os componentes do plug-in. Vários componentes AWS fornecidos são componentes de plug-ins, o que permite que eles interajam diretamente com o núcleo do Greengrass. Para obter mais informações sobre tipos de componentes, consulte Tipos de componentes.

  • Aplique atualizações over-the-air (OTA) ao software principal do dispositivo AWS IoT Greengrass principal. Para ter mais informações, consulte Atualize o software AWS IoT Greengrass principal (OTA).

  • Permita que os componentes reiniciem o software AWS IoT Greengrass principal ou o dispositivo principal quando uma implantação atualiza o componente para uma nova versão ou atualiza determinados parâmetros de configuração. Para obter mais informações, consulte a etapa do ciclo de vida do bootstrap.

Importante

Nos dispositivos principais do Windows, você deve configurar o software AWS IoT Greengrass Core como um serviço do sistema.

Configurar o núcleo como um serviço do sistema (Linux)

Os dispositivos Linux oferecem suporte a diferentes sistemas de inicialização, como initd, systemd e systemV. Você usa o --setup-system-service true argumento ao instalar o software AWS IoT Greengrass Core para iniciar o núcleo como um serviço do sistema e configurá-lo para ser iniciado quando o dispositivo for inicializado. O instalador configura o software AWS IoT Greengrass Core como um serviço do sistema com o systemd.

Você também pode configurar manualmente o núcleo para ser executado como um serviço do sistema. O exemplo a seguir é um arquivo de serviço systemd.

[Unit] Description=Greengrass Core [Service] Type=simple PIDFile=/greengrass/v2/alts/loader.pid RemainAfterExit=no Restart=on-failure RestartSec=10 ExecStart=/bin/sh /greengrass/v2/alts/current/distro/bin/loader [Install] WantedBy=multi-user.target

Depois de configurar o serviço do sistema, você pode executar os seguintes comandos para configurar a inicialização do dispositivo na inicialização e para iniciar ou parar o software AWS IoT Greengrass Core.

  • Para verificar o status do serviço (systemd)

    sudo systemctl status greengrass.service
  • Para permitir que o núcleo inicie quando o dispositivo for inicializado.

    sudo systemctl enable greengrass.service
  • Para impedir que o núcleo inicie quando o dispositivo é inicializado.

    sudo systemctl disable greengrass.service
  • Para iniciar o software AWS IoT Greengrass Core.

    sudo systemctl start greengrass.service
  • Para parar o software AWS IoT Greengrass Core.

    sudo systemctl stop greengrass.service

Configurar o núcleo como um serviço do sistema (Windows)

Você usa o --setup-system-service true argumento ao instalar o software AWS IoT Greengrass Core para iniciar o núcleo como um serviço do Windows e configurá-lo para ser iniciado quando o dispositivo for inicializado.

Depois de configurar o serviço, você pode executar os seguintes comandos para configurar a inicialização do dispositivo na inicialização e para iniciar ou parar o software AWS IoT Greengrass Core. Você deve executar o prompt de comando ou PowerShell como administrador para executar esses comandos.

Windows Command Prompt (CMD)
  • Para verificar o status do serviço

    sc query "greengrass"
  • Para permitir que o núcleo inicie quando o dispositivo for inicializado.

    sc config "greengrass" start=auto
  • Para impedir que o núcleo inicie quando o dispositivo é inicializado.

    sc config "greengrass" start=disabled
  • Para iniciar o software AWS IoT Greengrass Core.

    sc start "greengrass"
  • Para parar o software AWS IoT Greengrass Core.

    sc stop "greengrass"
    nota

    Em dispositivos Windows, o software AWS IoT Greengrass Core ignora esse sinal de desligamento enquanto desliga os processos dos componentes do Greengrass. Se o software AWS IoT Greengrass Core ignorar o sinal de desligamento ao executar esse comando, aguarde alguns segundos e tente novamente.

PowerShell
  • Para verificar o status do serviço

    Get-Service -Name "greengrass"
  • Para permitir que o núcleo inicie quando o dispositivo for inicializado.

    Set-Service -Name "greengrass" -Status stopped -StartupType automatic
  • Para impedir que o núcleo inicie quando o dispositivo é inicializado.

    Set-Service -Name "greengrass" -Status stopped -StartupType disabled
  • Para iniciar o software AWS IoT Greengrass Core.

    Start-Service -Name "greengrass"
  • Para parar o software AWS IoT Greengrass Core.

    Stop-Service -Name "greengrass"
    nota

    Em dispositivos Windows, o software AWS IoT Greengrass Core ignora esse sinal de desligamento enquanto desliga os processos dos componentes do Greengrass. Se o software AWS IoT Greengrass Core ignorar o sinal de desligamento ao executar esse comando, aguarde alguns segundos e tente novamente.

Controle a alocação de memória com opções de JVM

Se você estiver executando AWS IoT Greengrass em um dispositivo com memória limitada, poderá usar as opções da máquina virtual Java (JVM) para controlar o tamanho máximo da pilha, os modos de coleta de lixo e as opções do compilador, que controlam a quantidade de memória usada pelo software Core. AWS IoT Greengrass O tamanho do heap na JVM determina a quantidade de memória que um aplicativo pode usar antes que a coleta de lixo ocorra ou antes que o aplicativo fique sem memória. O tamanho máximo do heap especifica a quantidade máxima de memória que a JVM pode alocar ao expandir o heap durante uma atividade intensa.

Para controlar a alocação de memória, crie uma nova implantação ou revise uma implantação existente que inclua o componente do núcleo e especifique suas opções de JVM no parâmetro de configuração na jvmOptions configuração do componente do núcleo.

Dependendo dos seus requisitos, você pode executar o software AWS IoT Greengrass Core com alocação de memória reduzida ou com alocação mínima de memória.

Alocação de memória reduzida

Para executar o software AWS IoT Greengrass Core com alocação de memória reduzida, recomendamos que você use o seguinte exemplo de atualização de mesclagem de configuração para definir as opções de JVM na configuração do núcleo:

{ "jvmOptions": "-Xmx64m -XX:+UseSerialGC -XX:TieredStopAtLevel=1" }
Alocação mínima de memória

Para executar o software AWS IoT Greengrass Core com alocação mínima de memória, recomendamos que você use o seguinte exemplo de atualização de mesclagem de configuração para definir as opções de JVM na configuração do núcleo:

{ "jvmOptions": "-Xmx32m -XX:+UseSerialGC -Xint" }

Esses exemplos de atualizações de mesclagem de configurações usam as seguintes opções de JVM:

-XmxNNm

Define o tamanho máximo da pilha da JVM.

Para reduzir a alocação de memória, use -Xmx64m como valor inicial para limitar o tamanho da pilha a 64 MB. Para alocação mínima de memória, use -Xmx32m como valor inicial para limitar o tamanho da pilha a 32 MB.

Você pode aumentar ou diminuir o -Xmx valor dependendo dos seus requisitos reais; no entanto, é altamente recomendável que você não defina o tamanho máximo da pilha abaixo de 16 MB. Se o tamanho máximo da pilha for muito baixo para seu ambiente, o software AWS IoT Greengrass Core poderá encontrar erros inesperados devido à memória insuficiente.

-XX:+UseSerialGC

Especifica o uso da coleta de lixo serial para o espaço de pilha da JVM. O coletor de lixo serial é mais lento, mas usa menos memória do que outras implementações de coleta de lixo da JVM.

-XX:TieredStopAtLevel=1

Instrui a JVM a usar o compilador Java just-in-time (JIT) uma vez. Como o código compilado pelo JIT usa espaço na memória do dispositivo, usar o compilador JIT mais de uma vez consome mais memória do que uma única compilação.

-Xint

Instrui a JVM a não usar o compilador just-in-time (JIT). Em vez disso, a JVM é executada no modo somente interpretado. Esse modo é mais lento do que a execução de código compilado JIT; no entanto, o código compilado não usa espaço na memória.

Para obter informações sobre como criar atualizações de mesclagem de configurações, consulteAtualizar configurações de componentes.

Configurar o usuário que executa os componentes

O software AWS IoT Greengrass principal pode executar processos de componentes como usuário e grupo do sistema diferente daquele que executa o software. Isso aumenta a segurança, porque você pode executar o software AWS IoT Greengrass Core como root ou como usuário administrador, sem conceder essas permissões aos componentes que são executados no dispositivo principal.

A tabela a seguir indica quais tipos de componentes o software AWS IoT Greengrass Core pode ser executado como usuário especificado por você. Para ter mais informações, consulte Tipos de componentes.

Tipo de componente Configurar usuário do componente

Núcleo

Plug-in

Genérico

Sim

Lambda (sem contêineres)

Sim

Lambda (em contêineres)

Sim

Você deve criar o usuário do componente antes de poder especificá-lo em uma configuração de implantação. Em dispositivos baseados em Windows, você também deve armazenar o nome de usuário e a senha do usuário na instância do gerenciador de credenciais da conta. LocalSystem Para ter mais informações, consulte Configurar um usuário componente em dispositivos Windows.

Ao configurar o usuário do componente em um dispositivo baseado em Linux, você também pode especificar um grupo. Você especifica o usuário e o grupo separados por dois pontos (:) no seguinte formato:user:group. Se você não especificar um grupo, o software AWS IoT Greengrass Core assumirá como padrão o grupo primário do usuário. Você pode usar o nome ou o ID para identificar o usuário e o grupo.

Em dispositivos baseados em Linux, você também pode executar componentes como um usuário do sistema que não existe, também chamado de usuário desconhecido, para aumentar a segurança. Um processo Linux pode sinalizar qualquer outro processo executado pelo mesmo usuário. Um usuário desconhecido não executa outros processos, então você pode executar componentes como um usuário desconhecido para evitar que os componentes sinalizem outros componentes no dispositivo principal. Para executar componentes como um usuário desconhecido, especifique uma ID de usuário que não exista no dispositivo principal. Você também pode especificar um ID de grupo que não existe para ser executado como um grupo desconhecido.

Você pode configurar o usuário para cada componente e para cada dispositivo principal.

  • Configurar para um componente

    Você pode configurar cada componente para ser executado com um usuário específico desse componente. Ao criar uma implantação, você pode especificar o usuário para cada componente na runWith configuração desse componente. O software AWS IoT Greengrass Core executa componentes como o usuário especificado se você os configurar. Caso contrário, o padrão é executar componentes como o usuário padrão que você configura para o dispositivo principal. Para obter mais informações sobre como especificar o usuário do componente na configuração de implantação, consulte o parâmetro runWithde configuração emCriar implantações.

  • Configurar o usuário padrão para um dispositivo principal

    Você pode configurar um usuário padrão que o software AWS IoT Greengrass Core usa para executar componentes. Quando o software AWS IoT Greengrass Core executa um componente, ele verifica se você especificou um usuário para esse componente e o usa para executar o componente. Se o componente não especificar um usuário, o software AWS IoT Greengrass Core executará o componente como o usuário padrão que você configurou para o dispositivo principal. Para ter mais informações, consulte Configurar o usuário padrão do componente.

nota

Em dispositivos baseados em Windows, você deve especificar pelo menos um usuário padrão para executar componentes.

Em dispositivos baseados em Linux, as seguintes considerações se aplicam se você não configurar um usuário para executar componentes:

  • Se você executar o software AWS IoT Greengrass Core como root, o software não executará componentes. Você deve especificar um usuário padrão para executar componentes se você executar como root.

  • Se você executar o software AWS IoT Greengrass Core como usuário não root, o software executará componentes como esse usuário.

Configurar um usuário componente em dispositivos Windows

Para configurar um usuário do componente em um dispositivo baseado em Windows
  1. Crie o usuário do componente na LocalSystem conta do dispositivo.

    net user /add component-user password
  2. Use o PsExec utilitário da Microsoft para armazenar o nome de usuário e a senha do usuário do componente na instância do Credential Manager da LocalSystem conta.

    psexec -s cmd /c cmdkey /generic:component-user /user:component-user /pass:password
    nota

    Em dispositivos baseados em Windows, a LocalSystem conta executa o núcleo Greengrass, e você deve usar o PsExec utilitário para armazenar as informações do usuário do componente na conta. LocalSystem O uso do aplicativo Credential Manager armazena essas informações na conta do Windows do usuário atualmente conectado, em vez da LocalSystem conta.

Configurar o usuário padrão do componente

Você pode usar uma implantação para configurar o usuário padrão em um dispositivo principal. Nessa implantação, você atualiza a configuração do componente do núcleo.

nota

Você também pode definir o usuário padrão ao instalar o software AWS IoT Greengrass Core com a --component-default-user opção. Para ter mais informações, consulte Instalar o software do AWS IoT Greengrass Core.

Crie uma implantação que especifique a seguinte atualização de configuração para o aws.greengrass.Nucleus componente.

Linux
{ "runWithDefault": { "posixUser": "ggc_user:ggc_group" } }
Windows
{ "runWithDefault": { "windowsUser": "ggc_user" } }
nota

O usuário que você especificar deve existir, e o nome de usuário e a senha desse usuário devem ser armazenados na instância do gerenciador de credenciais da LocalSystem conta em seu dispositivo Windows. Para ter mais informações, consulte Configurar um usuário componente em dispositivos Windows.

O exemplo a seguir define uma implantação para um dispositivo baseado em Linux que é configurado ggc_user como usuário padrão e ggc_group como grupo padrão. A atualização da merge configuração requer um objeto JSON serializado.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.12.6", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"posixUser\":\"ggc_user:ggc_group\"}}" } } } }

Configurar limites de recursos do sistema para componentes

nota

Esse recurso está disponível para a versão 2.4.0 e posterior do componente núcleo do Greengrass. AWS IoT Greengrass atualmente não oferece suporte a esse recurso nos dispositivos principais do Windows.

Você pode configurar a quantidade máxima de uso de CPU e RAM que os processos de cada componente podem usar no dispositivo principal.

A tabela a seguir mostra os tipos de componentes que suportam os limites de recursos do sistema. Para ter mais informações, consulte Tipos de componentes.

Tipo de componente Configurar limites de recursos do sistema

Núcleo

Plug-in

Genérico

Sim

Lambda (sem contêineres)

Sim

Lambda (em contêineres)

Importante

Os limites de recursos do sistema não são suportados quando você executa o software AWS IoT Greengrass Core em um contêiner Docker.

Você pode configurar os limites de recursos do sistema para cada componente e para cada dispositivo principal.

  • Configurar para um componente

    Você pode configurar cada componente com limites de recursos do sistema específicos para esse componente. Ao criar uma implantação, você pode especificar os limites de recursos do sistema para cada componente na implantação. Se o componente suportar os limites de recursos do sistema, o software AWS IoT Greengrass principal aplicará os limites aos processos do componente. Se você não especificar os limites de recursos do sistema para um componente, o software AWS IoT Greengrass Core usará todos os padrões que você configurou para o dispositivo principal. Para ter mais informações, consulte Criar implantações.

  • Configurar padrões para um dispositivo principal

    Você pode configurar os limites padrão de recursos do sistema que o software AWS IoT Greengrass Core aplica aos componentes que suportam esses limites. Quando o software AWS IoT Greengrass Core executa um componente, ele aplica os limites de recursos do sistema que você especifica para esse componente. Se esse componente não especificar limites de recursos do sistema, o software AWS IoT Greengrass Core aplicará os limites padrão de recursos do sistema que você configura para o dispositivo principal. Se você não especificar limites padrão de recursos do sistema, o software AWS IoT Greengrass Core não aplicará nenhum limite de recursos do sistema por padrão. Para ter mais informações, consulte Configurar limites padrão de recursos do sistema.

Configurar limites padrão de recursos do sistema

Você pode implantar o componente Greengrass nucleus para configurar os limites padrão de recursos do sistema para um dispositivo principal. Para configurar os limites padrão de recursos do sistema, crie uma implantação que especifique a seguinte atualização de configuração para o aws.greengrass.Nucleus componente.

{ "runWithDefault": { "systemResourceLimits": { "cpu": cpuTimeLimit, "memory": memoryLimitInKb } } }

O exemplo a seguir define uma implantação que configura o limite de tempo da CPU em2, o que equivale a 50% de uso em um dispositivo com 4 núcleos de CPU. Este exemplo também configura o uso da memória para 100 MB.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.12.6", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"systemResourceLimits\":\"cpus\":2,\"memory\":102400}}}" } } } }

Conectar-se à porta 443 ou por meio de um proxy de rede

AWS IoT Greengrass os dispositivos principais se comunicam AWS IoT Core usando o protocolo de mensagens MQTT com autenticação de cliente TLS. Por convenção, o MQTT sobre TLS usa a porta 8883. No entanto, como uma medida de segurança, ambientes restritivos podem limitar o tráfego de entrada e saída a um pequeno intervalo de portas TCP. Por exemplo, um firewall corporativo pode abrir a porta 443 para o tráfego HTTPS, mas fechar outras portas que são usadas por protocolos menos comuns, como a porta 8883 para tráfego MQTT. Outros ambientes restritivos podem exigir que todo o tráfego passe por um proxy antes de se conectar à Internet.

nota

Os principais dispositivos do Greengrass que executam o componente Greengrass nucleus v2.0.3 e versões anteriores usam a porta 8443 para se conectar ao endpoint do plano de dados. AWS IoT Greengrass Esses dispositivos devem ser capazes de se conectar a esse endpoint na porta 8443. Para ter mais informações, consulte Permitir o tráfego de dispositivos por meio de um proxy ou firewall.

Para habilitar a comunicação nesses cenários, AWS IoT Greengrass fornece as seguintes opções de configuração:

  • Comunicação MQTT pela porta 443. Se sua rede permitir conexões com a porta 443, você poderá configurar o dispositivo principal do Greengrass para usar a porta 443 para tráfego MQTT em vez da porta padrão 8883. Isso pode ser uma conexão direta com a porta 443 ou uma conexão por meio de um servidor de proxy de rede. Diferentemente da configuração padrão, que usa autenticação de cliente baseada em certificado, o MQTT na porta 443 usa a função de serviço do dispositivo para autenticação.

    Para ter mais informações, consulte Configurar o MQTT pela porta 443.

  • Comunicação HTTPS pela porta 443. O software AWS IoT Greengrass Core envia tráfego HTTPS pela porta 8443 por padrão, mas você pode configurá-lo para usar a porta 443. AWS IoT Greengrass usa a extensão TLS da Application Layer Protocol Network (ALPN) para habilitar essa conexão. Assim como na configuração padrão, o HTTPS na porta 443 usa autenticação de cliente baseada em certificado.

    Importante

    Para usar o ALPN e habilitar a comunicação HTTPS pela porta 443, seu dispositivo principal deve executar a atualização 252 ou posterior do Java 8. Todas as atualizações do Java versão 9 e posteriores também oferecem suporte ao ALPN.

    Para ter mais informações, consulte Configurar HTTPS pela porta 443.

  • Conexão por meio de um proxy de rede. Você pode configurar um servidor proxy de rede para atuar como intermediário na conexão com o dispositivo principal do Greengrass. AWS IoT Greengrass oferece suporte à autenticação básica para proxies HTTP e HTTPS.

    Os dispositivos principais do Greengrass devem executar o Greengrass nucleus v2.5.0 ou posterior para usar proxies HTTPS.

    O software AWS IoT Greengrass principal passa a configuração do proxy para os componentes por meio das variáveis de NO_PROXY ambiente ALL_PROXY HTTP_PROXYHTTPS_PROXY,,, e. Os componentes devem usar essas configurações para se conectar por meio do proxy. Os componentes usam bibliotecas comuns (como boto3, cURL e o requests pacote python) que normalmente usam essas variáveis de ambiente por padrão para fazer conexões. Se um componente também especificar essas variáveis de ambiente, AWS IoT Greengrass não as substituirá.

    Para ter mais informações, consulte Configurar um proxy de rede.

Configurar o MQTT pela porta 443

Você pode configurar o MQTT pela porta 443 em dispositivos principais existentes ou ao instalar o software AWS IoT Greengrass Core em um novo dispositivo principal.

Configure o MQTT pela porta 443 em dispositivos principais existentes

Você pode usar uma implantação para configurar o MQTT pela porta 443 em um dispositivo de núcleo único ou em um grupo de dispositivos principais. Nessa implantação, você atualiza a configuração do componente do núcleo. O núcleo reinicia quando você atualiza sua mqtt configuração.

Para configurar o MQTT pela porta 443, crie uma implantação que especifique a seguinte atualização de configuração para o componente. aws.greengrass.Nucleus

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

O exemplo a seguir define uma implantação que configura o MQTT na porta 443. A atualização da merge configuração requer um objeto JSON serializado.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.12.6", "configurationUpdate": { "merge": "{\"mqtt\":{\"port\":443}}" } } } }

Configure o MQTT pela porta 443 durante a instalação

Você pode configurar o MQTT pela porta 443 ao instalar o software AWS IoT Greengrass Core em um dispositivo principal. Use o argumento do --init-config instalador para configurar o MQTT pela porta 443. Você pode especificar esse argumento ao instalar com provisionamento manual, provisionamento defrota ou provisionamento personalizado.

Configurar HTTPS pela porta 443

Esse recurso requer a Núcleo Greengrass versão v2.0.4 ou posterior.

Você pode configurar HTTPS pela porta 443 em dispositivos principais existentes ou ao instalar o software AWS IoT Greengrass Core em um novo dispositivo principal.

Configure HTTPS pela porta 443 em dispositivos principais existentes

Você pode usar uma implantação para configurar HTTPS pela porta 443 em um dispositivo de núcleo único ou em um grupo de dispositivos principais. Nessa implantação, você atualiza a configuração do componente do núcleo.

Para configurar HTTPS pela porta 443, crie uma implantação que especifique a seguinte atualização de configuração para o aws.greengrass.Nucleus componente.

{ "greengrassDataPlanePort": 443 }

O exemplo a seguir define uma implantação que configura HTTPS pela porta 443. A atualização da merge configuração requer um objeto JSON serializado.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.12.6", "configurationUpdate": { "merge": "{\"greengrassDataPlanePort\":443}" } } } }

Configure HTTPS pela porta 443 durante a instalação

Você pode configurar HTTPS pela porta 443 ao instalar o software AWS IoT Greengrass Core em um dispositivo principal. Use o argumento --init-config do instalador para configurar HTTPS pela porta 443. Você pode especificar esse argumento ao instalar com provisionamento manual, provisionamento defrota ou provisionamento personalizado.

Configurar um proxy de rede

Siga o procedimento nesta seção para configurar os dispositivos principais do Greengrass para se conectarem à Internet por meio de um proxy de rede HTTP ou HTTPS. Para obter mais informações sobre os endpoints e portas que os dispositivos principais usam, consultePermitir o tráfego de dispositivos por meio de um proxy ou firewall.

Importante

Se o seu dispositivo principal executa uma versão do núcleo do Greengrass anterior à v2.4.0, a função do seu dispositivo deve permitir as seguintes permissões para usar um proxy de rede:

  • iot:Connect

  • iot:Publish

  • iot:Receive

  • iot:Subscribe

Isso é necessário porque o dispositivo usa AWS credenciais do serviço de troca de tokens para autenticar conexões MQTT com. AWS IoT O dispositivo usa o MQTT para receber e instalar implantações do Nuvem AWS, portanto, seu dispositivo não funcionará a menos que você defina essas permissões em sua função. Os dispositivos normalmente usam certificados X.509 para autenticar conexões MQTT, mas os dispositivos não podem fazer isso para se autenticar quando usam um proxy.

Para obter mais informações sobre como configurar a função do dispositivo, consulteAutorize os dispositivos principais a interagir com os serviços AWS.

Configurar um proxy de rede nos dispositivos principais existentes

Você pode usar uma implantação para configurar um proxy de rede em um dispositivo de núcleo único ou em um grupo de dispositivos principais. Nessa implantação, você atualiza a configuração do componente do núcleo. O núcleo reinicia quando você atualiza sua networkProxy configuração.

Para configurar um proxy de rede, crie uma implantação para o aws.greengrass.Nucleus componente que mescla a seguinte atualização de configuração. Essa atualização de configuração contém o objeto NetworkProxy.

{ "networkProxy": { "noProxyAddresses": "http://192.168.0.1,www.example.com", "proxy": { "url": "https://my-proxy-server:1100" } } }

O exemplo a seguir define uma implantação que configura um proxy de rede. A atualização da merge configuração requer um objeto JSON serializado.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.12.6", "configurationUpdate": { "merge": "{\"networkProxy\":{\"noProxyAddresses\":\"http://192.168.0.1,www.example.com\",\"proxy\":{\"url\":\"https://my-proxy-server:1100\",\"username\":\"Mary_Major\",\"password\":\"pass@word1357\"}}}" } } } }

Configurar um proxy de rede durante a instalação

Você pode configurar um proxy de rede ao instalar o software AWS IoT Greengrass Core em um dispositivo principal. Use o argumento --init-config do instalador para configurar o proxy de rede. Você pode especificar esse argumento ao instalar com provisionamento manual, provisionamento defrota ou provisionamento personalizado.

Permita que o dispositivo principal confie em um proxy HTTPS

Ao configurar um dispositivo principal para usar um proxy HTTPS, você deve adicionar a cadeia de certificados do servidor proxy à do dispositivo principal para permitir que ele confie no proxy HTTPS. Caso contrário, o dispositivo principal poderá encontrar erros ao tentar rotear o tráfego por meio do proxy. Adicione o certificado CA do servidor proxy ao arquivo de certificado de CA raiz da Amazon do dispositivo principal.

Para permitir que o dispositivo principal confie no proxy HTTPS
  1. Encontre o arquivo de certificado CA raiz da Amazon no dispositivo principal.

    • Se você instalou o software AWS IoT Greengrass Core com provisionamento automático, o arquivo de certificado CA raiz da Amazon existe em. /greengrass/v2/rootCA.pem

    • Se você instalou o software AWS IoT Greengrass Core com provisionamento manual ou de frota, o arquivo de certificado CA raiz da Amazon pode existir em. /greengrass/v2/AmazonRootCA1.pem

    Se o certificado CA raiz da Amazon não existir nesses locais, verifique a system.rootCaPath propriedade /greengrass/v2/config/effectiveConfig.yaml para encontrar sua localização.

  2. Adicione o conteúdo do arquivo de certificado CA do servidor proxy ao arquivo de certificado CA raiz da Amazon.

    O exemplo a seguir mostra um certificado CA do servidor proxy adicionado ao arquivo de certificado CA raiz da Amazon.

    -----BEGIN CERTIFICATE----- MIIEFTCCAv2gAwIQWgIVAMHSAzWG/5YVRYtRQOxXUTEpHuEmApzGCSqGSIb3DQEK \nCwUAhuL9MQswCQwJVUzEPMAVUzEYMBYGA1UECgwP1hem9uLmNvbSBJbmMuMRww ... content of proxy CA certificate ... +vHIRlt0e5JAm5\noTIZGoFbK82A0/nO7f/t5PSIDAim9V3Gc3pSXxCCAQoFYnui GaPUlGk1gCE84a0X\n7Rp/lND/PuMZ/s8YjlkY2NmYmNjMCAXDTE5MTEyN2cM216 gJMIADggEPADf2/m45hzEXAMPLE= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDQTCCAimgF6AwIBAgITBmyfz/5mjAo54vB4ikPmljZKyjANJmApzyMZFo6qBg ADA5MQswCQYDVQQGEwJVUzEPMA0tMVT8QtPHRh8jrdkGA1UEChMGDV3QQDExBBKW ... content of root CA certificate ... o/ufQJQWUCyziar1hem9uMRkwFwYVPSHCb2XV4cdFyQzR1KldZwgJcIQ6XUDgHaa 5MsI+yMRQ+hDaXJiobldXgjUka642M4UwtBV8oK2xJNDd2ZhwLnoQdeXeGADKkpy rqXRfKoQnoZsG4q5WTP46EXAMPLE -----END CERTIFICATE-----

O objeto NetworkProxy

Use o objeto networkProxy para especificar informações sobre o proxy de rede. Esse objeto contém as seguintes informações:

noProxyAddresses

(Opcional) Uma lista separada por vírgulas de endereços IP ou nomes de host que estão isentos do proxy.

proxy

O proxy ao qual se conectar. Esse objeto contém as seguintes informações:

url

O URL do servidor proxy no formatoscheme://userinfo@host:port.

  • scheme— O esquema, que deve ser http ouhttps.

    Importante

    Os dispositivos principais do Greengrass devem executar o Greengrass nucleus v2.5.0 ou posterior para usar proxies HTTPS.

    Se você configurar um proxy HTTPS, deverá adicionar o certificado CA do servidor proxy ao certificado de CA raiz da Amazon do dispositivo principal. Para ter mais informações, consulte Permita que o dispositivo principal confie em um proxy HTTPS.

  • userinfo— (Opcional) As informações de nome de usuário e senha. Se você especificar essas informações nourl, o dispositivo principal do Greengrass ignorará os campos e. username password

  • host— O nome do host ou endereço IP do servidor proxy.

  • port— (Opcional) O número da porta. Se você não especificar a porta, o dispositivo principal do Greengrass usará os seguintes valores padrão:

    • http— 80

    • https— 443

username

(Opcional) O nome de usuário que autentica o servidor proxy.

password

(Opcional) A senha que autentica o servidor proxy.

Use um certificado de dispositivo assinado por uma CA privada

Se você estiver usando uma autoridade de certificação (CA) privada personalizada, você deve definir o núcleo greengrassDataPlaneEndpoint do Greengrass como. iotdata Você pode definir essa opção durante a implantação ou instalação usando o argumento do --init-config instalador.

Você pode personalizar o endpoint do plano de dados do Greengrass ao qual o dispositivo se conecta. Você pode definir essa opção de configuração iotdata para definir o endpoint do plano de dados do Greengrass como o mesmo endpoint de dados de IoT, que você pode especificar com o. iotDataEndpoint

Defina os tempos limite do MQTT e as configurações de cache

No AWS IoT Greengrass ambiente, os componentes podem usar o MQTT para se comunicar com AWS IoT Core eles. O software AWS IoT Greengrass Core gerencia mensagens MQTT para componentes. Quando o dispositivo principal perde a conexão com o Nuvem AWS, o software armazena em cache as mensagens MQTT para tentar novamente mais tarde, quando a conexão for restaurada. Você pode definir configurações como o tempo limite das mensagens e o tamanho do cache. Para obter mais informações, consulte os parâmetros mqtt e os parâmetros de mqtt.spooler configuração do componente do núcleo do Greengrass.

AWS IoT Core impõe cotas de serviço em seu agente de mensagens MQTT. Essas cotas podem se aplicar às mensagens que você envia entre os dispositivos principais e. AWS IoT Core Para obter mais informações, consulte cotas do serviço de agente de AWS IoT Core mensagens no Referência geral da AWS.