Funnel の Event Hubs アダプターを使用して、デバイスから送信するデータを Microsoft Azure (以下、Azure) のストリーム処理を行うサービス「Event Hubs」に送信します。
ステップ 1: Azure を設定する
リソースグループの作成
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 の作成と設定は完了です。
ステップ 2: SORACOM を設定する
認証情報の登録
SORACOM ユーザーコンソールにログインし、右上のユーザー名 / メールアドレスをクリックし、「セキュリティ」をクリックします。
「認証情報ストア」をクリックし、「認証情報を登録」をクリックします。
表示されたダイアログに下記の通り入力し、「登録」をクリックします。
- 接続情報 ID: <任意の文字列> (今回は
azure-eventhubs
としました) - 概要: <任意の文字列> (今回は
Azure Event Hubs send access
としました) - 種別: Azure 認証情報
- Policy name: <Event Hubs にアクセスできるポリシー名> (今回は Event Hubs 標準の
RootManagerSharedAccessKey
を利用しています) (*1) - Key: <上記ポリシーに紐づいた Primary Key もしくは Secondary Key> (*1)
- (*1) Policy name と Key は Event Hubs の管理ページ内「Shared access policies」から入手できます。また権限を限定したポリシーを作成することも可能ですが、そのポリシーには Send 権限を付けるようにしてください。
以上で認証情報の登録は完了です。
SORACOM Funnel を有効にする
Funnel の設定はグループに対して行います
ここでは、グループの設定を変更する操作のみを説明します。グループの仕組みやグループを作成する操作について詳しくは、グループ設定 を参照してください。
SIM グループ画面で
をクリックします。SIM グループ画面を表示する操作について詳しくは、グループの設定を変更する を参照してください。
スイッチをクリックして「ON」にします。
各項目を設定します。
項目 説明 「Microsoft Azure Event Hubs」を選択 https://aeNohy7phuko-eh0.servicebus.windows.net/sensor0/messages
を入力 (*1)認証情報の登録 で登録した「azure-eventhubs (Azure Event Hubs send access)」を選択 「JSON」を選択 - (*1) 転送先 URL の組み立て方法: <namespace> は Event Hubs で最初に作成した時の文字列、また <event hubs name> は Event Hub の文字列です。
をクリックします。
IoT SIM の Funnel の設定が完了しました。
ステップ 3: データを送信する
いよいよデータを送信します。 Funnel の エントリポイント へリクエストを送信します。
- 送信コマンド例
$ nc funnel.soracom.io 23080
{"message":"Hello SORACOM Funnel via TCP!"} [Enter]
200
[Ctrl+C]
- 送信コマンド例
$ nc -u funnel.soracom.io 23080
{"message":"Hello SORACOM Funnel via UDP!"} [Enter]
200
[Ctrl+C]
- 送信コマンド例
~$ 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
ステップ 4: データの送信を確認する
Event Hubs のダッシュボードを確認して、データが送信されたことを確認します。 「メッセージ」を確認することで、送信されていることがわかります。
以上のように、Funnel を使用すれば、デバイスに Azure の SDK をインストールする必要がありません。 また、クラウドサービスのクレデンシャル情報をデバイスに保管する必要もありません。
クラウドサービスのクレデンシャル情報と転送先 URL を SORACOM に設定するだけで、デバイスからは、HTTP、TCP もしくは UDP で直接クラウドサービスにデータを送信できました。 最小限の手間で、迅速にデバイスとクラウドサービスを利用したシステムを使用できます。