メールの内容を変えてみる
メールを使い動作を確認では、Lambda 関数を作らずともメールの送信ができましたが、実際は AWS IoT 1-Click によって Lambda 関数が自動生成されており、ボタン押下のアクションではその自動生成された Lambda 関数が実行されていました。
本章では自動生成された Lambda 関数を編集することでメールの内容を変更してみます。
変更の内容ですが、メールの本文の末尾に「これは Lambda 関数で追加した行です
」という行を追加するという内容です。
作業1: 自動生成された Lambda 関数を確認してみる
AWS マネジメントコンソール を開きログインしたあと、リージョンが オレゴン (us-west-2) になっている事を確認します。
なっていなければ オレゴン に切り替えてください。
AWS Lambda のコンソールを開きます。
[サービス] をクリックした後、検索窓に lambda
と入れるか、 “コンピューティング” カテゴリの中の Lambda をクリックしてください。
Lambda 関数の一覧が表示されます。この中で iot1click_onclick_email_・・・
という関数が AWS IoT 1-Click によって自動生成された Lambda 関数です。
※もしも Lambda 関数一覧が表示されなかった場合は以下のように、右上のメニューから [関数] を選んでください。
作業2: Lambda 関数を編集する
先ほど見つけた iot1click_onclick_email_・・・
をクリックします。
スクロールすると 関数コード というセクションがあります。ここに書かれた Python コードが自動生成された Lambda 関数の中身です。ここを編集していきます。
43 行目に以下のコードを追加してください。
body += '\nこれは Lambda 関数で追加した行です'
右上の [保存] をクリックします。
作業3: Lambda 関数のテストを行う
編集した内容が正常に動くかテストをしてみます。
Lambda 関数の編集画面 右上の [テストイベントの選択…] > [テストイベントの設定] をクリックします。
フォームに以下のように入力した後、[作成] をクリックします。
- 新しいテストイベントの作成 (ここはデフォルトのままでOKです)
- イベントテンプレート: Hello World (ここはデフォルトのままでOKです)
- イベント名:
1click
(任意の文字列)
テキストエリアに以下の JSON を入力します。その際 email
の部分を送信先のアドレスに変更してください。
{
"deviceEvent": {
"buttonClicked": {
"clickType": "SINGLE",
"reportedTime": "2018-05-04T23:26:33.747Z"
}
},
"deviceInfo": {
"attributes": {
},
"type": "button",
"deviceId": " G030PMXXXXXXXXXX ",
"remainingLife": 5
},
"placementInfo": {
"projectName": "TestEmail",
"placementName": "button1",
"attributes": {
"email": "you@example.jp",
"subject": "テスト送信",
"body": "SORACOM LTE-M Button のテスト送信"
},
"devices": {
"myButton": " G030PMXXXXXXXXXX "
}
}
}
Lambda 関数の編集画面 右上が 1click になっている事を確認したら [テスト] をクリックします。
テストの結果が Lambda 編集画面に表示されます。
Status に実行結果が表示されるほか logging.info
からの出力が表示されているのが確認できます。
また、成功であればメールが届きます。
コードに不備があった場合は、以下のように status: failed
となり、理由などが表示されているので、それを参照しながら修正を行ってください。
作業4: ボタンからの動作を確認してみる
AWS Lambda は 保存 した時点でコードの内容が実行できるようになっています。そのためこの時点で AWS IoT 1-Click からの呼び出しにも新しいコードの内容で応答することになります。
実際にボタンを押してメールが届くか確認してみてください。
内容が変更されたメールが届いたらこの章は終了です
まとめ
- AWS Lambda の編集方法
- AWS Lambda のテスト方法
- ボタンの実機が無くてもテストイベントを設定することで開発が可能です
次へ進む
トラブルシューティング
テストのメールが届かない
- 原因: テストイベント作成時の JSON で
email
を送信先に変更し忘れている可能性があります。 - 対策:
email
の値は実際の送信先になるように変更してください。