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

您正在查看Amazon IoT Greengrass Version 1.Amazon IoT Greengrass Version 2是最新的主要版本Amazon IoT Greengrass. 有关使用Amazon IoT Greengrass V2,请参阅Amazon IoT Greengrass Version 2开发人员指南.

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

调用本地运行状况检查 API

Amazon IoT Greengrass包含一个本地 HTTP API,该 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 和 65535 之间变化。默认值为 8000。

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

示例请求

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

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请求获取指定工作人员的运行状况信息。

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 请求超过了最大工作人员数

FuncArns数组超过了工作线程的数量。

工作人员健康信息

运行状况信息对象包含以下属性:

FuncArn

表示工作线程的系统 Lambda 函数的 ARN。

类型:string

WorkerId

工作线程的 ID。此属性对于调试非常有用。这些区域有:runtime.log文件和 Lambda 函数日志包含 worker ID,因此此此属性对于调试旋转多个实例的按需 Lambda 函数特别有用。

类型:string

ProcessId

工作线程进程的进程 ID (PID)。

类型:int

WorkerState

工作线程的状态。

类型:string

以下是可能的工作线程状态:

Working

正在处理消息。

Waiting

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

Starting

纺起来,开始。

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 IoT影子,并生成 GggConnManager 用于相互身份验证的服务器端证书。

ARN:arn:aws:lambda:::function:GGDeviceCertificateManager

GGIPDetector

管理使 Greengrass 组中的设备能够发现 Greengrass 核心设备的自动 IP 地址检测。当您手动提供 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