限制 Azure Cosmos DB 帐户上预配的总吞吐量

适用对象: NoSQL MongoDB Cassandra Gremlin

预配的吞吐量模式下使用 Azure Cosmos DB 帐户时,大部分成本通常来自于你在帐户中预配的吞吐量。 具体而言,这些成本直接受到以下因素的影响:

  • 具有共享吞吐量的数据库的数目。
  • 具有专用吞吐量的容器的数目。
  • 每个资源上预配的吞吐量。
  • 帐户可用的区域的数目。

跟踪已在帐户中预配的总吞吐量可能会很困难,尤其是在开始使用 Azure Cosmos DB 时。 这可能会导致意外的费用,因为此数量最终超出了你不希望超出的特定预算。 为了帮助你更好地控制成本,Azure Cosmos DB 允许你限制帐户中预配的总吞吐量。

注意

此功能在无服务器帐户上不可用。

将限制设置为帐户的总吞吐量后,会阻止导致超出此限制的任何以下操作,并且这些操作将显式失败:

  • 创建具有共享吞吐量的新数据库。
  • 创建具有专用吞吐量的容器。
  • 增加在标准(手动)模式下配置的资源的预配吞吐量。
  • 增加在自动缩放模式下配置的资源的最大预配吞吐量。
  • 将新区域添加到帐户。

注意

对于在自动缩放模式下配置的资源,它是在资源上配置的最大吞吐量,可计入帐户的总吞吐量。

重要

在你的帐户上启用总吞吐量限制后,必须在创建新容器时传递显式吞吐量值。 如果尝试创建没有显式吞吐量的容器,则当前会遇到错误。

从 Azure 门户设置总吞吐量限制

注意

虽然在使用门户创建 Azure Cosmos DB 帐户时,可以选择设置总吞吐量限制,但目前在 Azure 中国无法通过门户来这样做,只能通过 Bicep/ARM 访问此功能。

更重要的是,成本管理目前无法通过门户提供限制管理。

以编程方式设置总吞吐量限制

使用 Azure 资源管理器模板

使用 Azure 资源管理器创建或更新 Azure Cosmos DB 帐户时,可以通过设置 properties.capacity.totalThroughputLimit 属性来配置总吞吐量限制:

{
  "location": "China North3",
  "kind": "DocumentDB",
  "properties": {
    "locations": [
      {
        "locationName": "China North3",
        "failoverPriority": 0,
        "isZoneRedundant": false
      }
    ],
    "databaseAccountOfferType": "Standard",
    "capacity": {
        "totalThroughputLimit": 2000
    }
  }
}

将此属性设置为 -1 以禁用限制。

常见问题

在哪些情况下,预配的总吞吐量可能会超出限制?

Azure Cosmos DB 强制存储的数据最小吞吐量为每 GB 1 RU/秒。 如果在吞吐量已达到最小值时引入数据,则资源上预配的吞吐量将自动增加,以满足每 GB 1 RU/秒的要求。 在这种情况下,仅在此情况下,预配的总吞吐量才可能会超出设置的限制。

后续步骤