适用于 SQL API 的 Azure Cosmos DB Node.js SDK:发行说明和资源Azure Cosmos DB Node.js SDK for SQL API: Release notes and resources

资源Resource 链接Link
下载 SDKDownload SDK NPMNPM
API 文档API Documentation JavaScript SDK 参考文档JavaScript SDK reference documentation
SDK 安装说明SDK installation instructions 安装说明Installation instructions
参与 SDKContribute to SDK GitHubGitHub
示例Samples Node.js 代码示例Node.js code samples
入门教程Getting started tutorial JavaScript SDK 入门Get started with the JavaScript SDK
Web 应用教程Web app tutorial 使用 Azure Cosmos DB 创建 Node.js Web 应用程序Build a Node.js web application using Azure Cosmos DB
当前受支持的平台Current supported platform Node.js v12. x - SDK 版本 3.x.xNode.js v12.x - SDK Version 3.x.x
Node.js v10.x - SDK 版本 3.x.xNode.js v10.x - SDK Version 3.x.x
Node.js v8.x - SDK 版本 3.x.xNode.js v8.x - SDK Version 3.x.x
Node.js v6.x - SDK 版本 2.x.xNode.js v6.x - SDK Version 2.x.x
Node.js v4.2.0 - SDK 版本 1.x.xNode.js v4.2.0- SDK Version 1.x.x
Node.js v0.12 - SDK 版本 1.x.xNode.js v0.12- SDK Version 1.x.x
Node.js v0.10 - SDK 版本 1.x.xNode.js v0.10- SDK Version 1.x.x

发行说明Release notes

3.1.03.1.0

  • 将默认 ResponseContinuationTokenLimitInKB 设置为 1kb。Set default ResponseContinuationTokenLimitInKB to 1kb. 默认情况下,我们会将此项限制为 1kb,以避免长标头(Node.js 具有多区域标头大小限制)。By default, we are capping this to 1kb to avoid long headers (Node.js has a multiple-regional header size limit). 用户可以设置此字段以允许使用更长的标头,这有助于后端优化查询执行。A user may set this field to allow for longer headers, which can help the backend optimize query execution.
  • 删除 disableSSLVerification。Remove disableSSLVerification. 此选项具有 #388 中所述的新替代方法This option has new alternatives described in #388

3.0.43.0.4

  • 允许 initialHeaders 显式设置分区键标头Allow initialHeaders to explicitly set partition key header
  • 使用包 .json# 文件来阻止发布外来文件Use package.json#files to prevent extraneous files from being published
  • 修复了旧版本 node+v8 上的路由映射排序错误Fix routing map sort error on older version of node+v8
  • 修复了用户提供部分重试选项时遇到的 bugFixes bug when user supplies partial retry options

3.0.33.0.3

  • 阻止 Webpack 解析要求调用的模块Prevent Webpack from resolving modules called with require

3.0.23.0.2

  • 修复了在聚合查询中 RU 总是被报告为 0 的长期未解决的 bugFixes a long outstanding bug where RUs were always being reported as 0 for aggregate queries

3.0.03.0.0

🎉 v3 版本!🎉 v3 release! 🎉 诸多新功能、bug 修复和一些重大变更。🎉 Many new features, bug fixes, and a few breaking changes. 此版本的主要目标:Primary goals of this release:

  • 实现主要新功能Implement major new features
    • DISTINCT 查询DISTINCT queries
    • LIMIT/OFFSET 查询LIMIT/OFFSET queries
    • 用户可取消请求User cancelable requests
  • 更新到最新的 Cosmos REST API 版本,其中所有容器都可以无限缩放Update to the latest Cosmos REST API version where all containers have unlimited scale
  • 更轻松地在浏览器中使用 CosmosMake it easier to use Cosmos from the browser
  • 更好地适应新的 Azure JS SDK 准则Better align with the new Azure JS SDK guidelines

重大变更的迁移指南Migration guide for breaking changes

改进了客户端构造函数选项Improved client Constructor options

简化了构造函数选项:Constructor options have been simplified:

  • masterKey 已重命名为 key 并移至顶层masterKey was renamed key and moved to the top-level
  • 之前在 options.auth 下的属性已移至顶层Properties previously under options.auth have moved to the top-level
// v2
const client = new CosmosClient({
    endpoint: "https://your-database.cosmos.azure.com",
    auth: {
        masterKey: "your-primary-key"
    }
})

// v3
const client = new CosmosClient({
    endpoint: "https://your-database.cosmos.azure.com",
    key: "your-primary-key"
})
简化了 QueryIterator APISimplified QueryIterator API

在 v2 中,可以通过多种不同的方法来迭代或检索查询中的结果。In v2 there were many different ways to iterate or retrieve results from a query. 我们已尝试简化 v3 API 并删除类似或重复的 API:We have attempted to simplify the v3 API and remove similar or duplicate APIs:

  • 删除 iterator.next() 和 iterator.current()。Remove iterator.next() and iterator.current(). 使用 fetchNext() 获取结果页。Use fetchNext() to get pages of results.
  • 删除 iterator.forEach()。Remove iterator.forEach(). 改用异步迭代器。Use async iterators instead.
  • iterator.executeNext() 已重命名为 iterator.fetchNext()iterator.executeNext() renamed to iterator.fetchNext()
  • iterator.toArray() 已重命名为 iterator.fetchAll()iterator.toArray() renamed to iterator.fetchAll()
  • 页面现在是正确的响应对象,而不是纯 JS 对象Pages are now proper Response objects instead of plain JS objects
  • const 容器 = client.database(dbId).container(containerId)const container = client.database(dbId).container(containerId)
// v2
container.items.query('SELECT * from c').toArray()
container.items.query('SELECT * from c').executeNext()
container.items.query('SELECT * from c').forEach(({ body: item }) => { console.log(item.id) })

// v3
container.items.query('SELECT * from c').fetchAll()
container.items.query('SELECT * from c').fetchNext()
for await(const { result: item } in client.databases.readAll().getAsyncIterator()) {
    console.log(item.id)
}
固定容器现已分区Fixed containers are now partitioned

Cosmos 服务现支持所有容器上的分区键,包括以前创建为固定容器的分区键。The Cosmos service now supports partition keys on all containers, including those that were previously created as fixed containers. v3 SDK 更新为实现此更改的最新 API 版本,但不会中断。The v3 SDK updates to the latest API version that implements this change, but it is not breaking. 如果没有为操作提供分区键,则默认为适用于所有现有容器和文档的系统键。If you do not supply a partition key for operations, we will default to a system key that works with all your existing containers and documents.

为存储过程删除了 upsertUpsert removed for stored procedures

以前允许将 upsert 用于非分区集合,但通过 API 版本更新,所有集合均已分区,因此我们将其完全删除。Previously upsert was allowed for non-partitioned collections, but with the API version update, all collections are partitioned so we removed it entirely.

项读取不会引发 404 错误Item reads will not throw on 404

const 容器 = client.database(dbId).container(containerId)const container = client.database(dbId).container(containerId)

// v2
try {
    container.items.read(id, undefined)
} catch (e) {
    if (e.code === 404) { console.log('item not found') }
}

// v3
const { result: item }  = container.items.read(id, undefined)
if (item === undefined) { console.log('item not found') }
默认多区域写入Default multi-region write

如果 Cosmos 配置支持,SDK 现将默认写入多个区域。The SDK will now write to multiple regions by default if your Cosmos configuration supports it. 这在以前是选择行为。This was previously opt-in behavior.

相应的错误对象Proper error objects

失败请求现会引发相应的错误或错误子类。Failed requests now throw proper Error or subclasses of Error. 以前,它们会引发纯 JS 对象。Previously they threw plain JS objects.

新增功能New features

用户可取消请求User-cancelable requests

通过在内部进行提取,可以使用浏览器 AbortController API 来支持用户可取消操作。The move to fetch internally allows us to use the browser AbortController API to support user-cancelable operations. 对于可能正在进行多个请求的操作(如跨分区查询),该操作的所有请求都将被取消。In the case of operations where multiple requests are potentially in progress (like cross partition queries), all requests for the operation will be canceled. 新式浏览器用户将拥有 AbortController。Modern browser users will already have AbortController. Node.js 用户需要使用填充代码库Node.js users will need to use a polyfill library

 const controller = new AbortController()
 const {result: item} = await items.query('SELECT * from c', { abortSignal: controller.signal});
 controller.abort()
在 db/容器创建操作过程中设置吞吐量Set throughput as part of db/container create operation
const { database }  = client.databases.create({ id: 'my-database', throughput: 10000 })
database.containers.create({ id: 'my-container', throughput: 10000 })
@azure/cosmos-sign

标头令牌生成已拆分为新库 @azure/cosmos-sign。Header token generation was split out into a new library, @azure/cosmos-sign. 任何直接调用 Cosmos REST API 的用户都可以使用它来签署标头,使用的代码与我们在 @azure/cosmos 中调用的代码相同。Anyone calling the Cosmos REST API directly can use this to sign headers using the same code we call inside @azure/cosmos.

生成 ID 的 UUIDUUID for generated IDs

v2 具有生成项 ID 的自定义代码。v2 had custom code to generate item IDs. 我们已切换到众所周知的、受维护的社区库 UUID。We have switched to the well known and maintained community library uuid.

连接字符串Connection strings

现在可以传递从 Azure 门户复制的连接字符串:It is now possible to pass a connection string copied from the Azure portal:

const client = new CosmosClient("AccountEndpoint=https://test-account.documents.azure.cn:443/;AccountKey=c213asdasdefgdfgrtweaYPpgoeCsHbpRTHhxuMsTaw==;")
Add DISTINCT and LIMIT/OFFSET queries (#306)
 const { results } = await items.query('SELECT DISTINCT VALUE r.name FROM ROOT').fetchAll()
 const { results } = await items.query('SELECT * FROM root r OFFSET 1 LIMIT 2').fetchAll()

改进了浏览器体验Improved browser experience

尽管可以在浏览器中使用 v2 SDK,但这并不是理想体验。While it was possible to use the v2 SDK in the browser it was not an ideal experience. 需要对多个 node.js 内置库填充代码,并使用 Webpack 或 Parcel 之类的捆绑程序。You needed to polyfill several node.js built-in libraries and use a bundler like Webpack or Parcel. v3 SDK 为浏览器用户提供了更好的全新体验。The v3 SDK makes the out of the box experience much better for browser users.

  • 将内部请求替换为 fetch (#245)Replace request internals with fetch (#245)
  • 不使用缓冲区 (#330)Remove usage of Buffer (#330)
  • 不使用节点 builtin,以支持通用包/API (#328)Remove node builtin usage in favor of universal packages/APIs (#328)
  • 切换到节点中止控制器 (#294)Switch to node-abort-controller (#294)

Bug 修复Bug fixes

  • 修复了产品/服务读取并返回产品/服务测试 (#224)Fix offer read and bring back offer tests (#224)
  • 修复了 EnableEndpointDiscovery (#207)Fix EnableEndpointDiscovery (#207)
  • 修复了分页结果上缺少的 RU (#360)Fix missing RUs on paginated results (#360)
  • 展开 SQL 查询参数类型 (#346)Expand SQL query parameter type (#346)
  • 向 ItemDefinition 添加 ttl (#341)Add ttl to ItemDefinition (#341)
  • 修复了 CP 查询指标 (#311)Fix CP query metrics (#311)
  • 将 activityId 添加到 FeedResponse (#293)Add activityId to FeedResponse (#293)
  • 将 _ts 类型从字符串转换为数字 (#252)(#295)Switch _ts type from string to number (#252)(#295)
  • 修复了请求费用聚合 (#289)Fix Request Charge Aggregation (#289)
  • 允许空字符串分区键 (#277)Allow blank string partition keys (#277)
  • 将字符串添加到冲突查询类型 (#237)Add string to conflict query type (#237)
  • 将 uniqueKeyPolicy 添加到容器 (#234)Add uniqueKeyPolicy to container (#234)

工程系统Engineering systems

虽然这些更改不总是那么明显,但可以帮助我们的团队更快地交付更出色的代码。Not always the most visible changes, but they help our team ship better code, faster.

  • 为生产版本使用汇总 (#104)Use rollup for production builds (#104)
  • 更新到 Typescript 3.5 (#327)Update to Typescript 3.5 (#327)
  • 转换为 TS 项目引用。Convert to TS project references. 提取测试文件夹 (#270)Extract test folder (#270)
  • 启用 noUnusedLocals 和 noUnusedParameters (#275)Enable noUnusedLocals and noUnusedParameters (#275)
  • 用于 CI 的 Azure Pipelines YAML 版本 (#298)Azure Pipelines YAML for CI builds (#298)

2.1.52.1.5

  • 无需更改代码。No code changes. 修复了在 2.1.4 包中包含一些额外文件的问题。Fixes an issue where some extra files were included in 2.1.4 package.

2.1.42.1.4

  • 修复了重试策略内的区域故障转移Fix regional failover within retry policy
  • 修复了 ChangeFeed hasMoreResults 属性Fix ChangeFeed hasMoreResults property
  • 开发依赖项更新Dev dependency updates
  • 添加了 PolicheckExclusions.txtAdd PolicheckExclusions.txt

2.1.32.1.3

  • 将 _ts 类型从字符串转换为数字Switch _ts type from string to number
  • 修复了默认索引测试Fix default indexing tests
  • 将 uniqueKeyPolicy 向后移植到 v2Backport uniqueKeyPolicy to v2
  • 演示和演示调试修补程序Demo and demo debugging fixes

2.1.22.1.2

  • 向后移植 v3 分支中的产品/服务修补程序Backport offer fixes from v3 branch
  • 修复了 executeNext() 类型签名中的 bugFix bug in executeNext() type signature
  • 拼写错误修复Typo fixes

2.1.12.1.1

  • 版本重构。Build restructuring. 允许在生成时拉取 SDK 版本。Allows pulling the SDK version at build time.

2.1.02.1.0

新功能New Features

  • 添加了 ChangeFeed 支持 (#196)Added ChangeFeed support (#196)
  • 添加了用于索引的 MultiPolygon 数据类型 (#191)Added MultiPolygon datatype for indexing (#191)
  • 向构造函数添加“key”属性作为 masterKey 的别名 (#202)Add "key" property to constructor as alias for masterKey (#202)

修复项Fixes

  • 修复了 next() 在迭代器上返回错误值的 bugFix bug where next() was returning incorrect value on iterator

工程改进Engineering Improvements

  • 添加了对 typescript 使用的集成测试 (#199)Add integration test for typescript consumption (#199)
  • 启用直接从 GitHub 安装 (#194)Enable installing directly from GitHub (#194)

2.0.52.0.5

  • 添加节点代理类型的接口。Adds interface for node Agent type. Typescript 用户不再需要安装 @types/node 作为依赖项Typescript users no longer have to install @types/node as a dependency
  • 现在将正确地采用首选位置Preferred locations are now properly honored
  • 对参与开发人员文档的改进Improvements to contributing developer documentation
  • 各种拼写错误修复Various typo fixes

2.0.42.0.4

  • 修复了 2.0.3 中引入的类型定义问题Fixes type definition issue introduced in 2.0.3

2.0.32.0.3

  • 删除了 big-integer 依赖项Remove big-integer dependency
  • 切换到 AsyncIterable 类型的引用指令。Switch to reference directives for AsyncIterable type. Typescript 用户不再需要自定义其“lib”设置。Typescript users no longer have to customize their "lib" setting.
  • 拼写错误修复Typo Fixes

2.0.22.0.2

  • 修复了自述文件链接Fix readme links

2.0.12.0.1

  • 修复了重试接口实现Fix retry interface implementation

2.0.02.0.0

  • JavaScript SDK 版本 2.0.0 正式发布GA of Version 2.0.0 of the JavaScript SDK
  • 添加了对多区域写入的支持。Added support for multi-region writes.

2.0.0-32.0.0-3

  • RC1 版本 2.0.0 的 JavaScript SDK(公共预览版)。RC1 of Version 2.0.0 of the JavaScript SDK for public preview.
  • 新对象模型,使用顶级 CosmosClient 和方法拆分成相关的数据库、容器和项类。New object model, with top-level CosmosClient and methods split across relevant Database, Container, and Item classes.
  • 支持承诺Support for promises.
  • 转换为 TypeScript 的 SDK。SDK converted to TypeScript.

1.14.41.14.4

  • npm 文档已修复。npm documentation fixed.

1.14.31.14.3

  • 添加了对连接问题的默认重试的支持。Added support for default retries on connection issues.
  • 添加了对读取集合更改源的支持。Added support to read collection change feed.
  • 修复了间歇性导致“读取会话不可用”的会话一致性 bug。Fixed session consistency bug that intermittently caused "read session not available".
  • 添加了对查询指标的支持。Added support for query metrics.
  • 修改了 http 代理的最大连接数。Modified http Agent's maximum number of connections.

1.14.21.14.2

  • 将文档更新为了引用 Azure Cosmos DB 而非 Azure DocumentDB。Updated documentation to reference Azure Cosmos DB instead of Azure DocumentDB.
  • 在 ConnectionPolicy 中增加了对 proxyUrl 设置的支持。Added Support for proxyUrl setting in ConnectionPolicy.

1.14.11.14.1

  • 微调了区分大小写的文件系统。Minor fix for case sensitive file systems.

1.14.01.14.0

1.13.01.13.0

  • 防拆分跨分区查询。Split proofed cross partition queries.
  • 添加对带有前导和尾随斜杠(和对应测试)的资源链接的支持。Adds supports for resource link with leading and trailing slashes (and corresponding tests).

1.12.21.12.2

  • npm 文档已修复。npm documentation fixed.

1.12.11.12.1

  • 修复了 executeStoredProcedure 中的一个 bug,其中涉及的文档具有特殊 Unicode 字符(LS、PS)。Fixed a bug in executeStoredProcedure where documents involved had special Unicode characters (LS, PS).
  • 修复了在分区键中处理含 Unicode 字符的文档时的 bug。Fixed a bug in handling documents with Unicode characters in the partition key.
  • 修复使用名称媒体创建集合的支持。Fixed support for creating collections with the name media. GitHub 问题 #114。GitHub issue #114.
  • 修复了权限授权令牌的支持。Fixed support for permission authorization token. GitHub 问题 #178。GitHub issue #178.

1.12.01.12.0

  • 添加了对称为“ConsistentPrefix”的新一致性级别的支持。Added support for a new consistency level called ConsistentPrefix.
  • 添加了对 UriFactory 的支持。Added support for UriFactory.
  • 修复了 Unicode 支持 bug。Fixed a Unicode support bug. GitHub 问题 #171。GitHub issue #171.

1.11.01.11.0

  • 添加了对聚合查询(COUNT、MIN、MAX、SUM、AVG)的支持。Added the support for aggregation queries (COUNT, MIN, MAX, SUM, and AVG).
  • 现可控制跨分区查询的并行度。Added the option for controlling degree of parallelism for cross partition queries.
  • Azure Cosmos DB 模拟器运行时,添加了禁用 TLS 验证的选项。Added the option for disabling TLS verification when running against Azure Cosmos DB Emulator.
  • 将分区集合上的最小吞吐量从 10,100 RU/s 降低到 2500 RU/s。Lowered minimum throughput on partitioned collections from 10,100 RU/s to 2500 RU/s.
  • 修复了针对单分区集合的继续标记 bug。Fixed the continuation token bug for single partition collection. GitHub 问题 #107。GitHub issue #107.
  • 修复了将 0 处理成单个参数时出现的 executeStoredProcedure bug。Fixed the executeStoredProcedure bug in handling 0 as single param. GitHub 问题 #155。GitHub issue #155.

1.10.21.10.2

  • 修复了 user-agent 标头,使之包括 SDK 版本。Fixed user-agent header to include the SDK version.
  • 细微代码清理。Minor code cleanup.

1.10.11.10.1

  • 使用 SDK 定位模拟器 (hostname=localhost) 时禁用 TLS 验证。Disabling TLS verification when using the SDK to target the emulator(hostname=localhost).
  • 添加了在存储过程执行期间对启用脚本日志记录的支持。Added support for enabling script logging during stored procedure execution.

1.10.01.10.0

  • 添加了对跨分区并行查询的支持。Added support for cross partition parallel queries.
  • 添加了对分区集合的 TOP/ORDER BY 查询支持。Added support for TOP/ORDER BY queries for partitioned collections.

1.9.01.9.0

  • 添加了对限制请求的重试策略支持。Added retry policy support for throttled requests. (限制请求收到请求速率太大的异常,错误代码 429。)默认情况下,出现错误代码 429 时,Azure Cosmos DB 将针对每个请求重试九次,具体取决于响应标头中的 retryAfter 时间。(Throttled requests receive a request rate too large exception, error code 429.) By default, Azure Cosmos DB retries nine times for each request when error code 429 is encountered, honoring the retryAfter time in the response header. 如果想要忽略重试之间由服务器返回的 retryAfter 时间,现在可以对 ConnectionPolicy 对象设置固定的重试间隔时间,并将其作为 RetryOptions 属性的一部分。A fixed retry interval time can now be set as part of the RetryOptions property on the ConnectionPolicy object if you want to ignore the retryAfter time returned by server between the retries. Azure Cosmos DB 现在对每个要中止的请求等待最多 30 秒(不考虑重试次数),并返回对错误代码 429 作出的响应。Azure Cosmos DB now waits for a maximum of 30 seconds for each request that is being throttled (irrespective of retry count) and returns the response with error code 429. 还可以在 ConnectionPolicy 对象的 RetryOptions 属性中替代该时间。This time can also be overridden in the RetryOptions property on ConnectionPolicy object.
  • Cosmos DB 现在将 x-ms-throttle-retry-count 和 x-ms-throttle-retry-wait-time-ms 作为每个请求的响应标头返回,以表示限制重试计数和重试之间请求所等待的累计时间。Cosmos DB now returns x-ms-throttle-retry-count and x-ms-throttle-retry-wait-time-ms as the response headers in every request to denote the throttle retry count and the cumulative time the request waited between the retries.
  • 已添加 RetryOptions 类,从而公开了 ConnectionPolicy 类上可用于替代某些默认重试选项的 RetryOptions 属性。The RetryOptions class was added, exposing the RetryOptions property on the ConnectionPolicy class that can be used to override some of the default retry options.

1.8.01.8.0

  • 添加了对多区域数据库帐户的支持。Added the support for multi-region database accounts.

1.7.01.7.0

  • 添加了对文档生存时间 (TTL) 功能的支持。Added the support for Time To Live(TTL) feature for documents.

1.6.01.6.0

1.5.61.5.6

  • 修复了 RangePartitionResolver.resolveForRead Bug,其会由于结果的错误 concat,它不返回链接。Fixed RangePartitionResolver.resolveForRead bug where it was not returning links due to a bad concat of results.

1.5.51.5.5

  • 修复了 hashPartitionResolver resolveForRead():当没有提供分区键时抛出异常,而不是返回所有已注册链接的列表。Fixed hashPartitionResolver resolveForRead(): When no partition key supplied was throwing exception, instead of returning a list of all registered links.

1.5.41.5.4

  • 修复了问题 #100 - 专用 HTTPS 代理:避免因 Azure Cosmos DB 用途而修改多区域代理。Fixes issue #100 - Dedicated HTTPS Agent: Avoid modifying the multiple-regional agent for Azure Cosmos DB purposes. 对所有 lib 的请求均使用专用代理。Use a dedicated agent for all of the lib's requests.

1.5.31.5.3

  • 修复了问题 #81 - 正确处理媒体 ID 中的短划线。Fixes issue #81 - Properly handle dashes in media IDs.

1.5.21.5.2

  • 修复了问题 #95 - EventEmitter 侦听器泄漏警告。Fixes issue #95 - EventEmitter listener leak warning.

1.5.11.5.1

  • 修复了问题 #92 - 对区分大小写的系统,将文件夹 Hash 重命名为 hash。Fixes issue #92 - rename folder Hash to hash for case-sensitive systems.

1.5.01.5.0

  • 通过添加哈希和范围分区解析程序来实现分片支持。Implement sharding support by adding hash & range partition resolvers.

1.4.01.4.0

  • 实现 Upsert。Implement Upsert. DocumentClient 上的新 upsertXXX 方法。New upsertXXX methods on documentClient.

1.3.01.3.0

  • 跳过以使版本号与其他 SDK 相符。Skipped to bring version numbers in alignment with other SDKs.

1.2.21.2.2

  • 将 Q 承诺包装拆分到新的存储库。Split Q promises wrapper to new repository.
  • 更新到 npm 注册表的程序包文件。Update to package file for npm registry.

1.2.11.2.1

  • 实现基于 ID 的路由。Implements ID Based Routing.
  • 修复了问题 #49 - 当前属性与方法 current() 发生冲突。Fixes Issue #49 - current property conflicts with method current().

1.2.01.2.0

  • 添加对地理空间索引的支持。Added support for GeoSpatial index.
  • 验证所有资源的 ID 属性。Validates ID property for all resources. 资源的 ID 不能包含 ?、/、#、//、字符或以空格结尾。IDs for resources cannot contain ?, /, #, //, characters or end with a space.
  • 将新标头“索引转换进度”添加到 ResourceResponse。Adds new header "index transformation progress" to ResourceResponse.

1.1.01.1.0

  • 实现 V2 索引策略。Implements V2 indexing policy.

1.0.31.0.3

  • 问题 #40 - 已在核心和承诺 SDK 中实现 eslint 和 grunt 配置。Issue #40 - Implemented eslint and grunt configurations in the core and promise SDK.

1.0.21.0.2

  • 问题 #45 - 承诺包装器不包括错误的标头。Issue #45 - Promises wrapper does not include header with error.

1.0.11.0.1

  • 通过添加 readConflicts、readConflictAsync 和 queryConflicts 实现了查询冲突的功能。Implemented ability to query for conflicts by adding readConflicts, readConflictAsync, and queryConflicts.
  • 更新了 API 文档。Updated API documentation.
  • 问题 #41 - client.createDocumentAsync 错误。Issue #41 - client.createDocumentAsync error.

1.0.01.0.0

  • GA SDK。GA SDK.

发布和停用日期Release & Retirement Dates

Azure 会在停用 SDK 时至少提前 12 个月发出通知,以便用户顺利转换为更高版本/受支持版本。Azure provides notification at least 12 months in advance of retiring an SDK in order to smooth the transition to a newer/supported version. 新特性和功能以及优化仅添加到当前 SDK,因此建议始终尽早升级到最新的 SDK 版本。New features and functionality and optimizations are only added to the current SDK, as such it is recommended that you always upgrade to the latest SDK version as early as possible.

版本Version 发布日期Release Date 停用日期Retirement Date
3.1.03.1.0 2019 年 7 月 26 日July 26, 2019 ---
3.0.43.0.4 2019 年 7 月 22 日July 22, 2019 ---
3.0.33.0.3 2019 年 7 月 17 日July 17, 2019 ---
3.0.23.0.2 2019 年 7 月 9 日July 9, 2019 ---
3.0.03.0.0 2019 年 6 月 28 日June 28, 2019 ---
2.1.52.1.5 2019 年 3 月 20 日March 20, 2019 ---
2.1.42.1.4 2019 年 3 月 15 日March 15, 2019 ---
2.1.32.1.3 2019 年 3 月 8 日March 8, 2019 ---
2.1.22.1.2 2019 年 1 月 28 日January 28, 2019 ---
2.1.12.1.1 2018 年 12 月 5 日December 5, 2018 ---
2.1.02.1.0 2018 年 12 月 4 日December 4, 2018 ---
2.0.52.0.5 2018 年 11 月 7 日November 7, 2018 ---
2.0.42.0.4 2018 年 10 月 30 日October 30, 2018 ---
2.0.32.0.3 2018 年 10 月 30 日October 30, 2018 ---
2.0.22.0.2 2018 年 10 月 10 日October 10, 2018 ---
2.0.12.0.1 2018 年 9 月 25 日September 25, 2018 ---
2.0.02.0.0 2018 年 9 月 24 日September 24, 2018 ---
2.0.0-3 (RC)2.0.0-3 (RC) 2018 年 8 月 2 号August 2, 2018 ---
1.14.41.14.4 2018 年 5 月 3 日May 03, 2018 2020 年 8 月 30 日August 30, 2020
1.14.31.14.3 2018 年 5 月 3 日May 03, 2018 2020 年 8 月 30 日August 30, 2020
1.14.21.14.2 2017 年 12 月 21 日December 21, 2017 2020 年 8 月 30 日August 30, 2020
1.14.11.14.1 2017 年 11 月 10 日November 10, 2017 2020 年 8 月 30 日August 30, 2020
1.14.01.14.0 2017 年 11 月 9 日November 9, 2017 2020 年 8 月 30 日August 30, 2020
1.13.01.13.0 2017 年 10 月 11 日October 11, 2017 2020 年 8 月 30 日August 30, 2020
1.12.21.12.2 2017 年 8 月 10 日August 10, 2017 2020 年 8 月 30 日August 30, 2020
1.12.11.12.1 2017 年 8 月 10 日August 10, 2017 2020 年 8 月 30 日August 30, 2020
1.12.01.12.0 2017 年 5 月 10 日May 10, 2017 2020 年 8 月 30 日August 30, 2020
1.11.01.11.0 2017 年 3 月 16 日March 16, 2017 2020 年 8 月 30 日August 30, 2020
1.10.21.10.2 2017 年 1 月 27 日January 27, 2017 2020 年 8 月 30 日August 30, 2020
1.10.11.10.1 2016 年 12 月 22 日December 22, 2016 2020 年 8 月 30 日August 30, 2020
1.10.01.10.0 2016 年 10 月 3 日October 03, 2016 2020 年 8 月 30 日August 30, 2020
1.9.01.9.0 2016 年 7 月 7 日July 07, 2016 2020 年 8 月 30 日August 30, 2020
1.8.01.8.0 2016 年 6 月 14 日June 14, 2016 2020 年 8 月 30 日August 30, 2020
1.7.01.7.0 2016 年 4 月 26 日April 26, 2016 2020 年 8 月 30 日August 30, 2020
1.6.01.6.0 2016 年 3 月 29 日March 29, 2016 2020 年 8 月 30 日August 30, 2020
1.5.61.5.6 2016 年 3 月 8 日March 08, 2016 2020 年 8 月 30 日August 30, 2020
1.5.51.5.5 2016 年 2 月 2 日February 02, 2016 2020 年 8 月 30 日August 30, 2020
1.5.41.5.4 2016 年 2 月 1 日February 01, 2016 2020 年 8 月 30 日August 30, 2020
1.5.21.5.2 2016 年 1 月 26 日January 26, 2016 2020 年 8 月 30 日August 30, 2020
1.5.21.5.2 2016 年 1 月 22日January 22, 2016 2020 年 8 月 30 日August 30, 2020
1.5.11.5.1 2016 年 1 月 4 日January 4, 2016 2020 年 8 月 30 日August 30, 2020
1.5.01.5.0 2015 年 12 月 31 日December 31, 2015 2020 年 8 月 30 日August 30, 2020
1.4.01.4.0 2015 年 10 月 6 日October 06, 2015 2020 年 8 月 30 日August 30, 2020
1.3.01.3.0 2015 年 10 月 6 日October 06, 2015 2020 年 8 月 30 日August 30, 2020
1.2.21.2.2 2015 年 9 月 10日September 10, 2015 2020 年 8 月 30 日August 30, 2020
1.2.11.2.1 2015 年 8 月 15日August 15, 2015 2020 年 8 月 30 日August 30, 2020
1.2.01.2.0 2015 年 8 月 5 日August 05, 2015 2020 年 8 月 30 日August 30, 2020
1.1.01.1.0 2015 年 7 月 9 日July 09, 2015 2020 年 8 月 30 日August 30, 2020
1.0.31.0.3 2015 年 6 月 4 日June 04, 2015 2020 年 8 月 30 日August 30, 2020
1.0.21.0.2 2015 年 5 月 23 日May 23, 2015 2020 年 8 月 30 日August 30, 2020
1.0.11.0.1 2015年 5 月 15日May 15, 2015 2020 年 8 月 30 日August 30, 2020
1.0.01.0.0 2015 年 4 月 8 日April 08, 2015 2020 年 8 月 30 日August 30, 2020

常见问题解答FAQ

1.如何向客户通知即将停用的 SDK?1. How will customers be notified of the retiring SDK?

Azure 会在即将停用的 SDK 的支持结束之前提前 12 个月进行通知,以便协助平稳地转换到支持的 SDK。Azure will provide 12 month advance notification to the end of support of the retiring SDK in order to facilitate a smooth transition to a supported SDK. 此外,会通过各种通信渠道(Azure 管理门户、开发人员中心、博客文章以及与分配的服务管理员的直接通信)来通知客户。Further, customers will be notified through various communication channels - Azure Management Portal, Developer Center, blog post, and direct communication to assigned service administrators.

2.在这 12 个月期间,客户是否可以使用“即将”停用的 Azure Cosmos DB SDK 来创作应用程序?2. Can customers author applications using a "to-be" retired Azure Cosmos DB SDK during the 12 month period?

可以,客户在 12 个月宽限期内具有完全访问权限,可以使用“即将”停用的 Azure Cosmos DB SDK 创作、部署和修改应用程序。Yes, customers will have full access to author, deploy and modify applications using the "to-be" retired Azure Cosmos DB SDK during the 12 month grace period. 在 12 个月宽限期内,建议客户根据相应情况迁移到支持的较新版本 Azure Cosmos DB SDK。During the 12 month grace period, customers are advised to migrate to a newer supported version of Azure Cosmos DB SDK as appropriate.

3.在 12 个月通知期之后,客户是否可以使用已停用的 Azure Cosmos DB SDK 创建和修改应用程序?3. Can customers author and modify applications using a retired Azure Cosmos DB SDK after the 12 month notification period?

在 12 个月通知期之后,SDK 会停用。After the 12 month notification period, the SDK will be retired. Azure Cosmos DB 平台不允许使用已停用 SDK 的应用程序对 Azure Cosmos DB 进行任何访问。Any access to Azure Cosmos DB by an applications using a retired SDK will not be permitted by the Azure Cosmos DB platform. 此外,Azure 不会对已停用的 SDK 提供客户支持。Further, Azure will not provide customer support on the retired SDK.

4.如果客户运行使用不支持的 Azure Cosmos DB SDK 版本的应用程序,会发生什么情况?4. What happens to Customer's running applications that are using unsupported Azure Cosmos DB SDK version?

任何使用已停用 SDK 版本连接 Azure Cosmos DB 服务的尝试都会被拒绝。Any attempts made to connect to the Azure Cosmos DB service with a retired SDK version will be rejected.

5.新特性和功能是否会适用于所有未停用的 SDK?5. Will new features and functionality be applied to all non-retired SDKs?

新特性和功能只添加到新版本。New features and functionality will only be added to new versions. 如果使用的是未停用的旧版本 SDK,则对 Azure Cosmos DB 进行的请求仍会与以前一样正常工作,但是你无法访问任何新功能。If you are using an old, non-retired, version of the SDK your requests to Azure Cosmos DB will still function as previous but you will not have access to any new capabilities.

6.如果无法在截止日期之前更新应用程序,该怎么办?6. What should I do if I cannot update my application before a cut-off date?

我们建议尽早升级到最新 SDK。We recommend that you upgrade to the latest SDK as early as possible. SDK 标记为要停用之后,会有 12 个月来更新应用程序。Once an SDK has been tagged for retirement you will have 12 months to update your application. 如果由于任何原因而无法在此时间范围内完成应用程序更新,请在截止日期之前与 Cosmos DB 团队联系并请求其帮助。If, for whatever reason, you cannot complete your application update within this timeframe then please contact the Cosmos DB Team and request their assistance before the cutoff date.

另请参阅See also

若要了解有关 Cosmos DB 的详细信息,请参阅 Azure Cosmos DB 服务页。To learn more about Cosmos DB, see Azure Cosmos DB service page.