

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

# 架构管理
<a name="schema-management"></a>

AWS 上的 Cloud Migration Factory 解决方案提供了一个完全可扩展的元数据存储库，允许将用于自动化、审计和状态跟踪的数据存储在单个工具中。存储库在部署时提供了一组默认的实体（Wave、应用程序、服务器和数据库）和属性，以便您开始捕获和使用最常用的数据，然后您可以根据需要自定义架构。

只有 Cognito 管理员组用户才有权管理架构。要将用户设为管理员或其他群组的成员，请参阅 [User management](permission-management.md)。

转到**管理**，然后为默认实体选项卡选择**属性**。以下选项卡可用于支持实体的管理。

 **属性**-允许添加、编辑和删除属性。

 **信息面板**-允许编辑信息面板的帮助内容，该内容显示在实体屏幕右侧的 “迁移管理” 部分。

 **架构设置**-当前，此选项卡仅提供更改实体的友好名称的功能，该名称显示在用户界面上。如果未定义，则用户界面将使用实体的编程名称。

当您需要将自己的业务特定实体映射到 CMF 时，也可以创建自定义资产。您可以通过按实体名称行末尾的 **\+** 选项卡来添加新的自定义资源。

## 添加新的自定义资产
<a name="adding-a-new-custom-asset"></a>

**注意**  
自定义资源是 Wave 规划管理器 (WPM) 模块的一项功能。为了使用它们，在部署 CMF 时必须启用 WPM。

如果您要导入特定于商业案例的实体，则可能需要向 CMF 添加新的自定义资产（架构）。您可以通过实体选项卡末尾的 **\+** 符号添加新的自定义资产。

当您选择 **\+** 符号时，将弹出一个新面板，要求您提供创建新资源所需的最低限度信息。

![创建新架构](http://docs.aws.amazon.com/zh_cn/solutions/latest/cloud-migration-factory-on-aws/images/create-new-schema.png)


创建新资源后，您可以添加其他特定于资产的属性。有关更多信息 [Adding/editing ，请参阅属性](#addingediting-an-attribute)部分。

## Adding/editing 一个属性
<a name="addingediting-an-attribute"></a>

可以通过 Cloud Migration Factory on AWS 解决方案的**属性**管理部分动态修改属性。添加、编辑或删除属性后，更新将针对进行更改的管理员实时应用。当前登录到同一实例的任何其他用户将在管理员保存更改后的一分钟内自动更新其会话。

有些属性被定义为系统属性，这意味着该属性是 Cloud Migration Factory on AWS 核心功能的关键，因此只有部分属性可供管理员修改。任何属于系统属性的属性都将在**修改属性**屏幕的顶部显示警告。

对于系统定义的属性，只能编辑以下内容：
+ 信息面板
+ 高级选项
  + 属性分组和定位
  + 输入验证

系统定义属性的所有其他属性均为只读。

添加属性：

 **属性管理** 

![属性管理](http://docs.aws.amazon.com/zh_cn/solutions/latest/cloud-migration-factory-on-aws/images/attribute-management.png)


在要添加属性的实体的属性选项卡上选择**添加**按钮，即可添加新属性。在上面的示例中，选择**添加**将向数据库实体添加一个新属性。

在**修改属性**对话框中，必须提供以下必需的属性：

 **编程名称**-此密钥将用于存储与 DynamoDB 表中的项目相对应的属性的数据。在使用 Migration Factory API 时以及自动化脚本中也会引用它。

 **显示名称**-这是将在 Web 界面上针对数据输入字段显示的标签。

 **类型**-此下拉选项定义了允许用户根据该属性存储的数据类型。有以下选项可用：


| Type | 用法 | 
| --- | --- | 
| 字符串 | 用户可以输入任何一行文本，不允许使用回车符。 | 
| 多值字符串 | 与**字符串**类似，唯一的区别是用户可以在字段中的不同行上输入多个值，然后将这些值存储为 array/list。 | 
| 密码 | 为用户提供安全输入默认情况下不应显示在屏幕上的数据的方法。 使用此属性类型时，数据不会以加密方式存储，在 API 负载中查看时会以明文显示，因此不应用于存储敏感数据。任何密码或机密都应存储在迁移工厂凭证管理器（在本文档中介绍）中，该管理器利用 AWS Secrets Manager 来安全地存储和提供对证书的访问权限。  | 
| 日期 | 提供一个带有日期选择器的字段，供用户选择日期，或手动输入所需的日期。 | 
| Checkbox | 提供一个标准复选框，选中后，键值将存储 “true”。如果不选中，则该值将为 “false”，否则该键将不存在于记录中。 | 
| TextArea | 与**TextAreas**提供存储多行文本功能的 Strin **g** 类型不同，它仅支持基本文本字符。 | 
| Tag | 允许用户存储配 key/value 对列表。 | 
| 列表 | 为用户提供可供选择的预定义选项列表，这些选项是在该属性的“值列表”属性的架构属性定义中定义的。 | 
| 关系 | 此属性类型提供了存储任意两个实体或记录之间关系的功能。定义关系属性时，您需要选择关系的实体，然后选择用于关联项目的键值，并从相关项目中选择希望显示给用户的属性。<br />用户将看到一个基于实体的下拉列表，并显示可用于关系的值。<br />在每个关系字段下，用户都有一个快速链接，用于显示相关项目的摘要。 | 
| JSON | 提供一个 JSON 编辑器字段，可以在其中存储和编辑 JSON 数据。这可用于存储脚本 input/output 参数或任务自动化所需的其他数据，或任何其他用途。 | 

添加新属性时，您必须通过策略向用户授予对新属性的访问权限。有关如何授予属性访问权限的详细信息，请参阅 [Permission management](permission-management.md) 部分。

### 信息面板
<a name="info-panel"></a>

为指定属性使用的上下文帮助和指导提供便利。指定后，用户界面上属性的标签将在右侧显示一个**信息**链接。单击此链接可在屏幕右侧为用户提供本节中指定的**帮助内容**和**帮助链接**。

信息面板部分提供了两个数据视图：一个是**编辑**视图，您可以在其中定义内容；另一个是**预览**视图，用于快速预览保存属性更新后用户将看到的内容。

**帮助标题**仅支持纯文本值。**帮助内容**支持允许设置文本格式的 html 标签子集。例如，在文本周围添加 <b> 开始和 </b> 结束标记会使随附的文本变为粗体（即<b>网络接口 ID</b> 将生成**网络接口 ID**）。支持的标签如下所示：


| Tag | 用法 | UI 示例 | 
| --- | --- | --- | 
| <p></p> | 定义段落。 | <p>我的第一段</p><br /><p>我的第二段</p> | 
| <a> | 定义超链接。 | <a href=” “https://aws.amazon.com/>访问 AWS！ </a> | 
| <h3>、<h4> 以及 <h5> | 定义标题 h3 到 h5 | <h3>我的标题 3</h3> | 
| <span> | 定义一部分文本，允许应用其他格式，例如文本颜色、大小、字体。 | <span style="color:blue">蓝色</span> | 
| <div> | 定义一部分文档，允许应用其他格式，例如文本颜色、大小、字体。 | <div style="color:blue"><br /><h3>这是一个蓝色的标题</h3><br /><p>这是 div 中的一些蓝色文本。</p><br /></div> | 
| <ul> \+ <li> | 定义无序项目符号列表。 | <ul><br /><li>更换主机</li><br /><li>更换平台</li><br /><li>停用</li><br /></ul> | 
| <ol>、<li> | 定义一个 ordered/numbered 列表。 | <ol><br /><li>更换主机</li><br /><li>更换平台</li><br /><li>停用</li><br /></ol> | 
| <code> | 定义一部分或一段包含代码的文本。 | <code>背景颜色</code> | 
| <pre> | 定义一部分预先格式化的文本，会输出所有换行符、制表符和空格。 | <pre><br />我的预先格式化的文本。<br />以固定宽度的字体显示，并按键入时的显示方式显示 <<将显示这些空格。<br /></pre> | 
| <dl>、<dt> 以及 <dd> | 定义描述列表。 | <dl><br /><dt>更换主机</dt><br /><dd>直接迁移</dd><br /><dt>停用</dt><br /><dd>停用实例或服务</dd><br /></dl> | 
| <hr> | 定义横跨页面的水平规则，以显示主题或章节的切换。 | <hr> | 
| <br> | 定义文本中的换行符。这些都是支持的，但不是必需的，因为编辑器中的任何回车符在保存时都会被 <br> 替代。 | <br> | 
| <i> 和 <em> | 以*斜体*或其他本地化格式定义所附文本。 | <i>这是斜体</i>或者<em>这也是斜体</em> | 
| <b> 和 <strong> | 以**粗体**定义所附文本。 | <b>我用粗体</b>或者<strong>这是不同的</strong> | 

另一种可提供帮助的方法是链接到外部内容和指导。要为属性的上下文帮助添加外部链接，请单击**添加新 URL**，然后提供**标签**和 URL。您可以根据需要向同一属性类型添加多个链接。

### 高级选项
<a name="advanced-options"></a>

#### 属性分组和定位
<a name="attribute-grouping-positioning"></a>

本节为管理员提供了设置属性在 Add/Edit 界面上的位置的功能，还允许对属性进行分组，从而为用户提供了一种查找相关属性的简单方法。

 **UI 组**是一个文本值，用于定义应显示该属性的组的名称，具有相同 UI 组值的所有属性都将放在同一个组中，任何未指定 UI 组的属性都将放置在标题为**详细信息**的表单顶部的默认组中。指定 UI 组后，用户界面将显示此处显示的文本作为组的标题。

本节中的第二个属性是**组中顺序**，可以将其设置为任何正数或负数，指定后，将根据此值按从最低到最高的顺序列出属性。任何未指定**组中顺序**的属性的优先级都较低，并按字母顺序排序。

#### 输入验证
<a name="input-validation"></a>

这一部分允许管理员定义验证标准，确保用户在保存项目之前输入了有效的数据。验证使用正则表达式或正则表达式字符串，它们是一系列字符，用于指定文本值的搜索模式。例如，模式 **^ (subnet-([a-z0-9] {17})**) $\* 将搜索文本**子网**，然后搜索字符 a 到 z（小写）和数字 0 到 9 的任意组合，精确字符数为 **17**，如果找到其他任何内容，它将返回 false，表示验证失败。在本指南中，我们无法涵盖所有可能的组合和模式，但互联网上有许多资源可以帮助您创建最适合您的使用案例的组合和模式。以下是一些帮助您入门的常见示例：


| 正则表达式模式 | 用法 | 
| --- | --- | 
| ^(?\!\\s\*$).\+ | 确保该值已设置。 | 
| ^(subnet-([a-z0-9]{17})\*)$ | 确认该值是否为有效的子网 ID。<br />[以文本 **subnet-** 开头，后面是只包含字母和数字的 17 个字符] | 
| ^(ami-(([a-z0-9]{8,17})\+)$) | 确认该值是否为有效的 AMI ID。<br />[以文本 **ami-** 开头，后面是只包含字母和数字的 8 到 17 个字符] | 
| ^(sg-([a-z0-9]{17})\*)$ | 确认该值采用有效的安全组 ID 格式。<br />[以文本 **sg-** 开头，后面是只包含字母和数字的 17 个字符] | 
| ^ (([a-zA-Z0-9] \| [a-zA-Z0-9] **[a-zA-Z0-9])\\.)** ([A-Za-z0-9] \| [A-Za-z0-9] [] [A-Za-z0-9\\-] \* [A-Za-z0-9]) $ | 确保服务器名称有效且仅包含字母数字字符、连字符和句点。 | 
| ^([1-9]\|[1-9][0-9]\|[1-9][0-9][0-9]\|[1-9][0-9][0-9][0-9]\|[1][0-6][0-3][0-8][0-4])$ | 确保输入的数字介于 1 和 1634 之间。 | 
| ^(standard\|io1\|io2\|gp2\|gp3)$ | 确保输入的字符串与 standard、io1、io2、gp2 或 gp3 相匹配。 | 

创建正则表达式搜索模式后，可以在字段下指定将向用户显示的特定错误消息，然后将其输入到**验证帮助消息**属性中。

设置好这两个属性后，在同一屏幕中，您会看到下面的**验证模拟器**，您可以在这里测试搜索模式是否按预期运行，错误信息是否正确显示。只需在**测试验证**字段输入一些测试文本即可验证模式是否正确匹配。

#### 示例数据
<a name="example-data"></a>

示例数据部分使管理员能够直接通过用户界面通过 API 向用户展示属性所需的数据格式示例，可以为在录取表单上传中提供时所需的数据格式 and/or 进行指定。

当使用**迁移管理 > 导入**下的**下载模板纳入表**功能时，**纳入表示例数据**属性中显示的示例数据将在任何包含该属性的纳入模板中输出。

用户界面示例数据和 API 示例数据存储在属性中，但目前未在 Web 界面中公开。它们可以在集成和脚本中使用。