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
請求獲取所有員工的健康信息。 -
傳送
POST
請求獲取指定工人的健康信息。
要求會在裝置本機傳送,不需要網際網路連線。
獲取所有員工的健康信息
傳送GET
請求獲取有關所有正在運行的工作者的健康信息。
-
Replace
港口
使用 IPC 的連接埠號碼。
GET http://localhost:
port
/2016-11-01/health/workers
port
-
IPC 的連接埠號碼。
此值可能在 1024 到 65535 的數字。預設值為 8000。
若要變更此連接埠號碼,您可以更新
ggDaemonPort
中的屬性config.json
file. 如需詳細資訊,請參閱 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