AWS
DynamoDB
IoT
LPWA
SigFox

Sigfox CallbackとAWS IoT連携

Sigfox Callbackには、Custom Callback以外にAWS IoT、AWS Kinesis、Microsoft Azure Event hub、Microsoft Azure IoT hub、IBM Watson IoT Platformへの連携が用意されています。
ここでは、AWS IoTとの連携方法を記載します。

Sigfox Callback設定とAWS IoTの設定

image.png
まずは、Sigfoxクラウドで、Callback設定画面に移動し、「AWS IoT」を選択します。
image.png
下図の画面になります。後ほど、AWS IoT側の設定で必要になるExternal Idをコピーしたうえで、[Launch Stack]ボタンをクリックします。
image.png
AWSコンソールが立ち上がり、CloudFormationの画面に移るので、そのまま[Next]をクリックします。
image.png
スタックの詳細の指定画面になります。AWSAccountIdはご自身のAWSアカウントIDExternalIdは、先ほどSigfoxクラウドのCallback設定でコピーしておいたExternalIdを、Regionには、ご自身のリージョンを入力してください。リージョンを調べる場合は、こちらから探してください。アジアパシフィック(東京)の場合は、「ap-northeast-1」となります。
image.png
TopicNameは、AWS IoTにpublishするトピック名となります。
[次へ]ボタンをクリックすると、オプションの設定画面になりますので、そのまま[次へ]ボタンをクリックすると、確認画面になります。
☑AWS CloudFormation によって IAM リソースが作成される場合があることを承認します。
にチェックを入れて、[作成]ボタンクリックで、スタックが作成されます。
作成されたスタックを開き、「出力」を確認します。
image.png
ここで、ARNRoleTopicをコピーしておき、SigfoxクラウドのCallback設定画面に戻り、ARN RoleとTopicに貼り付けます。RegionはAWS IoT側で設定したリージョンと同じものを選びます。
image.png
Json Bodyには、AWS IoTにCallbackするデータをJSON形式で入力します。今回は、下記のようなJSONを送ってみます。

sigfox_awsiot.json
{
  "device":"{device}",
  "time":{time},
  "data":"{data}"
}

[OK]ボタンをクリックし、Callback設定を完了させます。これで、SigfoxクラウドからAWS IoTへのCallbackが完了しました。

DynamoDBにデータを送ってみる

image.png
SigfoxクラウドからのデータをDynamoDBに保存していきます。
AWSのサービス一覧から「DynamoDB」を選択します。
image.png
DynamoDBのダッシュボードから「テーブルの作成」ボタンをクリックし、テーブル名とプライマリーキーを設定します。絶対ではないですが、deviceとtimeをキーにしておきます。
テーブルの作成が完了するとDynamoDBのテーブルメニューにテーブル名が表示されます。
image.png

DynamoDBにデータを受け渡すためのRoleを設定

image.png
DBテーブルを用意しただけでは、データが受けわされてないので、受け渡し用の設定を行います。
AWSサービス一覧から「IoT Core」を選択し、左メニューのACTをクリックし、[ルールの作成]を行います。
image.png
ルールの作成画面では、AWS IoT (CloudFormation)で設定したデータハブからデータを取得し、そのあと、どうするかを定義します。トピックフィルターでは、CloudFormationで設定したTopic名(今回は"sigfox")を入力。属性は、とりあえず、全部ということで、""を入力します。
image.png
[アクションの追加]ボタンをクリックし、
DynamoDBテーブルにメッセージを挿入するを選択。
image.png
先程作成したテーブル名など、テーブルの設定を行い
[アクションの追加]*ボタンをクリックします。(IAMロール名も適当に作っておいてください)
最後に、[ルールの作成]ボタンをクリックすると、ルールが一つ出来上がります。
image.png
DynamoDBのテーブルを確認すると、Sigfox Callbackで設定したJSONにあわせた項目が挿入されていることが確認できます。
image.png

Sigfox Japan KCCS