Amazon IoT Greengrass Version 12023 年 6 月 30 日进入延长寿命阶段。有关更多信息,请参阅Amazon IoT Greengrass V1维护政策。在此日期之后,Amazon IoT Greengrass V1不会发布提供功能、增强功能、错误修复或安全补丁的更新。在上运行的设备Amazon IoT Greengrass V1不会受到干扰,将继续运行并连接到云端。我们强烈建议你迁移到Amazon IoT Greengrass Version 2,它补充说重要的新功能和支持其他平台。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
调用本地运行状况检查 API
Amazon IoT Greengrass包含一个本地 HTTP API,它提供了由启动的本地工作进程的当前状态的快照Amazon IoT Greengrass. 此快照包括用户定义的 Lambda 函数和系统 Lambda 函数。系统 Lambda 函数是Amazon IoT GreengrassCore 软件。它们在核心设备上作为本地工作线程程运行,并负责管理操作,如消息路由、本地影子同步和自动 IP 检测。
运行状况检查 API 支持以下请求:
-
发送
GET
请求获取所有员工的健康信息. -
发送
POST
请求获取指定工作程序的运行状况信息.
请求在设备上本地发送,不需要互联网连接。
获取所有员工的健康信息
发送GET
请求获取有关所有正在运行的工作程序的运行状况信息。
-
Replace
港口
使用 IPC 的端口号。
GET http://localhost:
port
/2016-11-01/health/workers
port
-
IPC 的端口号。
值可能在 1024 和 65555555555555555 默认值为 8000。
要更改此端口号,您可以更新
ggDaemonPort
属性位于config.json
文件。有关更多信息,请参阅 Amazon IoT Greengrass 核心配置文件。
示例请求
以下示例curl
request 获取所有工作人员的健康信息。
curl http://localhost:8000/2016-11-01/health/workers
JSON 响应
此请求返回一个工作线程控信息对象。
响应示例
以下示例响应列出了由启动的所有工作进程的运行状况信息对象Amazon 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
请求获取有关指定工作程序的运行状况信息。Replace港口
使用 IPC 的端口号。默认值为 8000。
POST http://localhost:
port
/2016-11-01/health/workers
示例请求
以下示例curl
request 获取指定工作进程的运行状况信息。
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
最大长度:开始工作线程总数Amazon 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 请求超出最大工作线程数
在中指定的 ARN 的数量
FuncArns
数组超过了工作线程的数量。
员工健康信息
运行状况信息对象包含以下属性:
FuncArn
-
表示工作线程的系统 Lambda 函数的 ARN。
类型:
string
WorkerId
-
工作线程 ID。此属性可能对调试非常有用。这些区域有:
runtime.log
文件和 Lambda 函数日志包含工作程序 ID,因此此属性对于调试启动多个实例的按需 Lambda 函数特别有用。类型:
string
ProcessId
-
工作线程的进程 ID (PID)。
类型:
int
WorkerState
-
工作线程的状态。
类型:
string
以下是可能的工作线程状态:
Working
-
正在处理消息。
Waiting
-
正在等待留言。适用于作为守护程序或独立进程运行的长期 Lambda 函数。
Starting
-
Spun up,开始吧。
FailedInitialization
-
初始化失败。
Terminated
-
被 Greengrass 守护程序停止
NotStarted
-
无法启动,正在尝试再次启动。
Initialized
-
成功初始化。
系统 Lambda 函数
您可以请求以下系统 Lambda 函数的运行状况信息:
GGCloudSpooler
-
管理具有以下条件的 MQTT 消息的队列Amazon IoT Core作为源或目标。
ARN:
arn:aws:lambda:::function:GGCloudSpooler:1
GGConnManager
-
在 Greengrass 核心和客户端设备之间路由 MQTT 消息。
ARN:
arn:aws:lambda:::function:GGConnManager
GGDeviceCertificateManager
-
收听语音Amazon IoTshadow 用于更改核心的 IP 端点,并生成 GG 使用的服务器端证书ConnManager 以进行双向身份验证。
ARN:
arn:aws:lambda:::function:GGDeviceCertificateManager
GGIPDetector
-
管理 IP 地址的自动 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
-
将局部阴影与Amazon Web Services 云对于核心设备和客户端设备,如果设备的
syncShadow
属性将设定为true
.ARN:
arn:aws:lambda:::function:GGShadowSyncManager
GGStreamManager
-
在本地处理数据流,并自动导出到Amazon Web Services 云.
ARN:
arn:aws:lambda:::function:GGStreamManager:1
GGTES
-
本地令牌交换服务,用于检索 Greengrass 组角色中定义的 IAM 凭证,本地代码使用该角色访问该凭证Amazon服务。
ARN:
arn:aws:lambda:::function:GGTES