Funk は、デバイスから SORACOM (具体的には、Unified Endpoint や Funk のエントリポイント) に送信されたリクエストを、エントリポイントの設定 に従って、AWS、Azure、Google Cloud といったパブリッククラウドが提供する FaaS (Function as a Service) の関数 (Function) に転送するサービスです。
デバイスの処理をオフロード
デバイスのスペックや消費電力の問題から、複雑な処理ができないデバイスでも、それらの処理を関数 (Function) にオフロードできます。Funk では関数 (Function) のレスポンスを受け取れるため、たとえば、デバイスに接続された温度センサーデータを取得し、Funk を利用して温度を関数 (Function) に送信し、関数 (Function) で計算した推移予測をもとにして、ファン速度を制御できます。これまでデバイス側で計算が難しかったケースでも、関数 (Function) を利用して計算したり、デバイスが取得できないデータを考慮したアルゴリズムを実装したりできます。
Funk の主な特徴
特徴 | 説明 | Beam、Funk、Funnel の主な違い |
---|---|---|
想定される転送先 | AWS Lambda、Azure Functions、Google Cloud Run functions といったパブリッククラウドが提供する FaaS (Function as a Service) の関数 (Function) に転送できます。 また、1 つのグループ設定には転送先を 1 つだけ設定できます。 |
|
Funk を利用できるデバイス | 以下のサービスを利用したデバイスから利用できます。
| なし |
通信経路の暗号化 |
Funk を利用しない方法や Funk で TLS 暗号化処理を行わない場合はデバイスで TLS 暗号化処理を行う必要がありますデバイスで TLS 暗号化処理を行うには、認証情報 (クライアント証明書など) も、あらかじめデバイスに保管する必要があります。 | なし |
プロトコル変換 | HTTPS を利用できないデバイスからの通信を、HTTPS に変換して関数 (Function) に送信できます。たとえば、TCP や UDP から、HTTPS に変換できます。 |
|
接続先の切り替え | PoC フェーズと Production フェーズで、アルゴリズム (処理内容) が変わる場合や、処理結果の送信先が異なる場合でも、デバイスの設定を変更する必要はありません。 デバイスからは、Funk のエントリポイント または Unified Endpoint にデータを送信します。関数 (Function) や転送時のパラメータは、デバイスが手元になくても SORACOM ユーザーコンソールや SORACOM CLI / SORACOM API でいつでも変更できます。 | なし |
データ通信量と消費電力の削減 | デバイスから Funk までの暗号化処理が省略でき、さらにデータ通信の手続きが簡素なプロトコルを利用できるため、データ通信量も消費電力も削減できます。また、バイナリパーサー を利用すると、さらにデータ通信量と消費電力を削減できます。 | なし |
同期 / 非同期 | 同期。関数 (Function) からのレスポンスを受け取れます。
|
|
対応プロトコル (デバイス - Funk 間) |
詳しくは、エントリポイント一覧 を参照してください。 |
|
送信間隔 | Funk を使って短い間隔 (1 秒に 1 リクエスト等) でデータ送信することを検討されているお客様は、セールスチーム にお問い合わせください。 | なし |
Funk からのアクセスであることを確認するには | 転送される際に、HTTP(S) ヘッダーにトークンを付与できます。関数 (Function) で、そのトークンを検証することで、Funk からのアクセスであることを確認できます。詳しくは、SORACOM Funk のトークンを検証する を参照してください。 |
|
HTTP/TCP/UDP セッションは切断されることがあります
SORACOM のメンテナンスに伴い、任意のタイミングで HTTP/TCP/UDP セッションが切断される場合があります。
なお、メンテナンスに伴うセッション切断は、SORACOM Status Dashboard などで告知されません。ご了承ください。
そのほかのサービスを併用する
Funk は、Beam と同様に SORACOM のほかのサービスと組み合わせて利用できます。詳しくは、そのほかのサービスを併用する を参照してください。