SORACOM Users

SORACOM LTE-M Button デザインパターン
― Azure と連携させる

SORACOM LTE-M Button と Azure を連携させる方法は2種類あります。

デザインパターン
ボタンと Azure Functions 連携をすばやく構築したい
button_design_patterns / Button - Funk - Azure Functions
大量のボタンデバイスからのデータを確実に処理したい
button_design_patterns / Button - Funnel - Azure Event Hubs


ボタンと Azure Functions 連携をすばやく構築したい
― SORACOM Funk + Azure Functions パターン

ボタンと Azure Functions 連携をすばやく構築したい場合は、SORACOM Funnel から Azure Functions を呼び出すパターンを利用します。

button_design_patterns / Button - Beam - Azure Functions

手順

ここでは Azure Functions で Webhook (HTTP トリガー) を作成し、 SORACOM Funk から呼び出せるように構成する手順を解説します。

1. 関数アプリを作成する

Azure ポータルの “リソースの作成” から “Function App” を探してクリック、その後に表示される画面で [作成] をクリックします。
※ TIPS: 検索窓で function と入力すると素早く探すことができます。

Button - Funk - Azure Functions / functions 1

フォームで以下の通り入力した後、[確認および作成] をクリックし、その先の確認画面で [作成] をクリックします。

※ TIPS: ランダムな文字列は pwgen in JavaScript といったツールを活用すると便利です。

Button - Funk - Azure Functions / functions 2

デプロイが終了したら [リソースに移動] をクリックします。

関数の管理画面から “関数” の右にある [+] をクリックした後、 “ポータル内” を選択し、[続行] をクリックします。

Button - Funk - Azure Functions / functions 3

次の画面では “webhook + API” を選択し、[作成] をクリックします。

Button - Funk - Azure Functions / functions 4

関数の管理画面に表示される “index.js” を以下のように書き換えてから [保存] をクリックします。その後 [関数の URL の取得] をクリックすると表示される URL をメモしておいてください。

module.exports = async function (context, req) {
    context.log(req.headers);
    context.log(req.body);
    context.res = {status: 204};
};

Button - Funk - Azure Functions / functions 5

2. SORACOM Funk の設定を行う

SORACOM ユーザーコンソール の SIM グループの管理画面から “SORACOM Air for Cellular 設定” で [バイナリパーサー設定] を “ON” にした後、以下のように入力してから [保存] をクリックします。
※ SIM グループを作成していない場合は作成した上で、ボタンの SIM に割り当てておいてください。

Button - Funk - AWS Lambda / air 1

同じ SIM グループの管理画面から “SORACOM Funk 設定” を “ON” にした後に表示されるダイアログで以下のように入力します。

ここまで入力してから “認証情報” で [認証情報を新規作成する…] をクリックします。

Button - Funk - Azure Functions / funk 1

表示されたダイアログで以下の通り入力した後、 [登録] をクリックします。

Button - Funk - Azure Functions / cred 1

登録が正常に完了すると SORACOM Funk の設定画面に戻ってきます。
この時 “認証情報” に、先ほど登録をした azure_functions_button-app1_cred1 が表示されていることが確認できたら、[関数の URL] に、先ほどメモをした URL の ?code= 以前の文字列を入力して [保存] をクリックします。

Button - Funk - Azure Functions / funk 2

以上で設定はすべて終了です。

3. 動作確認

確認は Azure Functions で行います。 関数の管理画面から [HttpTrigger1] をクリックし index.js を表示したら [ログ] をクリックすると、ログウィンドウが開き確認できるようになります。

Button - Funk - Azure Functions / testflight 1

4. トラブルシュート

5. この後の開発に向けた情報源

Azure Functions のエンドポイントセキュリティ

Azure Functions のエンドポイント (URL) に付与されている ?code= の値は [Azure Functions ダッシュボード] > [関数] > {関数名} > [管理] > 関数キー で見つけることができます。

Button - Funk - Azure Functions / apikey

この API キーの利用方法は Azure Functions / API キーの承認 をご覧ください。


大量のボタンデバイスからのデータを確実に処理したい
― SORACOM Funnel + Azure Event Hubs パターン

大量のボタンデバイスからのデータを確実に処理したい場合は、SORACOM Funnel から Azure Event Hubs を通じて Azure Functions を利用する方法があります。

button_design_patterns / Button - Funnel - Azure Event Hubs

Azure Functions の Webhook の呼び出し制約が存在するため、大量のデータを常時受け付けるようなアプリケーションになる場合には本パターンを検討します。注意点は、Azure Event Hubs は仮想サーバの課金体系に近く、データの発生頻度や量によっては費用が割高になる可能性もあるため、コスト面からの検討も必要となります。

手順

ここでは Azure Event Hubs から Azure Functions への連携部分について追加で解説します。

1. Azure Event Hubs を作成する

SORACOM Funnel の Event Hubs アダプターを使用してデータを送信する1. Azure 側の設定 を行ってください。

2. Function App (関数)を作成する

Azure ポータルの “リソースの作成” から “Function App” を探してクリック、その後に表示される画面で [作成] をクリックします。
※ TIPS: 検索窓で function と入力すると素早く探すことができます。

Button - Funk - Azure Functions / functions 1

フォームで以下の通り入力した後、[確認および作成] をクリックし、その先の確認画面で [作成] をクリックします。

※ TIPS: ランダムな文字列は pwgen in JavaScript といったツールを活用すると便利です。

Button - Funnel - Azure Event Hubs / functions 2

デプロイが終了したら [リソースに移動] をクリックします。

関数の管理画面から “関数” の右にある [+] をクリックした後、 “ポータル内” を選択し、[続行] をクリックします。

Button - Funk - Azure Functions / functions 3

次の画面では “その他のテンプレート…” を選択し、[テンプレートの完了と表示] をクリックします。

Button - Funnel - Azure Event Hubs / functions 4

イベントハブ接続の [新規] をクリックし、表示されるダイアログで 接続する Event Hub を選びます。その他の項目はデフォルトのままにしておいて [作成] をクリックします。

Button - Funnel - Azure Event Hubs / functions trigger

関数の管理画面に表示される “index.js” を以下のように書き換えてから [保存] をクリックします。

module.exports = async function (context, eventHubMessages) {
    eventHubMessages.forEach((message, index) => {
        context.log(message);
    });
};

Button - Funnel - Azure Event Hubs / functions 5

3. SORACOM Funnel の設定を行う

SORACOM ユーザーコンソール の SIM グループの管理画面から “SORACOM Air for Cellular 設定” で [バイナリパーサー設定] を “ON” にした後、以下のように入力してから [保存] をクリックします。
※ SIM グループを作成していない場合は作成した上で、ボタンの SIM に割り当てておいてください。

Button - Funk - AWS Lambda / air 1

これ以降は SORACOM Funnel の Event Hubs アダプターを使用してデータを送信する2. SORACOM 側の設定 を行ってください。

4. 確認

確認は Azure Functions で行います。 関数の管理画面から [EventHubTrigger1] をクリックし index.js を表示したら [ログ] をクリックすると、ログウィンドウが開き確認できるようになります。

Button - Funnel - Azure Event Hubs / testflight 1

5. トラブルシュート

6. この後の開発に向けた情報源

pagetop