翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
カスタムプロビジョニングプラグインを開発する
カスタムプロビジョニングプラグインを開発するには、com.aws.greengrass.provisioning.DeviceIdentityInterface
インターフェイスを実装する Java クラスを作成します。Greengrass nucleus JAR ファイルをプロジェクトに含めて、このインターフェイスとクラスにアクセスすることができます。このインターフェイスは、プラグイン設定を入力し、プロビジョニング設定を出力するメソッドを定義するためのものです。プロビジョニング設定では、システムと Greengrass nucleus コンポーネントの設定を定義します。AWS IoT Greengrass コアソフトウェアインストーラは、このプロビジョニング設定を使用して、デバイス上の AWS IoT Greengrass Core コアソフトウェアを設定します。
カスタムプロビジョニングプラグインを開発したら、JAR ファイルとして構築し、インストール中にプラグインを実行するために、AWS IoT Greengrass コアソフトウェアインストーラに提供します。インストーラは、インストーラが使用するものと同じ JVM でカスタムプロビジョニングプラグインを実行するため、プラグインコードのみが含まれた JAR を作成することができます。
注記
AWS IoT フリートプロビジョニングプラグインは、インストール中にフリートプロビジョニングを使用するため、DeviceIdentityInterface
を実装します。フリートプロビジョニングプラグインはオープンソースであるため、ソースコードを確認して、プロビジョニングプラグインインターフェイスの使用方法例を見ることができます。詳細については、GitHub の「AWS IoT フリートプロビジョニングプラグイン
要件
カスタムプロビジョニングプラグインを開発するには、次の要件を満たす Java クラスを作成する必要があります。
-
com.aws.greengrass
パッケージ、またはcom.aws.greengrass
パッケージ内のパッケージを使用します。 -
引数を持たないコンストラクタが必要です。
-
DeviceIdentityInterface
インターフェイスを実装します。詳細については、「DeviceIdentityInterface インターフェイスを実装する」を参照してください。
DeviceIdentityInterface インターフェイスを実装する
カスタムプラグインで com.aws.greengrass.provisioning.DeviceIdentityInterface
インターフェースを使用するには、Greengrass nucleus をプロジェクトの依存関係として追加します。
カスタムプロビジョニングプラグインプロジェクトで DeviceIdentityInterface を使用するには
-
Greengrass nucleus JAR ファイルをライブラリとして追加するか、Greengrass nucleus を Maven の依存関係として追加できます。次のいずれかを実行します。
-
Greengrass nucleus JAR ファイルをライブラリとして追加するには、Greengrass nucleus JAR を含む AWS IoT Greengrass コアソフトウェアをダウンロードします。AWS IoT Greengrass コアソフトウェアの最新バージョンを次の場所からダウンロードできます。
Greengrass nucleus JAR ファイル (
Greengrass.jar
) は、ZIP ファイル内のlib
フォルダにあります。この JAR ファイルをプロジェクトに追加します。 -
Maven プロジェクトで Greengrass nucleus を使用するには、
com.aws.greengrass
グループ内のnucleus
アーティファクトに依存関係を追加します。また、Greengrass nucleus は Maven Central リポジトリでは利用できないため、greengrass-common
レポジトリも追加する必要があります。<project
...
>...
<repositories> <repository> <id>greengrass-common</id> <name>greengrass common</name> <url>https://d2jrmugq4soldf.cloudfront.net/snapshots</url> </repository> </repositories>...
<dependencies> <dependency> <groupId>com.aws.greengrass</groupId> <artifactId>nucleus</artifactId> <version>2.5.0-SNAPSHOT</version> <scope>provided</scope> </dependency> </dependencies> </project>
-
DeviceIdentityInterface インターフェイス
com.aws.greengrass.provisioning.DeviceIdentityInterface
インターフェイスには、次のシェイプがあります。
注記
これらのクラスは、GitHub にある Greengrass nucleus source code
public interface com.aws.greengrass.provisioning.DeviceIdentityInterface { ProvisionConfiguration updateIdentityConfiguration(ProvisionContext context) throws RetryableProvisioningException, InterruptedException; // Return the name of the plugin. String name(); } com.aws.greengrass.provisioning.ProvisionConfiguration { SystemConfiguration systemConfiguration; NucleusConfiguration nucleusConfiguration } com.aws.greengrass.provisioning.ProvisionConfiguration.SystemConfiguration { String certificateFilePath; String privateKeyPath; String rootCAPath; String thingName; } com.aws.greengrass.provisioning.ProvisionConfiguration.NucleusConfiguration { String awsRegion; String iotCredentialsEndpoint; String iotDataEndpoint; String iotRoleAlias; } com.aws.greengrass.provisioning.ProvisioningContext { Map<String, Object> parameterMap; String provisioningPolicy; // The policy is always "PROVISION_IF_NOT_PROVISIONED". } com.aws.greengrass.provisioning.exceptions.RetryableProvisioningException {}
SystemConfiguration
と NucleusConfiguration
の各設定値は、AWS IoT Greengrass コアソフトウェアのインストールに必要ですが、null
を戻すことができます。カスタムプロビジョニングプラグインがいずれかの設定値に null
を返した場合、AWS IoT Greengrass コアソフトウェアのインストーラに提供する config.yaml
ファイルを作成する際に、システムまたは Nucleus の設定にその値を提供する必要があります。config.yaml
で定義したオプションに対して、カスタムプロビジョニングプラグインが NULL 以外の値を返した場合、インストーラは config.yaml
の値をプラグインから返された値に置き換えます。