ローカルヘルスチェック 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 には、AWS IoT Greengrass によって開始されたローカルワーカープロセスの現在の状態のスナップショットを提供するローカル HTTP API が含まれています。このスナップショットには、ユーザー定義の Lambda 関数とシステム Lambda 関数が含まれます。システム Lambda 関数は、AWS IoT Greengrass Core ソフトウェアの一部です。これらは、コアデバイス上でローカルワーカープロセスとして実行され、メッセージルーティング、ローカルシャドウ同期、および自動 IP アドレス検出などのオペレーションを管理します。

ヘルスチェック API は、次のリクエストをサポートしています。

リクエストはデバイス上でローカルに送信され、インターネット接続は必要ありません。

すべてのワーカーのヘルス情報を取得する

実行中のすべてのワーカーに関するヘルス情報を取得するために 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