クラウドアダプタを利用してAzure Event Hubsへデータを送信する
本ページでは、クラウドアダプタを利用してAzure Event Hubsへデータを送信し、Azure Storageへ保存する一連の流れを説明します。
Azureの設定
Event Hubsの作成
ますは、Microsoft Azure Portal からEvent Hubsを開きEvent Hubsを設定します。
「Event Hubs 名前空間 の作成」からEvent Hubsを作成します。
以下のように入力し、Event Hubsを設定します。
ここで設定した名前がデータの送信先になります。
項目 | 入力値 |
---|---|
名前 | CloudAdapter |
価格レベル | Basic を選択 |
リソースグループ | iij (新規作成) |
場所 | 東日本 |
「サブスクリプション」は適切な値を選択します。
Event Hubsの作成には数十秒掛かります。
「更新」を選択し、作成が完了するまで待ちます。
作成が完了したら「CloudAdapter」を選択します。
次にデータの送信先となる「イベント ハブ」を作成します。
「Event Hubs>イベント ハブ」と選択します。
ここでは「device」として「イベント ハブ」を作成します。
以上でEvent Hubsの作成は完了です。
ストレージアカウントの設定
続いて、Azure StorageとAzure Event Hubsを連携させ、Event Hubsに送信したデータをファイルとして保存します。
ますは、「ストレージアカウント の作成」からストレージアカウントを作成します。
ここでは、下記のように入力しストレージアカウントを作成します。
赤枠の箇所を入力・選択し「確認および作成」を選択して確認画面へ進みます。
入力に誤りがないかを確認し「作成」を選択してストレージアカウントを作成します。
項目 | 入力値 |
---|---|
リソースグループ | iij |
ストレージアカウント名 | cloudadapterstorage |
場所 | (アジア太平洋) 東日本 |
ストレージアカウントの作成には数十秒かかります。
「最新の状態に更新」を選択し、作成が完了するまで待ちます。
「デプロイが完了しました」と表示されれば作成は完了です。
「リソースに移動」を選択し、コンテナーを作成します。
ストレージアカウントのリソースを開き、検索ウィンドウに「コンテナー」と入力します。
「コンテナー>+ コンテナー」を選択し、コンテナーを新規に登録します。
コンテナーの名前を「cloudadapter」として作成します。
以上でストレージアカウントの設定は完了です。
データの処理設定
次にEvent Hubsへ戻り、作成したストレージアカウントへデータを保存するようにデータの処理を設定します。
「Event Hubs>CloudAdapter>Event Hubs>device>データの処理>エクスプローラで開く」から設定を追加します。
クエリ設定の画面に進みます。
下記のようにクエリを編集し「クエリの展開」を選択してジョブの設定をします。
「storage」という出力先はこの時点ではありませんが、後ほど作成します。
SELECT * INTO [storage] FROM [device]
下記のように入力し、データ保存用のジョブを作成します。
「サブスクリプション」は適切に選択します。
項目 | 入力値 |
---|---|
ジョブ名 | DeviceDataJob |
リソースグループ | iij |
場所 | 東日本 |
作成が完了するとジョブのリソース画面に進みます。
次に「出力>追加>Blob Storage/Data Lake Storage Gen2」を選択します。
下記のように入力し、作成したストレージアカウントに受信したデータを保存するよう設定します。
「出力エイリアス」を、先ほど出力先に指定した「storage」と入力します。
項目 | 入力値 |
---|---|
出力エイリアス | storage |
ストレージアカウント | cloudapterstorage |
コンテナー | cloudadapter |
続いて、作成したジョブを開始します。
「概要>開始」と選択してジョブの開始設定に進みます。
「ジョブ出力の開始時刻」を「現在」と選択してジョブを開始します。
ジョブの開始には数分掛かります。
以下のような通知が行われるまで待ちます。
以上でAzure上への設定は完了です。
認証情報の確認
最後に、Event Hubsへデータを送信するための認証情報を確認します。
「CloudAdapter>共有アクセスポリシー>RootManageSharedAccessKey」からEvent Hubsの共有アクセスポリシーを表示します。
「主キー」か「セカンダリ キー」のいずれかを控えておきます。
後ほどコントロールパネル上で設定する際に使用します。
IoTサービスコントロールパネルの設定
次に、コントロールパネルからクラウドアダプタの設定をします。
画面の詳細については クラウドアダプタ画面 をご覧ください。
認証情報の設定
まずは認証情報を設定します。
「クラウドアダプタ>認証情報一覧>認証情報作成」から認証情報を作成します。
ここでは先ほど確認した認証情報を使用します。
項目 | 入力値 |
---|---|
認証種別 | Azure Event Hubs を選択 |
認証情報名 | azure event hubs |
Policy Name | RootManageSharedAccessKey |
Shared Access Key | (控えた文字列) |
転送先の設定
次に、転送先設定を作成します。
「転送先一覧>転送先作成」からHTTPの転送先設定を作成します。
下記のように入力し、転送先設定を作成します。
「転送先URL」には「Event Hubsの作成」時に設定した「名前」と、「イベント ハブ」を入力します。
また「認証情報」は、先ほど作成した「azure event hubs」を選択します。
「デバイス選択」は使用するデバイスを適切に選択します。
項目 | 入力値 |
---|---|
転送先サービス | Azure Event Hubs を選択 |
転送先名 | Azure Event Hubs |
転送先URL | https://CloudAdapter.servicebus.windows.net/device/messages |
認証情報 | 【Azure Event Hubs】azure event hubs を選択 |
デバイス選択 | 使用するデバイスを選択 |
以上でコントロールパネル上の設定は完了です。
デバイスからのデータ送信と受信確認
それでは実際にデバイスからデータを送信します。
ここでは、ラズベリーパイからコマンドを使用してデータを送信します。
下記コマンドを実行し、データを送信します。
pi@raspberrypi:~ $ curl -i -X POST -H 'Content-Type: application/json' http://gw.iot.iij.jp/v1 -d '{}' HTTP/1.1 200 OK Server: nginx Date: Thu, 12 Dec 2019 04:39:23 GMT Transfer-Encoding: chunked Connection: keep-alive
コマンドを実行するとストレージアカウントの「Storage Explore」からファイルが保存されているのが確認できます。
以上で説明は終了です。
この他にも「Service Bus topic/queue」への送信や「Azure Function」の実行 等、様々なAzureのサービスと連携することができます。
是非お試し下さい。