Soracom

Users

ドキュメント
Home ドキュメント SORACOM Funk リファレンス

レスポンス

Funk では、パブリッククラウド (FaaS) の関数 (Function) のレスポンスが、そのままデバイスに返却されます。

関数 (Function) からエラーが返却された場合は、内容に応じて、400 番台または 500 番台のステータスコードと、関数 (Function) のレスポンスが、そのままデバイスに返却されます。また、エラーの内容によっては、SORACOM ユーザーコンソールのエラーログにエラーが出力されることがあります。

Funk では、エラーコードは追加されません。

SORACOM Funk 形式

Funk のエントリポイントを利用している場合、または Unified Endpoint のレスポンスのフォーマットに SORACOMFunk を指定している場合は、以下のようなレスポンスが返却されます。これを、SORACOM Funk 形式と呼びます。

${HTTP ステータスコード (UTF-8)} + ${半角スペース (UTF-8)} + ${関数 (Function) のレスポンス}

なお、関数 (Function) のレスポンスがテキストデータの場合は、SORACOM Funk 形式のレスポンスもテキストデータでデバイスに返却されます。一方で、関数 (Function) のレスポンスがバイナリデータの場合は、SORACOM Funk 形式のレスポンスもバイナリデータでデバイスに返却されます。

例:

関数 (Function) のレスポンス
(ステータスコード)
関数 (Function) のレスポンス
(データ)
SORACOM Funk 形式のレスポンス
500テキストデータ NG
(UTF-8 表記)
テキストデータ 500 NG
(UTF-8 表記)
200バイナリデータ abcd
(Hex 表記)
バイナリデータ 32303020abcd
(Hex 表記。32303020 は、32230020 が半角スペースを表します。Base64 形式でエンコードされません)

ステータスコードを省略する

グループ設定で [ステータスコードを省略] (skipStatusCode) をオンにすると、上記の SORACOM Funk 形式のうち先頭の HTTP ステータスコードと半角スペースが省略されます。成功・エラーに関わらず、デバイスには関数 (Function) のレスポンス本体のみが返却されます。なお、この設定は UDP エントリポイントと TCP エントリポイントのレスポンスにのみ適用されます。詳しくは、レスポンスのステータスコードを省略する を参照してください。

Unified Endpoint の Unified 形式

Unified Endpoint を利用している場合に、レスポンスの形式を「Unified」にしているときは、以下のようにすべてのレスポンスがまとめられて、デバイスに返却されます。Funk のレスポンスの body は、常に Base64 形式でエンコードされます。

{
  "statusCode": 207,
  "body": {
    "result": "ng",
    "detail": {
      "beam": { "statusCode": 200, "body": "...." },
      "funnel": { "statusCode": 204, "body": "...." },
      "funk": { "statusCode": 400, "body": "....", "encoding": "base64" },
      "harvest": { "statusCode": 400, "body": "...." }
    }
  }
}

Unified 形式について詳しくは、レスポンスの形式を設定する を参照してください。