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 には、AWS IoT Greengrass によって開始されたローカルワーカープロセスの現在の状態のスナップショットを提供するローカル HTTP API が含まれています。このスナップショットには、ユーザー定義の Lambda 関数とシステム Lambda 関数が含まれます。システム Lambda 関数は、AWS IoT Greengrass Core ソフトウェアの一部です。これらは、コアデバイス上でローカルワーカープロセスとして実行され、メッセージルーティング、ローカルシャドウ同期、および自動 IP アドレス検出などのオペレーションを管理します。
ヘルスチェック API は、次のリクエストをサポートしています。
-
すべてのワーカーのヘルス情報を取得するために
GET
リクエストを送信する。 -
指定されたワーカーのヘルス情報を取得するために
POST
リクエストを送信する。
リクエストはデバイス上でローカルに送信され、インターネット接続は必要ありません。
すべてのワーカーのヘルス情報を取得する
実行中のすべてのワーカーに関するヘルス情報を取得するために GET
リクエストを送信します。
-
port
を IPC のポート番号に置き換えます。
GET http://localhost:
port
/2016-11-01/health/workers
port
-
IPC のポート番号。
値は 1024~65535 の間で変更できます。デフォルト値は 8000 です。
このポート番号を変更するには、
config.json
ファイル内のggDaemonPort
プロパティを更新します。詳細については、「AWS IoT Greengrass Core 設定ファイル」を参照してください。
リクエストの例
以下の例の 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
リクエストを送信します。port
を IPC のポート番号に置き換えます。デフォルトは 8,000 です。
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
最大長: コアデバイス上で AWS 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 Invalid request
リクエストボディの形式が正しくありません。この問題を解決するには、以下の形式を使用してリクエストを再送信します。
{"FuncArns":["
function-1-arn
","function-2-arn
"]}- 400 Request exceeds max number of workers
FuncArns
配列で指定された ARN の数がワーカーの数を超えています。
ワーカーのヘルス情報
ヘルス情報オブジェクトには、以下のプロパティが含まれています。
FuncArn
-
ワーカーを表すシステム Lambda 関数の ARN。
タイプ:
string
WorkerId
-
ワーカーの ID。このプロパティはデバッグに役立ちます。
runtime.log
ファイルと Lambda 関数のログにはワーカー ID が含まれているため、このプロパティは複数のインスタンスをスピンアップするオンデマンド Lambda 関数をデバッグする場合に特に便利です。タイプ:
string
ProcessId
-
ワーカープロセスのプロセス ID (PID)。
タイプ:
int
WorkerState
-
ワーカーの状態。
タイプ:
string
有効なワーカーの状態には以下のものがあります。
Working
-
メッセージの処理
Waiting
-
メッセージの待機 デーモンまたはスタンドアロンプロセスとして実行される 存続期間の長い Lambda 関数に適用されます。
Starting
-
スピンアップして、開始します。
FailedInitialization
-
初期化に失敗しました。
Terminated
-
Greengrass デーモンによって停止されました。
NotStarted
-
開始に失敗し、別の開始が試行されました。
Initialized
-
正常に初期化されました。
システム Lambda 関数
次のシステム Lambda 関数のヘルス情報をリクエストできます。
GGCloudSpooler
-
AWS IoT Core をソースまたはターゲットとして持つ MQTT メッセージのキューを管理します。
ARN:
arn:aws:lambda:::function:GGCloudSpooler:1
GGConnManager
-
Greengrass コアとクライアントデバイス間で MQTT メッセージをルーティングします。
ARN:
arn:aws:lambda:::function:GGConnManager
GGDeviceCertificateManager
-
コアの IP エンドポイントへの変更のために AWS IoT シャドウをリッスンし、GGConnManager が相互認証に使用するサーバー側の証明書を生成します。
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
-
デバイスの
syncShadow
プロパティがtrue
に設定されている場合、ローカルシャドウをコアデバイスおよびクライアントデバイスの AWS クラウド と同期します。ARN:
arn:aws:lambda:::function:GGShadowSyncManager
GGStreamManager
-
データストリームをローカルで処理し、AWS クラウド への自動エクスポートを実行します。
ARN:
arn:aws:lambda:::function:GGStreamManager:1
GGTES
-
ローカルコードが AWS サービスにアクセスするために使用する Greengrass グループロールで定義された IAM 認証情報を取得するローカルトークン交換サービス。
ARN:
arn:aws:lambda:::function:GGTES