IBM Cloud Docs
IBM Cloudant 的服务更改和废弃

IBM Cloudant 的服务更改和废弃

持续变化

QuickJS
为加快索引建立速度,IBM Cloudant 取代 JavaScript 引擎 SpiderMonkeyQuickJS. 请阅读 以下内容 了解更多信息,或与我们 支持单

这可能会破坏某些应用程序,并可能需要进行更改以符合 QuickJS. 到目前为止,我们已将大部分账户迁移到 QuickJS,极少数账户可能会收到个别通知。极少数账户可能会收到个别通知。

即将发生的变化

传统认证
为加强安全性,Cloudant 将在未来几个月内启用账户临时锁定功能。在未来几个月内 使用不正确的凭据多次尝试登录后、将在一段时间内拒绝进一步的登录尝试。 要解锁您的 请稍等片刻,或更改密码后至少等待 5 分钟,以确保更改的密码在整个系统中传播。至少 5 分钟,以确保更改在整个系统中传播。

此处描述的临时锁定仅适用于传统(非 IAM)凭证。

IBM Cloudant 从 2025 年 3 月 1 日起,实例将限制为 200 dbs

从 3 月 3 日开始,新的 Cloudant 实例将限制在该实例中创建的数据库数量。

  • 每个 Cloudant 标准实例在任何时候最多只能有200个数据库。
  • 每个 Cloudant Lite实例在任何时候最多只能有20个数据库。
  • 该限制不适用于 2025 年 3 月 3 日之前创建的任何 Cloudant 实例。 这些情况将继续不受限制。

一旦达到限制,任何创建额外数据库的尝试都会收到一封 HTTP 403 回复。 Cloudant 实例的当前数据库数量可通过 /_api/v2/user/current/databases API调用获取,允许的数据库数量可从 /_api/v2/user/capacity/databases 端点获取。

如果一个应用程序总共需要超过200个数据库,那么它应该被配置为在多个 Cloudant 实例中存储数据,或者您可以联系支持人员,根据具体情况批准例外。

IBM Cloudant升级JavaScript引擎

详细信息

设计文档中使用的JavaScript引擎正在升级,以支持 更新的语言功能,并优化索引构建速度。 但是 有些JavaScript语言功能已被弃用,有些则会改变它们的 行为:

  • RegExp.$1...$9 正则表达式功能已被弃用。 $1...... "$9 属性将返回 "undefined。 例如:

上一个结果

> v="abc"
"abc"

> v.match(/(b)/)
["b", "b"]

> RegExp.$1
"b"

新用途:

> v="abc"
"abc"

> RegExp.$1
undefined
  • Date.prototype.toString() 的结果不包括时区名称,只有偏移量。 例如:

上一个结果

>  (new Date()).toString();
"Thu Sep 05 2024 17:04:03 GMT-0400 (EDT)"

新结果

> (new Date()).toString();
"Thu Sep 05 2024 17:03:23 GMT-0400"
  • for each (var x in ...)经验已被弃用

  • E4X(ECMAScript for XML)已被弃用

上一个结果

> var xml = <root><x></x></root>

> xml.(x)
<root>
 <x/>
</root>

新结果

> var xml = <root><x></x></root>
typein:1:11 SyntaxError: expected expression, got '<':
  • Date.prototype.toLocaleFormat() 函数已删除。

上一个结果

> d = new Date("Dec 1, 2015 3:22:46 PM")
(new Date(1449001366000))

> d.toLocaleFormat("%Y-%m-%d")
"2015-12-01"

新结果

> d = new Date("Dec 1, 2015 3:22:46 PM")
(new Date(1449001366000))

> d.toLocaleFormat("%Y-%m-%d")
typein:2:3 TypeError: d.toLocaleFormat is not a function
  • Date.prototype.toLocaleString() 曾忽略本地字符串,新版本将返回正确的格式:

上一个结果

> (new Date("2019-01-15T19:32:52.915Z")).toLocaleString('en-US')
"Tue Jan 15 14:32:52 2019"

新结果

> (new Date("2019-01-15T19:32:52.915Z")).toLocaleString('en-US')
"01/15/2019, 02:32:52 PM"
  • 过去,"function(){...} 表达式后面的无效表达式会被 会被忽略,但今后会出现语法错误。 例如,设计 视图函数将开始返回 "compilation_error 结果为 "400 HTTP

  • 对象键顺序已更改:

上一个结果

> r={}; ["Xyz", "abc", 1].forEach(function(v) {r[v]=v;}); Object.keys(r)
["Xyz", "abc", "1"]

新结果

> r={}; ["Xyz", "abc", 1].forEach(function(v) {r[v]=v;}); Object.keys(r)
["1", "Xyz", "abc"]
  • String.prototype.match(undefined) 过去返回'null,现在将返回'[""]

上一个结果

> "abc".match(undefined)
null

新成果

> "abc".match(undefined)
[""]

更多详情,请参阅 Cloudant博客)。

IBM Cloudant 废弃 _show_list_update_rewrite 函数

详细信息

请注意,不推荐使用以下 Cloudant 功能部件:

  • show functions-用于在从数据库请求单个文档时修改响应的格式。
  • list 函数-类似于 show 函数,但应用于 MapReduce 视图的输出。
  • 重写函数-用于在 CouchApps中体现路由逻辑。
  • 更新函数-用于在数据库中执行业务逻辑,例如向所有文档写入添加时间戳记。

这四个功能在 Apache CouchDB 中已不推荐使用,并且已安排从 Apache CouchDB 4.0中的代码中除去。 这些功能都不是在 Cloudant SDK 中建模的。

虽然这些功能已被弃用,但仍不会从服务中删除。{ :important}

我们可能会在未来完全移除这些功能,但会让它们暂时保持可操作状态,让客户有时间修改其应用程序。 作为不推荐使用的功能部件,它们不会显示在我们的文档中,不建议使用这些功能部件,我们的支持团队也不会支持这些功能部件。

可以在 Cloudant 博客 此处找到这些函数的替代方法。

IBM Cloudant 除去复制器端点代理支持

详细信息

已除去复制器端点代理支持。 设置了 proxysource_proxytarget_proxy 字段的复制作业将因错误而失败。