查看应用日志:实例的输出、每个请求一行、平台的操作
应用所有实例在所有服务它的机器上的日志行,合并为一个序列。所需权限范围:read。
日志行分三种。output:实例的启动命令在标准输出或标准错误上打印的一行。request:交给实例的每个请求一行,在响应结束时写入;被所到机器拒绝的每个请求也有一行。platform:平台做了什么(实例的创建、停止、退役、删除,各附原因;机器开始服务某个版本,以及把它撤下),日志丢弃或丢失了什么,以及本调用对它所读取的机器要说明的情况。
日志行存放在哪里。每台服务该应用的机器保存自己实例的日志行,并随到随传到对象存储,分段用项目自己的密钥加密(见 sandboxd/openapi/openapi.json 中的 POST /internal/logs/shipped);没有上传的行,机器不会丢弃。读取时先取对象存储中的内容,再逐台机器取其后的内容,合并为一个序列:账户套餐保留天数内的每一行(按控制平面的默认启动设置,免费版 3 天,付费版 30 天;见 GET /v1/apps/{app}/logs/usage 的 kept_until),无论机器还在还是已经不在,无论实例在运行还是早已删除。已删除实例最后打印的内容,也和其他内容一样通过本调用读取,最后一行会说明它已被删除及原因。机器自己会为现存的实例保留最后几 MB 的输出,为已删除的实例保留最后 1 MB,保留七天(具体数字见机器的 GET /internal/node 中的 app_logs,其中还说明了机器会截断多长的行,以及实例打印速度超过保留速度时会丢弃什么,每次都会在日志中注明);已上传的内容另外保存在对象存储中。
缺失的行。如果机器在上传最后几行之前就从记录中消失,或者丢失了它为该应用保存的内容,这些行就永久缺失,在它们本应出现的位置会有一行说明(logs.gap,带 reason 为 node_gone 或 log_gone、from、to,以及最多缺失多少行);对象存储中无法读取的分段也一样 (unreadable)。无论读取请求筛选什么,这些行都会发送,只受时间范围限制。暂时无法上传的机器(对象存储连不上)会保留日志行,直到达到它为单个应用保留的上限,然后丢弃最旧的行,并用自己的一行说明(logs.gap,node_buffer:和其他日志行一样,最多每秒一行),计数中也会体现(用量中的 not_kept.node_buffer)。
一次读取读多少。一次读取最多从对象存储读取 256 MiB 的日志行,最长 10 秒(按控制平面的默认启动设置:--log-read-mib、--log-read-seconds):读到这么多时,无论是否在跟踪,都会以一个表示还有更多内容的标记 (more) 结束,读取方用游标继续。按内容筛选的行(status、method、path、request_id、event、stream、contains)会在读取到的全部内容中查找,包括对象存储和各机器上的。
顺序。同一台机器的行按该机器的顺序排列:按时间排序,请求行排在其实例为该请求打印的内容之后,误差在实例时钟与机器时钟相差的几毫秒之内(机器会把实例的时钟校准到与自己相差 5 毫秒以内):每行在采集处打上时间戳,输出行用实例的时钟(在代理程序从命令取得该行时),请求行用机器的时钟(在响应结束时)。不同机器之间,时间较早的行排在前面,各行的时间以各自机器的时钟为准:时钟有偏差的两台机器,其日志行的交错也会有相应的偏差,时间本身不做任何修改。只要另一台机器可能还有更早的行,这一行就不会发送;在跟踪的响应中最多为此等待 0.4 秒,在不跟踪的响应中最多等待 5 秒。有两类内容虽然排在某些行之后,时间却早于这些行:机器构建版本模板时启动命令打印的内容(from:template;每台机器一次),以及 template.built。
游标。每一行都带有 cursor:读完该行后,读取方在它有日志行的每台机器上所处的位置。读取方带着它回来(参数 cursor;事件流会自动把最后一个事件的 id 作为 Last-Event-ID 发送),就能收到之后的每一行,恰好一次,不重复也不遗漏。连接中断的代价,只是重新读取正在途中的内容。只要各机器还保留游标之后的行,游标就一直有效:机器之后丢弃的内容不会出现在响应中。
连不上的机器。响应中会缺少它的行,并有一行说明 (logs.incomplete),只说一次:适用于服务该应用某个版本的机器、读取方的游标在其上有位置的机器,以及本调用读取时断开的机器。其他机器的行照常到达。跟踪的读取方会在该机器重新连上时收到通知 (logs.complete),然后收到机器在此期间保存的内容,这些行带着它们自己的时间;不跟踪的读取方则在下次调用时凭游标收到它们。logs.anew:某台机器重新开始保存该应用的日志,之前保存的内容已不在,它的日志从头读取。
响应是逐行的 JSON,每行对应一条日志 (application/x-ndjson);如果请求带 Accept: text/event-stream,则为事件流:事件名是日志行的种类,事件的 id 是游标,数据是去掉 cursor 的日志行。mark 不是日志行:它在没有内容可发送时说明读取方所处的位置,出现在不跟踪的响应末尾,以及跟踪的响应中每静默十五秒时。不跟踪的响应在所有机器的内容都发送完后结束。跟踪的响应一直持续到读取方离开;跟踪到某个时间 (until) 的响应持续到该时间之后两秒。
平台写入的日志行不包含应用环境中的任何内容:请求行只有去掉查询部分的路径,除请求 id 外不含任何请求头。启动命令打印的内容属于应用自己,按打印时的原样记入日志,只有应用所在的项目能读取:对其他项目的密钥来说,这个应用并不存在,对象存储中的分段也用一个不加密其他项目日志行的密钥加密。已删除应用的日志按应用的 id 读取,不能按名称读取,在账户套餐保留日志行的期限内都可读取;其所有者可以用 DELETE /v1/apps/{app}/logs 删除某个时间之前的日志行。
https://api.glac.ai/v1/apps/{app}/logs授权
路径参数
查询参数
请求头参数
Returns
200
日志行。响应开始后出现的问题会在响应中说明 (logs.incomplete),或者导致响应结束。
以下之一:
- LogOutput
- timestringrequired
打印时间,UTC,精确到微秒:按实例自己的时钟,机器在创建和唤醒实例时会校准它,误差不超过机器对实例最近两次读取之间的时间。
format: date-time - kindoutputrequired
- instancestring | nullrequired
打印它的实例,按 id。机器构建版本模板时启动命令打印的行为 null (
from)。 - versionstring | nullrequired
实例所属版本的 id。
- streamstdout或stderrrequired
- textstringrequired
该行内容,不含结束它的换行符以及之前的回车符。不是 UTF-8 的字节会被替换 (U+FFFD)。尚未结束的行,在其最后一个字节已过一秒,或其实例被停止或删除时,按已收到的部分给出。
- cursorstringrequired
读完这一行后读取方所处的位置。
- cut_bytesoptionalinteger
该行超出了机器为单行保留的长度(默认 16,384 字节,除非机器另有设置):此值为从末尾截掉的字节数。
minimum: 1 - fromoptionaltemplate
该行是在机器构建版本模板时、模板保存之前打印的:该机器上的每个实例都从这一行之后开始,它不属于任何实例。每台构建模板的机器各一次。
- LogRequest
- timestringrequired
响应的最后一个字节从实例发出的时间,或者机器拒绝该请求的时间。
format: date-time - kindrequestrequired
- instancestring | nullrequired
请求交给的实例。null:没有交给任何实例 (
refused)。 - versionstring | nullrequired
请求所针对的版本的 id。
- request_idstringrequired
请求的 id:请求自带的
X-Request-Id,或机器为它生成的 id。实例会在这个请求头中收到它,因此实例打印的内容可以像这一行一样指明是哪个请求。 - methodstringrequired
- pathstringrequired
请求的路径,不含
?之后的部分,最多前 1024 个字节。 - statusinteger | nullrequired
响应的状态码:实例的,或者机器拒绝请求时机器自己的。null:实例没有响应就关闭了连接。
- duration_msnumberrequired
从机器读完请求头到响应的最后一个字节,单位为毫秒。请求等待实例的时间也包括在内。
minimum: 0 - bytesintegerrequired
转发的响应字节数,包括响应头。
minimum: 0 - cursorstringrequired
- refusedoptionalstring
机器自己回答了该请求,错误码为:应用在那里已满(
app_full_here:边缘节点随后会尝试另一台机器;app_at_capacity),或者实例无法接收该请求。 - instance_wasoptionalpaused或asleep
请求到来时实例没有在运行,为它启动了实例。
- wake_msoptionalnumber
与
instance_was一起:请求等待实例启动的时间,单位为毫秒。minimum: 0 - upgradedoptionaltrue
响应为 101,连接随后被原样转发,直到关闭。
- timesoptionalinteger
对于拒绝:这一秒机器以该错误码拒绝了该版本多少个请求,这一行对应其中的第一个。
minimum: 1 - sample_rateoptionalnumber
如果应用保留的请求比例低于 1:这一行代表的比例,读取方可以据此还原总数。1:请求失败了,失败的请求全部保留 (
keep_errors)。maximum: 1 · minimum: 0 - trace_idoptionalstring
请求带有符合 W3C Trace Context 规范的
traceparent请求头:其链路的 id。发给导出目标的这一行的记录中,它作为TraceId。pattern: ^[0-9a-f]{32}$
- LogPlatform
- timestringrequiredformat: date-time
- kindplatformrequired
- instancestring | nullrequired
该行涉及的实例。null:涉及的是某台机器上的版本,或这次读取本身。
- versionstring | nullrequired
版本的 id。本调用对其所读取的机器的说明为 null。
- eventstringrequired
机器上:
template.built(该版本的模板在那里构建完成;该行带有构建的时间)、version.served(机器被通知服务该版本)、version.removed(以及不再服务它,带reason)、instance.made(took_ms、from_pool、kept)、instance.stopped(空闲实例被暂停或休眠:how、idle_ms、times;同一实例最多每秒说明一次)、instance.woken(静止的实例在没有请求的情况下被启动,因为应用要保持一定数量的实例运行:instance_was、wake_ms;由请求启动的实例没有这样的行,请求行会说明)、instance.retired(从此不再给该实例任何请求,手头的请求结束后它就会离开:reason)、instance.deleted(reason;实例的最后一行)、output.dropped(实例一秒内打印的行数超过了机器保留的上限:lines、bytes、reason)、output.lost(输出在机器读取之前就已从实例中消失:bytes、reason)、output.unavailable(实例来自平台开始保留启动命令输出之前的模板)、logs.keep_off和logs.keep_on(从此该版本的输出只保存在机器上、不长期保留,以及从此重新长期保留:reason)、logs.restarted(写这一行的程序之前的那个机器程序没有按顺序停止就结束了:它最后时刻尚未保存的请求行和平台行缺失,实例打印的内容会继续读取;last_seen)、logs.gap(机器在保存了单个应用的全部上限后,丢弃了尚未上传到对象存储的行:reason为node_buffer,from、to、lines、bytes;最多每秒说明一次)。本调用的:logs.incomplete、logs.complete、logs.anew(machines_unreachable),以及logs.gap(永久缺失的行:reason为node_gone、log_gone或unreadable,from、to、lines,时间为该时段的开始)。export.dropped(日志行没有导出到项目的某个导出目标 (/v1/destinations):它们等待的时间超过了导出程序的上限,或者早于它能暂存的最后那部分:destination、destination_id、lines、from、to、reason;对于应用指标,未导出的是分钟,signal为metrics,用minutes代替lines)。export.failing(某个导出目标在该机器上接收该应用的日志或指标时变为failing:destination、destination_id、signal、since、error、next_try;每段失败期只说明一次,无论期间重试了多少次)以及export.recovered(它重新接收了一批数据,失败期就此结束:destination、destination_id、signal、since,期间未发给它的lines或minutes,rejected)。这三种都会作为一条记录发往其所指的导出目标,不发往其他目标。 - messagestringrequired
用一句话向人说明该事件。
- cursorstringrequired
- reasonoptionalstring
原因。
version_left:应用的流量已离开该版本,或者机器不再服务该应用。app_deleted:应用已被删除。broken:实例的端口不接受连接,或实例失败了。idle:空闲时间超过了实例的保留时长。deleted:被调用删除 (DELETE /v1/sandboxes/{id}),或被其机器删除而没有说明其他原因。丢弃输出的原因:rate_limit。丢失输出的原因:guest_buffer(两次读取之间打印的内容超过了实例的保留量)、deleted_unread(实例被就地删除,停止之前尚未交出的内容随之丢失)、agent_restarted(实例中保存输出的程序重新开始;丢失了多少无从得知)。logs.keep_off和logs.keep_on的原因:setting(应用的logs.keep)、over_plan(应用所属的账户已用完套餐包含的日志额度,且没有余额支付更多:这是控制平面的判断,即应用的logs_over_plan);对logs.keep_on而言,是结束的那个原因。logs.gap的原因:node_buffer(机器已保存了单个应用的全部上限,而对象存储连不上)、node_gone(机器已从记录中消失)、log_gone(机器丢失了它为该应用保存的内容,或重新开始保存)、unreadable(对象存储中有一个分段无法读取)。export.dropped的原因:destination_down(导出目标没有接收,或连不上)、destination_slow(它接收的速度慢于数据到来的速度)、egress_stopped(账户发往互联网的流量被停止了)、exporter_down(这些行还足够新时,机器上没有运行导出程序)、node_buffer(机器在导出目标接收之前丢弃了它们:应用已达到单个应用的全部保留上限)。 - fromoptionalstring
logs.gap:缺失的最早那一行的时间,或者从何时起缺失。export.dropped:未导出的最早那一行的时间。format: date-time - tooptionalstring
logs.gap:缺失的最晚那一行的时间,或者缺失到何时为止。export.dropped:未导出的最晚那一行的时间。format: date-time - took_msoptionalnumber | null
instance.made:创建所用的时间,单位为毫秒。 - from_pooloptionalboolean | null
instance.made:该实例是否为预先创建好、在等待的实例。 - keptoptionalboolean
instance.made:是否在没有请求的情况下创建,因为应用要保持一定数量的实例运行(其scale的min_instances)。这种实例的日志不以请求开头。 - howoptionalstring
instance.stopped:就地暂停,或者保存内存并停止其虚拟机。 - idle_msoptionalnumber
instance.stopped:已空闲多久,单位为毫秒。 - timesoptionalinteger
instance.stopped:这一行代表多少次停止。minimum: 1 - instance_wasoptionalpaused或asleep
instance.woken:实例被启动时所处的状态。 - wake_msoptionalnumber
instance.woken:启动所用的时间,单位为毫秒。minimum: 0 - linesoptionalinteger
output.dropped:多少行。logs.gap:各类行合计缺失多少行;对node_gone和log_gone为最多缺失的行数。export.dropped:多少行没有导出。以上均为 1 或更多。日志的export.recovered:导出目标失败期间有多少行没有发给它,被它拒绝或超出导出程序的上限;0 或更多。minimum: 0 - bytesoptionalinteger | null
output.dropped:这些行共有多少字节。output.lost:多少字节;不知道时为 null。node_buffer的logs.gap:其中输出行的text的字节数。 - last_seenoptionalstring | null
logs.restarted:之前的机器程序最后一次被看到在运行的时间,误差在一秒以内;它没有留下相关记录时为 null。format: date-time - machines_unreachableoptionalinteger
logs.incomplete、logs.complete、logs.anew:保存该应用日志行的机器中,现在有多少台连不上。minimum: 0 - destinationoptionalstring
export.dropped、export.failing、export.recovered:导出目标的名称。 - destination_idoptionalstring
export.dropped、export.failing、export.recovered:导出目标的 id。pattern: ^dst- - signaloptionallogs或metrics或traces
应用指标分钟数的
export.dropped:metrics。export.failing、export.recovered:导出目标接收的哪一类失败了:日志、指标或链路追踪。 - minutesoptionalinteger
指标的
export.dropped:多少分钟没有导出(from为第一分钟的开始,to为最后一分钟的结束),1 或更多。指标的export.recovered:导出目标失败期间有多少分钟没有发给它,0 或更多。minimum: 0 - spansoptionalinteger
链路追踪的
export.recovered:导出目标失败期间,应用请求的 span 有多少个没有发给它,0 或更多。(未发送的 span 没有export.dropped行:请求自己的那一行在日志中。)minimum: 0 - sinceoptionalstring
export.failing、export.recovered:这段失败期中第一次失败的尝试是何时进行的;同一段失败期的两行给出的时间相同。format: date-time - erroroptionalobject
export.failing:导出目标在该机器上变为失败时出了什么问题,与其状态给出的一致 (last_error)。- codestringrequired
用一个词说明原因:不会重发的响应(
status、redirect),会重发且持续了一分钟的响应(status为 429、502、503、504),不在公共互联网上的地址 (address),持续一分钟无法连接 (unreachable) 或没有及时响应 (no_answer)。 - statusinteger | nullrequired
响应的状态码;null:没有响应。
- messagestringrequired
它说了什么,或者为什么没有响应,导出目标的所有请求头的值都已去掉;什么都没说时为空。
maxLength: 512
- next_tryoptionalstring | null
export.failing:下次尝试该导出目标的时间。format: date-time - rejectedoptionalinteger
export.recovered:期间未发送的行(分钟、span)中有多少被导出目标拒绝;其余的则是等待时间超过了导出程序的暂存时长(行和分钟的export.dropped)。minimum: 0
- LogMark
- kindmarkrequired
- cursorstringrequired
- moreoptionalboolean
这次读取已读满单次读取对象存储的上限,并在这里结束:游标之后还有更多内容,读取方可以接着读。
{
"time": "2019-08-24T14:15:22Z",
"kind": "output",
"instance": "string",
"version": "string",
"stream": "stdout",
"text": "string",
"cut_bytes": 1,
"from": "template",
"cursor": "string"
}400
unknown_parameter;invalid_field:since 或 until 不是时间,instance 不是 id,kinds 指定了不存在的种类,follow 既不是 true 也不是 false,status 不是它接受的任何形式,stream 既不是 stdout 也不是 stderr,method、path、request_id、event 或 contains 为空或超出允许的长度;invalid_cursor:不是本调用给出的游标。
- 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:密钥没有调用所需的权限范围(错误信息会指明是哪一个);needs_api_key:使用的是运营方的密钥或 SSH 网关的密钥;account_held:账户因付款问题被冻结,除 GET /v1/account 外,用它的密钥发起的所有调用都会这样被拒绝,而且在检查权限范围之前就拒绝 (x-error-codes);installation_key_scope:限定于某个托管应用安装的密钥,用在了与该安装自身无关的调用上。(沙箱令牌会被转给其节点,节点对它没有的调用返回 404 no_such_route。)
- 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(已删除的应用在其日志行保留期内可以按 id 找到);version_not_found(应用没有该版本)。
- 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
429
too_many_followers:账户所有项目中跟踪应用日志的读取方数量,已达套餐允许同时跟踪的上限(GET /v1/account 的 logs.followers);retryable。不跟踪的读取从不会因此被拒绝。
- 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