翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ローカルデプロイおよびコンポーネントの管理
注記
この機能は、Greengrass nucleus コンポーネントの v2.6.0 以降で利用できます。
Greengrass CLI IPC サービスを使用して、コアデバイスのローカルデプロイおよび Greengrass コンポーネントを管理します。
これらの IPC オペレーションを使用するには、カスタムコンポーネントの依存関係として、バージョン 2.6.0 以降の Greengrass CLI コンポーネントを含めます。その後、カスタムコンポーネントの IPC オペレーションを使用して、次の操作を行うことができます。
-
ローカルデプロイを作成し、コアデバイスの Greengrass コンポーネントを変更および設定します。
-
コアデバイスの Greengrass コンポーネントを再起動して停止します。
-
ローカルデバッグコンソールへのサインインに使用できるパスワードを生成します。
トピック
最小 SDK バージョン
次の表 AWS IoT Device SDK に、Greengrass CLI IPC サービスとやり取りするために使用する必要がある の最小バージョンを示します。
| SDK | 最小バージョン |
|---|---|
|
v1.2.10 |
|
|
v1.5.3 |
|
|
v1.17.0 |
|
|
v1.12.0 |
Authorization
Greengrass CLI IPC サービスをカスタムコンポーネントで使用するには、コンポーネントがローカルデプロイとコンポーネントを管理できるように承認ポリシーを定義する必要があります。承認ポリシーの定義については、「コンポーネントに IPC オペレーションの実行を許可する」を参照してください。
Greengrass CLI の承認ポリシーには、次のプロパティがあります。
IPC サービス識別子: aws.greengrass.Cli
| Operation | 説明 | リソース |
|---|---|---|
|
|
コンポーネントがコアデバイスにローカルデプロイを作成できるようにします。 |
|
|
|
コンポーネントがコアデバイスのローカルデプロイを一覧表示できるようにします。 |
|
|
|
コンポーネントがコアデバイスのローカルデプロイのステータスを取得できるようにします。 |
すべてのローカルデプロイへのアクセスを許可するローカルデプロイ ID または |
|
|
コンポーネントがコアデバイスのコンポーネントを一覧表示できるようにします。 |
|
|
|
コンポーネントがコアデバイスのコンポーネントの詳細を取得できるようにします。 |
すべてのコンポーネントへのアクセスを許可するコンポーネント名 ( |
|
|
コンポーネントがコアデバイスのコンポーネントを再起動できるようにします。 |
すべてのコンポーネントへのアクセスを許可するコンポーネント名 ( |
|
|
コンポーネントがコアデバイスのコンポーネントを停止できるようにします。 |
すべてのコンポーネントへのアクセスを許可するコンポーネント名 ( |
|
|
コンポーネントがローカルデバッグコンソールコンポーネントへのサインインに使用するパスワードを生成できるようにします。 |
|
例 承認ポリシーの例
次の認可ポリシーの例では、コンポーネントがローカルデプロイを作成し、すべてのローカルデプロイとコンポーネントを表示し、com.example.HelloWorldという名前のコンポーネントを再起動および停止できるようにします。
{ "accessControl": { "aws.greengrass.Cli": { "com.example.MyLocalManagerComponent:cli:1": { "policyDescription": "Allows access to create local deployments and view deployments and components.", "operations": [ "aws.greengrass#CreateLocalDeployment", "aws.greengrass#ListLocalDeployments", "aws.greengrass#GetLocalDeploymentStatus", "aws.greengrass#ListComponents", "aws.greengrass#GetComponentDetails" ], "resources": [ "*" ] } }, "aws.greengrass.Cli": { "com.example.MyLocalManagerComponent:cli:2": { "policyDescription": "Allows access to restart and stop the Hello World component.", "operations": [ "aws.greengrass#RestartComponent", "aws.greengrass#StopComponent" ], "resources": [ "com.example.HelloWorld" ] } } } }
CreateLocalDeployment
指定されたコンポーネントレシピ、アーティファクト、ランタイム引数を使用して、ローカルデプロイを作成または更新します。
このオペレーションは、Greengrass CLI のデプロイの create コマンドと同じ機能を提供します。
リクエスト
このオペレーションのリクエストには以下のパラメータがあります。
recipeDirectoryPath(Python:recipe_directory_path)-
(オプション) コンポーネントレシピファイルを含むフォルダへの絶対パス。
artifactDirectoryPath(Python:artifact_directory_path)-
(オプション) デプロイに含めるアーティファクトファイルを含むフォルダへの絶対パス。アーティファクトフォルダには、次のフォルダ構造が含まれている必要があります。
/path/to/artifact/folder/component-name/component-version/artifacts rootComponentVersionsToAdd(Python:root_component_versions_to_add)-
(オプション) コアデバイスにインストールするコンポーネントのバージョン。このオブジェクト
ComponentToVersionMapは、次のキーと値のペアを含むマップです。key-
コンポーネントの名前。
value-
コンポーネントのバージョン。
rootComponentsToRemove(Python:root_components_to_remove)-
(オプション) コアデバイスからアンインストールするコンポーネント。各エントリがコンポーネントの名前となるリストを指定します。
componentToConfiguration(Python:component_to_configuration)-
(オプション) デプロイ内の各コンポーネントの設定更新。このオブジェクト
ComponentToConfigurationは、次のキーと値のペアを含むマップです。key-
コンポーネントの名前。
value-
コンポーネントの設定更新の JSON オブジェクト。JSON オブジェクトは次の形式である必要があります。
{ "MERGE": { "config-key": "config-value" }, "RESET": [ "path/to/reset/" ] }設定の更新の詳細については、「コンポーネント設定の更新」を参照してください。
componentToRunWithInfo(Python:component_to_run_with_info)-
(オプション) デプロイ内の各コンポーネントのランタイム設定。この設定には、各コンポーネントのプロセスを所有するシステムユーザーと、各コンポーネントに適用するシステム制限が含まれます。このオブジェクト
ComponentToRunWithInfoは、次のキーと値のペアを含むマップです。key-
コンポーネントの名前。
value-
コンポーネントのランタイム設定。ランタイム設定パラメータを省略すると、 AWS IoT Greengrass Core ソフトウェアは Greengrass nucleus で設定したデフォルト値を使用します。このオブジェクト (
RunWithInfo) には、次の情報が含まれます。posixUser(Python:posix_user)-
(オプション) Linux コアデバイスでこのコンポーネントを実行する際に使用する POSIX システムユーザーおよびオプションのグループ。ユーザーまたはグループを指定する場合は、各 Linux コアデバイス上に存在している必要があります。ユーザーとグループを
user:groupの形式に従ってコロン (:) で区切って指定します。グループはオプションです。グループを指定しない場合、 AWS IoT Greengrass Core ソフトウェアはユーザーのプライマリグループを使用します。詳細については、「コンポーネントを実行するユーザーを設定する」を参照してください。 windowsUser(Python:windows_user)-
(オプション) Windows コアデバイスでこのコンポーネントを実行する際に使用する Windows ユーザー。ユーザーは各 Windows コアデバイスに存在し、その名前とパスワードが LocalSystem アカウントの認証情報マネージャーインスタンスに格納されている必要があります。詳細については、「コンポーネントを実行するユーザーを設定する」を参照してください。
systemResourceLimits(Python:system_resource_limits)-
(オプション) このコンポーネントのプロセスに適用されるシステムリソースの制限。システムリソースの制限を、ジェネリックおよびコンテナ化されていない Lambda コンポーネントプロセスに適用することができます。詳細については、「コンポーネントのシステムリソース制限を設定する」を参照してください。
AWS IoT Greengrass は現在、Windows コアデバイスでこの機能をサポートしていません。
このオブジェクト (
SystemResourceLimits) には、次の情報が含まれます。cpus-
(オプション) このコンポーネントのプロセスがコアデバイスで使用できる CPU 時間の最大量。コアデバイスの合計 CPU 時間は、デバイスの CPU コア数と同じです。例えば、4 つの CPU コアを持つコアデバイスの場合は、この値を
2に設定することで、このコンポーネントのプロセスを各 CPU コアの 50% の使用率に制限することができます。CPU コアが 1 つのデバイスの場合は、この値を0.25に設定することで、このコンポーネントのプロセスを CPU の 25% の使用率に制限することができます。この値を CPU コア数よりも大きい数に設定した場合、 AWS IoT Greengrass Core ソフトウェアはコンポーネントの CPU 使用率を制限しません。 memory-
(オプション) このコンポーネントのプロセスがコアデバイスで使用できる RAM の最大量 (キロバイト単位)。
groupName(Python:group_name)-
(オプション) このデプロイでターゲットにするモノのグループの名前。
レスポンス
このオペレーションのレスポンスには以下の情報が含まれます。
deploymentId(Python:deployment_id)-
リクエストによって作成されたローカルデプロイの ID。
ListLocalDeployments
過去 10 回分のローカルデプロイのステータスを取得します。
このオペレーションは、Greengrass CLI のデプロイの list コマンドと同じ機能を提供します。
リクエスト
このオペレーションのリクエストはパラメータを持ちません。
レスポンス
このオペレーションのレスポンスには以下の情報が含まれます。
localDeployments(Python:local_deployments)-
ローカルデプロイのリスト。このリストの各オブジェクトは、次の情報が含まれる
LocalDeploymentオブジェクトです。deploymentId(Python:deployment_id)-
ローカルデプロイの ID。
status-
ローカルデプロイのステータス。この列挙型 (
DeploymentStatus) には以下の値があります。-
QUEUED -
IN_PROGRESS -
SUCCEEDED -
FAILED
-
GetLocalDeploymentStatus
ローカルデプロイのステータスを取得します。
このオペレーションは、Greengrass CLI のデプロイの status コマンドと同じ機能を提供します。
リクエスト
このオペレーションのリクエストには以下のパラメータがあります。
deploymentId(Python:deployment_id)-
取得するローカルデプロイの ID。
レスポンス
このオペレーションのレスポンスには以下の情報が含まれます。
deployment-
ローカルデプロイ。このオブジェクト (
LocalDeployment) には、次の情報が含まれます。deploymentId(Python:deployment_id)-
ローカルデプロイの ID。
status-
ローカルデプロイのステータス。この列挙型 (
DeploymentStatus) には以下の値があります。-
QUEUED -
IN_PROGRESS -
SUCCEEDED -
FAILED
-
ListComponents
コアデバイスの各ルートコンポーネントの名前、バージョン、ステータス、および設定を取得します。ルートコンポーネントは、デプロイ時に指定するコンポーネントです。このレスポンスには、他のコンポーネントとの依存関係の中でインストールされるコンポーネントは含まれません。
このオペレーションは、Greengrass CLI のコンポーネントの list コマンドと同じ機能を提供します。
リクエスト
このオペレーションのリクエストはパラメータを持ちません。
レスポンス
このオペレーションのレスポンスには以下の情報が含まれます。
components-
コアデバイスのルートコンポーネントのリスト。このリストの各オブジェクトは、次の情報が含まれる
ComponentDetailsオブジェクトです。componentName(Python:component_name)-
コンポーネントの名前。
version-
コンポーネントのバージョン。
state-
コンポーネントの状態。これは、次のいずれかの状態になります。
-
BROKEN -
ERRORED -
FINISHED -
INSTALLED -
NEW -
RUNNING -
STARTING -
STOPPING
-
configuration-
JSON オブジェクトとしてのコンポーネントの設定。
GetComponentDetails
コアデバイスのコンポーネントのバージョン、ステータス、および設定を取得します。
このオペレーションは、Greengrass CLI のコンポーネントの details コマンドと同じ機能を提供します。
リクエスト
このオペレーションのリクエストには以下のパラメータがあります。
componentName(Python:component_name)-
取得するコンポーネントの名前。
レスポンス
このオペレーションのレスポンスには以下の情報が含まれます。
componentDetails(Python:component_details)-
コンポーネントの詳細。このオブジェクト (
ComponentDetails) には、次の情報が含まれます。componentName(Python:component_name)-
コンポーネントの名前。
version-
コンポーネントのバージョン。
state-
コンポーネントの状態。これは、次のいずれかの状態になります。
-
BROKEN -
ERRORED -
FINISHED -
INSTALLED -
NEW -
RUNNING -
STARTING -
STOPPING
-
configuration-
JSON オブジェクトとしてのコンポーネントの設定。
RestartComponent
コアデバイスのコンポーネントを再起動します。
注記
どのコンポーネントでも再起動できますが、ジェネリックコンポーネントのみを再起動することをお勧めします。
このオペレーションは、Greengrass CLI のコンポーネントの restart コマンドと同じ機能を提供します。
リクエスト
このオペレーションのリクエストには以下のパラメータがあります。
componentName(Python:component_name)-
コンポーネントの名前。
レスポンス
このオペレーションのレスポンスには以下の情報が含まれます。
restartStatus(Python:restart_status)-
再起動リクエストのステータス。リクエストのステータスは次のいずれかになります。
-
SUCCEEDED -
FAILED
-
message-
リクエストが失敗した際の、コンポーネントが再起動に失敗した理由に関するメッセージ。
StopComponent
コアデバイスのコンポーネントのプロセスを停止します。
注記
どのコンポーネントも停止できますが、ジェネリックコンポーネントのみを停止することをお勧めします。
このオペレーションは、Greengrass CLI のコンポーネントの stop コマンドと同じ機能を提供します。
リクエスト
このオペレーションのリクエストには以下のパラメータがあります。
componentName(Python:component_name)-
コンポーネントの名前。
レスポンス
このオペレーションのレスポンスには以下の情報が含まれます。
stopStatus(Python:stop_status)-
停止リクエストのステータス。リクエストのステータスは次のいずれかになります。
-
SUCCEEDED -
FAILED
-
message-
リクエストが失敗した際の、コンポーネントが停止に失敗した理由に関するメッセージ。
CreateDebugPassword
ローカルデバッグコンソールコンポーネントへのサインインに使用できる、ランダムなパスワードを生成します。パスワードは、生成されてから 8 時間後に期限切れになります。
このオペレーションは、Greengrass CLI の get-debug-password コマンドと同じ機能を提供します。
リクエスト
このオペレーションのリクエストはパラメータを持ちません。
レスポンス
このオペレーションのレスポンスには以下の情報が含まれます。
username-
サインインに使用するユーザー名。
password-
サインインに使用するパスワード。
passwordExpiration(Python:password_expiration)-
パスワードの有効期限が切れる時刻。
certificateSHA256Hash(Python:certificate_sha256_hash)-
HTTPS が有効な場合にローカルデバッグコンソールが使用する自己署名証明書の SHA-256 フィンガープリント。ローカルデバッグコンソールを開く際に、このフィンガープリントを使用して、証明書が正当であり接続が安全であることを確認します。
certificateSHA1Hash(Python:certificate_sha1_hash)-
HTTPS が有効な場合にローカルデバッグコンソールが使用する自己署名証明書の SHA-1 フィンガープリント。ローカルデバッグコンソールを開く際に、このフィンガープリントを使用して、証明書が正当であり接続が安全であることを確認します。