问题标签 [greengrass]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - GreengrassV2:从 lambda 代码访问 gpio
我将 AWS Greengrass V2 与基于 Lambda 的组件一起使用。Lambda Sourcode 包含应该控制树莓派的 gpio 引脚的代码。
Lambda 已成功部署到 GG 核心设备 (=RaspberryPI)。不幸的是 Lambda 抛出一个错误:没有这样的文件或目录,打开 '/sys/class/gpio/export'
我在 greengrass 组件中明确定义 lambda不在Greengrass 容器中执行。我选择了“无容器”选项,但代码无法找到或访问 /sys/class/gpio/export 来控制 gpio 引脚。
如果我直接在树莓派上执行本地 nodejs 项目中的 lambda 函数的相同代码。该代码有效。问题不在于代码。
我认为问题要么是 lambda 运行时的隔离,要么是用户 ggc_user 没有足够的权限。
有人可以给我一个提示,如何解决这个问题?
亲切的问候斯特凡
amazon-web-services - 如何知道在 aws IoT Greengrass (V1) 中创建组所需的权限?
我正在尝试在 Greengrass Classic V1 中创建一个组。
如何提前知道什么权限需要一个根本没有任何权限的用户?
例如,用户将尝试在以下位置创建组:greengrass -> classic V1 -> Groups。他会加注(例如):
"iot:AttachThingPrincipal", "iot:CreateKeysAndCertificate", "iot:ListThings", "iot:ListThingTypes"
但只有当他可以到达触发错误的流程步骤时才会通知他。
更具体地说:他会尝试创建一个组,他会引发“iot:ListThings”错误,他会要求将该权限添加到 IT 部门或切换到 root 帐户以允许该用户,并在 5 分钟后尝试再次,然后下一步会出现一个新的错误......他需要这样做大约 10 次,从 0 开始,直到他可以创建组。
如何在不给出AWSIoT1ClickFullAccess
or的情况下避免这种低效的循环AWSGreenglassFullAccess
?
greengrass - 如何重试失败的 AWS Greengrass 部署
我已经使用新版本的组件修改了现有部署。
但是,核心设备上的部署失败,因为有一个用于测试的不同版本的本地部署。
我已删除该本地部署,现在我想在该设备上重新运行部署。
那可能吗?还是我需要修改现有的部署(保持一切不变,所以不是真正的修改)?
javascript - AWS GreenGrass 版本 2 JavaScript 控制台日志不可用
我正在尝试从 JavaScript 获取 console.log() 调用以显示在 AWS GreenGrass 版本 2 的日志文件中。版本 1 在“组”->“设置”下有一个“本地日志配置”选项区域,但我无法找到版本 2 的任何可比较设置。我在 /greengrass/v2/logs 中看到各种日志文件,但没有一个显示我的 console.log() 调用。
感谢您对此的任何帮助...
logging - AWS greengrass-cli 日志获取日志目录与日志文件
greengrass-cli logs get --logs-dir
并且--log-file
不按我的预期工作。在我的机器上,如果我比较两个命令的输出:
请注意,我收到的最后一条消息是从 11:09:05 开始的。然后,
我收到的最后一条消息是从 12:33:47 开始的!
也就是说,似乎--logs-dir
没有查看目录中的所有文件?这让我质疑我对命令的理解。我希望--logs-dir
返回一个超集--log-file
(当指向的文件--log-file
在该目录中时)。
谁能向我解释这里发生了什么?
amazon-web-services - 在 greengrass 核心 AWS 上运行 mqtt 代理
我目前在运行完美的 ubuntu 容器中运行 AWS greengrass 核心。我想要的是使用核心 mqtt 代理将数据发送到 AWS IOT。到目前为止,我读到的是 greengrass 核心有自己的可以配置的 MQTT 代理。为此,我尝试更新此链接中提到的部署:https ://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html
但我仍然看不到 mqtt 经纪人出现。我还有一个容器正在向其他 mqtt 代理发送数据,我想将相同的数据发送到 AWS IoT 核心。为此,我需要在应用程序中配置在 AWS greengrass 核心上运行的 mqtt 代理。
我再次有两个问题:
- 我采取的方法是否正确?我们能否将 mqtt 代理配置为在 AWS greengrass 核心上本地运行。如果是,那么我们该怎么做?
- 如果我们无法在 AWS greengrass 上运行 mqtt 代理,那么我们可以将数据发送到 IoT 核心的方式是什么。我们可以通过创建像 lambda 函数这样的自定义组件来实现它吗?
任何帮助,将不胜感激。
amazon-web-services - 尝试使用 cloudformation 在 AWS greengrass 版本 2 中创建 iot 组件时出错
我最近做了一个配置,在其中我创建了一个组件,使用 aws 控制台从配方中获取 greengrass,另一个从 lambda 文件导入配置。当我使用 aws 控制台进行操作时,它们都运行良好。但是,我希望能够使用 cloudformation 生成相同的配置。我已经阅读了这里的文档组件版本,它说我可以内联添加配方文件或使用LambdaFunctionRecipeSource
. 但是我所有的尝试都因错误而失败
但是,我已授予用户管理员访问权限,harisu
并确保他具有对 greengrass 服务的完全访问权限。我的示例 cfn 文件是
我将不胜感激
amazon-web-services - 在 Raspberry Pi 3b+ 上运行 Greengrass 核心
我有 2 个 greengrass 核心,一个在 AWS EC2 实例上运行,另一个在 Raspberry Pi 上运行。
在我的项目中,我将视频帧从本地机器发送到我的 RaspberryPi,然后我处理这些帧,找到帧中带有 QR 码的标记,并将标记的坐标发送到 Greengrass。然后我从我的笔记本电脑上读取这些坐标。
在第一种情况下,我的 greengrass 运行在一个 EC2 实例上(之前有它),为了提高性能,我决定在我的 Raspberry Pi 上运行另一个 greengrass 核心并改用它。我的想法是,我将基本上从这个过程中删除 EC2 实例和云组件,而不是使用三角形笔记本电脑->RBPi->EC2->笔记本电脑,从而提高我的性能。
问题是我没有看到太多/任何性能差异。
在这两种情况下,如果我想连接到我的 greengrass 核心实例,我使用 AWS 端点作为我的“联系”点,唯一的区别是在核心的连接设置中,我在一个场景中使用我的 Raspberry Pi 的 IP 地址和 IP另一个中 EC2 实例的地址。我这样做是错的,还有其他方法吗?
这种沟通在实践中如何运作?我的消息是否会发送到云中某处的 AWS 端点,然后发送到我的 greengrass 核心设备(Raspberry Pi 或 EC2)?
greengrass - AWS Greengrass 中的组件未从设备中删除
我有一个简单的 docker 容器组件到 greengrass 核心设备中。部署非常顺利,docker 容器已创建并正常工作。当我尝试从部署中删除组件时,我在控制台中看到它已成功删除,并且它不再是部署的一部分,但在核心设备中,docker 容器仍在运行。
这是我的组件配置:
node.js - 有没有办法使用 Node-JS 将图像传输到 IoT 边缘设备中的目录?
我一直在开发一个 Node-JS 应用程序,该应用程序需要将图像上传到 Amazon-S3 存储桶,然后在远程运行的 IoT Edge 设备上使用 ML 进行推理,并将推理数据上传到云上作为我实习的一部分。但是,如果我想在边缘设备本地连接到我的网络时直接运行推理,我找不到这样做的方法。从技术上讲,我想将图像传输到本地边缘设备中的目录 dpu_models/images/ ,运行一些命令将触发与将图像上传到 AWS-S3 时发生的相同的推理。