呼叫本機健康狀態檢查 API - AWS IoT Greengrass

AWS IoT Greengrass Version 1 於 2023 年 6 月 30 日進入延長生命週期階段。如需詳細資訊,請參閱 AWS IoT Greengrass V1 維護政策。在此日期之後, AWS IoT Greengrass V1 不會發佈提供功能、增強功能、錯誤修正或安全修補程式的更新。在 上執行的裝置 AWS IoT Greengrass V1 不會中斷,且會繼續運作並連線至雲端。我們強烈建議您遷移至 AWS IoT Greengrass Version 2 ,這會新增重要的新功能,並支援其他平台

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

呼叫本機健康狀態檢查 API

AWS IoT Greengrass包含本機 HTTP API,可提供以下方式啟動之本機背景工作處理序目前狀態的快照集AWS IoT Greengrass。此快照包含使用者定義的 Lambda 函數和系統 Lambda 函數。系統 Lambda 函數是下列項目的一部分AWS IoT Greengrass核心軟體。在核心裝置上做為本機工作者處理程序,並管理操作,例如訊息路由、本機陰影同步,以及自動 IP 位址偵測。

健康狀態檢查 API 支援下列要求:

要求會在裝置本機傳送,不需要網際網路連線。

獲取所有員工的健康信息

傳送GET請求獲取有關所有正在運行的工作者的健康信息。

  • Replace港口使用 IPC 的連接埠號碼。

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

IPC 的連接埠號碼。

此值可能在 1024 到 65535 的數字。預設值為 8000。

若要變更此連接埠號碼,您可以更新ggDaemonPort中的屬性config.jsonfile. 如需詳細資訊,請參閱 AWS IoT Greengrass 核心組態檔案

範例請求

以下範例示範curl請求獲取所有員工的健康信息。

curl http://localhost:8000/2016-11-01/health/workers

JSON 回應

此請求傳回的陣列工作者健康資訊物件。

回應範例

下列範例回應列出所有 Worker 處理序啟動的健康資訊物件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港口使用 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 Resource Name (ARN) 清單。

  • 針對使用者定義的 Lambda 函數。如果您使用別名 ARN 將 Lambda 函數新增至群組,則可以使用 GET 要求取得所有工作程式,然後選擇要查詢的 ARN。

  • 針對系統 Lambda 函數。如需詳細資訊,請參閱 系統 Lambda 函數

類型:字串的陣列

長度下限:1

長度上限:開始的工作者總數AWS IoT Greengrass在核心裝置上。

JSON 回應

此請求返回一個Workers陣列InvalidArns陣列。

Workers

指定 Worker 的健康資訊物件清單。

類型:陣列健康資訊物件

InvalidArns

無效的函數 ARN 清單,包括沒有關聯 Worker 的函數 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

代表 ARN 作者的 Lambda 函數。

類型:string

WorkerId

工作者的識別碼。此屬性適用於除錯。所以此runtime.log檔案和 Lambda 函數記錄包含工作者 ID,因此此屬性對於偵錯會啟動多個執行個體的隨需 Lambda 函數特別有用。

類型:string

ProcessId

工作者處理程序的處理程序 ID (PID)。

類型:int

WorkerState

工作者的狀態。

類型:string

以下是可行的工作者狀態:

Working

正在處理訊息。

Waiting

等待訊息。適用於以精靈或獨立程序執行的長壽命 Lambda 函數。

Starting

旋轉起來,開始。

FailedInitialization

初始化失敗。

Terminated

由 Greengrass 協助程式停止

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 端點的更改,並生成 GG 使用的服務器端證書ConnManager 用於交互身份驗證。

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

將局部陰影與AWS 雲端用於核心設備和客戶端設備,如果設備syncShadow屬性已設為true

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

GGStreamManager

在本機處理資料串流並自動匯出AWS 雲端。

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

GGTES

本機權杖交換服務,可擷取 Greengrass 群組角色中定義的 IAM 登入資料 (本機程式碼用來存取)AWS服務。

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