====== AWS IoT Greengrass V2 対応 ====== \\ [[https://aws.amazon.com/jp/greengrass/?nc2=h_ql_prod_it_gg|{{https://d1tlzifd8jdoy4.cloudfront.net/wp-content/uploads/2019/05/aws-iot-greengrass-960x504.png?400|AWS IoT Greengrass}}]] \\ AWS IoT Greengrass V2 のインストーラを使用して、Greengrass V2 のセットアップを行います。\\ 詳細は [[https://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/setting-up.html|AWS IoT Greengrass コアデバイスをセットアップする - docs.aws.amazon.com]] などを参照してください。 ===== 準備 ===== AWS IoT Greengrass コアデバイスをセットアップするためには下記が必要です。\\ * MA シリーズがインターネットへ接続できる環境\\ * AWS の IAM ポリシー設定、AWS 認証情報(ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY) * Java ランタイム環境 (JRE) バージョン 8 以降\\ \\ ===== JDK(JRE) をインストールしたファームウェアの作成 ===== AWS IoT Greengrass Core ソフトウェアを入れたファームウェアを作成するとデバイス毎の設定ができなくなることとファームウェアのサイズが大きくなりすぎるため、\\ ここではソフトウェア開発 (MA-X3xx シリーズ)の基本編(ファームウェア作成)を参考に JDK(JRE) を追加したファームウェアを作成します。\\ ※ JDK(JRE) をインストールしたファームウェアの作成については、[[max3xx_devel:customize_firmware:add_openjdk_jre:start|]] を参照してください。\\ \\ ===== ファームウェアの更新 ===== 作成したファームウェアをデバイスに適用します。 \\ ===== eMMC 後半領域の利用 ===== AWS IoT Greengrass Core ソフトウェアは、eMMC の後半領域に入れます。\\ eMMC の後半領域を利用する手順については、[[mas1xx_tips:use_emmc_data_partition:start|]] を参照してください。\\ \\ ===== AWS IoT Greengrass のセットアップ ===== ==== AWS IoT のコンソール へ移動 ==== AWS IoT のコンソール に移動します。 \\ ==== Core デバイスのセットアップ ==== 左メニューから **Greeengrass デバイス** を選択し、 **1つの Core デバイスをセットアップ** をクリックします。\\ {{:max3xx_devel:customize_firmware:add_aws_iot_greengrass_v2:gg_1.jpg?1000|}} \\ ==== コアデバイスとモノのグループの命名 ==== コアデバイスとモノのグループに名前をつけます。 {{:max3xx_devel:customize_firmware:add_aws_iot_greengrass_v2:gg2.jpg?1000|}} \\ ==== AWS 認証情報の設定 ==== AWS 認証情報をデバイスのターミナルにコピーしてデバイスへ貼り付けます。 {{:max3xx_devel:customize_firmware:add_aws_iot_greengrass_v2:gg_3.jpg?1000|}} \\ デバイスで AWS 認証情報を設定します。 root@gemini:~# export AWS_ACCESS_KEY_ID=アクセスキー root@gemini:~# export AWS_SECRET_ACCESS_KEY=シークレットアクセスキー root@gemini:~# export AWS_SESSION_TOKEN=セッション トークンキー root@gemini:~# \\ ==== インストーラのダウンロード と インストールの実行 ==== Web ページからそれぞれのコマンドをコピーし、ターミナルに貼り付けて実行します。 {{:max3xx_devel:customize_firmware:add_aws_iot_greengrass_v2:gg_4.jpg?1000|}} \\ === インストーラのダウンロード === root@gemini:/opt/data# curl -s https://XXXXXXXXXX.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip && unzip greengrass-nucleus-latest.zip -d GreengrassInstaller Archive: greengrass-nucleus-latest.zip inflating: GreengrassInstaller/META-INF/MANIFEST.MF inflating: GreengrassInstaller/META-INF/SIGNER.SF inflating: GreengrassInstaller/META-INF/SIGNER.RSA inflating: GreengrassInstaller/LICENSE inflating: GreengrassInstaller/NOTICE inflating: GreengrassInstaller/README.md inflating: GreengrassInstaller/THIRD-PARTY-LICENSES inflating: GreengrassInstaller/bin/greengrass.exe inflating: GreengrassInstaller/bin/greengrass.service.procd.template inflating: GreengrassInstaller/bin/greengrass.service.template inflating: GreengrassInstaller/bin/greengrass.xml.template inflating: GreengrassInstaller/bin/loader inflating: GreengrassInstaller/bin/loader.cmd inflating: GreengrassInstaller/conf/recipe.yaml inflating: GreengrassInstaller/lib/Greengrass.jar root@gemini:/opt/data# \\ === インストールの実行 === root@gemini:/opt/data# sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE -jar ./GreengrassInstaller/lib/Greengrass.jar --aws-region ap-northeast-1 --thing-name GG-device1 --thing-group-name GG-Group --component-default-user ggc_user:ggc_group --provision true --setup-system-service true --deploy-dev-tools true Provisioning AWS IoT resources for the device with IoT Thing Name: [GG-device1]... Found IoT policy "GreengrassV2IoTThingPolicy", reusing it Creating keys and certificate... Attaching policy to certificate... Creating IoT Thing "GG-device1"... Attaching certificate to IoT thing... Successfully provisioned AWS IoT resources for the device with IoT Thing Name: [GG-device1]! Adding IoT Thing [GG-device1] into Thing Group: [GG-Group]... Successfully added Thing into Thing Group: [GG-Group] Setting up resources for aws.greengrass.TokenExchangeService ... Attaching TES role policy to IoT thing... No managed IAM policy found, looking for user defined policy... IAM policy named "GreengrassV2TokenExchangeRoleAccess" already exists. Please attach it to the IAM role if not already Configuring Nucleus with provisioned resource details... Downloading Root CA from "https://www.amazontrust.com/repository/AmazonRootCA1.pem" Created device configuration Successfully configured Nucleus with provisioned resource details! Creating a deployment for Greengrass first party components to the thing group Configured Nucleus to deploy aws.greengrass.Cli component Creating user ggc_user ggc_user created Creating group ggc_group ggc_group created Added ggc_user to ggc_group Successfully set up Nucleus as a system service root@gemini:/opt/data# \\ ==== コアデバイスの状態の確認 ==== コアデバイスを表示 をクリックします。 {{:max3xx_devel:customize_firmware:add_aws_iot_greengrass_v2:gg_5.jpg?1000|}} \\ 追加したコアデバイスが正常になっていることを確認します。 {{:max3xx_devel:customize_firmware:add_aws_iot_greengrass_v2:gg_6.jpg?1000|}} \\ ===== AWS IoT Greengrass のステータス確認 ===== Greengrass CLI コマンドを実行し、バージョンが表示されることを確認します。 root@gemini:/opt/data# /greengrass/v2/bin/greengrass-cli -V Greengrass CLI Version: 2.10.0 root@gemini:/opt/data# \\ サービスの状態を確認するには以下のコマンドを実行します。 root@gemini:/opt/data# systemctl status greengrass.service ● greengrass.service - Greengrass Core Loaded: loaded (/etc/systemd/system/greengrass.service; enabled; vendor pr> Active: active (running) since Wed 2023-05-10 12:17:48 JST; 1h 8min ago Main PID: 906 (sh) Tasks: 35 (limit: 1186) Memory: 165.8M CGroup: /system.slice/greengrass.service tq906 /bin/sh /greengrass/v2/alts/current/distro/bin/loader mq914 java -Dlog.store=FILE -Dlog.store=FILE -Droot=/greengrass/v2> May 10 12:17:48 gemini systemd[1]: Started Greengrass Core. May 10 12:17:48 gemini sh[906]: Greengrass root: /greengrass/v2 May 10 12:17:49 gemini sh[906]: Java executable: java May 10 12:17:49 gemini sh[906]: JVM options: -Dlog.store=FILE -Droot=/greengras> May 10 12:17:49 gemini sh[906]: Nucleus options: --setup-system-service false May 10 12:18:35 gemini sh[914]: Launching Nucleus... May 10 12:18:52 gemini sh[914]: Launched Nucleus successfully. \\ ===== Documents ===== === Getting Started Guide for AWS IoT Greengrass === ^ File ^ Status ^ Note | |{{:max3xx_devel:customize_firmware:add_aws_iot_greengrass_v2:getting_started_guide_template_for_aws_iot_greengrass_devices_ma-s1xx.docx |}}|2023/07/05 14:23 41.1 KB|for MA-S1xx Series| |{{ :max3xx_devel:customize_firmware:add_aws_iot_greengrass_v2:getting_started_guide_template_for_aws_iot_greengrass_devices_ma-x3xx.docx |}}|2023/07/05 14:25 41.1 KB|for MA-X3xx Series| \\