把项目中应用的日志导出到 OpenTelemetry 端点
从导出目标连接成功的那一刻起,保存其所接收应用日志的每个节点,都会把该日志中目标接收的行,以基于 HTTP 的 OTLP 发送给它(由节点的导出程序 sandboxd export 发送)。创建时会立即由控制平面发送一条记录:一条表示已连接的平台行(sbx.destination.connected,log.record.uid 为 <id>.try-<milliseconds>)。返回 2xx 且没有拒绝任何记录,目标即为已连接 (status.connected);其他任何响应都会让它保持未连接,也不会向它发送任何东西,status.tried 中记录端点的响应(最多 512 字节,事先去掉所有请求头的值)。POST /v1/destinations/{destination}/test 可以再试一次。目标的主机必须解析到互联网上的地址,连接会发往经过检查的那个地址,不跟随重定向。节点发给它的数据属于账户发往互联网的流量:按导出目标和应用记入项目的小时用量(GET /v1/usage,带上 kind=log_export),因此先由套餐包含额度抵扣,超出部分与所有流量一样计价;账户流量被停止期间不发送任何东西,等待时间超过导出程序保留时长的行(十分钟,或者超出其尚未取走的日志的最后 64 MiB)不会发送:日志中会注明 (export.dropped),导出统计中也会体现(GET /v1/apps/{app}/logs/usage,exported)。账户在所有项目中的导出目标数受套餐限制(套餐标志的 destinations=:默认 1、3 和 10,除非控制平面另有设置)。请求头的值属于凭据:加密保存,提供给节点,不出现在任何响应中。所需权限范围:admin。
https://api.glac.ai/v1/destinations授权
请求头参数
请求体JSON必填
- resource_attributesoptionalobject | null
所有者在每条记录的 resource 中附加的属性:比如
deployment.environment.name。名称为 1 到 256 个字符;不能是平台设置的属性(service.name、service.namespace、service.version、service.instance.id、cloud.provider、cloud.platform、cloud.region、faas.name、faas.version、faas.instance、faas.max_memory、container.image.name、container.image.repo_digests、sbx.app.id、sbx.version.number、sbx.node.region、sbx.node.id)。
Returns
201
导出目标,以及尝试的结果(status.tried 和 status.connected)。
- statusobjectrequired
导出目标的状态:最近一分钟内报告过它在本节点情况的每个节点导出程序的说法,汇总在一起。
- triedrequired
最后一次尝试:在创建、修改访问地址或测试时进行。
}以下之一:
- DestinationTried
- atstringrequiredformat: date-time
- statusinteger | nullrequired
端点响应的状态码。null:没有响应(无法解析、地址不在互联网上、连不上、TLS 失败、十秒内没有响应)。
- okbooleanrequired
得到了 2xx 响应,且没有记录被拒绝。
- messagestringrequired
端点的原话(其部分成功或错误的说明,最多 512 字节,所有请求头的值都已去掉),或者为什么没有响应。
- signalsoptionalobject
- logsoptionalobject
- atstringrequiredformat: date-time
- statusinteger | nullrequired
- okbooleanrequired
- messagestringrequired
- metricsoptionalobject
- atstringrequiredformat: date-time
- statusinteger | nullrequired
- okbooleanrequired
- messagestringrequired
- tracesoptionalobject
- atstringrequiredformat: date-time
- statusinteger | nullrequired
- okbooleanrequired
- messagestringrequired
- null
- todayobjectrequired
今天 (UTC) 导出给它的数据,所有节点的合计。
}
400
invalid_json、unknown_field、unknown_parameter;missing_field:缺少 name,或者既没有 endpoint 也没有 logs_endpoint;invalid_name:名称不是导出目标可用的名称;invalid_field:地址不是 https://(或者含有用户名,或超过 2,048 字节),导出目标不能带的请求头或不是单行文本的值,平台自己设置的属性,无效的 protocol、compression、kinds、signals 或 type;invalid_idempotency_key。
- reportoptionalobject
随
compose_refused返回:导入的报告,说明拒绝了什么、为什么以及要改什么。- services数组,元素为objectrequired
导入所采纳的服务,按模型中的顺序。
- appobjectrequired
导入写入的服务应用字段:其版本的构成,以及立即生效的设置。
- scaleobjectrequired
- min_instancesintegerrequired
无论有没有请求,应用在一个区域内保持运行的实例数:即下限。该区域服务该应用的节点按分摊
max_instances的方式分摊它(两个节点、下限为 2:各一个;下限为 1:一个,在最先尝试的节点上;下限为 5:三个和两个),不在线的节点由其他节点补足。节点在收到通知时就创建自己那部分,而不是等到第一个请求,也不会因为空闲而停止或删除这些实例;它们按运行中的实例计量。0(未设置时的值):没有下限。调低后,超出部分的实例从那一刻起视为空闲,并像空闲实例一样被停止和删除。最多为max_instances(如果给出),且不超过账户套餐允许应用在一个区域请求的数量(caps.app_instances.limit:5、50 和 500):超出会被拒绝,返回 403plan_cap_reached。minimum: 0 - max_instancesinteger | nullrequired
应用在一个区域内最多有多少个实例:由该区域服务该应用的节点分摊。最多为账户套餐允许应用请求的数量(
caps.app_instances.limit:免费版 5,付费版 500):超出会被拒绝,返回 403plan_cap_reached;在允许的套餐上请求的数值会保留,但受当前套餐数值的限制。null:未指定数量的应用使用套餐的数值(caps.app_instances.default:免费版 2,付费版 50),如果min_instances更大则用它。告诉节点的数值,不超过账户除其他运行中资源外还能容纳的运行量,也不少于应用当前运行的实例数。minimum: 1 - sleep_after_msinteger | nullrequired
实例在没有请求时最多等待多久就停止,单位为毫秒。在这个上限以内,节点根据应用自己的流量选择等待时间:在应用最近一段时间里两次请求之间的间隔上,比较多运行一秒空闲与停止再恢复所花的 CPU 时间,选出成本最低的等待时间;这样,请求间隔比停止成本还短的应用会一直运行,请求间隔很长的应用则在最后一个响应结束后立即停止(
0:总是立即停止)。null(未设置时的值):平台的上限,三秒。设置过 100(2026年10月28日之前的默认值)的应用,从那天起视为 null。持续停止的实例会在delete_after_ms后被其节点删除,下一个需要实例的请求会得到一个新实例;min_instances保持运行的实例既不会停止也不会删除。maximum: 600000 · minimum: 0 - sleep_hold_max_msintegerrequired
实例中的程序发起的保持,在空闲时间到期后最多还能让实例运行多久,单位为毫秒:程序连接
/run/sbx/awake,如果某个请求在响应之后还有后续工作,就在响应它之前发送+,工作完成后发送-(或关闭连接,或退出);最后一个保持解除sleep_after_ms之后,实例停止。超过这个时间,无论有什么保持,实例都会停止;如果sleep_notice_ms要求通知,会先向已连接的程序发送sleep N cap。保持期间实例在运行,并按运行计量。0:不理会保持。null:30000(默认)。maximum: 900000 · minimum: 0 - delete_after_msinteger | nullrequired
实例空闲多久后被删除,与停止使用同一个起算点:下一个需要实例的请求会得到一个新实例,即版本模板的克隆,不含被删除的实例在内存和磁盘中积累的东西(需要长久保存的数据请放在存储卷或数据库中)。一秒到一小时,一小时是平台的时间,也是上限:超出会被拒绝 (400
invalid_field),需要保持预热的实例应计入min_instances。null(未设置时的值):节点的一小时 (--app-delete-after-seconds)。修改对应用现有的实例和之后创建的实例同样有效:每个节点至少每秒按应用当前的时间检查一次每个实例。不适用于应用的键控实例,键控实例用keys.delete_after_idle_ms。maximum: 3600000 · minimum: 1000 - wake_daily_atoptionalstring | null
每天的某个 UTC 时刻 (
HH:MM),在此时唤醒应用中处于休眠状态的键控实例和有状态服务的实例,让它们完成等待唤醒才能做的工作(比如数据库维护);节点根据应用请求创建和删除的实例只会被请求唤醒。唤醒本身不算活动:唤醒后运行的东西才算,运行完毕后实例会再次休眠。此外,无论这里怎么设置,有状态服务的实例都会为其 PostgreSQL 服务器pg_cron任务的下一次运行而被唤醒。null(默认):不唤醒。数据库的wake_daily_at就是其应用的这一设置。pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
- runtimeoptional
运行时设置 (
AppCreate.runtime)。null:没有。}以下之一:
- Runtime
- ulimits映射,值为RuntimeLimitGivenrequired
- sysctls映射,值为stringrequired
- tmpfs数组,元素为objectrequired
- pathstringrequired
- size_bytesinteger | nullrequired
- modeintegerrequired
- dnsobjectrequired
- servers数组,元素为stringrequired
- search数组,元素为stringrequired
- options数组,元素为stringrequired
- shm_size_bytesinteger | nullrequired
- null
401
missing_api_key, invalid_api_key, expired_api_key, invalid_token.
- reportoptionalobject
随
compose_refused返回:导入的报告,说明拒绝了什么、为什么以及要改什么。- services数组,元素为objectrequired
导入所采纳的服务,按模型中的顺序。
- appobjectrequired
导入写入的服务应用字段:其版本的构成,以及立即生效的设置。
- scaleobjectrequired
- min_instancesintegerrequired
无论有没有请求,应用在一个区域内保持运行的实例数:即下限。该区域服务该应用的节点按分摊
max_instances的方式分摊它(两个节点、下限为 2:各一个;下限为 1:一个,在最先尝试的节点上;下限为 5:三个和两个),不在线的节点由其他节点补足。节点在收到通知时就创建自己那部分,而不是等到第一个请求,也不会因为空闲而停止或删除这些实例;它们按运行中的实例计量。0(未设置时的值):没有下限。调低后,超出部分的实例从那一刻起视为空闲,并像空闲实例一样被停止和删除。最多为max_instances(如果给出),且不超过账户套餐允许应用在一个区域请求的数量(caps.app_instances.limit:5、50 和 500):超出会被拒绝,返回 403plan_cap_reached。minimum: 0 - max_instancesinteger | nullrequired
应用在一个区域内最多有多少个实例:由该区域服务该应用的节点分摊。最多为账户套餐允许应用请求的数量(
caps.app_instances.limit:免费版 5,付费版 500):超出会被拒绝,返回 403plan_cap_reached;在允许的套餐上请求的数值会保留,但受当前套餐数值的限制。null:未指定数量的应用使用套餐的数值(caps.app_instances.default:免费版 2,付费版 50),如果min_instances更大则用它。告诉节点的数值,不超过账户除其他运行中资源外还能容纳的运行量,也不少于应用当前运行的实例数。minimum: 1 - sleep_after_msinteger | nullrequired
实例在没有请求时最多等待多久就停止,单位为毫秒。在这个上限以内,节点根据应用自己的流量选择等待时间:在应用最近一段时间里两次请求之间的间隔上,比较多运行一秒空闲与停止再恢复所花的 CPU 时间,选出成本最低的等待时间;这样,请求间隔比停止成本还短的应用会一直运行,请求间隔很长的应用则在最后一个响应结束后立即停止(
0:总是立即停止)。null(未设置时的值):平台的上限,三秒。设置过 100(2026年10月28日之前的默认值)的应用,从那天起视为 null。持续停止的实例会在delete_after_ms后被其节点删除,下一个需要实例的请求会得到一个新实例;min_instances保持运行的实例既不会停止也不会删除。maximum: 600000 · minimum: 0 - sleep_hold_max_msintegerrequired
实例中的程序发起的保持,在空闲时间到期后最多还能让实例运行多久,单位为毫秒:程序连接
/run/sbx/awake,如果某个请求在响应之后还有后续工作,就在响应它之前发送+,工作完成后发送-(或关闭连接,或退出);最后一个保持解除sleep_after_ms之后,实例停止。超过这个时间,无论有什么保持,实例都会停止;如果sleep_notice_ms要求通知,会先向已连接的程序发送sleep N cap。保持期间实例在运行,并按运行计量。0:不理会保持。null:30000(默认)。maximum: 900000 · minimum: 0 - delete_after_msinteger | nullrequired
实例空闲多久后被删除,与停止使用同一个起算点:下一个需要实例的请求会得到一个新实例,即版本模板的克隆,不含被删除的实例在内存和磁盘中积累的东西(需要长久保存的数据请放在存储卷或数据库中)。一秒到一小时,一小时是平台的时间,也是上限:超出会被拒绝 (400
invalid_field),需要保持预热的实例应计入min_instances。null(未设置时的值):节点的一小时 (--app-delete-after-seconds)。修改对应用现有的实例和之后创建的实例同样有效:每个节点至少每秒按应用当前的时间检查一次每个实例。不适用于应用的键控实例,键控实例用keys.delete_after_idle_ms。maximum: 3600000 · minimum: 1000 - wake_daily_atoptionalstring | null
每天的某个 UTC 时刻 (
HH:MM),在此时唤醒应用中处于休眠状态的键控实例和有状态服务的实例,让它们完成等待唤醒才能做的工作(比如数据库维护);节点根据应用请求创建和删除的实例只会被请求唤醒。唤醒本身不算活动:唤醒后运行的东西才算,运行完毕后实例会再次休眠。此外,无论这里怎么设置,有状态服务的实例都会为其 PostgreSQL 服务器pg_cron任务的下一次运行而被唤醒。null(默认):不唤醒。数据库的wake_daily_at就是其应用的这一设置。pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
- runtimeoptional
运行时设置 (
AppCreate.runtime)。null:没有。}以下之一:
- Runtime
- ulimits映射,值为RuntimeLimitGivenrequired
- sysctls映射,值为stringrequired
- tmpfs数组,元素为objectrequired
- pathstringrequired
- size_bytesinteger | nullrequired
- modeintegerrequired
- dnsobjectrequired
- servers数组,元素为stringrequired
- search数组,元素为stringrequired
- options数组,元素为stringrequired
- shm_size_bytesinteger | nullrequired
- null
402
account_in_debt:账户欠费(余额低于零),付清之前账户的任何东西都不能使用:其密钥以及其沙箱令牌的每个调用都会这样被拒绝,以下除外:读取欠款和付款的调用;列出和读取其存储卷的备份,以及从备份创建存储卷的调用(POST /v1/volumes,带上 from_backup,正在删除账户存储的数据时除外),这是停止付款的账户最需要的;此外,除非控制平面以 --debt-allows-delete false 启动,还有列出、读取和删除账户存储的存储卷、快照和沙箱,以及删除其备份的调用。新建备份始终不行。在检查密钥的权限范围之前就拒绝,无论路径是什么。错误信息会说明欠款金额、起始时间、账户存储的数据何时会被删除、如何付款、可以删除存储的数据以免金额继续增长,以及仍然可以从备份创建存储卷(GET /v1/billing、debt)。
- reportoptionalobject
随
compose_refused返回:导入的报告,说明拒绝了什么、为什么以及要改什么。- services数组,元素为objectrequired
导入所采纳的服务,按模型中的顺序。
- appobjectrequired
导入写入的服务应用字段:其版本的构成,以及立即生效的设置。
- scaleobjectrequired
- min_instancesintegerrequired
无论有没有请求,应用在一个区域内保持运行的实例数:即下限。该区域服务该应用的节点按分摊
max_instances的方式分摊它(两个节点、下限为 2:各一个;下限为 1:一个,在最先尝试的节点上;下限为 5:三个和两个),不在线的节点由其他节点补足。节点在收到通知时就创建自己那部分,而不是等到第一个请求,也不会因为空闲而停止或删除这些实例;它们按运行中的实例计量。0(未设置时的值):没有下限。调低后,超出部分的实例从那一刻起视为空闲,并像空闲实例一样被停止和删除。最多为max_instances(如果给出),且不超过账户套餐允许应用在一个区域请求的数量(caps.app_instances.limit:5、50 和 500):超出会被拒绝,返回 403plan_cap_reached。minimum: 0 - max_instancesinteger | nullrequired
应用在一个区域内最多有多少个实例:由该区域服务该应用的节点分摊。最多为账户套餐允许应用请求的数量(
caps.app_instances.limit:免费版 5,付费版 500):超出会被拒绝,返回 403plan_cap_reached;在允许的套餐上请求的数值会保留,但受当前套餐数值的限制。null:未指定数量的应用使用套餐的数值(caps.app_instances.default:免费版 2,付费版 50),如果min_instances更大则用它。告诉节点的数值,不超过账户除其他运行中资源外还能容纳的运行量,也不少于应用当前运行的实例数。minimum: 1 - sleep_after_msinteger | nullrequired
实例在没有请求时最多等待多久就停止,单位为毫秒。在这个上限以内,节点根据应用自己的流量选择等待时间:在应用最近一段时间里两次请求之间的间隔上,比较多运行一秒空闲与停止再恢复所花的 CPU 时间,选出成本最低的等待时间;这样,请求间隔比停止成本还短的应用会一直运行,请求间隔很长的应用则在最后一个响应结束后立即停止(
0:总是立即停止)。null(未设置时的值):平台的上限,三秒。设置过 100(2026年10月28日之前的默认值)的应用,从那天起视为 null。持续停止的实例会在delete_after_ms后被其节点删除,下一个需要实例的请求会得到一个新实例;min_instances保持运行的实例既不会停止也不会删除。maximum: 600000 · minimum: 0 - sleep_hold_max_msintegerrequired
实例中的程序发起的保持,在空闲时间到期后最多还能让实例运行多久,单位为毫秒:程序连接
/run/sbx/awake,如果某个请求在响应之后还有后续工作,就在响应它之前发送+,工作完成后发送-(或关闭连接,或退出);最后一个保持解除sleep_after_ms之后,实例停止。超过这个时间,无论有什么保持,实例都会停止;如果sleep_notice_ms要求通知,会先向已连接的程序发送sleep N cap。保持期间实例在运行,并按运行计量。0:不理会保持。null:30000(默认)。maximum: 900000 · minimum: 0 - delete_after_msinteger | nullrequired
实例空闲多久后被删除,与停止使用同一个起算点:下一个需要实例的请求会得到一个新实例,即版本模板的克隆,不含被删除的实例在内存和磁盘中积累的东西(需要长久保存的数据请放在存储卷或数据库中)。一秒到一小时,一小时是平台的时间,也是上限:超出会被拒绝 (400
invalid_field),需要保持预热的实例应计入min_instances。null(未设置时的值):节点的一小时 (--app-delete-after-seconds)。修改对应用现有的实例和之后创建的实例同样有效:每个节点至少每秒按应用当前的时间检查一次每个实例。不适用于应用的键控实例,键控实例用keys.delete_after_idle_ms。maximum: 3600000 · minimum: 1000 - wake_daily_atoptionalstring | null
每天的某个 UTC 时刻 (
HH:MM),在此时唤醒应用中处于休眠状态的键控实例和有状态服务的实例,让它们完成等待唤醒才能做的工作(比如数据库维护);节点根据应用请求创建和删除的实例只会被请求唤醒。唤醒本身不算活动:唤醒后运行的东西才算,运行完毕后实例会再次休眠。此外,无论这里怎么设置,有状态服务的实例都会为其 PostgreSQL 服务器pg_cron任务的下一次运行而被唤醒。null(默认):不唤醒。数据库的wake_daily_at就是其应用的这一设置。pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
- runtimeoptional
运行时设置 (
AppCreate.runtime)。null:没有。}以下之一:
- Runtime
- ulimits映射,值为RuntimeLimitGivenrequired
- sysctls映射,值为stringrequired
- tmpfs数组,元素为objectrequired
- pathstringrequired
- size_bytesinteger | nullrequired
- modeintegerrequired
- dnsobjectrequired
- servers数组,元素为stringrequired
- search数组,元素为stringrequired
- options数组,元素为stringrequired
- shm_size_bytesinteger | nullrequired
- null
403
key_scope:密钥没有 admin 权限范围;needs_api_key:使用的是沙箱令牌或运营方的密钥;destination_limit_reached:账户在所有项目中的导出目标数已达套餐上限;account_held:账户因付款问题被冻结,除 GET /v1/account 外,用它的密钥发起的所有调用都会这样被拒绝,而且在检查权限范围之前就拒绝 (x-error-codes)。
- reportoptionalobject
随
compose_refused返回:导入的报告,说明拒绝了什么、为什么以及要改什么。- services数组,元素为objectrequired
导入所采纳的服务,按模型中的顺序。
- appobjectrequired
导入写入的服务应用字段:其版本的构成,以及立即生效的设置。
- scaleobjectrequired
- min_instancesintegerrequired
无论有没有请求,应用在一个区域内保持运行的实例数:即下限。该区域服务该应用的节点按分摊
max_instances的方式分摊它(两个节点、下限为 2:各一个;下限为 1:一个,在最先尝试的节点上;下限为 5:三个和两个),不在线的节点由其他节点补足。节点在收到通知时就创建自己那部分,而不是等到第一个请求,也不会因为空闲而停止或删除这些实例;它们按运行中的实例计量。0(未设置时的值):没有下限。调低后,超出部分的实例从那一刻起视为空闲,并像空闲实例一样被停止和删除。最多为max_instances(如果给出),且不超过账户套餐允许应用在一个区域请求的数量(caps.app_instances.limit:5、50 和 500):超出会被拒绝,返回 403plan_cap_reached。minimum: 0 - max_instancesinteger | nullrequired
应用在一个区域内最多有多少个实例:由该区域服务该应用的节点分摊。最多为账户套餐允许应用请求的数量(
caps.app_instances.limit:免费版 5,付费版 500):超出会被拒绝,返回 403plan_cap_reached;在允许的套餐上请求的数值会保留,但受当前套餐数值的限制。null:未指定数量的应用使用套餐的数值(caps.app_instances.default:免费版 2,付费版 50),如果min_instances更大则用它。告诉节点的数值,不超过账户除其他运行中资源外还能容纳的运行量,也不少于应用当前运行的实例数。minimum: 1 - sleep_after_msinteger | nullrequired
实例在没有请求时最多等待多久就停止,单位为毫秒。在这个上限以内,节点根据应用自己的流量选择等待时间:在应用最近一段时间里两次请求之间的间隔上,比较多运行一秒空闲与停止再恢复所花的 CPU 时间,选出成本最低的等待时间;这样,请求间隔比停止成本还短的应用会一直运行,请求间隔很长的应用则在最后一个响应结束后立即停止(
0:总是立即停止)。null(未设置时的值):平台的上限,三秒。设置过 100(2026年10月28日之前的默认值)的应用,从那天起视为 null。持续停止的实例会在delete_after_ms后被其节点删除,下一个需要实例的请求会得到一个新实例;min_instances保持运行的实例既不会停止也不会删除。maximum: 600000 · minimum: 0 - sleep_hold_max_msintegerrequired
实例中的程序发起的保持,在空闲时间到期后最多还能让实例运行多久,单位为毫秒:程序连接
/run/sbx/awake,如果某个请求在响应之后还有后续工作,就在响应它之前发送+,工作完成后发送-(或关闭连接,或退出);最后一个保持解除sleep_after_ms之后,实例停止。超过这个时间,无论有什么保持,实例都会停止;如果sleep_notice_ms要求通知,会先向已连接的程序发送sleep N cap。保持期间实例在运行,并按运行计量。0:不理会保持。null:30000(默认)。maximum: 900000 · minimum: 0 - delete_after_msinteger | nullrequired
实例空闲多久后被删除,与停止使用同一个起算点:下一个需要实例的请求会得到一个新实例,即版本模板的克隆,不含被删除的实例在内存和磁盘中积累的东西(需要长久保存的数据请放在存储卷或数据库中)。一秒到一小时,一小时是平台的时间,也是上限:超出会被拒绝 (400
invalid_field),需要保持预热的实例应计入min_instances。null(未设置时的值):节点的一小时 (--app-delete-after-seconds)。修改对应用现有的实例和之后创建的实例同样有效:每个节点至少每秒按应用当前的时间检查一次每个实例。不适用于应用的键控实例,键控实例用keys.delete_after_idle_ms。maximum: 3600000 · minimum: 1000 - wake_daily_atoptionalstring | null
每天的某个 UTC 时刻 (
HH:MM),在此时唤醒应用中处于休眠状态的键控实例和有状态服务的实例,让它们完成等待唤醒才能做的工作(比如数据库维护);节点根据应用请求创建和删除的实例只会被请求唤醒。唤醒本身不算活动:唤醒后运行的东西才算,运行完毕后实例会再次休眠。此外,无论这里怎么设置,有状态服务的实例都会为其 PostgreSQL 服务器pg_cron任务的下一次运行而被唤醒。null(默认):不唤醒。数据库的wake_daily_at就是其应用的这一设置。pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
- runtimeoptional
运行时设置 (
AppCreate.runtime)。null:没有。}以下之一:
- Runtime
- ulimits映射,值为RuntimeLimitGivenrequired
- sysctls映射,值为stringrequired
- tmpfs数组,元素为objectrequired
- pathstringrequired
- size_bytesinteger | nullrequired
- modeintegerrequired
- dnsobjectrequired
- servers数组,元素为stringrequired
- search数组,元素为stringrequired
- options数组,元素为stringrequired
- shm_size_bytesinteger | nullrequired
- null
404
app_not_found:apps 指定了项目中不存在的应用(param 为 apps)。
- reportoptionalobject
随
compose_refused返回:导入的报告,说明拒绝了什么、为什么以及要改什么。- services数组,元素为objectrequired
导入所采纳的服务,按模型中的顺序。
- appobjectrequired
导入写入的服务应用字段:其版本的构成,以及立即生效的设置。
- scaleobjectrequired
- min_instancesintegerrequired
无论有没有请求,应用在一个区域内保持运行的实例数:即下限。该区域服务该应用的节点按分摊
max_instances的方式分摊它(两个节点、下限为 2:各一个;下限为 1:一个,在最先尝试的节点上;下限为 5:三个和两个),不在线的节点由其他节点补足。节点在收到通知时就创建自己那部分,而不是等到第一个请求,也不会因为空闲而停止或删除这些实例;它们按运行中的实例计量。0(未设置时的值):没有下限。调低后,超出部分的实例从那一刻起视为空闲,并像空闲实例一样被停止和删除。最多为max_instances(如果给出),且不超过账户套餐允许应用在一个区域请求的数量(caps.app_instances.limit:5、50 和 500):超出会被拒绝,返回 403plan_cap_reached。minimum: 0 - max_instancesinteger | nullrequired
应用在一个区域内最多有多少个实例:由该区域服务该应用的节点分摊。最多为账户套餐允许应用请求的数量(
caps.app_instances.limit:免费版 5,付费版 500):超出会被拒绝,返回 403plan_cap_reached;在允许的套餐上请求的数值会保留,但受当前套餐数值的限制。null:未指定数量的应用使用套餐的数值(caps.app_instances.default:免费版 2,付费版 50),如果min_instances更大则用它。告诉节点的数值,不超过账户除其他运行中资源外还能容纳的运行量,也不少于应用当前运行的实例数。minimum: 1 - sleep_after_msinteger | nullrequired
实例在没有请求时最多等待多久就停止,单位为毫秒。在这个上限以内,节点根据应用自己的流量选择等待时间:在应用最近一段时间里两次请求之间的间隔上,比较多运行一秒空闲与停止再恢复所花的 CPU 时间,选出成本最低的等待时间;这样,请求间隔比停止成本还短的应用会一直运行,请求间隔很长的应用则在最后一个响应结束后立即停止(
0:总是立即停止)。null(未设置时的值):平台的上限,三秒。设置过 100(2026年10月28日之前的默认值)的应用,从那天起视为 null。持续停止的实例会在delete_after_ms后被其节点删除,下一个需要实例的请求会得到一个新实例;min_instances保持运行的实例既不会停止也不会删除。maximum: 600000 · minimum: 0 - sleep_hold_max_msintegerrequired
实例中的程序发起的保持,在空闲时间到期后最多还能让实例运行多久,单位为毫秒:程序连接
/run/sbx/awake,如果某个请求在响应之后还有后续工作,就在响应它之前发送+,工作完成后发送-(或关闭连接,或退出);最后一个保持解除sleep_after_ms之后,实例停止。超过这个时间,无论有什么保持,实例都会停止;如果sleep_notice_ms要求通知,会先向已连接的程序发送sleep N cap。保持期间实例在运行,并按运行计量。0:不理会保持。null:30000(默认)。maximum: 900000 · minimum: 0 - delete_after_msinteger | nullrequired
实例空闲多久后被删除,与停止使用同一个起算点:下一个需要实例的请求会得到一个新实例,即版本模板的克隆,不含被删除的实例在内存和磁盘中积累的东西(需要长久保存的数据请放在存储卷或数据库中)。一秒到一小时,一小时是平台的时间,也是上限:超出会被拒绝 (400
invalid_field),需要保持预热的实例应计入min_instances。null(未设置时的值):节点的一小时 (--app-delete-after-seconds)。修改对应用现有的实例和之后创建的实例同样有效:每个节点至少每秒按应用当前的时间检查一次每个实例。不适用于应用的键控实例,键控实例用keys.delete_after_idle_ms。maximum: 3600000 · minimum: 1000 - wake_daily_atoptionalstring | null
每天的某个 UTC 时刻 (
HH:MM),在此时唤醒应用中处于休眠状态的键控实例和有状态服务的实例,让它们完成等待唤醒才能做的工作(比如数据库维护);节点根据应用请求创建和删除的实例只会被请求唤醒。唤醒本身不算活动:唤醒后运行的东西才算,运行完毕后实例会再次休眠。此外,无论这里怎么设置,有状态服务的实例都会为其 PostgreSQL 服务器pg_cron任务的下一次运行而被唤醒。null(默认):不唤醒。数据库的wake_daily_at就是其应用的这一设置。pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
- runtimeoptional
运行时设置 (
AppCreate.runtime)。null:没有。}以下之一:
- Runtime
- ulimits映射,值为RuntimeLimitGivenrequired
- sysctls映射,值为stringrequired
- tmpfs数组,元素为objectrequired
- pathstringrequired
- size_bytesinteger | nullrequired
- modeintegerrequired
- dnsobjectrequired
- servers数组,元素为stringrequired
- search数组,元素为stringrequired
- options数组,元素为stringrequired
- shm_size_bytesinteger | nullrequired
- null
409
destination_name_taken:项目中已有该名称的导出目标;idempotency_key_reused;idempotency_in_progress:使用同一个键的第一个请求一分钟后仍在处理。
- reportoptionalobject
随
compose_refused返回:导入的报告,说明拒绝了什么、为什么以及要改什么。- services数组,元素为objectrequired
导入所采纳的服务,按模型中的顺序。
- appobjectrequired
导入写入的服务应用字段:其版本的构成,以及立即生效的设置。
- scaleobjectrequired
- min_instancesintegerrequired
无论有没有请求,应用在一个区域内保持运行的实例数:即下限。该区域服务该应用的节点按分摊
max_instances的方式分摊它(两个节点、下限为 2:各一个;下限为 1:一个,在最先尝试的节点上;下限为 5:三个和两个),不在线的节点由其他节点补足。节点在收到通知时就创建自己那部分,而不是等到第一个请求,也不会因为空闲而停止或删除这些实例;它们按运行中的实例计量。0(未设置时的值):没有下限。调低后,超出部分的实例从那一刻起视为空闲,并像空闲实例一样被停止和删除。最多为max_instances(如果给出),且不超过账户套餐允许应用在一个区域请求的数量(caps.app_instances.limit:5、50 和 500):超出会被拒绝,返回 403plan_cap_reached。minimum: 0 - max_instancesinteger | nullrequired
应用在一个区域内最多有多少个实例:由该区域服务该应用的节点分摊。最多为账户套餐允许应用请求的数量(
caps.app_instances.limit:免费版 5,付费版 500):超出会被拒绝,返回 403plan_cap_reached;在允许的套餐上请求的数值会保留,但受当前套餐数值的限制。null:未指定数量的应用使用套餐的数值(caps.app_instances.default:免费版 2,付费版 50),如果min_instances更大则用它。告诉节点的数值,不超过账户除其他运行中资源外还能容纳的运行量,也不少于应用当前运行的实例数。minimum: 1 - sleep_after_msinteger | nullrequired
实例在没有请求时最多等待多久就停止,单位为毫秒。在这个上限以内,节点根据应用自己的流量选择等待时间:在应用最近一段时间里两次请求之间的间隔上,比较多运行一秒空闲与停止再恢复所花的 CPU 时间,选出成本最低的等待时间;这样,请求间隔比停止成本还短的应用会一直运行,请求间隔很长的应用则在最后一个响应结束后立即停止(
0:总是立即停止)。null(未设置时的值):平台的上限,三秒。设置过 100(2026年10月28日之前的默认值)的应用,从那天起视为 null。持续停止的实例会在delete_after_ms后被其节点删除,下一个需要实例的请求会得到一个新实例;min_instances保持运行的实例既不会停止也不会删除。maximum: 600000 · minimum: 0 - sleep_hold_max_msintegerrequired
实例中的程序发起的保持,在空闲时间到期后最多还能让实例运行多久,单位为毫秒:程序连接
/run/sbx/awake,如果某个请求在响应之后还有后续工作,就在响应它之前发送+,工作完成后发送-(或关闭连接,或退出);最后一个保持解除sleep_after_ms之后,实例停止。超过这个时间,无论有什么保持,实例都会停止;如果sleep_notice_ms要求通知,会先向已连接的程序发送sleep N cap。保持期间实例在运行,并按运行计量。0:不理会保持。null:30000(默认)。maximum: 900000 · minimum: 0 - delete_after_msinteger | nullrequired
实例空闲多久后被删除,与停止使用同一个起算点:下一个需要实例的请求会得到一个新实例,即版本模板的克隆,不含被删除的实例在内存和磁盘中积累的东西(需要长久保存的数据请放在存储卷或数据库中)。一秒到一小时,一小时是平台的时间,也是上限:超出会被拒绝 (400
invalid_field),需要保持预热的实例应计入min_instances。null(未设置时的值):节点的一小时 (--app-delete-after-seconds)。修改对应用现有的实例和之后创建的实例同样有效:每个节点至少每秒按应用当前的时间检查一次每个实例。不适用于应用的键控实例,键控实例用keys.delete_after_idle_ms。maximum: 3600000 · minimum: 1000 - wake_daily_atoptionalstring | null
每天的某个 UTC 时刻 (
HH:MM),在此时唤醒应用中处于休眠状态的键控实例和有状态服务的实例,让它们完成等待唤醒才能做的工作(比如数据库维护);节点根据应用请求创建和删除的实例只会被请求唤醒。唤醒本身不算活动:唤醒后运行的东西才算,运行完毕后实例会再次休眠。此外,无论这里怎么设置,有状态服务的实例都会为其 PostgreSQL 服务器pg_cron任务的下一次运行而被唤醒。null(默认):不唤醒。数据库的wake_daily_at就是其应用的这一设置。pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
- runtimeoptional
运行时设置 (
AppCreate.runtime)。null:没有。}以下之一:
- Runtime
- ulimits映射,值为RuntimeLimitGivenrequired
- sysctls映射,值为stringrequired
- tmpfs数组,元素为objectrequired
- pathstringrequired
- size_bytesinteger | nullrequired
- modeintegerrequired
- dnsobjectrequired
- servers数组,元素为stringrequired
- search数组,元素为stringrequired
- options数组,元素为stringrequired
- shm_size_bytesinteger | nullrequired
- null