AWS IoT Greengrass Version 1 2023 年 6 月 30 日进入延长寿命阶段。有关更多信息,请参阅 AWS IoT Greengrass V1 维护策略。在此日期之后,将 AWS IoT Greengrass V1 不会发布提供功能、增强功能、错误修复或安全补丁的更新。在上面运行的设备 AWS IoT Greengrass V1 不会中断,将继续运行并连接到云端。我们强烈建议您迁移到 AWS IoT Greengrass Version 2,这样可以添加重要的新功能并支持其他平台。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
调用本地运行状况检查 API
AWS IoT Greengrass 包含本地 HTTP API,该 API 提供由 AWS IoT Greengrass 启动的本地工作进程的当前状态快照。此快照包括用户定义的 Lambda 函数和系统 Lambda 函数。系统 Lambda 函数是 AWS IoT Greengrass 核心软件的一部分。它们在核心设备上作为本地工作进程运行,并管理消息路由、本地影子同步和自动 IP 地址检测等操作。
运行状况检查 API 支持以下请求:
-
发送
GET
请求以获取所有工作人员的健康信息。 -
发送
POST
请求以获取指定工作人员的健康信息。
请求在设备上本地发送,不需要互联网连接。
获取所有工作人员的健康信息
发送 GET
请求以获取有关所有在职工作人员的健康信息。
-
用 IPC 的端口号替换
端口
。
GET http://localhost:
port
/2016-11-01/health/workers
port
-
IPC 的端口号。
该值可以在 1024 和 65535 之间变化。默认值为 8000。
要更改此端口号,可以更新
config.json
文件中的ggDaemonPort
属性。有关更多信息,请参阅AWS IoT Greengrass 核心配置文件。
示例请求
以下示例 curl
请求获取所有工作人员的健康信息。
curl http://localhost:8000/2016-11-01/health/workers
JSON 响应
此请求返回一组工作人员健康信息对象。
响应示例
以下示例响应列出了由 AWS IoT Greengrass 启动的所有工作进程的运行状况信息对象。
[ { "FuncArn": "arn:aws:lambda:::function:GGShadowService:1", "WorkerId" : "65515053-2f70-43dc-7cc0-1712bEXAMPLE", "ProcessId": "1234", "WorkerState": "Waiting" }, { "FuncArn": "arn:aws:lambda:::function:GGSecretManager:1", "WorkerId": "a9916cc2-1b4d-4f0e-4b12-b1872EXAMPLE", "ProcessId": "9798", "WorkerState": "Waiting" }, { "FuncArn": "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function:3", "WorkerId": "2e6f785e-66a5-42c9-67df-42073EXAMPLE", "ProcessId": "11837", "WorkerState": "Waiting" }, ... ]
获取有关指定工作人员的健康信息
发送 POST
请求以获取有关指定工作人员的健康信息。用 IPC 的端口号替换端口
。默认为 8000。
POST http://localhost:
port
/2016-11-01/health/workers
示例请求
以下示例 curl
请求获取指定工作人员的健康信息。
curl --data "@body.json" http://localhost:8000/2016-11-01/health/workers
以下为 body.json
请求正文示例:
{ "FuncArns": [ "arn:aws:lambda:::function:GGShadowService:1", "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function:3" ] }
请求正文包含一个 FuncArns
阵列。
FuncArns
-
代表目标工作线程环境的 Lambda 函数的 Amazon 资源名称 (ARN) 列表。
对于用户定义的 Lambda 函数,指定当前部署版本的 ARN。如果您使用别名 ARN 将 Lambda 函数添加到群组,则可以使用 GET 请求获取所有工作人员,然后选择要查询的 ARN。
对于系统 Lambda 函数,指定相应的 Lambda 函数的 ARN。有关更多信息,请参阅系统 Lambda 函数。
类型:字符串数组
最小长度:1
最大长度:由核心设备上 AWS IoT Greengrass 启动的工作人员总数。
JSON 响应
此请求返回一个 Workers
阵列和一个 InvalidArns
阵列。
Workers
-
指定工作人员的健康信息对象列表。
类型:健康信息对象阵列
InvalidArns
-
无效函数 ARN 的列表,包括没有关联工作人员的函数 ARN。
类型:字符串数组
响应示例
以下示例响应列出了指定工作人员的健康信息对象。
{ "Workers": [ { "FuncArn": "arn:aws:lambda:::function:GGShadowService:1", "WorkerId" : "65515053-2f70-43dc-7cc0-1712bEXAMPLE", "ProcessId": "1234", "WorkerState": "Waiting" }, { "FuncArn": "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function:3", "WorkerId": "2e6f785e-66a5-42c9-67df-42073ESAMPLE", "ProcessId": "11837", "WorkerState": "Waiting" } ], "InvalidArns" : [ "some-malformed-arn", "arn:aws:lambda:us-west-2:123456789012:function:some-unknown-function:1" ] }
此请求返回以下错误:
- 400 请求无效
请求正文格式不正确。要解决此问题,请使用以下格式重新发送请求:
{"FuncArns":["
function-1-arn
","function-2-arn
"]}- 400 请求超过了工作人员的最大数量
数组
FuncArns
中指定的 ARN 数量超过了工作人员的数量。
工作人员健康信息
健康信息对象包含以下属性:
FuncArn
-
代表工作人员的系统 Lambda 函数的 ARN。
类型:
string
WorkerId
-
工作人员的 ID。该属性对于调试很有用。
runtime.log
文件和 Lambda 函数日志包含工作程序 ID,因此此属性对于调试启动多个实例的按需 Lambda 函数特别有用。类型:
string
ProcessId
-
工作人员进程的进程 ID (PID)。
类型:
int
WorkerState
-
工作人员的状态。
类型:
string
以下是可能的工件状态。
Working
-
处理消息
Waiting
-
正在等待消息。适用于作为守护程序或独立进程运行的长期存在的 Lambda 函数。
Starting
-
快点,开始吧。
FailedInitialization
-
初始化失败。
Terminated
-
被 Greengrass 守护程序阻止
NotStarted
-
启动失败,正在再次尝试启动。
Initialized
-
已成功初始化。
系统 Lambda 函数
您可以请求以下系统 Lambda 函数的运行状况信息:
GGCloudSpooler
-
管理 AWS IoT Core 作为源或目标的 MQTT 消息队列。
ARN:
arn:aws:lambda:::function:GGCloudSpooler:1
GGConnManager
-
在 Greengrass 核心设备和客户端设备之间路由 MQTT 消息。
ARN:
arn:aws:lambda:::function:GGConnManager
GGDeviceCertificateManager
-
监听 AWS IoT 阴影内核 IP 端点的更改,并生成 GGConnManager 用于相互身份验证的服务器端证书。
ARN:
arn:aws:lambda:::function:GGDeviceCertificateManager
GGIPDetector
-
管理 IP 地址自动检测功能,该功能使 Greengrass 组内设备能够发现 Greengrass 核心设备。当您手动提供 IP 地址时,此服务不适用。
ARN:
arn:aws:lambda:::function:GGIPDetector:1
GGSecretManager
-
管理本地密钥的安全存储,并通过用户定义的 Lambda 和连接器进行访问。
ARN:
arn:aws:lambda:::function:GGSecretManager:1
GGShadowService
-
管理客户端设备的本地影子。
ARN:
arn:aws:lambda:::function:GGShadowService
GGShadowSyncManager
-
如果设备
syncShadow
的属性设置为true
,则将本地阴影与核心设备和客户端设备的 AWS Cloud 同步。ARN:
arn:aws:lambda:::function:GGShadowSyncManager
GGStreamManager
-
在本地处理数据流并自动导出到 AWS Cloud。
ARN:
arn:aws:lambda:::function:GGStreamManager:1
GGTES
-
本地令牌交换服务,用于检索 Greengrass 组角色中定义的 IAM 凭证,可供本地代码用于访问 AWS 服务。
ARN:
arn:aws:lambda:::function:GGTES