SORACOM Users

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

SORACOM LTE-M Button と Google Cloud Platform(以下、GCP) を連携させる方法は2種類あります。

デザインパターン
ボタンと Google Cloud Functions 連携をすばやく構築したい
button_design_patterns / Button - Funk - Google Cloud Functions
関数の保護を手軽に実現したい、もしくは、大量のボタンデバイスからのデータを確実に処理したい
button_design_patterns / Button - Funnel - Google Cloud Pub/Sub + Google Cloud Functions

Cloud Function を安全に運用するためにはエンドポイント URL の保護が必要です。一方、 Google Cloud Functions(以下、Cloud Functions) 単体でエンドポイント保護を行うためには多くの作業を行う※必要があります。
ここでは、 エンドポイント URL の難読化による保護と SORACOM Funk といった組み合わせと、 Google Cloud Pub/Sub (以下、Cloud Pub/Sub) による認証(保護)と SORACOM Funnel の組み合わせを紹介します。Cloud Pub/Sub は大量のデータを処理する基盤としても利用できるため、保護だけでなく大量のデバイスからの接続を受け付ける場合にも有用です。

※多くの作業: OAuth 画面を構成した後、サービスアカウントを作成、ロールの設定を行い、同アカウントの OAuth トークンをコマンドラインやブラウザを利用して生成・入手。また、トークンの有効期限が切れたら再発行する運用も必要となる。


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

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

button_design_patterns / Button - Funk - Google Cloud Functions

手順

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

1. 関数を作成する

GCP ダッシュボードのナビゲーションメニューから “Cloud Functions” を探してクリック、その後に [関数の作成] をクリックします。
※ “API が有効になっていません” と表示される場合は [API を有効にする] をクリックしてから [関数の作成] に進んでください。

Button - Funk - Google Cloud Functions / functions 1

表示されるダイアログに以下のように入力した後、[作成] をクリックします。

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

/**
 * Responds to any HTTP request.
 *
 * @param {!express:Request} req HTTP request context.
 * @param {!express:Response} res HTTP response context.
 */
exports.helloWorld = (req, res) => {
  console.log(req.headers);
  console.log(req.body);
  res.status(204).end();
};

Button - Funk - Google Cloud Functions / functions 2

作成した関数をクリックし [トリガー] タブをクリックして表示された URL をメモしておきます。

Button - Funk - Google Cloud Functions / functions 3

2. SORACOM Funk の設定を行う

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

Button - Funk - AWS Lambda / air 1

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

Button - Funk - Google Cloud Functions / funk 1

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

3. 動作確認

確認は Cloud Functions の管理画面で行います。関数の管理画面から [ログを表示] をクリックします。
※ “新しいログを読み込む” をクリックして適宜最新の情報に更新してください

Button - Funk - Google Cloud Functions / testflight 1

4. トラブルシュート

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


SORACOM Funnel + Google Cloud Pub/Sub パターン

関数の保護を手軽に実現したい、もしくは、大量のデータストリームの処理を必要とするアプリケーションを構築したい場合は、SORACOM Funnel から Google Cloud Pub/Sub を通じて Google Cloud Functions を利用する方法があります。

button_design_patterns / Button - Funnel - Google Cloud Pub/Sub, Google Cloud Functions

手順

ここでは Google Cloud Pub/Sub から Google Cloud Functions への連携部分について追加で解説します。

1. Google Cloud Pub/Sub を作成する

SORACOM Funnel の Cloud Pub/Sub アダプターを使用してGoogle Cloud Platformにデータを送信する1. Pub/Sub を設定する2. Funnel で使用するアカウントを作成する を行ってください。

内容としては以下の通りです。

  1. Cloud Pub/Sub の API を有効にする
  2. Cloud Pub/Sub に Publish できるサービスアカウントを “API/とサービス > 認証情報” で作成する
    • 本ガイドでは soracom-funnel-pubsub-user1 というサービスアカウント名を作成し、JSON 形式の認証情報を取得しておきます。
  3. Cloud Pub/Sub を作成する
    • 本ガイドでは button-topic1 というトピック名とします。

2. 関数を作成する

GCP ダッシュボードのナビゲーションメニューから “Cloud Functions” を探してクリック、その後に [関数の作成] をクリックします。
※ “API が有効になっていません” と表示される場合は [API を有効にする] をクリックしてから [関数の作成] に進んでください。

表示されるダイアログに以下のように入力した後、[作成] をクリックします。

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

/**
 * Triggered from a message on a Cloud Pub/Sub topic.
 *
 * @param {!Object} event Event payload.
 * @param {!Object} context Metadata for the event.
 */
exports.helloPubSub = (event, context) => {
    console.log(event.attributes);
    console.log(Buffer.from(event.data, 'base64').toString());
};

3. SORACOM Funnel の設定を行う

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

Button - Funk - AWS Lambda / air 1

これ以降は SORACOM Funnel の Cloud Pub/Sub アダプターを使用してGoogle Cloud Platformにデータを送信する3. Funnel を設定する を行ってください。
※ 4. Funnel を使用して Pub/Sub にデータを送信する はスキップしてください

SORACOM Funnel 設定の際には以下に注意してください

4. 確認

確認は Google Cloud Functions で行います。関数の管理画面から [ログを表示] をクリックします。
※ “新しいログを読み込む” をクリックして適宜最新の情報に更新してください

5. トラブルシュート

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

pagetop