SORACOM Users

SORACOM LTE-M Button デザインパターン
― AWS と連携させる

SORACOM LTE-M Button と AWS を連携させる方法は3種類あります。

デザインパターン
ボタンアプリケーション構築を AWS で完結したい
button_design_patterns / Button - AWS IoT 1-Click + AWS Lambda
ボタンと AWS Lambda 連携をすばやく構築したい
button_design_patterns / Button - Funk - AWS Lambda
ボタンのデータ利用をサーバレスで実現したい
(例: Amazon SNS による Email 送信)
button_design_patterns / Button - Funnel - AWS IoT Core + Amazon SNS(Email)


ボタンアプリケーション構築を AWS で完結したい
― SORACOM LTE-M Button powered by AWS を利用する構成

ボタンアプリケーション構築を AWS で完結したい場合は、SORACOM LTE-M Button powered by AWS を利用することで AWS IoT 1-Click を通じて AWS Lambda と連携できます。

button_design_patterns / Button - AWS IoT 1-Click, AWS Lambda

具体的な方法は SORACOM LTE-M Button powered by AWS の Getting Started をご覧ください。


ボタンと AWS Lambda 連携をすばやく構築したい
― SORACOM Funk + AWS Lambda パターン

SORACOM LTE-M Button for Enterprise もしくは Plus からAWS Lambda 連携を迅速に構築したい場合は、SORACOM Funk から AWS Lambda を呼び出すパターンを利用します。

button_design_patterns / Button - Funk - AWS Lambda

手順

ここでは AWS Lambda で Lambda 関数を作成し、 SORACOM Funk から呼び出せるようにする手順を解説します。

1. AWS Lambda 関数を作成する

AWS マネージメントコンソールの “Lambda” より [関数の作成] をクリックします。その後、"一から作成" を選んだあと、以下のように入力して [関数の作成] をクリックします。

Button - Funk - AWS Lambda / lambda 1

作成された関数の管理画面の [関数コード] を以下のように書き換えてから [保存] をクリックします。

exports.handler = async (event, context) => {
    console.log(event);
    console.log(context.clientContext.custom);
    return { statusCode: 204 };
};

Button - Funk - AWS Lambda / lambda 2

また、この関数の ARN をメモしておきます。

Button - Funk - AWS Lambda / lambda 3

2. AWS Lambda 接続用の AWS IAM ユーザーを作成する

AWS マネージメントコンソールの “IAM” より [ユーザー] > [ユーザーを追加] と進むと表示されるダイアログで以下のように入力してから [次のステップ: アクセス権限] をクリックします。

Button - Funk - AWS Lambda / iam 1

アクセス許可の設定では [既存のポリシーを直接アタッチ] をクリックした後、 “AWSLambraRole” ポリシーを一覧から探してチェックを付けた後、 [次のステップ: タグ] をクリックします。
※ TIPS: フィルタに lambdarole と入れると探しやすくなります。

Button - Funk - AWS Lambda / iam 2

タグの追加は特に設定することがありません。そのまま [次のステップ: 確認] をクリックしてください。

最後の確認画面で、今までの設定が反映されているかを確認したら [ユーザーの作成] をクリックします。

ユーザーの作成が完了すると アクセスキー IDシークレットアクセスキー が表示されます。この2つをメモしておいてください。(特にシークレットアクセスキーは後ほど入手することができませんので、無くさないようにしてください。)

Button - Funk - AWS Lambda / iam 3

3. SORACOM Funk の設定を行う

SORACOM ユーザーコンソール の SIM グループの管理画面から “SORACOM Air for Cellular 設定” で [バイナリパーサー設定] を “ON” にした後、以下のように入力してから [保存] をクリックします。
※ SIM グループを作成していない場合は作成した上で、ボタンの SIM に割り当てておいてください。

Button - Funk - AWS Lambda / air 1

同じ SIM グループの管理画面から “SORACOM Funk 設定” を “ON” にした後に表示されるダイアログで以下のように入力します。

ここまで入力してから “認証情報” で [認証情報を新規作成する…] をクリックします。

Button - Funk - AWS Lambda / funk 1

表示されたダイアログで以下の通り入力した後、 [登録] をクリックします。

Button - Funk - AWS Lambda / cred 1

登録が正常に完了すると SORACOM Funk の設定画面に戻ってきます。
この時 “認証情報” に、先ほど登録をした soracom_funk_pseudo_user1_cred1 が表示されていることが確認できたら、[関数の ARN] に、先ほどメモをした ARN を入力して [保存] をクリックします。

Button - Funk - AWS Lambda / funk 2

以上で設定はすべて終了です。

4. 動作確認

確認は Amazon CloudWatch で行います。ボタンを押してから LED が「緑色」になったことを確認した後、CloudWatch の管理画面から Lambda 関数 (my_button_func1) を作成したリージョンを選んだ後、 [ログ] をクリックすると “ロググループ” に /aws/lambda/my_button_func1 が作成されています。クリックしていくとログを確認できます。

Button - Funk - AWS Lambda / testflight 1

5. トラブルシュート

6. この後の開発に向けた情報源

今回はボタンのデータをログとして出力しました。実際の活用は AWS Lambda から他のサービス連携を行いデータ活用を行っていくことになります。それらの方法については AWS Lambda の開発ドキュメントや活用方法を参照してください。


ボタンのデータ利用をサーバレスで実現したい
― SORACOM Funnel + AWS IoT Core パターン

SORACOM LTE-M Button for Enterprise もしくは Plus のデータ利用をサーバレスで実現したい場合は、SORACOM Funnel を利用して AWS IoT Core を経由して AWS の各種サービスと連携するパターンを利用します。

button_design_patterns / Button - Funnel - AWS IoT Core + Amazon SNS(Email)

手順

ここでは SORACOM Funnel から AWS IoT Core を経由し、 Amazon SNS を利用して Email を送ります。

1. Amazon SNS の「トピック」を作成する

AWS マネージメントコンソールの “Simple Notification Service” より [トピック] > [トピックの作成] をクリックします。

Button - Funnel - AWS IoT Core / sns 1

以下のように入力して [トピックの作成] をクリックします。

Button - Funnel - AWS IoT Core / sns 2

[サブスクリプションの作成] をクリックします。

Button - Funnel - AWS IoT Core / sns 3

以下のように入力して [トピックの作成] をクリックします。

Button - Funnel - AWS IoT Core / sns 4

エンドポイントに入力したメールアドレスに “AWS Notification - Subscription Confirmation” という件名のメールが送信されています。そのメールの中の [Confirm subscription] をクリックします。 “Subscription confirmed!” と表示されたことを確認してください。(表示されたウィンドウは閉じてしまって構いません。また、メールは削除してしまって構いません。)

Button - Funnel - AWS IoT Core / sns 5

Amazon SNS の管理画面で再読み込みをした際にステータスが「確認済み」となっていることを確認してください。

Button - Funnel - AWS IoT Core / sns 6

2. AWS IoT Core から SNS トピックを呼び出せるようにする

AWS IoT Core の管理画面から [ACT] > [ルールの作成] とクリックします。

Button - Funnel - AWS IoT Core / iot core 1

表示されるダイアログで以下のように入力します。

Button - Funnel - AWS IoT Core / iot core 2

ここまで入力してから “1 つ以上のアクションを設定する” の [アクションの追加] をクリックし、"アクションの選択" から [SNS プッシュ通知としてメッセージを送信する] にチェックをしてから [アクションの設定] をクリックします。

Button - Funnel - AWS IoT Core / iot core 3

表示されるダイアログで以下のように入力したら [ロールの作成] をクリックします。

Button - Funnel - AWS IoT Core / iot core 4

表示されるダイアログで以下のように入力したら [ロールの作成] をクリックします。

Button - Funnel - AWS IoT Core / iot core 5

“アクションの設定” に戻ってきたら [アクションの追加] をクリックします。
“ルールの作成” に戻ってきたら [ルールの作成] をクリックします。

AWS IoT Core の管理画面から [設定] で “カスタムエンドポイント” を確認します。表示されているエンドポイントをメモしておいてください。
※ この時 [ステータスの確認] ボタンが表示されている場合は、このボタンをクリックしてください。エンドポイントが有効になります。

Button - Funnel - AWS IoT Core / iot core 6

AWS IoT Core の管理画面から [テスト] の “発行” でテストをします。以下のように入力したら [トピックに発行] をクリックします。

Button - Funnel - AWS IoT Core / iot core 7

ここまでの設定がすべて完了できていれば、 Amazon SNS の “エンドポイント” に設定したメールアドレスに以下のようなメールが送信されています。メールを確認してください。(確認したらメールは削除してしまって構いません。)

Button - Funnel - AWS IoT Core / iot core 8

3. AWS IoT Core 接続用の AWS IAM ユーザーを作成する

AWS IAM の管理画面から [ユーザー] > [ユーザーを追加] と進むと表示されるダイアログで以下のように入力してから [次のステップ: アクセス権限] をクリックします。

Button - Funnel - AWS IoT Core / iam 1

アクセス許可の設定では [既存のポリシーを直接アタッチ] をクリックした後、 “AWSIoTDataAccess” ポリシーを一覧から探してチェックを付けた後、 [次のステップ: タグ] をクリックします。
※ TIPS: フィルタに awsiotdata と入れると探しやすくなります。

Button - Funnel - AWS IoT Core / iam 2

タグの追加は特に設定することがありません。そのまま [次のステップ: 確認] をクリックしてください。

最後の確認画面で、今までの設定が反映されているかを確認したら [ユーザーの作成] をクリックします。

ユーザーの作成が完了すると アクセスキー IDシークレットアクセスキー が表示されます。この2つをメモしておいてください。
※ 特にシークレットアクセスキーは後ほど入手することができません

Button - Funnel - AWS IoT Core / iam 3

4. SORACOM Funnel の設定を行う

SORACOM ユーザーコンソール の SIM グループの管理画面から “SORACOM Air for Cellular 設定” で [バイナリパーサー設定] を “ON” にした後、以下のように入力してから [保存] をクリックします。
※ SIM グループを作成していない場合は作成した上で、ボタンの SIM に割り当てておいてください。

Button - Funk - AWS Lambda / air 1

同じ SIM グループの管理画面から “SORACOM Funnel 設定” を “ON” にした後に表示されるダイアログで以下のように入力します。

ここまで入力してから “認証情報” の右側の [+] をクリックします。

Button - Funnel - AWS IoT Core / funnel 1

表示されたダイアログで以下の通り入力した後、 [登録] をクリックします。

Button - Funnel - AWS IoT Core / cred 1

登録が正常に完了すると SORACOM Funnel の設定画面に戻ってきます。
この時 “認証情報” に、先ほど登録をした soracom_funnel_to_awsiotcore_cred1 が表示されていることが確認できたら [保存] を行います。

5. 動作確認

ボタンを押してから LED が「緑色」になったことを確認した後、 Amazon SNS の “エンドポイント” に設定したメールアドレスに以下のようなメールが送信されています。

Button - Funnel - AWS IoT Core / testflight 1

6. トラブルシュート

7. この後の開発に向けた情報源

今回はボタンのデータをそのままメールで送付するようにしました。実際の活用は AWS IoT Core からルールによって別のサービスを呼び出してデータの加工や蓄積を行うことになります。その方法に関しては AWS IoT Core およびその先のサービスとの連携方法を参照するようにしてください。

pagetop