メールの内容を変えてみる

目次に戻る

メールを使い動作を確認では、Lambda 関数を作らずともメールの送信ができましたが、実際は AWS IoT 1-Click によって Lambda 関数が自動生成されており、ボタン押下のアクションではその自動生成された Lambda 関数が実行されていました。

本章では自動生成された Lambda 関数を編集することでメールの内容を変更してみます。
変更の内容ですが、メールの本文の末尾に「これは Lambda 関数で追加した行です」という行を追加するという内容です。

button-mkmk / Email 内容変更 全体像

作業1: 自動生成された Lambda 関数を確認してみる

AWS マネジメントコンソール を開きログインしたあと、リージョンが オレゴン (us-west-2) になっている事を確認します。
なっていなければ オレゴン に切り替えてください。

mkmk-button / 2-1 aws-console

AWS Lambda のコンソールを開きます。

[サービス] をクリックした後、検索窓に lambda と入れるか、 “コンピューティング” カテゴリの中の Lambda をクリックしてください。

1-1 lambda

Lambda 関数の一覧が表示されます。この中で iot1click_onclick_email_・・・ という関数が AWS IoT 1-Click によって自動生成された Lambda 関数です。

1-2 lambda list

※もしも Lambda 関数一覧が表示されなかった場合は以下のように、右上のメニューから [関数] を選んでください。

1-2 lambda menu

作業2: Lambda 関数を編集する

先ほど見つけた iot1click_onclick_email_・・・ をクリックします。

2-1 lambda

スクロールすると 関数コード というセクションがあります。ここに書かれた Python コードが自動生成された Lambda 関数の中身です。ここを編集していきます。

2-2 content

43 行目に以下のコードを追加してください。

    body += '\nこれは Lambda 関数で追加した行です'

2-3 lambda edit

右上の [保存] をクリックします。

2-3 lambda save

作業3: Lambda 関数のテストを行う

編集した内容が正常に動くかテストをしてみます。

Lambda 関数の編集画面 右上の [テストイベントの選択…] > [テストイベントの設定] をクリックします。

2-4 lambda test event

フォームに以下のように入力した後、[作成] をクリックします。

テキストエリアに以下の 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 "
    }
  }
}

2-5 lambda test event

Lambda 関数の編集画面 右上が 1click になっている事を確認したら [テスト] をクリックします。

2-6 lambda test

テストの結果が Lambda 編集画面に表示されます。
Status に実行結果が表示されるほか logging.info からの出力が表示されているのが確認できます。

2-7 lambda result success

また、成功であればメールが届きます。

2-7 email

コードに不備があった場合は、以下のように status: failed となり、理由などが表示されているので、それを参照しながら修正を行ってください。

2-7 lambda result failed

作業4: ボタンからの動作を確認してみる

AWS Lambda は 保存 した時点でコードの内容が実行できるようになっています。そのためこの時点で AWS IoT 1-Click からの呼び出しにも新しいコードの内容で応答することになります。

実際にボタンを押してメールが届くか確認してみてください。

内容が変更されたメールが届いたらこの章は終了です

まとめ

次へ進む

トラブルシューティング

テストのメールが届かない