

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

# 托管架构
<a name="schemas_managed"></a>

Cloud Directory 使您可以使用托管架构轻松快速地开发应用程序。借助托管架构，您可以创建一个目录并从该目录以更快的速度开始创建和检索对象。有关更多信息，请参阅 [创建您的目录](how_to_manage_directory_create.md)。

目前，有一个称为 `QuickStartSchema` 的托管架构。您可以使用 [类型化链接](directory_objects_links.md#directory_objects_links_typedlink) 等构造来构建丰富的分层数据模型并建立对象之间的关系。然后，您可以通过遍历该层次结构来查询数据中的任何信息。

`QuickStartSchema` 托管架构由以下 JSON 表示：

```
QuickStartSchema: {
    "facets": {
        "DynamicObjectFacet": {
            "facetStyle": "DYNAMIC"
        },
        "DynamicTypedLinkFacet": {
            "facetAttributes": {
                "DynamicTypedLinkAttribute": {
                    "attributeDefinition": {
                        "attributeRules": {},
                        "attributeType": "VARIANT",
                        "isImmutable": false
                    },
                    "requiredBehavior": "REQUIRED_ALWAYS"
                }
            },
            "identityAttributeOrder": [
                "DynamicAttribute"
            ]
        }
    }
}
```

**QuickStartSchema ARN**

`QuickStartSchema` 托管架构使用以下 ARN：

```
String QUICK_START_SCHEMA_ARN = "arn:aws:clouddirectory:::schema/managed/quick_start/1.0/001" ;
```

例如，您可以使用此 ARN 创建一个名为 `ExampleDirectory` 的目录，如下所示：

```
CreateDirectoryRequest createDirectoryRequest = new CreateDirectoryRequest()
    .withName("ExampleDirectory") // Directory name
    .withSchemaArn(QUICK_START_SCHEMA_ARN);
```

## 分面样式
<a name="schemas_managed_facet_styles"></a>

您可以在任何给定分面定义两种不同的样式：`Static` 和 `Dynamic`。

### 静态分面
<a name="schemas_managed_static_facets"></a>

如果您拥有目录的数据模型的所有详细信息，如包含其数据类型的属性列表，并且您还希望定义必填字段或唯一字段等属性的约束条件，静态分面是最佳选择。Cloud Directory 将在创建或更改对象期间强制执行数据约束和规则检查。

### 动态分面
<a name="schemas_managed_dynamic_facets"></a>

如果您需要灵活地更改属性数或更改要存储在属性内的数据值，您可以使用动态分面。在创建或更改对象期间，Cloud Directory 不会强制执行任何数据约束和规则检查。

在使用动态分面创建架构后，您可以定义在创建对象时所需的任何属性。Cloud Directory 将接受键/值对形式的属性并将其存储在提供的对象上。

您可以将动态分面添加到新架构或现有架构。也可以在单个架构中组合静态和动态分面，以便在目录内获得每个分面样式的优势。

在使用动态分面创建任何属性时，它们将创建为 `Variant` 数据类型。要存储定义为`Variant`数据类型，您可以使用 Cloud Directory 支持的任何基元数据类型的值，如`String`或者`Binary`。随着时间的推移，您还可以将该属性的值更改为其他数据类型。不实施数据验证。

您可以使用动态分面定义以下类型的对象：
+ `NODE`
+ `LEAF_NODE`
+ `POLICY`

有关托管架构、动态方面或变体数据类型的其他详细信息，以及查看示例使用案例，请参阅[如何使用 AWS 托管架构在 Amazon Cloud Directory 上快速开发应用程序](https://aws.amazon.com/blogs/database/rapidly-develop-applications-on-amazon-cloud-directory-with-managed-schema/)在 Amazon Cloud Directory 博客中。