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

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

调用本地运行状况检查API

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

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

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

获取所有员工的健康信息

发送 GET 请求获取关于所有正在运行的职工的健康信息。

  • Replace port IPC的端口号。

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

IPC的端口号。

该值可以在1024和65535之间变化。默认值为8000。

要更改此端口号,您可以更新 ggDaemonPort 属性 config.json 文件。有关更多信息,请参阅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 请求获取有关指定工人的健康信息。Replace 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

Amazon资源名称(ARN)列表,用于 Lambda 代表目标职工的职能。

  • 对于用户定义的 Lambda 函数,指定当前部署版本的ARN。如果添加 Lambda 功能,您可以使用GET请求获取所有员工,然后选择 ARNs 您要查询。

  • 用于系统 Lambda 函数,指定相应 Lambda 功能。有关更多信息,请参阅系统 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个请求超过最大工人数

数量 ARNs 在 FuncArns 数组超过工人数量。

工人健康信息

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

FuncArn

系统ARN Lambda 代表职工的功能。

Type: string

WorkerId

职工的ID。此属性可用于调试。的 runtime.log 文件和 Lambda 函数日志包含职工ID,因此此属性对于按需调试 Lambda 函数,用于旋转多个实例。

Type: string

ProcessId

工作人员的进程ID(PID)进程。

Type: int

WorkerState

职工的状态。

Type: string

以下是可能的职工状态:

Working

处理消息。

Waiting

正在等待消息。适用于长期 Lambda 函数作为守护程序或独立进程运行。

Starting

旋转,开始。

FailedInitialization

无法初始化。

Terminated

被绿草原守护者拦住

NotStarted

无法启动,请再次尝试。

Initialized

已成功初始化。

系统 Lambda 功能

您可以为以下系统请求健康信息 Lambda 功能:

GGCloudSpooler

管理MQTT消息的队列, AWS IoT Core 作为源或目标。

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

将本地阴影与同步 AWS 核心设备和已连接设备的云,如果设备的 syncShadow 属性设置为 true.

ARN:arn:aws:lambda:::function:GGShadowSyncManager

GGStreamManager

在本地处理数据流,并执行自动导出 AWS 云。

ARN:arn:aws:lambda:::function:GGStreamManager:1

GGTES

检索的本地令牌交换服务 IAM 在本地代码用于访问的Greengrass组角色中定义的凭证 AWS 服务。

ARN:arn:aws:lambda:::function:GGTES