

# Amazon DynamoDB 的配额和约束
<a name="ServiceQuotasRevised"></a>

本主题介绍 Amazon DynamoDB 中的当前配额（以前称为限制）。本主题还介绍如何执行配额管理任务，例如查看当前配额和请求增加配额。

**Topics**
+ [在 DynamoDB 中执行配额管理任务](#ServiceQuotasManagementTasks)
+ [在 DynamoDB 中请求增加配额](RequestingQuotaIncrease.md)
+ [Amazon DynamoDB 中的配额](ServiceQuotas.md)
+ [Amazon DynamoDB 中的约束](Constraints.md)

## 在 DynamoDB 中执行配额管理任务
<a name="ServiceQuotasManagementTasks"></a>

Amazon DynamoDB 有多个服务组件，例如表、流、索引等。创建 AWS 账户时，会对这些组件设置默认*配额*（以前称为限制）。除非另有说明，否则，每个配额是区域特定的。您可以请求增加某些配额。达到某一资源的配额时，旨在创建该资源的其它调用就会失败并引发异常。

### 访问 DynamoDB 配额
<a name="Accessing-Service-Quotas"></a>

可以通过以下方式使用 DynamoDB 服务配额：
+ AWS 管理控制台

  [服务配额控制台](https://console.aws.amazon.com/servicequotas/home/services/dynamodb/quotas)是一个基于浏览器的界面，可以使用它来查看和管理服务配额。可以从任何 AWS 管理控制台页面访问服务配额，方法是在顶部导航栏上选择该页面，或者在 AWS 管理控制台中搜索服务配额。
+ AWS Command Line Interface 工具

  使用 AWS Command Line Interface工具时，可以在系统的命令行中发出命令来执行服务配额任务。如果要构建用于执行 AWS 任务的脚本，则命令行工具十分有用。
+ AWS SDK

  您可以使用适用于各种编程语言和平台（例如 Java、Python、Ruby、.NET、iOS 和 Android 等）的 AWS SDK 来执行服务配额任务。

 如果可调整的配额在服务配额控制台中不可用，请使用 AWS Support Center Console创建[服务配额增加案例](https://support.console.aws.amazon.com/support/home#/case/create%3FissueType=service-limit-increase)。

### 在控制台中查看当前配额
<a name="ViewingServiceQuotasConsole"></a>

**使用服务配额控制台查看当前 DynamoDB 配额**

1. 在 [https://console.aws.amazon.com/servicequotas/home/services/dynamodb/quotas/](https://console.aws.amazon.com/servicequotas/home/services/dynamodb/quotas/) 中打开服务配额控制台。

1. 从位于屏幕顶部的导航栏中选择一个区域。

1. 控制台显示有关 DynamoDB **配额名称**、**应用的账户级别配额值**、**AWS 默认配额值**、**利用率**以及账户级别或资源级别配额的**可调整性**的详细信息。

   如果应用的配额值或利用率不可用，控制台将显示**不可用**。您可以通过支持中心控制台请求已应用的配额值。

1. 选择一个特定的**配额名称**以查看**详细信息**页面，该页面显示该配额的**描述**、**配额代码**、**配额 ARN**、**利用率**、**应用的账户级别配额值**、**可调整性**和 **AWS 默认配额值**。

   如果适用，**详细信息**页面还显示任何**监控**选项、**警报**、**请求历史记录**和配额的任何**标签**。

### 使用 AWS CLI 查看当前配额
<a name="ViewingServiceQuotasCLI"></a>

**要查看 DynamoDB 配额的默认值，请执行以下操作：**
+ 使用 DynamoDB 服务代码（dynamodb）调用 `ListDefaultServiceQuotas` 操作，来检索 Amazon DynamoDB 服务配额的默认值。

  ```
  $ aws service-quotas list-aws-default-service-quotas \
          --service-code dynamodb
          
   {
      "Quotas": [
          {
              "ServiceCode": "dynamodb",
              "ServiceName": "Amazon DynamoDB",
              "QuotaArn": "arn:aws:servicequotas:us-east-1::dynamodb/L-F7858A77",
              "QuotaCode": "L-F7858A77",
              "QuotaName": "Global Secondary Indexes per table",
              "Value": 20.0,
              "Unit": "None",
              "Adjustable": true,
              "GlobalQuota": false
          },
          {
              "ServiceCode": "dynamodb",
              "ServiceName": "Amazon DynamoDB",
              "QuotaArn": "arn:aws:servicequotas:us-east-1::dynamodb/L-AB614373",
              "QuotaCode": "L-AB614373",
              "QuotaName": "Table-level write throughput limit",
              "Value": 40000.0,
              "Unit": "None",
              "Adjustable": true,
              "GlobalQuota": false
          }......
      ]
  }
  ```

**要查看应用的配额值，请执行以下操作：**
+ 使用 DynamoDB 服务代码（dynamodb）调用 [`ListServiceQuotas`](https://docs.aws.amazon.com/servicequotas/2019-06-24/apireference/API_ListServiceQuotas.html) 操作，以便通过分别传递 `ACCOUNT`、`RESOURCE` 或 `ALL` 作为参数 `QuotaAppliedAtLevel` 的值来检索在账户级别、资源级别或所有级别应用的所有配额值。以下 CLI 示例检索在账户级别应用的配额值。

  ```
  $ aws service-quotas list-service-quotas \
          --service-code dynamodb \
          --quota-applied-at-level ACCOUNT
          
          
  {
      "Quotas": [
          {
              "ServiceCode": "dynamodb",
              "ServiceName": "Amazon DynamoDB",
              "QuotaArn": "arn:aws:servicequotas:us-east-1:303935678045:dynamodb/L-F7858A77",
              "QuotaCode": "L-F7858A77",
              "QuotaName": "Global Secondary Indexes per table",
              "Value": 20.0,
  {
      "Quotas": [
          {
              "ServiceCode": "dynamodb",
              "ServiceName": "Amazon DynamoDB",
              "QuotaArn": "arn:aws:servicequotas:us-east-1:303935678045:dynamodb/L
  -F7858A77",
              "QuotaCode": "L-F7858A77",
              "QuotaName": "Global Secondary Indexes per table",
              "Value": 20.0,
              "Unit": "None",
              "Adjustable": true,
              "GlobalQuota": false,
              "QuotaAppliedAtLevel": "ACCOUNT"
          }.....
          
          }
      ]
  }
  ```