Soracom

Users

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

制限事項と注意事項

SORACOM Orbit には以下の制限があります。

  • SORACOM Air for セルラーのみ対応します。

  • Unified Endpoint の UDP、TCP、HTTP プロトコルのみ対応します。

  • WebAssembly System Interface (WASI) をサポートしていないためファイルシステムやネットワークアクセスなどシステムコールを伴う処理を実行できません。外部とのインターフェースは Orbit SDK に定義されている関数のみとなります。

  • uplink()downlink() の呼び出しにあたっては以下の制限があります。

    • 関数の実行時間: 1 秒以内
    • メモリ使用量: 16 MiB (16,777,216 バイト)
    • 呼び出し 1 回あたりのログメッセージの最大サイズ: 合計 65,536 バイト
    • uplink()downlink() それぞれが課金対象の呼び出し 1 回とカウントします。
  • Soralet 名の制限は以下のとおりです。

    • 使用可能な文字: 英数字 (a-zA-Z0-9)、アンダースコア (_)、ハイフン (-)
    • 長さ: 100 文字
  • オペレーター ID あたり現在以下の上限があります。

    • Soralet 数: 20 個
    • Soralet あたりの WASM モジュールのバージョン数: 10 個
    • WASM モジュール最大サイズ: 4 MB (4,194,304 bytes)
    • soracom soralets exec コマンドまたは Soralet:testSoralet API (VS Code が使用しています) による テストの実行 : 5 回 / 分
  • 同じオペレーター ID のユーザーが並行して複数の Soralet:* API を実行すると another ongoing activity (SLM1017) というエラーが出力されます。Soralet:* API の実行や SORACOM ユーザーコンソールの Soralet 管理画面の閲覧は、一度に 1 つのユーザーで行ってください。エラーが出力された場合は、時間を空けてやり直してください。

  • WASM モジュールの処理結果に応じて Unified Endpoint の転送先を制御することはできません。

  • お問い合わせ方法は、SORACOM サポート を参照してください。

    なお、以下の内容は SORACOM サポートのサポート対象外です。

    • VS Code や docker を含むソラコムが提供しないソフトウェアの問題や使用方法に関するお問い合わせ
    • 各種プログラミング言語における、お客様要件を満たす実装方法の相談

SDK の制限事項

言語別に記載時点で判明している制限事項は以下のとおりです。

AssemblyScript

  • 標準ライブラリに含まれる関数の一部が利用できません。これはランタイム側のサポートが必要なためです。現時点で判明している関数は以下のとおりです。
    • Date.now()
    • Math.random()
  • サンプルとして提供している JSON Encoder / Decoder は日本語を使用できません。必要に応じて実装してください。

TinyGo

  • SORACOM Orbit の実行環境は TinyGo の JS ランタイム (syscall/js.*) に依存する WASM モジュールを実行できません。たとえば fmt パッケージを使用していると Soralet へアップロードする際に unknown import function: env.syscall/js.valueGet (SLM1011) のようなエラーが発生します。
    • ビルドした WASM モジュールが syscall/js.* に依存しているかは development container にインストールされている wasm2wat コマンドを使って確認できます。例: wasm2wat build/soralet.wasm | grep 'import "env" "syscall/js.'
    • TinyGo のドキュメント Using WebAssembly も参照してください。
  • json パッケージは TinyGo でサポートされていないため利用できません。利用可能なパッケージは Packages supported by TinyGo を参照してください。SDK では JSON を使用するために以下のライブラリを使用しています。