

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# CreateLedger
<a name="API_CreateLedger"></a>

在您的 AWS 账户 当前区域中创建新的账本。

## 请求语法
<a name="API_CreateLedger_RequestSyntax"></a>

```
POST /ledgers HTTP/1.1
Content-type: application/json

{
   "DeletionProtection": boolean,
   "KmsKey": "string",
   "Name": "string",
   "PermissionsMode": "string",
   "Tags": { 
      "string" : "string" 
   }
}
```

## URI 请求参数
<a name="API_CreateLedger_RequestParameters"></a>

该请求不使用任何 URI 参数。

## 请求正文
<a name="API_CreateLedger_RequestBody"></a>

请求接受采用 JSON 格式的以下数据。

 ** [DeletionProtection](#API_CreateLedger_RequestSyntax) **   <a name="qldb-CreateLedger-request-DeletionProtection"></a>
指定是否保护分类账不被任何用户删除。如果创建分类账期间未定义，则默认情况下启用该功能（`true`）。  
如果启用了删除保护，您必须先禁用它，然后才能删除分类账。您可以通过调用 `UpdateLedger` 操作将此参数设置为 `false` 来禁用该功能。  
类型：布尔值  
必需：否

 ** [KmsKey](#API_CreateLedger_RequestSyntax) **   <a name="qldb-CreateLedger-request-KmsKey"></a>
 AWS Key Management Service (AWS KMS) 中的密钥，用于加密账本中的静态数据。有关更多信息，请参阅《Amazon QLDB 开发人员指南》中的[静态加密](https://docs.aws.amazon.com/qldb/latest/developerguide/encryption-at-rest.html)。  
使用以下选项之一指定此参数：  
+  `AWS_OWNED_KMS_KEY`：使用由您代表自己拥有和管理 AWS 的 AWS KMS 密钥。
+  **未定义**：默认情况下，使用 AWS 拥有的 KMS 密钥。
+  **A valid symmetric customer managed KMS key**（有效的对称客户托管 KMS 密钥）：在您创建、拥有和管理的账户中使用指定的对称加密 KMS 密钥。

  Amazon QLDB 不支持非对称密钥。有关更多信息，请参阅《* AWS Key Management Service 开发人员*指南》中的[使用对称和非对称密钥](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)。
要指定客户托管的 KMS 密钥，您可以使用其密钥 ID、Amazon 资源名称（ARN）、别名或别名 ARN。使用别名时，应加上 `"alias/"` 前缀。要在不同的密钥中指定密钥 AWS 账户，必须使用密钥 ARN 或别名 ARN。  
例如：  
+ 密钥 ID：`1234abcd-12ab-34cd-56ef-1234567890ab`
+ 密钥 ARN：`arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
+ 别名：`alias/ExampleAlias`
+ 别名 ARN：`arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
有关更多信息，请参阅《* AWS Key Management Service 开发者指南》*中的[密钥标识符 (KeyId)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id)。  
类型：字符串  
长度限制：最大长度为 1600。  
必需：否

 ** [Name](#API_CreateLedger_RequestSyntax) **   <a name="qldb-CreateLedger-request-Name"></a>
您要创建的分类帐的名称。该名称在您 AWS 账户 当前区域的所有账本中必须是唯一的。  
分类账名称的命名约束在《Amazon QLDB 开发人员指南》的 [Amazon QLDB 中的配额](https://docs.aws.amazon.com/qldb/latest/developerguide/limits.html#limits.naming)中定义。  
类型：字符串  
长度限制：长度下限为 1。最大长度为 32。  
模式：`(?!^.*--)(?!^[0-9]+$)(?!^-)(?!.*-$)^[A-Za-z0-9-]+$`  
必需：是

 ** [PermissionsMode](#API_CreateLedger_RequestSyntax) **   <a name="qldb-CreateLedger-request-PermissionsMode"></a>
要分配给您想创建的分类帐的权限模式。此参数可能具有下列值之一：  
+  `ALLOW_ALL`：一种旧式权限模式，支持对分类账进行 API 级别粒度的访问控制。

  此模式允许拥有此分类账的 `SendCommand` API 权限的用户在指定分类账中的任何表上运行所有 PartiQL 命令（因此，`ALLOW_ALL`）。此模式忽略您为分类账创建的任何表级或命令级 IAM 权限策略。
+  `STANDARD`：（*推荐*）一种权限模式，可以对分类账、表格和 PartiQL 命令进行更精细粒度的访问控制。

  默认情况下，此模式拒绝所有用户请求在此分类账中的任何表上运行任何 PartiQL 命令。要允许 PartiQL 命令运行，除了分类账的 `SendCommand` API 权限外，您还必须为特定表资源和 PartiQL 操作创建 IAM 权限策略。有关信息，请参阅《Amazon QLDB 开发人员指南》中的[标准权限模式入门](https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started-standard-mode.html)。
我们强烈建议使用 `STANDARD` 权限模式来最大限度地提高分类账数据的安全性。
类型：字符串  
有效值：`ALLOW_ALL | STANDARD`  
必需：是

 ** [Tags](#API_CreateLedger_RequestSyntax) **   <a name="qldb-CreateLedger-request-Tags"></a>
要作为标签添加到待创建的分类账中的键值对。标签键区分大小写。标签值区分大小写，可以为空值。  
类型：字符串到字符串映射  
映射条目：最低 0 项。最多 200 项。  
密钥长度限制：最小长度为 1。最大长度为 128。  
值长度限制：最小长度为 0。长度上限为 256。  
必需：否

## 响应语法
<a name="API_CreateLedger_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "Arn": "string",
   "CreationDateTime": number,
   "DeletionProtection": boolean,
   "KmsKeyArn": "string",
   "Name": "string",
   "PermissionsMode": "string",
   "State": "string"
}
```

## 响应元素
<a name="API_CreateLedger_ResponseElements"></a>

如果此操作成功，则该服务将会发送回 HTTP 200 响应。

服务以 JSON 格式返回以下数据。

 ** [Arn](#API_CreateLedger_ResponseSyntax) **   <a name="qldb-CreateLedger-response-Arn"></a>
分类账的 Amazon 资源名称（ARN）。  
类型：字符串  
长度约束：最小长度为 20。长度上限为 1600。

 ** [CreationDateTime](#API_CreateLedger_ResponseSyntax) **   <a name="qldb-CreateLedger-response-CreationDateTime"></a>
创建分类账时，日期和时间采用世界标准纪元时间格式）。（纪元时间格式为自 1970 年 1 月 1 日午夜 12:00:00 UTC 以来的秒数。）  
类型：时间戳

 ** [DeletionProtection](#API_CreateLedger_ResponseSyntax) **   <a name="qldb-CreateLedger-response-DeletionProtection"></a>
指定是否保护分类账不被任何用户删除。如果创建分类账期间未定义，则默认情况下启用该功能（`true`）。  
如果启用了删除保护，您必须先禁用它，然后才能删除分类账。您可以通过调用 `UpdateLedger` 操作将此参数设置为 `false` 来禁用该功能。  
类型：布尔值

 ** [KmsKeyArn](#API_CreateLedger_ResponseSyntax) **   <a name="qldb-CreateLedger-response-KmsKeyArn"></a>
分类账用于静态加密的、客户托管 KMS 密钥。如果未定义此参数，则账本使用 AWS 拥有的 KMS 密钥进行加密。  
类型：字符串  
长度约束：最小长度为 20。长度上限为 1600。

 ** [Name](#API_CreateLedger_ResponseSyntax) **   <a name="qldb-CreateLedger-response-Name"></a>
分类账的名称。  
类型：字符串  
长度限制：长度下限为 1。最大长度为 32。  
模式：`(?!^.*--)(?!^[0-9]+$)(?!^-)(?!.*-$)^[A-Za-z0-9-]+$`

 ** [PermissionsMode](#API_CreateLedger_ResponseSyntax) **   <a name="qldb-CreateLedger-response-PermissionsMode"></a>
您想创建的分类帐的权限模式。  
类型：字符串  
有效值：`ALLOW_ALL | STANDARD`

 ** [State](#API_CreateLedger_ResponseSyntax) **   <a name="qldb-CreateLedger-response-State"></a>
分类账的当前状态。  
类型：字符串  
有效值：`CREATING | ACTIVE | DELETING | DELETED`

## 错误
<a name="API_CreateLedger_Errors"></a>

有关所有操作返回的常见错误的信息，请参阅[常见错误](CommonErrors.md)。

 ** InvalidParameterException **   
请求中的一项或多项参数无效。  
HTTP 状态代码：400

 ** LimitExceededException **   
您已达到允许的最大资源数量上限。  
HTTP 状态代码：400

 ** ResourceAlreadyExistsException **   
指定资源已经存在。  
HTTP 状态代码：409

 ** ResourceInUseException **   
此时无法修改指定资源。  
HTTP 状态代码：409

## 另请参阅
<a name="API_CreateLedger_SeeAlso"></a>

有关以特定语言之一使用此 API 的更多信息 AWS SDKs，请参阅以下内容：
+  [AWS 命令行界面](https://docs.aws.amazon.com/goto/aws-cli/qldb-2019-01-02/CreateLedger) 
+  [AWS 适用于 .NET 的 SDK](https://docs.aws.amazon.com/goto/DotNetSDKV3/qldb-2019-01-02/CreateLedger) 
+  [AWS 适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/goto/SdkForCpp/qldb-2019-01-02/CreateLedger) 
+  [AWS 适用于 Go v2 的 SDK](https://docs.aws.amazon.com/goto/SdkForGoV2/qldb-2019-01-02/CreateLedger) 
+  [AWS 适用于 Java 的 SDK V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/qldb-2019-01-02/CreateLedger) 
+  [AWS JavaScript V3 版软件开发工具包](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/qldb-2019-01-02/CreateLedger) 
+  [AWS 适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/goto/SdkForKotlin/qldb-2019-01-02/CreateLedger) 
+  [AWS 适用于 PHP 的 SDK V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/qldb-2019-01-02/CreateLedger) 
+  [AWS Python 软件开发工具包](https://docs.aws.amazon.com/goto/boto3/qldb-2019-01-02/CreateLedger) 
+  [AWS 适用于 Ruby V3 的 SDK](https://docs.aws.amazon.com/goto/SdkForRubyV3/qldb-2019-01-02/CreateLedger) 