SORACOM Funnel の Event Hubs アダプターを使用してデータを送信する
当ガイドでは、SORACOM Funnel(以下、Funnel) の Event Hubs アダプターを使用し、デバイスから送信するデータを Microsoft Azure(以下、Azure) のストリーム処理を行うサービス「Event Hubs」に送信します。
なお、Funnel の設定は、SORACOM ユーザーコンソールを使用しています。
はじめに
Funnel は、デバイスからのデータを特定のクラウドサービスに直接転送するクラウドリソースアダプターです。
Funnel を使用すると、クラウドサービス上のリソースを指定するだけで、デバイスからのデータを直接に収集できます。 SORACOM Beamとの大きな相違点は、送信先が汎用的なプロトコルではない一方で、最小限の手間で、迅速にクラウドサービスを利用できます。
当ガイドでは、以下のような流れで進めます。
- Azure 側の設定
- リソースグループの作成
- Event Hubs の作成と設定
- SORACOM 側の設定
- 認証情報の登録
- Funnel の設定
- SIM のグループ設定
- 確認
- データの送信
- Event Hubs での確認
Azure 側の設定
Azure 側の設定手順は2つとなります
- リソースグループの作成
- Event Hubs の作成と設定
リソースグループの作成
Microsoft Azure Portal にログインし、「その他のサービス」を選択した後、表示される検索ボックスに resource
と入力します。
すると「リソース グループ」が表示されますのでクリックします。
「追加」をクリックし、表示されたダイアログに下記の通り入力し、「作成」をクリックします。
- リソース グループ名: <任意の文字列> (今回は
SoracomFunnelDemo0
としました) - サブスクリプション: <任意> (今回は 無料試用版 としました)
- リソース グループの場所: <任意> (今回は 東日本 としました)
以上でリソースグループの作成は完了です。
Event Hubs の作成と設定
「その他のサービス」を選択した後、表示される検索ボックスに event
と入力します。
すると「Event Hubs」が表示されますのでクリックします。
「追加」をクリックし、表示されたダイアログに下記の通り入力し、「作成」をクリックします。
- Name: <任意の文字列> (今回は
aeNohy7phuko-eh0
としました) - Pricing tier: Basic
- サブスクリプション: <任意> (今回は 無料試用版 としました)
- Resource group: 既存のものを使用 → 任意のリソースグループ (今回は SoracomFunnelDemo0 )
※場所はリソースグループから自動的に決定されます
1~2分経つと Event Hubs が作成されます。「更新」を押すと一覧に表示されるようになります。 表示された Event Hubs をクリックし、「Event Hubs」をクリックします。その後「Event Hub」をクリックします。
表示されたダイアログに下記の通り入力し、「Create」をクリックします。
- Name: <任意の文字列> (今回は
sensor0
としました)
以上で Event Hubs の作成と設定は完了です。
SORACOM 側の設定
SORACOM 側の設定手順は2つとなります
- 認証情報の登録
- Funnel の設定
- SIM を Funnel の設定をされているグループに所属させる
認証情報の登録
SORACOM Web コンソールにログインし、右上のユーザー名 / メールアドレスをクリックし、「セキュリティ」をクリックします。
「認証情報ストア」をクリックし、「認証情報を登録」をクリックします。
表示されたダイアログに下記の通り入力し、「登録」をクリックします。
- 接続情報 ID: <任意の文字列> (今回は
azure-eventhubs
としました) - 概要: <任意の文字列> (今回は
Azure Event Hubs send access
としました) - 種別: Azure 認証情報
- Policy name:
(今回は Event Hubs 標準の RootManagerSharedAccessKey
を利用しています) - Key: <上記ポリシーに紐づいた Primary Key もしくは Secondary Key>
※ Policy name と Key は Event Hubs の管理ページ内「Shared access policies」から入手できます。また権限を限定したポリシーを作成することも可能ですが、そのポリシーには Send 権限を付けるようにしてください
以上で認証情報の登録は完了です。
Funnel の設定
次に、Funnel の設定を行います。 「Menu」をクリックし、「SIM グループ」をクリックします。
「追加」をクリックします。
表示されたダイアログに下記の通り入力し、「グループ作成」をクリックします。
- グループ名: <任意の文字列> (今回は
AzureEventHubs
としました)
SIM グループ管理ページには、先ほど作成したグループが表示されているため、それをクリックします。
「SORACOM Funnel 設定」をクリックし、「OFF」と表示されているスイッチをクリックします。
すると「ON」に切り替わってダイアログに入力できるようになるので、下記の通り入力し、「保存」をクリックします。
- 転送先サービス: Microsoft Azure Event Hubs
- 転送先 URL:
https://aeNohy7phuko-eh0.servicebus.windows.net/sensor0/messages
- 認証情報: azure-eventhubs (Azure Event Hubs send access)
- 送信データ形式: JSON
※転送先 URLの組み立て方法:
以上で Funnel の作成は完了です。
Funnel が設定されているグループに SIM を所属させる
このままではまだ Funnel を利用できません。先ほど作成し Funnel の設定を行った SIM グループに SIM を所属させることで、利用できるようになります。
「Menu」をクリックし、「 SIM 管理」をクリックします。
所属させたい SIM のチェックボックスをチェックし、「操作」をクリックした後、「所属グループ変更」をクリックします。
※今回は Wio LTE と表示されている SIM を操作します。
表示されたダイアログに下記の通り入力し、「グループ変更」をクリックします。
- 新しい所属グループ: (今回は
AzureEventHubs
を利用します)
以下のように、対象の SIM のグループが設定されていれば、完了です。
データの送信
いよいよデータを送信します。 SORACOM Air の SIM を先ほど Funnel の設定を行ったグループに所属させてください。
Funnel のエンドポイントに対し、リクエストを送信します。エンドポイントは、以下となります。
- funnel.soracom.io:23080
- funnel.soracom.io:80
TCP で送信
- 送信コマンド例
$ nc funnel.soracom.io 23080
{"message":"Hello SORACOM Funnel via TCP!"} [Enter]
200
[Ctrl+C]
UDP で送信
- 送信コマンド例
$ nc -u funnel.soracom.io 23080
{"message":"Hello SORACOM Funnel via UDP!"} [Enter]
200
[Ctrl+C]
HTTP で送信
- 送信コマンド例
~$ curl -vX POST http://funnel.soracom.io -d "{\"message\":\"Hello SORACOM Funnel via HTTP!\"}" -H Content-Type:application/json
* Rebuilt URL to: http://funnel.soracom.io/
* Trying 100.127.65.43...
* Connected to funnel.soracom.io (100.127.65.43) port 80 (#0)
> POST / HTTP/1.1
> Host: funnel.soracom.io
> User-Agent: curl/7.43.0
> Accept: */*
> Content-Type:application/json
> Content-Length: 44
>
* upload completely sent off: 44 out of 44 bytes
< HTTP/1.1 204 No Content
< Date: Thu, 14 Jan 2016 17:18:46 GMT
< Connection: keep-alive
<
* Connection #0 to host funnel.soracom.io left intact
データの送信を確認する
Event Hubs のダッシュボードを確認して、データが送信されたことを確認します。 「メッセージ」を確認することで、送信されていることがわかります。
当ガイドでご覧頂いたとおり、Funnel を使用することで、デバイスに Azure の SDK をいれる必要はありません。 また、クラウドサービスのクレデンシャル情報をデバイスに持つ必要もありません。
クラウドサービスのクレデンシャル情報とリソースURLを SORACOM に設定するのみで、デバイスからは、HTTP、TCP もしくは UDP で直接クラウドサービスにデータを送信することが可能となりました。 最小限の手間で、迅速にデバイスとクラウドサービスを利用したシステムを使うことができるようになります。
今後も様々な機能の追加を検討していきますので、是非ご要望をお聞かせください。 以上で、「SORACOM Funnel の Event Hubs アダプターを使用してデータを送信する」は完了です。