限制和配额
设计功能之前需要的数字,以及当前平台的已知差距。
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 | 测量:260 KB 通过,300 KB 失败,并出现 503 |
| 响应体 | 关于 256 KiB | 测量:已通过 250 KB; 300 KB 在 50 秒内没有返回任何内容 |
| 调用之间的状态 | 无 | 每个调用都在一个新的隔离 V8 Worker 中运行 |
| 地区 | 一 | 没有区域选择 |
跨平台的消息限制为 1 MiB,并且请求正文的每个字节计数四次,因此超过约 256 KiB 的正文将被拒绝,并显示 503 SERVICE_UNAVAILABLE。 SDK 将其报告为 FunctionsRelayError,这是误导性的:重试无济于事。在我们的测试中,超过相同大小的响应根本没有返回。 将请求和响应保持在 250 KB 以下,并通过存储发送更大的数据。
3. 费率和计划配额
每个客户端 IP 的调用率:
| 公司简介 | 价值 |
|---|---|
| 爆发 | 15 次通话 |
| 持续 | 每秒 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 s,然后作业被回收 |
| 保留已完成的作业 | 默认14天 |
listJobs 页 | 1 到 500,默认 50 |
| 计划任务 | 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 运行您的文件,但不会重现平台路由、标头或限制。