AWS IoT Greengrass Version 1 entrou na fase de vida útil prolongada em 30 de junho de 2023. Para obter mais informações, consulte política de manutenção do AWS IoT Greengrass V1. Após essa data, AWS IoT Greengrass V1 não lançaremos atualizações que forneçam recursos, aprimoramentos, correções de erros ou patches de segurança. Os dispositivos que funcionam AWS IoT Greengrass V1 não serão interrompidos e continuarão operando e se conectando à nuvem. É altamente recomendável que você migre para AWS IoT Greengrass Version 2, o que adiciona novos recursos significativos e suporte para plataformas adicionais.
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á.
Acesso aos recursos locais com funções e conectores do Lambda
Esse atributo está disponível para o AWS IoT Greengrass Core v1.3 e posterior.
Com o AWS IoT Greengrass, você pode criar funções AWS Lambda e configurar conectores na nuvem e implantá-las nos dispositivos de núcleo para execução local. Nos núcleos do Greengrass que executam Linux, essas funções do Lambda localmente implantadas e conectores podem acessar recursos locais fisicamente presentes no dispositivo de núcleo do Greengrass. Por exemplo, para se comunicar com dispositivos que são conectados por meio do Modbus ou CANbus, você pode permitir que a função do Lambda acesse a porta serial no dispositivo de núcleo. Para configurar o acesso seguro a recursos locais, você deve garantir a segurança do seu hardware físico e do SO do seu dispositivo de núcleo do Greengrass.
Para começar a acessar recursos locais, consulte os seguintes tutoriais:
Tipos de recursos compatíveis
Você pode acessar dois tipos de recursos locais: recursos de volume e recursos do dispositivo.
- Recursos do volume
-
Arquivos ou diretórios no sistema de arquivos raiz (exceto em
/sys
,/dev
ou/var
). Eles incluem:-
Pastas ou arquivos usados para ler ou gravar informações em funções do Lambda do Greengrass (por exemplo,
/usr/lib/python2.x/site-packages/local
). -
As pastas ou os arquivos no sistema de arquivos /proc do host (por exemplo,
/proc/net
ou/proc/stat
). Compatível com a versão 1.6 ou posterior. Para requisitos adicionais, consulte Recursos de volume no diretório /proc.
dica
Para configurar os diretórios
/var
,/var/run
e/var/lib
como recursos de volume, primeiro monte o diretório em uma pasta diferente e, em seguida, configure a pasta como um volume de recursos.Ao configurar recursos de volume, você especifica um caminho de origem e um caminho de destino. O caminho de origem é o caminho absoluto do recurso no host. O caminho de destino é o caminho absoluto do recurso no ambiente do namespace do Lambda. Este é o contêiner que é executado em uma função ou conector do Lambda do Greengrass. Qualquer alteração no caminho de destino é refletida no caminho de origem do sistema de arquivos do host.
nota
Os arquivos no caminho de destino são visíveis somente no namespace do Lambda. Não é possível vê-los em um namespace Linux regular.
-
- Recursos de dispositivo
-
Arquivos em
/dev
. Somente dispositivos de caracteres ou dispositivos de bloco em/dev
são permitidos para recursos do dispositivo. Eles incluem:-
Portas seriais usadas para se comunicar com dispositivos conectados por meio de portas seriais (por exemplo,
/dev/ttyS0
e/dev/ttyS1
). -
USB usado para conectar periféricos USB (por exemplo,
/dev/ttyUSB0
ou/dev/bus/usb
). -
GPIOs usadas para sensores e acionadores por meio da GPIO (por exemplo,
/dev/gpiomem
). -
GPUs usadas para acelerar a machine learning usando GPUs integradas (por exemplo,
/dev/nvidia0
). -
Câmeras usadas para capturar imagens e vídeos (por exemplo,
/dev/video0
).
nota
/dev/shm
é uma exceção. Ele pode ser configurado apenas como um recursos de volume. Devem ser concedidas permissões derw
aos recursos em/dev/shm
. -
O AWS IoT Greengrass também é compatível com tipos de recursos usados para realizar inferências de machine learning. Para obter mais informações, consulte Executar a inferência de machine learning.
Requisitos
Os requisitos a seguir se aplicam ao configurar o acesso seguro a recursos locais:
-
Você deve estar usando o software AWS IoT Greengrass Core v1.3 ou posterior. Para criar recursos para o diretório /proc do host, você deve estar usando a v1.6 ou posterior.
-
O recurso local (inclusive todos os drivers e bibliotecas obrigatórios) deve estar instalado corretamente no dispositivo básico do Greengrass e disponível de maneira consistente durante o uso.
-
A operação desejada do recurso, bem como o acesso ao recurso, não devem exigir privilégios de raiz.
-
Estão disponíveis somente permissões de
read
ouread and write
. As funções do Lambda não podem realizar operações privilegiadas nos recursos. -
Você precisa fornecer o caminho completo do recurso local no sistema operacional do dispositivo de núcleo do Greengrass.
-
Um nome de recurso ou ID tem um comprimento máximo de 128 caracteres e deve usar o padrão
[a-zA-Z0-9:_-]+
.
Recursos de volume no diretório /proc
As considerações a seguir se aplicam a recursos de volume no diretório /proc do host.
Você deve estar usando o software AWS IoT Greengrass Core v1.6 ou posterior.
Você pode permitir acesso somente leitura para funções do Lambda, mas não acesso de leitura/gravação. Esse nível de acesso é gerenciado pelo AWS IoT Greengrass.
Também pode ser necessário conceder ao grupo do sistema operacional permissões para permitir acesso de leitura no sistema de arquivos. Por exemplo, suponhamos que o diretório de origem ou o arquivo tenha uma permissão de 660 arquivos, o que significa que somente o proprietário ou o usuário no grupo tem acesso de leitura (e gravação). Nesse caso, você deve adicionar as permissões do proprietário do grupo do sistema operacional ao recurso. Para obter mais informações, consulte Permissão de acesso a arquivo do proprietário do grupo.
Como o ambiente de host e o namespace do Lambda contêm um diretório /proc, certifique-se de evitar conflitos de nomenclatura ao especificar o caminho de destino. Por exemplo, caso /proc seja o caminho de origem, você pode especificar /host-proc como o caminho de destino (ou qualquer nome de caminho que não seja "/proc").
Permissão de acesso a arquivo do proprietário do grupo
Um processo da função do Lambda do AWS IoT Greengrass normalmente é executado como ggc_user
e ggc_group
. No entanto, você pode conceder permissões de acesso adicionais a arquivos ao processo da função do Lambda na definição de recurso local, da seguinte maneira:
-
Para adicionar as permissões do grupo Linux que possui o recurso, use o parâmetro
GroupOwnerSetting#AutoAddGroupOwner
ou a opção do console Automatically add file system permissions of the system group that owns the resource (Adicionar automaticamente permissões de sistema de arquivos do grupo de sistemas que possui o recurso). -
Para adicionar as permissões de um grupo de Linux diferente, use o parâmetro
GroupOwnerSetting#GroupOwner
ou a opção de console Specify another system group to add file system permissions (Especificar outro grupo de sistemas ao qual adicionar permissões de sistema de arquivos). O valorGroupOwner
será ignorado seGroupOwnerSetting#AutoAddGroupOwner
for verdadeiro.
Um processo de função do Lambda AWS IoT Greengrass herda todas as permissões do sistema de arquivos de ggc_user
, ggc_group
e o grupo do Linux (se adicionado). Para a função do Lambda acessar um recurso, o processo de função do Lambda deve ter as permissões obrigatórias para o recurso. Você pode usar o comando chmod(1)
para alterar a permissão do recurso, se necessário.
Consulte também
-
Cotas de serviço para recursos no Referência geral da Amazon Web Services