SORACOM Developers

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

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

デザインパターン
button_design_patterns / Button - Beam - Azure Functions
素早いボタンアプリケーションを構築したい方向け
button_design_patterns / Button - Funnel - Azure Event Hubs, Azure Functions
大量のデータストリームの処理を必要とするアプリケーション向け

SORACOM Beam + Azure Functions パターン

素早いボタンアプリケーションを構築したい場合は、SORACOM Beam から Azure Functions の Webhook を呼び出す方法があります。

button_design_patterns / Button - Beam - Azure Functions

手順

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

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

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

Beam - Azure Functions / functions 1

Function App 作成画面で以下の通り入力した後、[作成] をクリックします。

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

Beam - Azure Functions / functions 2

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

Beam - Azure Functions / functions 3

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

Beam - 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};
};

Beam - Azure Functions / functions 5

2. SORACOM Beam の設定を行う

SORACOM IoT SIM グループの管理画面から “SORACOM Air for Cellular 設定” で [バイナリパーサー設定] を “ON” にした後、以下のように入力してから [保存] をクリックします。

Beam - Amazon API Gateway, AWS Lambda / air 1

同じ SIM グループの管理画面から “SORACOM Beam 設定” で [UDP → HTTP/HTTPS エントリポイント] をクリックした後に表示されるダイアログで以下のように入力してから [保存] をクリックします。

Beam - Azure Functions / beam 1

最後に、"SIM 管理" から、LTE-M Buttom を、上記で設定した SIM グループに所属させて完了となります。

3. 確認

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

Beam - Azure Functions / testflight 1

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


トラブルシュート

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

Azure Functions のエンドポイントを呼ぶためには、API キーを独自 HTTP ヘッダもしくは QueryString に含める必要があり、これは必須のパラメータになります。
【参考】Azure Functions / API キーの承認

Azure Functions の関数管理画面で入手できる URL は code=... という QueryString パラメータがついた URL になりますが、SORACOM Beam のカスタムヘッダ機能を利用して “パス” から ?code=... を取り払うことも可能です。

SORACOM Beam では [ヘッダ操作] > [カスタムヘッダ] でヘッダ名 x-functions-key 値 <API キー> としてヘッダを追加し、パスからは ?code=... を削除します。

この API キー(code=... の値)の入手先は [Azure Functions ダッシュボード] > [関数] > {関数名} > [管理] > 関数キー で見つけることができます。 Beam - Azure Functions / apikey

SORACOM Funnel + Azure Event Hubs パターン

大量のデータストリームの処理を必要とするアプリケーションを構築したい場合は、SORACOM Funnel から Azure Event Hubs を通じて Azure Functions を利用する方法があります。

button_design_patterns / Button - Funnel - Azure Event Hubs, Azure Functions

手順

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

1. Azure Event Hubs を作成する

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

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

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

Beam - Azure Functions / functions 1

Function App 作成画面で以下の通り入力した後、[作成] をクリックします。

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

Beam - Azure Functions / functions 2

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

Beam - Azure Functions / functions 3

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

Funnel - Azure Event Hubs, Azure Functions / functions 4

表示される一覧から “Azure Event Hub trigger” を選び、表示されるダイアログで拡張機能の [インストール] をクリックします。
※ 拡張機能のインストールが進んでいるうちは本画面のままにしておきましょう

インストールが完了すると、Event Hubs と接続するための情報を入力するダイアログが表示されます。
イベントハブ接続の [新規] をクリックし、表示されるダイアログで 接続する Event Hub を選びます。その他の項目はデフォルトのままにしておいて [作成] をクリックします。

Funnel - Azure Event Hubs, Azure Functions / functions trigger

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

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

Funnel - Azure Event Hubs, Azure Functions / functions 5

3. SORACOM Funnel の設定を行う

SORACOM IoT SIM グループの管理画面から “SORACOM Air for Cellular 設定” で [バイナリパーサー設定] を “ON” にした後、以下のように入力してから [保存] をクリックします。

Beam - Amazon API Gateway, AWS Lambda / air 1

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

4. 確認

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

Funnel - Azure Event Hubs, Azure Functions / testflight 1

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


トラブルシュート

pagetop