Configurar o software AWS IoT Greengrass Core
O software AWS IoT Greengrass Core fornece opções que podem ser usadas para configurar o software. É possível criar implantações para configurar o software AWS IoT Greengrass Core em cada dispositivo principal.
Tópicos
- Implementar o componente do núcleo do Greengrass
- Configurar o núcleo do Greengrass como um serviço do sistema
- Controlar a alocação de memória com opções de JVM
- Configurar o usuário que executa os componentes
- Configurar limites de recursos do sistema para componentes
- Conectar-se à porta 443 ou por meio de um proxy de rede
- Usar um certificado de dispositivo assinado por uma CA privada
- Definir os tempos limite do MQTT e as configurações de cache
Implementar o componente do núcleo do Greengrass
O AWS IoT Greengrass fornece o software AWS IoT Greengrass Core como um componente que você pode implantar nos dispositivos principais do Greengrass. Você pode criar uma implantação para aplicar a mesma configuração a vários dispositivos principais do Greengrass. Para ter mais informações, consulte Núcleo do Greengrass e Atualizar o software de núcleo do AWS IoT Greengrass (OTA).
Configurar o núcleo do Greengrass como um serviço do sistema
Configure o software AWS IoT Greengrass Core como um serviço do sistema no sistema inicial do dispositivo para fazer o seguinte:
-
Inicie o software AWS IoT Greengrass Core quando o dispositivo é inicializado. Essa é uma prática recomendada se você gerencia grandes frotas de dispositivos.
-
Instale e execute os componentes do plug-in. Vários componentes fornecidos pela AWS 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 sem fios ao software AWS IoT Greengrass Core do dispositivo principal. Para mais informações, consulte Atualizar o software de núcleo do AWS IoT Greengrass (OTA).
-
Permita que os componentes reiniciem o software AWS IoT Greengrass Core 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 mais informações, consulte a etapa do ciclo de vida do bootstrap.
Importante
Nos dispositivos principais do Windows, é preciso configurar o software AWS IoT Greengrass Core como um serviço do sistema.
Tópicos
Configurar o núcleo como um serviço do sistema (Linux)
Os dispositivos Linux são compatíveis com diferentes sistemas de inicialização, como initd, systemd e systemV. Use o argumento --setup-system-service true
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.
Também é possível 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=
/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
/greengrass/v2
Depois de configurar o serviço do sistema, é possível executar os seguintes comandos para configurar a inicialização do dispositivo 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 seja iniciado quando o dispositivo for 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)
Use o argumento --setup-system-service true
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, é possível executar os seguintes comandos para configurar a inicialização do dispositivo e para iniciar ou parar o software AWS IoT Greengrass Core. Execute o Prompt de Comando ou o PowerShell como administrador para executar esses comandos.
Controlar a alocação de memória com opções de JVM
Se você estiver executando o 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 do heap, os modos de coleta de resíduos e as opções do compilador, que controlam a quantidade de memória usada pelo software AWS IoT Greengrass Core. O tamanho do heap na JVM determina a quantidade de memória que uma aplicação pode usar antes que a coleta de resíduos
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 as opções de JVM no parâmetro de configuração jvmOptions
na configuração do componente do núcleo.
Dependendo dos seus requisitos, é possível 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": "-XX:+UseSerialGC -XX:TieredStopAtLevel=1" }
Alocação mínima de memória
Para executar o software AWS IoT Greengrass Core com alocação de memória mínima, 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" }
Importante
A execução do software AWS IoT Greengrass Core com alocação mínima de memória pode ter um impacto significativo no desempenho de sistemas de baixa especificação, pois a JVM processará mais quando usar menos memória. Recomendamos ajustar as opções para equilibrar suas necessidades de memória e desempenho.
Esses exemplos de atualizações de mesclagem de configurações usam as seguintes opções de JVM:
-XX:+UseSerialGC
-
Especifica o uso da coleta de resíduos serial para o espaço de do heap da JVM. O coleta de resíduos serial é mais lento, mas usa menos memória do que outras implementações de coleta de resíduos 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.
-Xmx
NN
m-
Define o tamanho máximo do heap da JVM.
Importante
Definir o tamanho máximo do heap como muito baixo pode causar um desempenho mais lento ou erros de memória insuficiente. Recomendamos medir o uso atual dele antes de definir um tamanho máximo com a opção
-Xmx
. Configure sua JVM com a opçãoNN
m-XX:NativeMemoryTracking=detail
JVM. Em seguida, meça o uso atual do heap usando a solicitação de comandoVM.native_memory
no Utilitário jcmd. Se a medição do heap não for uma opção, use
-Xmx64m
como valor inicial para limitar o tamanho do heap a 64 MB. Em seguida, é possível diminuir gradualmente o tamanho máximo do heap a partir daí. Para alocação mínima de memória, use-Xmx32m
como valor inicial para limitar o tamanho do heap a 32 MB.É possível aumentar ou diminuir o valor do
-Xmx
dependendo dos seus requisitos reais. No entanto, é altamente recomendável que você não defina o tamanho máximo do heap abaixo de 16 MB. A quantidade de tamanho do heap da JVM necessária também pode variar com o tempo, com base nos componentes do plug-in implantados no dispositivo principal. Se o tamanho máximo do heap for muito baixo para seu ambiente, o software AWS IoT Greengrass Core poderá encontrar erros inesperados devido à memória insuficiente. Se você tiver um desempenho mais lento ou encontrar erros devido à memória insuficiente, reverta para uma configuração conhecida como boa. Por exemplo, se o tamanho normal do heap confirmado for41428KB
, use-Xmx40m
para limitar um pouco o uso dele. -Xint
-
Instrui a JVM a não usar o compilador Java just-in-time (JIT) uma vez. Em vez disso, a JVM é executada no modo somente interpretado. Esse modo é mais lento (potencialmente 20 vezes mais lento para implantações em sistemas de baixo custo) do que executar código compilado JIT. No entanto, o código compilado não usa nenhum espaço na memória.
Para obter informações sobre como criar atualizações de mesclagem de configurações, consulte Atualizar configurações do componente.
Configurar o usuário que executa os componentes
O software AWS IoT Greengrass Core 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 raiz ou como usuário administrador, sem conceder essas permissões aos componentes que são executados no dispositivo principal.
A tabela a seguir indica com quais tipos de componentes o software AWS IoT Greengrass Core pode ser executado como usuário especificado por você. Para mais informações, consulte Tipos de componentes.
Tipo de componente | Configurar usuário do componente |
---|---|
Núcleo |
|
Plug-in |
|
Genérico |
|
Lambda (sem contêineres) |
|
Lambda (em contêineres) |
|
Crie o usuário do componente antes de especificá-lo em uma configuração de implantação. Em dispositivos baseados em Windows, também é preciso armazenar o nome de usuário e a senha do usuário na instância do gerenciador de credenciais da conta LocalSystem. Para mais informações, consulte Configurar um usuário do componente em dispositivos Windows.
Ao configurar o usuário do componente em um dispositivo baseado em Linux, você também pode especificar um grupo. Especifique o usuário e o grupo separando-os por dois pontos (:
), no seguinte formato:
. Se você não especificar um grupo, o software AWS IoT Greengrass Core usará como padrão o grupo principal do usuário. É possível usar o nome ou o ID para identificar o usuário e o grupo. user
:group
Em dispositivos baseados em Linux, também é possível 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 outros componentes sejam sinalizados 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 uma ID de grupo que não existe para ser executada como um grupo desconhecido.
Você pode configurar o usuário para cada componente e para cada dispositivo principal.
-
Configurar para um componente
É possível 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 configuração
runWith
deles. O software AWS IoT Greengrass Core executa componentes como o usuário especificado, se configurado. Caso contrário, o padrão é executar componentes como o usuário padrão configurado para o dispositivo principal. Para mais informações sobre como especificar o usuário do componente na configuração de implantação, consulte o parâmetro de configuração runWith em Criar implantações. -
Configurar o usuário padrão para um dispositivo principal
É possível 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 executá-lo. 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 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 raiz, o software não executará componentes. Você deve especificar um usuário padrão para executar componentes se você executar como raiz.
-
Se você executar o software AWS IoT Greengrass Core como usuário não raiz, o software executará componentes como esse usuário.
Tópicos
Configurar um usuário do componente em dispositivos Windows
Para configurar um usuário do componente em um dispositivo baseado no Windows
-
Crie o usuário do componente na conta LocalSystem no dispositivo.
net user /add
component-user
password
-
Use o utilitário PsExec da Microsoft
para armazenar o nome e a senha do usuário do componente na instância do Credential Manager para a conta LocalSystem. psexec -s cmd /c cmdkey /generic:
component-user
/user:component-user
/pass:password
nota
Em dispositivos baseados no Windows, a conta LocalSystem executa o núcleo do Greengrass, e você deve usar o utilitário PsExec para armazenar as informações do usuário do componente na conta LocalSystem. O uso da aplicação Credential Manager armazena essas informações na conta do Windows do usuário atualmente conectado, em vez da conta do LocalSystem.
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 opção --component-default-user
. Para 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 componente aws.greengrass.Nucleus
.
O exemplo a seguir define uma implantação para um dispositivo baseado em Linux que configura o ggc_user
como usuário padrão e o ggc_group
como grupo padrão. A atualização da configuração merge
requer um objeto JSON serializado.
{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"posixUser\":\"ggc_user:ggc_group\"}}" } } } }
Configurar limites de recursos do sistema para componentes
nota
Esse atributo está disponível na versão 2.4.0 e posteriores do componente do núcleo do Greengrass. Atualmente, o AWS IoT Greengrass não é compatível com esse atributo nos dispositivos principais do Windows.
Você pode configurar a quantidade máxima de uso da CPU e RAM que os processos de um componente podem usar no dispositivo principal.
A tabela a seguir mostra os tipos de componentes que oferecem suporte aos limites de recursos do sistema. Para mais informações, consulte Tipos de componentes.
Tipo de componente | Configurar limites de recursos do sistema |
---|---|
Núcleo |
|
Plug-in |
|
Genérico |
|
Lambda (sem contêineres) |
|
Lambda (em contêineres) |
|
Importante
Os limites de recursos do sistema não são compatíveis quando o software AWS IoT Greengrass Core é executado em um contêiner do Docker.
Você pode configurar 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. Se o componente é compatível com os limites de recursos do sistema, o software AWS IoT Greengrass Core 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 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 compatíveis com 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 por padrão. Para 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 do núcleo do Greengrass 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 componente aws.greengrass.Nucleus
.
{ "runWithDefault": { "systemResourceLimits": { "cpu":
cpuTimeLimit
, "memory":memoryLimitInKb
} } }
O exemplo a seguir define uma implantação que configura o limite de tempo da CPU em 2
, 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.13.0", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"systemResourceLimits\":\"cpus\":2,\"memory\":102400}}}" } } } }
Conectar-se à porta 443 ou por meio de um proxy de rede
Os dispositivos principais AWS IoT Greengrass se comunicam com o AWS IoT Core usando o protocolo de mensagens MQTT com autenticação do 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 dispositivos principais do Greengrass que executam o componente de núcleo do Greengrass v2.0.3 e versões anteriores usam a porta 8443 para se conectar ao endpoint do plano de dados do AWS IoT Greengrass. Esses dispositivos devem ser capazes de se conectar a esse endpoint na porta 8443. Para 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, o AWS IoT Greengrass fornece as seguintes opções de configurações:
-
Comunicação MQTT pela porta 443. Se a 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 8883 padrão. 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 o perfil de serviço do dispositivo para autenticação.
Para mais informações, consulte Configurar o MQTT na 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. O 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 mais informações, consulte Configurar o HTTPS na porta 443.
-
Conexão por meio de um proxy de rede. É possível configurar um servidor proxy de rede para atuar como intermediário para conexão ao dispositivo principal do Greengrass. O AWS IoT Greengrass é compatível com a autenticação básica para proxies HTTP e HTTPS.
Os dispositivos do núcleo do Greengrass devem executar o núcleo do Greengrass v2.5.0 ou posterior para usar proxies HTTPS.
O software AWS IoT Greengrass Core passa a configuração do proxy para os componentes por meio das variáveis de ambiente
ALL_PROXY
,HTTP_PROXY
,HTTPS_PROXY
eNO_PROXY
. Os componentes devem usar essas configurações para conectarem-se pelo proxy. Os componentes usam bibliotecas comuns (como boto3, cURL e o pacoterequests
do python) que normalmente usam essas variáveis de ambiente por padrão para fazer conexões. Se um componente também especifica essas variáveis de ambiente, o AWS IoT Greengrass não as substitui.Para mais informações, consulte Configurar uma proxy de rede.
Configurar o MQTT na 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.
Tópicos
Configurar 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 principal ú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 a configuração mqtt
dele.
Para configurar o MQTT na 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 configuração merge
requer um objeto JSON serializado.
{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"mqtt\":{\"port\":443}}" } } } }
Configurar 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 instalador --init-config
para configurar o MQTT pela porta 443. Você pode especificar esse argumento ao instalar com provisionamento manual, provisionamento de frota ou provisionamento personalizado.
Configurar o HTTPS na porta 443
Esse atributo exige o Núcleo do Greengrass v2.0.4 ou posterior.
Você pode configurar o HTTPS pela porta 443 em dispositivos principais existentes ou ao instalar o software AWS IoT Greengrass Core em um novo dispositivo principal.
Tópicos
Configurar o HTTPS pela porta 443 em dispositivos principais existentes
Você pode usar uma implantação para configurar o HTTPS pela porta 443 em um dispositivo principal ú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 componente aws.greengrass.Nucleus
.
{ "greengrassDataPlanePort": 443 }
O exemplo a seguir define uma implantação que configura o HTTPS na porta 443. A atualização da configuração merge
requer um objeto JSON serializado.
{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"greengrassDataPlanePort\":443}" } } } }
Configurar o HTTPS pela porta 443 durante a instalação
Você pode configurar o HTTPS pela porta 443 ao instalar o software AWS IoT Greengrass Core em um dispositivo principal. Use o argumento do instalador --init-config
para configurar o HTTPS pela porta 443. Você pode especificar esse argumento ao instalar com provisionamento manual, provisionamento de frota ou provisionamento personalizado.
Configurar uma 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 mais informações sobre os endpoints e portas usados pelos dispositivos principais, consulte Permitir 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, o perfil do seu dispositivo deve permitir o seguinte para usar um proxy de rede:
-
iot:Connect
-
iot:Publish
-
iot:Receive
-
iot:Subscribe
Isso é necessário porque o dispositivo usa credenciais da AWS do serviço de troca de tokens para autenticar conexões MQTT com a AWS IoT. O dispositivo usa o MQTT para receber e instalar implantações daNuvem AWS, portanto, seu dispositivo não funcionará a menos que você defina essas permissões no perfil. 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 mais informações sobre como configurar os perfis do dispositivo, consulte Autorize os dispositivos principais a interagir com os serviços da AWS.
Tópicos
Configurar um proxy de rede nos dispositivos principais existentes
Você pode usar uma implantação para configurar um proxy de rede em um único dispositivo principal 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 a configuração networkProxy
dele.
Para configurar um proxy de rede, crie uma implantação para o componente aws.greengrass.Nucleus
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 o proxy de rede. A atualização da configuração merge
requer um objeto JSON serializado.
{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "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 do instalador --init-config
para configurar o proxy de rede. Você pode especificar esse argumento ao instalar com provisionamento manual, provisionamento de frota ou provisionamento personalizado.
Ative o dispositivo principal para confiar 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 poderá encontrar erros ao tentar rotear o tráfego por meio do proxy. Adicione o certificado CA do servidor proxy ao arquivo de certificado CA raiz da Amazon do dispositivo principal.
Para ativar o dispositivo principal para confiar em um proxy HTTPS
-
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
.
/rootCA.pem/greengrass/v2
-
Se você instalou o software AWS IoT Greengrass Core com provisionamento manual ou de frota, o arquivo de certificado CA raiz da Amazon existe em
.
/AmazonRootCA1.pem/greengrass/v2
Se o certificado CA raiz da Amazon não existir nesses locais, verifique a propriedade
system.rootCaPath
em
para encontrar a localização.
/config/effectiveConfig.yaml/greengrass/v2
-
-
Adicione o conteúdo do arquivo de certificado de CA do servidor proxy ao arquivo de certificado de CA raiz da Amazon.
O exemplo a seguir mostra um certificado de CA do servidor de proxy adicionado ao arquivo de certificado de 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 isentos do proxy.
proxy
-
O proxy para se conectar. Esse objeto contém as seguintes informações:
url
-
O URL do servidor de proxy, no formato
scheme://userinfo@host:port
.-
scheme
: o esquema, que deve serhttp
ouhttps
.Importante
Os dispositivos do núcleo do Greengrass devem executar o núcleo do Greengrass v2.5.0 ou posterior para usar proxies HTTPS.
Se você configurar um proxy HTTPS, deverá adicionar o certificado de CA do servidor proxy ao certificado de CA raiz da Amazon do dispositivo principal. Para mais informações, consulte Ative o dispositivo principal para confiar 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 camposusername
epassword
. -
host
: o nome do host ou endereço IP do servidor de proxy. -
port
: (opcional) o número da porta. Se você não especifica a porta, o dispositivo principal do Greengrass usa os seguintes valores padrão:-
http
: 80 -
https
: 443
-
-
username
-
(Opcional) O nome de usuário que autentica o servidor de proxy.
password
-
(Opcional) A senha que autentica o servidor de proxy.
Usar 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 do Greengrass greengrassDataPlaneEndpoint
como iotdata
. Você pode definir essa opção durante a implantação ou instalação usando o argumento do instalador --init-config
.
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 para iotdata
para definir o endpoint do plano de dados do Greengrass como o mesmo endpoint de dados de IoT, que você pode especificar com iotDataEndpoint
.
Definir os tempos limite do MQTT e as configurações de cache
No ambiente AWS IoT Greengrass, os componentes podem usar o MQTT para se comunicar com o AWS IoT Core. O software AWS IoT Greengrass Core gerencia mensagens MQTT para componentes. Quando o dispositivo principal perde a conexão com a 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 mais informações, consulte os parâmetros de configuração mqtt
e mqtt.spooler
do componente do núcleo do Greengrass.
O AWS IoT Core impõe cotas de serviço no agente de mensagens MQTT. Essas cotas podem se aplicar às mensagens que você envia entre os dispositivos principais e o AWS IoT Core. Para mais informações, consulte cotas de serviço do agente de mensagens do AWS IoT Core em Referência geral da AWS.