调用本地运行状况检查 API - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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请求获取有关所有正在运行的工作程序的运行状况信息。

  • Replace港口使用 IPC 的端口号。

GET http://localhost:port/2016-11-01/health/workers
port

IPC 的端口号。

值可能在 1024 和 65555555555555555 默认值为 8000。

要更改此端口号,您可以更新ggDaemonPort属性位于config.json文件。有关更多信息,请参阅 Amazon IoT Greengrass 核心配置文件

示例请求

以下示例curlrequest 获取所有工作人员的健康信息。

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

示例请求

以下示例curlrequest 获取指定工作进程的运行状况信息。

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