メインコンテンツまでスキップ

制限事項

ワーカープラグインの実行時の上限、レート制限、リクエストと応答の扱い、ディスパッチャが返すエラーを説明します。

実行の上限​

1回の呼び出しごとに、次の上限があります。 上限を超えると、その呼び出しは例外で終了します。

項目上限
CPU時間1回の呼び出しにつき1,000ミリ秒
サブリクエスト1回の呼び出しにつき50回

CPU時間には、外部APIやDurable Objectsの応答を待つ時間は含まれません。

レート制限​

ワーカープラグインへのリクエスト数には、組織ごとに上限があります。

項目内容
上限1組織につき60秒あたり10,000リクエスト
数える単位組織。利用者ごと、ルームごとには数えません
対象/ext/{組織ID}/以下へのすべてのリクエスト(静的ファイル、APIのリクエスト、WebSocketの接続の開始)
超えたときの応答429 {"message":"too many requests"}。Retry-After: 60が付きます
  • 上限を超えたリクエストには、ディスパッチャが429を返します。リクエストはワーカープラグインに届かず、ログにも記録されません。
  • 他の組織のリクエストは、自組織の上限に影響しません。
  • 上限は組織全体で共有されます。1人の利用者が大量にリクエストすると、同じ組織の他の利用者のリクエストも429になります。
  • 上限の判定は概算です。短時間にリクエストが集中すると、上限を超えて届くことがあります。
  • 確立済みのWebSocketで送受信するメッセージは、リクエスト数に含まれません。

配信されるホスト​

ワーカープラグインは、次のホストでのみ配信されます。

  • 組織のサブドメイン(https://{組織ID}.metatell.app/ext/{組織ID}/)
  • 組織に登録されたカスタムドメイン

それ以外のホストでは404(not found)になります。 metatell.appや他の組織のサブドメインからは呼び出せません。 外部サービスのWebhookの受信先やiframeのsrcにも、組織のサブドメインまたはカスタムドメインのURLを指定してください。

リクエストの扱い​

対象扱い
パス先頭の/ext/{組織ID}を除いて転送します
クエリ、メソッド、ボディそのまま転送します
Authorizationヘッダーそのまま転送します。ディスパッチャは検証しません
CookieCloudFront-で始まるCookieを除いて転送します
/__metatellと/__metatell/以下プラットフォームの予約パスです。404になり、ワーカープラグインには届きません
Service Workerのスクリプトの取得403になります。Service Workerは使えません

応答の扱い​

対象扱い
Set-CookieDomain属性を除きます。Cookieは配信したホストだけで有効になります
Clear-Site-Data除きます
Service-Worker-Allowed除きます
X-Content-Type-Optionsnosniffを付けます(WebSocketを除く)
Content-Security-Policyディスパッチャは付けません

nosniffが付くため、応答には正しいContent-Typeを指定してください。 Cookieの名前に制限はありません。 外部のサイトにiframeで埋め込む場合は、CookieにSameSite=None; Secure; Partitionedを指定してください。

ブラウザのストレージ​

ワーカープラグインが配信する画面は、metatell本体と同じオリジンで動作します。 localStorage、sessionStorage、IndexedDB、Cookieはmetatell本体と共有されます。 秘匿情報や個人情報は保存せず、サーバー側で管理してください。

ディスパッチャのエラー​

ディスパッチャ自身が返すエラーは次のとおりです。 これ以外の応答は、ワーカープラグインの応答です。

ステータスボディ状況
400{"message":"organizationId is required"}パスに組織IDがない
403{"message":"service workers are not allowed"}Service Workerのスクリプトを取得しようとした
404{"message":"worker plugin is not provisioned"}組織にワーカープラグインが登録されていない
404{"message":"not found"}予約パスへのリクエスト、または配信されないホストからのリクエスト
429{"message":"too many requests"}レート制限を超えた。Retry-After: 60が付く
502{"message":"worker plugin is unavailable"}ワーカープラグインへの転送に失敗した

ログ​

ログの記録と確認方法は、ログを参照してください。