制限と割り当て
関数を設計する前に必要な数値と、現在のプラットフォームの既知のギャップ。
1. 機能
| 限界 | 値 | それはどこから来たのか |
|---|---|---|
| 名前 | a-z、 A-Z、 0-9、 _、 - のうち 1 ~ 64 文字 | デプロイ時に強制される |
| ソースサイズ | 20MB | デプロイ時に強制される |
| ランタイム | deno (TypeScript または JavaScript) および wasm | |
| 記憶 | 16 ~ 1024 MB、デフォルトは 128 | permissions.memory_mb |
| 期間 | 1 ~ 300 秒、デフォルトは 30 | permissions.timeout_secs |
| 送信ネットワーク | 既定では開放 | permissions.allow_net: 空でない場合、列挙したホストにのみ到達できます |
範囲外の値は 400で拒否されます。決して静かに締め付けられることはありません。 timeout_secs: 0の実際の答え: permissions.timeout_secs doit être compris entre 1 et 300 secondes。
再デプロイせずに権限を変更します。
送信するフィールドのみが変更されます。
2. 電話
| 限界 | 値 | ソース |
|---|---|---|
| リクエストボディ | について 256 KiB | 測定値: 503 で 260 KB が成功、300 KB が失敗 |
| レスポンスボディ | について 256 KiB | 測定値: 250 KB を通過。 300 KB は 50 秒以内に何も返されませんでした |
| 通話間の状態 | なし | すべての呼び出しは、新しく分離された V8 ワーカーで実行されます |
| 地域 | 1 つ | 地域選択なし |
プラットフォームを通過するメッセージは 1 MiB に制限されており、リクエスト本文の各バイトは 4 回カウントされるため、約 256 KiB を超える本文は 503 SERVICE_UNAVAILABLEで拒否されます。 SDK はこれを FunctionsRelayErrorとして報告しますが、これは誤解を招きます。再試行しても解決しません。私たちのテストでは、同じサイズを超える応答はまったく返されませんでした。 リクエストとレスポンスを 250 KB 未満に保ち、より大きなデータをストレージ経由で送信します。
3. レートとプランの割り当て
クライアント IP ごとの呼び出し率:
| プロフィール | 値 |
|---|---|
| バースト | 15回の通話 |
| 持続的 | 1秒あたり1回の通話 |
実際に 30 回のクイック呼び出しを実行すると、15 回で 200 が返され、15 回で 429が返されました。 429 は x-ratelimit-* および retry-after ヘッダーを運び、SDK は遅延を error.retryAfterとして公開します。
プラットフォームのプラン表からの、プランごとの月間クォータ:
| 計画 | 呼び出し | 合計期間 |
|---|---|---|
| 無料 | 100,000 | 6,000,000ミリ秒(100分) |
| プロ | 1,000,000 | 60,000,000ミリ秒(1,000分) |
| チーム | 10,000,000 | 600,000,000ミリ秒(10,000分) |
| エンタープライズ | 100,000,000 | 6,000,000,000ミリ秒(100,000分) |
無料プランでは制限が厳しく、それを超える通話は 403 QUOTA_EXCEEDEDで拒否されます。有料プランでは、表は毎月の許容量であり、それを超えて何が起こるかは、サブスクリプションの超過設定によって異なります。呼び出しは、ステータスに関係なく、関数が応答するとカウントされます。関数が応答する前に失敗した呼び出しはカウントされません。ジョブと cron の起動も呼び出しとしてカウントされます。
4. ジョブ、cron、アラート
| 限界 | 値 |
|---|---|
| ジョブの試行 | デフォルトでは 3、maxAttempts でジョブごとに設定 |
| 試行間の遅延 | 5秒、固定 |
| サービス インスタンスごとの並列ジョブ | デフォルトでは8 |
| ランニングリース | 450 秒後、ジョブは再利用されます |
| 完了したジョブは保持される | デフォルトでは 14 日間 |
listJobs ページ | 1 ~ 500、デフォルトは 50 |
| Cron スケジュール | 5 または 6 フィールド、UTC、エイリアスなし |
| アラートチェック | 60秒ごと |
これらのジョブ値はサービス設定です: JOB_MAX_RETRIES、 JOB_RETRY_DELAY_SECS、 WORKER_CONCURRENCY、 JOB_RUNNING_LEASE_SECS 、および JOB_RETENTION_DAYS。管理された展開の価値については、プラットフォーム オペレーターに問い合わせてください。
5. 既知のギャップ
- 関数自体のログにはアクセスできません。 関数が
console.logまたはconsole.errorで書き込んだものはランタイムのログに残り、プラットフォーム オペレーターのみが読み取ることができます。aura functions logsは、その出力ではなく、リクエスト (メソッド、パス、ステータス、期間、リクエスト ID) を表示します。必要な情報を応答で返すか、独自のログ サービスに送信します。 - 関数内にリクエスト ID がありません。 呼び出しの識別子は関数に転送されません。
- バージョンもロールバックもありません。 デプロイするとコードが置き換えられます。以前のバージョンをリポジトリに保存します。
- ストリーミングはありません。 応答全体は、SDK に到達する前にバッファリングされます。
- 空の
allow_netは何も制限しません。 ネットワークは既定で開いています。制限するにはホストを列挙してください。 - ローカル エミュレーションは部分的です。
aura functions serveは Deno を使用してファイルを実行しますが、プラットフォームのルート、ヘッダー、または制限は再現されません。