投稿日

新機能: SORACOM FunnelにPartner Hosted Adapterが追加

IoTデバイスのデータ収集に使うクラウドサービスとの連携をかなり簡単なものにするSORACOM Funnelに、新しいアダプタが増えました

その名も SORACOM Funnel “Partner Hosted Adapter” です

「すでにクラウドサービスを運営しているのだが、SORACOM Funnelの送信先に自社のクラウドサービスを組み入れたい」という声にお応えしました!

SORACOM Funnel全体像

SORACOM Funnel “Partner Hosted Adapter” とは

SORACOM Funnel は2016年1月のリリース以降、データ送信先としてAmazon Kinesis Streamsや、Azure Event Hubsといった計4つのクラウドサービスをサポートしてきました

今日ご紹介する “Partner Hosted Adapter” は、SORACOM Funnelの送信先として上記クラウドサービスだけでなく、他のクラウドサービスに向けて送信できる「アダプタ」と呼ばれる接続機能を提供します

仕組みの概要

SORACOMからは、連結部分となるAWS Lambdaを呼び出すようにしています

このAWS Lambdaはパートナーで運用&開発することができ、パートナーのクラウドサービスのクライアントとして稼働させることが可能です
また、このAWS Lambdaは、利用する側からは見えません。そのため、利用者に対しては煩わしい操作を隠蔽化できます

連携するパートナー・クラウドサービス※

SORACOM Funnelの設定画面の “転送先サービス” で選べるようになるクラウドサービスです※

※一部は今後連携する予定のため、5/10時点で表示されないものもあります

SORACOM Funnel Partner Hosted Adapter 利用ガイド

Partner Hosted Adapterを利用するといった場合、二つのシーンがあります

  • Partner Hosted Adapterの利用者(=SORACOM Funnelの利用者)
  • Partner Hosted Adapterの開発者(=クラウドサービス運営側)

それぞれ解説していきます

Partner Hosted Adapterの “利用者”

パートナーが提供するクラウドサービスを利用する方向けです

Partner Hosted Adapterの利用者は、2つ作業をする必要があります

  1. クラウドサービスのセットアップ
  2. SORACOM Funnelの設定

それぞれ解説します

クラウドサービスのセットアップ

まず、各パートナーが提供しているクラウドサービスを利用できるように、セットアップします
セットアップ方法は各パートナーが提供されているクラウドサービスの設定方法をご覧ください

2017/5/10時点で連携するクラウドサービス※の導入までの流れ

※連携予定含む
(セットアップはオンラインで完結するものから数日かかるものまであります。詳しくはクラウドサービス提供者にお問合せください)

SORACOM Funnelの設定

クラウドサービスのセットアップが済みましたら、SORACOM Funnelの設定を行います
とはいえ、いままでのSORACOM Funnelの設定方法と変わるところはありません

改めて解説しますと、SIMもしくはLoRaグループの設定画面の “SORACOM Funnel設定” で下記の通り設定します

  1. 転送先サービス : プルダウンから選択
  2. 転送先URL : 送信先のクラウドサービスから得てください
  3. 認証情報 : 認証情報ストアで別途設定したものを指定)
  4. 送信データ形式 : JSONが無難

以下はMotionBoard Cloudへの送信設定の例です

SORACOM Funnel HPA 設定例

以上で転送が開始されます!

Partner Hosted Adapterの “開発者”

「すでにクラウドサービスを運営しているのだが、SORACOM Funnelの送信先に自社のクラウドサービスを組み入れたい」方向けです

Partner Hosted Adapterの開発を行うためには、大きく下記のような流れとなります

  1. 【貴社】SORACOM パートナースペース(SORACOMのパートナープログラム)にて**SPS認定済みパートナー※**となる
  2. 【貴社 / ソラコム】貴社クラウドサービスとの連携手法を調整
  3. 【貴社】AWS Lambdaの開発
  4. 【貴社 / ソラコム】提供、運用開始

まずは「SORACOM Funnel Partner Hosted Adapterの開発希望」としてお問い合わせください。当社のパートナー担当が応対いたします!

※SPS申請済パートナーではなく、認定済みパートナーである必要があります

Partner Hosted Adapter開発の技術情報

ここではPartner Hosted Adapterの技術情報を掲載しています
「AWS Lambdaの開発ってどのくらいの分量なんだろう?」「そもそも、なにを行えばいいんだろう?」といった目安にご参照ください

貴社クラウドサービスとの連携手法 調整内容

連携手法における調整では、主に下記について双方確認します

  • 貴社クラウドサービス接続に伴う認証に必要なパラメータ(SORACOM側で保管する必要のある認証情報)
  • 呼び出されるAWS Lambdaの設定(AWS IAMのrole assume等も含む)
    • AWS Lambda呼び出し時に渡されるJSON構造

これらの情報を基にソラコムでは貴社のAWS Lambdaを呼び出すように設定します

AWS Lambdaの開発 / 提供開始

調整が済めば、AWS Lambdaの開発に入ることになります

開発用I/Fとして、RESTのendpoint URLを認証キーと共に貴社にお渡しします
このendpointに対してデータを送信すると、貴社のAWS Lambdaが呼び出される仕組みをご提供しますので、それを使って開発ください

双方での検証が整い次第、SORACOM上で利用できるようにします
また、貴社AWS Lambdaの運用は貴社にてお願いすることになります

AWS Lambda 開発のポイント

SORACOMから貴社AWS Lambdaをinvokeする際の仕様で、特に注意するポイントは下記のとおりです

  • InvocationTypeを RequestResponse (同期) としてinvokeします
    • 貴社開発のAWS Lambdaの完了までにかかる時間が、ご利用者向けのUXに影響します
  • 引数 event の構造は、認証情報がストアされている Credentials と、データペイロードである Records をそれぞれトップとしたオブジェクトです
    • Records は配列であり、複数のデータが格納されている可能性があります

上記のことから Records で渡される配列の処理を順次処理をした場合、AWS Lambdaの完了時間が延びることになるため、実運用においてはRecords内の処理の並列化を強く推奨します

event オブジェクトの例

パートナー側のAWS Lambda実行時の event には、下記のようなオブジェクトが渡されます
実際のデータは Records[].payloads に格納されています

{
    "Records": [
        {
            "operatorId": "OP0000000000",
            "timestamp": 1452791551499,
            "destination":
            {
                "resourceUrl": "https://example.com/path/to/resource",
                "provider": "custom",
                "service": "service-name"
            },
            "credentialsId": "my-credentials",
            "payloads":
            {
                "message": "Hello Service Name!"
            },
            "sourceProtocol": "HTTP",
            "imsi": "440XXXXXXXXXXXX"
        }
    ],
    "Credentials":
    {
        "OP0000000000":
        {
            "my-credentials":
            {
                // service dependent format
            }
        }
    }
}

開発にまつわるFAQ

  • Q: AWS Lambdaじゃないとダメですか?Azure functionsやGoogle Cloud Functionsは嫌いですか?
    • A: 仕組みとしてはSORACOM側もAWS Lambdaを使っており、またパートナー側のAWS Lambda呼び出しの際の権限設定にIAMを使用してる関係上、AWSプラットフォーム上である必要があります。そのため、AWS Lambdaで開発ください。Azure FunctionsやGoogle Cloud Functionsも好きですよ。

あとがき

ソラコムはパートナー・エコシステムをとても大切に想っています
今回のPartner Hosted Adapterは、SORACOMのご利用者と、パートナーのクラウドサービスとの橋渡しとしてリリースしました

これからも拡充をして、パートナーのクラウドサービスとSORACOMのご利用者との接点を増やし、お客様の課題にフィットしたクラウドサービスがご紹介できたらと思っています

すでにクラウドサービスをお持ちの方は、是非とも一度ソラコムへご相談ください!

ソラコム 松下