概要
AWSのGreengrassを使ってエッジにLambdaをデプロイし、実行させてみた。
背景と目的
AWSのGreengrassを使ってみようと思っていながらしばらく時間がなくトライしていなかった。少し時間ができたので使ってみる。
詳細
0.参考
https://aws.amazon.com/jp/greengrass/features/
https://aws.amazon.com/jp/greengrass/faqs/
https://docs.aws.amazon.com/ja_jp/greengrass/latest/developerguide/what-is-gg.html
基本的なやり方は、上記のURLを参考に進めた。
1.Raspberry Piの設定
https://docs.aws.amazon.com/ja_jp/greengrass/latest/developerguide/module1.html
上記URLにある手順に従って実施したのだが、私の環境の場合、Memory cgroupという項目でDisabledが出た。そこで、
https://www.raspberrypi.org/forums/viewtopic.php?t=203128
に従って、/boot/cmdline.txtに以下を追記して再起動。
cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
2.Greengrass Core SDKのインストール
https://docs.aws.amazon.com/ja_jp/greengrass/latest/developerguide/module2.html
上記URLに従って、作業を実施。
ただし、以下を追加で実施した。なぜかというと、はじめgreengrassdの起動がうまくいかず、トラブルシューティングを見ながら、権限の問題がありそうだったから。(ただし、これは本当に要るのか?はわからない。)
sudo chmod 755 /greengrass -R
3.Lambdaのデプロイ
https://docs.aws.amazon.com/ja_jp/greengrass/latest/developerguide/module3-I.html
次に、Lambda関数をデバイスにデプロイした。作業手順は上記URLに従っている。
コンソールのGreengrass groupで、正常に完了しましたという表示になればOK.
4.テスト
AWS IoTのコンソールで、テスト。
hello/worldトピックをサブスクライブした結果、定期的にエッジで実行されたLambda関数から、MQTTメッセージがパブリッシュされている。
まとめ
AWSのGreengrassを使ってエッジにLambdaをデプロイし、実行させた。
コメント