云引擎常见问题
云引擎功能
云引擎都支持哪些语言?
目前支持 Node.js、Python、Java、PHP、.NET、Go 运行环境,也支持基于 Node.js 的 Web 前端项目,详见 云引擎服务总览。
如果你还需要其他运行环境的支持,欢迎向我们反馈。
云引擎支持托管纯静态网站吗?
支持,请看 云引擎 Web 前端应用运行环境。
云引擎支持 HTTPS 吗?
支持,在绑定自定义域名时可以上传 SSL 证书或自动管理证书。
绑定自定义域名时还可以配置「强制 HTTPS」来实现自动跳转。
部署更新云引擎会导致服务中断吗?
服务不会中断。在代码部署时,系统会优先启动使用新版本代码的实例,待新实例通过了健康检查,系统修改路由将请求转发至新实例后,再关闭旧版本的实例,让服务保持零中断。
云引擎和云函数是什么关系?
云引擎是一个托管后端服务的平台,适用于所有的 Web 后端应用,对于程序内部的逻辑没有侵入。
在此基础上,开发者可以选择在程序内接入云引擎的 SDK,来使用云函数和 Hook 等功能,云函数与 数据存储 服务有深度的整合,对于已经在使用数据存储服务的开发会非常方便。
不接入云引擎 SDK 也可以使用云函数以外的所有功能,云引擎也提供了业界广泛使用的 Redis 和 MySQL 供开发者存储数据。
云函数
云函数有哪些限制?
云函数是 TDS 提供的一个 相对受限 的自定义服务器端逻辑的功能,和我们的 SDK 有比较 深度的集成。我们将云函数设计为一种类似 RPC 的机制,在云函数中你只能关注参数和结果,而不能自定义超时时间、HTTP method、URL,不能读取和设置 Header。
如果希望更加自由地使用这些 HTTP 的语义化功能,或者希望使用第三方的框架提供标准的 RESTful API,请在你的应用中自行来处理 HTTP 请求而不是使用云函数。
云函数可以同时存在于多个分组么?
云引擎会自动将一个应用下的云函数请求转发到正确的分组,因此你可以同时在多个分组下使用云函数。
项目部署成功了,但云函数和 Hook 不可用?
为了支持云引擎的云函数和 Hook 功能,云引擎的管理程序会使用 /1.1/functions/_ops/metadatas 这个 URL 和 SDK 交互,请确保将这个 URL 交给 SDK 处理。
默认情况下,云引擎会尝试从 /1.1/functions/_ops/metadatas 获取云函数和 Hook 的元信息,如果失败,则云函数和 Hook 功能不可用,但不会中断部署。
如果希望在获取元信息失败后中断部署,可以在 leanengine.yaml 文件中指定 functionsMode 为 strict。
如果应用不使用云函数和 Hook 功能,那么你可以:
- 在
leanengine.yaml中不指定functionsMode,同时/1.1/functions/_ops/metadatas返回一个 HTTP404表示不使用云函数和 Hook 相关的功能; - 或者在
leanengine.yaml中指定functionsMode为disabled。注意,这种情况下,即使应用代码中定义了云函数和 Hook,Hook 也不会生效,云函数调用(通过 SDK 发起远程调用或通过 REST API 向 API 域名发起云函数调用)有可能因为被转发到错误的云引擎分组而失败。
部署中断,提示有同名云函数怎么办?
云引擎支持多个分组。
如果当前部署代码中部分云函数与其他组的同名,默认情况会提示错误并中断部署,防止意外重复定义云函数。
我们建议你移除不需要的云函数,毕竟重复定义的云函数并不易于理解和维护。
不过,你也可以通过在每次部署时额外指定 --overwrite-functions 参数强制替换其他组云函数的实现。