Funk を利用すると、さまざまなデバイスから、さまざまな通信プロトコルを利用して、AWS、Azure、Google Cloud といったパブリッククラウドが提供する FaaS (Function as a Service) の関数 (Function) を直接呼び出すことができます。
Funk は、Air for セルラー、Air for LoRaWAN、Air for Sigfox、Arc などを利用したデバイスで利用できます。また、通信プロトコルは、TCP、UDP、HTTP、SMS、USSD、LPWA に対応しています。
SORACOM Funk のユースケース
デバイスの処理をオフロード
デバイスのスペックや消費電力の問題から、複雑な処理計算ができない IoT デバイスの処理を FaaS にオフロードします。さらに、戻り値を受け取れるため、たとえば、デバイスに接続された温度センサーデータを取得し、Funk を利用して温度を関数に送信し、Function で計算した推移予測をもとにして、ファン速度を制御できます。これまでデバイス側で計算が難しかったケースでも、FaaS の関数を利用して計算したり、デバイスが取得できないデータを考慮したアルゴリズムを実装したりできます。
プロジェクトのフェーズに応じた処理ロジックの変更
PoC フェーズと Production フェーズで、アルゴリズム (処理内容) が変わる場合や、処理結果の送信先が異なる場合でも、デバイスの設定を変更することはありません。FaaS の関数を変更してアルゴリズムをバージョンアップしたり、SORACOM ユーザーコンソールで設定を変更したりすることで、デバイスの設定を変更することなくフェーズの変更に対応できます。
SORACOM Funk の仕組み
Funk の仕組みは以下のとおりです。
FaaS の関数を作成します。
Funk は、AWS Lambda、Google Cloud Functions、Azure Functions に対応しています。なお、送信先の関数では、任意のランタイムと任意のコードを利用できます。
デバイスから、Funk にデータを送信します。
Funk のエントリポイントに対して 任意のデバイス、プロトコルを利用してデータを送信します。
Funk から FaaS の関数にデータが転送されます。
転送される際に、HTTP(S) ヘッダーにトークンを付与できます。Function で、そのトークンを検証することで、Funk を利用したデバイスからのアクセスであることを確認できます。詳しくは、SORACOM Funk のトークンを検証する を参照してください。
HTTP/TCP/UDP セッションは切断されることがあります
SORACOM のメンテナンスに伴い、任意のタイミングで HTTP/TCP/UDP セッションが切断される場合があります。メンテナンスに伴うセッション切断は、SORACOM Status Dashboard などで告知されません。ご了承ください。
SORACOM Funk の主な制限
Funk を使って短い間隔 (1 秒に 1 リクエスト等) でデータ送信することを検討されているお客様は、セールスチーム にお問い合わせください。
LWPA (Sigfox、LoRaWAN) に関しては、デバイスに対してレスポンスを返すことはできません。
SMS でデータを送信した場合に、デバイスでレスポンスを受信することはできません。デバイスに SMS を送信する手順については、SORACOM と SMS を送受信する を参照してください。
AWS Lambda の関数を呼び出したときに返される HTTP ステータスコードは、以下のとおり関数の呼び出しそのものの成否を表します。
- 関数が正常終了した場合:
200
- 関数が異常終了した場合:
500
処理の成功/失敗をデバイスで判定するには、デバイスに送信するレスポンスのボディに、処理の成功/失敗を判定するための情報を含めてください。
- 関数が正常終了した場合:
HTTP メソッドは POST のみ対応です。