调用本地运行状况检查 API - AWS IoT Greengrass

终止支持通知:2026 年 10 月 7 日, AWS 将停止对的支持。 AWS IoT Greengrass Version 1 2026 年 10 月 7 日之后,您将无法再访问这些 AWS IoT Greengrass V1 资源。如需了解更多信息,请访问迁移自 AWS IoT Greengrass Version 1

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

调用本地运行状况检查 API

AWS IoT Greengrass 包含本地 HTTP API,该API提供了由启动的本地工作进程的当前状态的快照 AWS IoT Greengrass。此快照包括用户定义的 Lambda 函数和系统 Lambda 函数。系统 Lambda 函数是 AWS IoT Greengrass 核心软件的一部分。它们在核心设备上作为本地工作进程运行,并管理消息路由、本地影子同步和自动 IP 地址检测等操作。

运行状况检查 API 支持以下请求:

请求在设备上本地发送,不需要互联网连接。

获取所有工作人员的健康信息

发送 GET 请求以获取有关所有在职工作人员的健康信息。

  • port替换为 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 请求以获取有关指定工作人员的健康信息。port替换为 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 函数的亚马逊资源名称 (ARNs) 列表。

  • 对于用户定义的 Lambda 函数,指定当前部署版本的 ARN。如果您使用别名 ARN 向群组添加了 Lambda 函数,则可以使用 GET 请求获取所有工作程序,然后选择 ARNs 要查询的。

  • 对于系统 Lambda 函数,指定相应的 Lambda 函数的 ARN。有关更多信息,请参阅 系统 Lambda 函数

类型:字符串数组

最小长度:1

最大长度:核心设备 AWS IoT Greengrass 上启动的工作器总数。

JSON 响应

此请求返回一个 Workers 阵列和一个 InvalidArns 阵列。

Workers

指定工作人员的健康信息对象列表。

类型:健康信息对象阵列

InvalidArns

无效函数列表 ARNs ,包括没有关联工作 ARNs 线程的函数。

类型:字符串数组

响应示例

以下示例响应列出了指定工作人员的健康信息对象

{ "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组中 ARNs 指定的数量超过了工作人员的数量。

工作人员健康信息

健康信息对象包含以下属性:

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 端点的更改,并生成 GGConn Manager 用于相互身份验证的服务器端证书。

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属性设置 AWS Cloud 为,则将本地阴影与核心设备和客户端设备的同步。true

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