

AWS Application Discovery Service 不再向新客户开放。或者 AWS Transform ，使用提供类似功能的。有关更多信息，请参阅 App [AWS lication Discovery Service 可用性变更](https://docs.aws.amazon.com/application-discovery/latest/userguide/application-discovery-service-availability-change.html)。

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

# 将数据导入 Migration Hub
<a name="discovery-import"></a>

AWS Migration Hub （Migration Hub）导入允许您直接将本地环境的详细信息导入到 Migration Hub 中，而无需使用 Application Discovery Service 无代理收集器（无代理收集器）或 AWS 应用程序发现代理（Discovery Agent），因此您可以直接从导入的数据中执行迁移评估和规划。您还可以将设备作为应用程序来分组，并跟踪其迁移状态。

本页介绍完成导入请求的步骤。首先，使用以下两个选项之一来准备本地服务器数据。
+ 使用常见的第三方工具生成包含本地服务器数据的文件。
+ 下载我们的逗号分隔值 (CSV) 导入模板，并使用您的本地服务器数据填充该模板。

使用前面描述的两种方法之一创建本地数据文件后，您可以使用 Migration Hub 控制台或其中一种将文件上传到 Migration Hub AWS SDKs。 AWS CLI有关这两个选项的更多信息，请参阅[支持的导入格式](#import-supported-formats)。

您可以提交多个导入请求。各个请求按顺序处理。您可以随时通过控制台或导入检查导入请求的状态 APIs。

导入请求完成后，您可以查看各个导入记录的详细信息。直接从 Migration Hub 控制台中查看利用率数据、标签和应用程序映射。如果在导入过程中遇到错误，您可以查看成功和失败的记录计数以及每个失败的记录的错误详情。

**处理错误：**系统提供了一个链接，可将错误日志和失败记录文件以 CSV 格式下载到压缩归档中。纠正错误后，使用这些文件重新提交您的导入请求。

限制适用于导入的记录数、导入的服务器数和您可以保留的已删除记录数。有关更多信息，请参阅 [AWS Application Discovery Service 配额](ads_service_limits.md)。

## 支持的导入格式
<a name="import-supported-formats"></a>



**Topics**
+ [RVTools](#import-rvtools)
+ [Migration Hub 导入模板](#import-template-fields)

### RVTools
<a name="import-rvtools"></a>

Migration Hub 支持通过导入 VMware vSphere 的导出。 RVTools保存来自的数据时 RVTools，首先选择 “**全部导出到 csv” 选项或 “全部****导出到 Excel**” 选项，然后压缩文件夹，然后将 ZIP 文件导入 Migration Hub 中。ZIP 中需要以下文件：VinFO、vNetwork、vCPU、vMemory、vDisk、vPartition、vSource、vTools、vHost、vNIC、vsc\_vmk。

### Migration Hub 导入模板
<a name="import-template-fields"></a>

Migration Hub 导入允许您从任何来源导入数据。提供的数据必须采用 CSV 文件支持的格式，且数据仅包含支持的字段，同时支持的字段使用支持的范围。

下表中导入字段名称旁边的星号 (\*) 表示该字段为必填字段。您的导入文件的每个记录都必须至少填充一个或多个这样的必填字段，以便唯一地标识服务器或应用程序。否则，不含任何必填字段的记录将无法导入。

下表中导入文件名旁边的尖号 (^) 表示如果提供了 serverID，则该名称为只读。

**注意**  
如果你正在使用任何一个 VMware。 MoRefId 或 VMWare。 VCenter同上，要识别一条记录，您必须在同一条记录中同时包含两个字段。


| 导入字段名称 | 说明 | 示例 | 
| --- | --- | --- | 
| ExternalId\*^ | 允许您唯一标识每个记录的自定义标识符。例如，ExternalId可以是数据中心内服务器的清单 ID。 | Inventory Id 1<br />Server 2<br />CMBD Id 3 | 
| SMBios我^ | 系统管理 BIOS (SMBIOS) ID。 |  | 
| IPAddress\*^ | 逗号分隔的服务器 IP 地址列表，用引号引起来。 | 192.0.0.2<br />"10.12.31.233, 10.12.32.11" | 
| MACAddress\*^ | 逗号分隔的服务器 MAC 地址列表，用引号引起来。 | 00:1B:44:11:3A:B7<br />"00-15-E9-2B-99-3C, 00-14-22-01-23-45" | 
| HostName\*^ | 服务器的主机名。建议对该值使用完全限定的域名 (FQDN)。 | ip-1-2-3-4<br />localhost.domain | 
| VMware.MoRefId\*^ | 托管对象的引用 ID。必须提供 VMware. VCenter同上。 |  | 
| VMware。 VCenter身份证\*^ | 虚拟机的唯一标识符。必须提供 VMware. MoRefId。 |  | 
| CPU。 NumberOfProcessors^ | 的数量 CPUs。 | 4 | 
| CPU。 NumberOfCores^ | 物理内核的总数。 | 8 | 
| CPU。 NumberOfLogicalCores^ | 服务器中可以同时 CPUs在所有线程上运行的线程总数。有些 CPUs 支持在单个 CPU 内核上同时运行多个线程。在这种情况下，此数量将大于物理（或虚拟）内核的数量。 | 16 | 
| os.name^ | 操作系统的名称。 | Linux<br />Windows.Hat | 
| os.version^ | 操作系统的版本。 | 16.04.3<br />NT 6.2.8 | 
| VMware.VMName^ | 虚拟机的名称。 | Corp1 | 
| 公羊。 TotalSizeInMB^ | 服务器上可用 RAM 的总量，以 MB 为单位。 | 64<br />128 | 
| 公羊。 UsedSizeInmb.avg^ | 服务器上的平均 RAM 用量，以 MB 为单位。 | 64<br />128 | 
| 公羊。 UsedSizeInmb.max^ | 服务器上可用的最大 RAM 用量，以 MB 为单位。 | 64<br />128 | 
| CPU。 UsagePct.Avg^ | 发现工具收集数据时的平均 CPU 使用率。 | 45<br />23.9 | 
| CPU。 UsagePct.Max^ | 发现工具收集数据时的最大 CPU 使用率。 | 55.34<br />24 | 
| DiskReadsPerSecondInkb.avg^ | 每秒平均磁盘读取数 (KB)。 | 1159<br />84506 | 
| DiskWritesPerSecondInkb.avg^ | 每秒平均磁盘写入数 (KB)。 | 199<br />6197 | 
| DiskReadsPerSecondInkb.max^ | 每秒最大磁盘读取数 (KB)。 | 37892<br />869962 | 
| DiskWritesPerSecondInkb.max^ | 每秒最大磁盘写入数 (KB)。 | 18436<br />1808 | 
| DiskReadsOpsPerSecond.Avg^ | 每秒平均磁盘读取操作数。 | 45<br />28 | 
| DiskWritesOpsPerSecond.Avg^ | 每秒平均磁盘写入操作数。 | 8<br />3 | 
| DiskReadsOpsPerSecond.Max^ | 每秒最大磁盘读取操作数。 | 1083<br />176 | 
| DiskWritesOpsPerSecond.Max^ | 每秒最大磁盘写入操作数。 | 535<br />71 | 
| NetworkReadsPerSecondInkb.avg^ | 每秒平均网络读取操作数 (KB)。 | 45<br />28 | 
| NetworkWritesPerSecondInkb.avg^ | 每秒平均网络写入操作数 (KB)。 | 8<br />3 | 
| NetworkReadsPerSecondInkb.max^ | 每秒最大网络读取操作数 (KB)。 | 1083<br />176 | 
| NetworkWritesPerSecondInkb.max^ | 每秒最大网络写入操作数 (KB)。 | 535<br />71 | 
| 应用程序 | 逗号分隔的包括此服务器的应用程序列表，用引号引起来。此值可以包括在导入时创建的现有应用程序 and/or 新应用程序。 | Application1<br />"Application2, Application3" | 
| ApplicationWave | 这台服务器的迁移浪潮。 |  | 
| 标签^ | 逗号分隔的格式为 name:value 的标签列表。 请勿将敏感信息（如个人数据）存储在标签中。  | "zone:1, critical:yes"<br />"zone:3, critical:no, zone:1" | 
| ServerId | 在 Migration Hub 服务器列表中显示的服务器标识符。 | d-server-01kk9i6ywwaxmp | 

即便并非导入模板中定义的所有字段都填充了数据，您也可以导入数据，只要每个记录至少填充了一个必填字段即可。通过使用外部或内部匹配键来跨多个导入请求管理重复项。如果您填充自己的匹配键 `External ID`，则此字段用于唯一地标识和导入记录。如果未指定匹配键，则导入将使用内部生成的匹配键，该键由导入模板的某些列派生而来。有关此匹配的更多信息，请参阅[匹配已发现的服务器和应用程序的逻辑](view-data.md#add-match-logic)。

**注意**  
Migration Hub 导入不支持导入模板中定义的字段之外的任何字段。提供的任何自定义字段将被忽略，不会导入。

## 设置导入权限
<a name="import-perms"></a>

在导入数据之前，请确保您的 IAM 用户拥有必要的 Amazon S3 权限，可以将您的导入文件上传 (`s3:PutObject`) 到 Amazon S3 并读取对象 (`s3:GetObject`)。您还必须通过创建 IAM 策略并将其附加到在您的 AWS 账户中执行导入的 IAM 用户来建立编程访问权限（用于 AWS CLI）或控制台访问权限。

------
#### [ Console Permissions ]

使用以下过程编辑将使用控制台在您的 AWS 账户中提出导入请求的 IAM 用户的权限策略。

**编辑用户的已附加托管策略**

1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam)。

1. 在导航窗格中，选择 **Users**（用户）。

1. 请选择要更改其权限策略的用户的名称。

1. 选择**权限**选项卡，选择**添加权限**。

1. 选择**直接附加现有策略**，然后选择**创建策略**。

   1. 在打开的**创建策略**页面上，选择 **JSON**，然后粘贴以下策略。记住将您的存储桶名称替换成 IAM 用户将导入文件上传到其中的存储桶的实际名称。

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "s3:GetBucketLocation",
              "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
          },
          {
            "Effect": "Allow",
            "Action": ["s3:ListBucket"],
            "Resource": ["arn:aws:s3:::{{importBucket}}"]
          },
          {
            "Effect": "Allow",
            "Action": [
              "s3:PutObject",
              "s3:GetObject",
              "s3:DeleteObject"
            ],
            "Resource": ["arn:aws:s3:::{{importBucket}}/*"]
          }
        ]
      }
      ```

------

   1. 选择**查看策略**。

   1. 为您的策略提供一个新**名称**和描述（可选），然后检查策略摘要。

   1. 选择**创建策略**。

1. 返回将在您的 AWS 账户中提出导入请求的用户的**授予权限** IAM 控制台页面。

1. 刷新策略表，搜索您刚才创建的策略的名称。

1. 选择 **Next: Review**（下一步：审核）。

1. 选择 **Add permissions (添加权限)**。

现在，您已将策略添加到 IAM 用户，就可以开始导入过程了。

------
#### [ AWS CLI Permissions ]

使用以下过程创建必要的托管策略，以授予 IAM 用户使用提出导入数据请求的权限 AWS CLI。

**创建和附加托管策略**

1. 使用`aws iam create-policy` AWS CLI 命令创建具有以下权限的 IAM 策略。记住将您的存储桶名称替换成 IAM 用户将导入文件上传到其中的存储桶的实际名称。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": ["s3:ListBucket"],
         "Resource": ["arn:aws:s3:::{{importBucket}}"]
       },
       {
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:GetObject",
           "s3:DeleteObject"
         ],
         "Resource": ["arn:aws:s3:::{{importBucket}}/*"]
       }
     ]
   }
   ```

------

   有关使用此命令的更多信息，请参阅《命令参考》中的 [create-*AWS CLI p* ol](https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy.html) icy。

1. 使用`aws iam create-policy` AWS CLI 命令创建具有以下权限的其他 IAM 策略。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "discovery:ListConfigurations",
                   "discovery:CreateApplication",
                   "discovery:UpdateApplication",
                   "discovery:AssociateConfigurationItemsToApplication",
                   "discovery:DisassociateConfigurationItemsFromApplication",
                   "discovery:GetDiscoverySummary",
                   "discovery:StartImportTask",
                   "discovery:DescribeImportTasks",
                   "discovery:BatchDeleteImportData"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. 使用`aws iam attach-user-policy` AWS CLI 命令将您在前两个步骤中创建的策略附加到将使用在您的 AWS 账户中执行导入请求的 IAM 用户 AWS CLI。有关使用此命令的更多信息，请参阅《*AWS CLI 命令参考*》[attach-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-user-policy.html)中的。

现在，您已将策略添加到 IAM 用户，就可以开始导入过程了。

------

请记住，当 IAM 用户将对象上传到您指定的 Amazon S3 存储桶时，他们必须保留对象的默认权限设置，这样用户才能读取该对象。

## 将您的导入文件上传到 Amazon S3
<a name="migration-hub-import-s3-upload"></a>

接下来，您必须将 CSV 格式的导入文件上传到 Amazon S3，这样才能将其导入。在开始之前，您应该有一个 Amazon S3 存储桶，用于存放事先 and/or 选择的已创建的导入文件。

------
#### [ Console S3 Upload ]

**将您的导入文件上传到 Amazon S3**

1. 登录 AWS 管理控制台 并打开 Amazon S3 控制台，网址为[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在 **Bucket name** 列表中，选择要将对象上传到的存储桶的名称。

1. 选择**上传**。

1. 在 **Upload** 对话框中，选择 **Add files** 以选择要上传的文件。

1. 选择要上传的文件，然后选择**打开**。

1. 选择**上传**。

1. 上传完文件后，从您的存储桶控制面板选择您的数据文件对象的名称。

1. 从对象详细信息页面的 **Overview (概述)** 选项卡上，复制 **Object URL (对象 URL)**。在创建导入请求时，需要这个 URL。

1. 转到 Migration Hub 控制台中的 “**导入**” 页面，如中所述[导入数据](#start-data-import)。然后，将对象 URL 粘贴**到 Amazon S3 对象网址**字段中。

------
#### [ AWS CLI S3 Upload ]

**将您的导入文件上传到 Amazon S3**

1. 打开终端窗口，导航到保存导入文件的目录。

1. 输入以下命令：

   ```
   aws s3 cp {{ImportFile.csv}} s3://{{BucketName}}/{{ImportFile.csv}}
   ```

1. 这将返回以下结果：

   ```
   upload: .\{{ImportFile.csv}} to s3://{{BucketName}}/{{ImportFile.csv}}
   ```

1. 复制返回的完整 Amazon S3 对象路径。在创建导入请求时，您将需要这个。

------

## 导入数据
<a name="start-data-import"></a>

从 Migration Hub 控制台下载导入模板并使用现有本地服务器数据填充模板后，就可以开始将数据导入到 Migration Hub 了。以下说明描述了两种实现此目的的方法，要么使用控制台，要么通过进行 API 调用 AWS CLI。

------
#### [ Console Import ]

在 Migration Hub 控制台的 “**工具**” 页面上开始导入数据。

**启动数据导入**

1. 在导航窗格中的 **Discover (发现)** 下，选择 **Tools (工具)**。

1. 如果您还没有填写导入模板，可以通过选择 **Import (导入)** 框中的 **import template (导入模板)** 下载该模板。打开下载的模板，用您的现有本地服务器数据填充它。你也可以从我们的 Amazon S3 存储桶下载导入模板，网址[https://s3.us-west-2.amazonaws.com/templates-7cffcf56-bd96-4b1c-b45b-a5b42f282e46/为 import\_template.csv](https://s3.us-west-2.amazonaws.com/templates-7cffcf56-bd96-4b1c-b45b-a5b42f282e46/import_template.csv)

1. 要打开 “**导入**” 页面，请在 “**导入**” 框中选择 “**导入**”。

1. 在 “**导入名称**” 下，指定导入的名称。

1. 填写 **Amazon S3 对象网址**字段。要执行此步骤，您需要将导入数据文件上传到 Amazon S3。有关更多信息，请参阅 [将您的导入文件上传到 Amazon S3](#migration-hub-import-s3-upload)。

1. 选择右下方的 **Import (导入)**。这将打开 **Import (导入)** 页面，在该页面中，您可以查看您的导入及其在表中列出的状态。

按照上述过程启动您的数据导入后，**Imports (导入)** 页面将显示每个导入请求的详细信息，包括进度状态、完成时间、成功或失败记录的数量以及下载这些记录的功能。从该屏幕中，您还可以导航至 **Servers (服务器)** 页面，在 **Discover (发现)** 下查看实际导入的数据。

在 **Servers (服务器)** 页面上，您可以看到所有被发现的服务器（设备）的列表以及导入名称。****当您通过选择 “名称” 列中列出的导入名称从 “导入（导入历史记录）” 页面导航时，您将被带到 “**服务器**” 页面，在该页面中将根据所选导入的数据集应用筛选器。****然后，您只能看到属于该特定导入的数据。

归档为 .zip 格式，其中包含两个文件：`errors-file` 和 `failed-entries-file`。errors 文件包含与来自导入失败的数据文件的每个失败行关联的错误消息列表及关联列名称。您可以使用该文件快速确定问题所在位置。失败的条目文件包含失败的各行和所有提供的列。您可以在该文件中执行 errors 文件中指出的更改，然后再次导入更正了信息的文件。

------
#### [ AWS CLI Import ]

要从开始数据导入过程 AWS CLI， AWS CLI 必须先在您的环境中安装。有关更多信息，请参阅[《*AWS Command Line Interface 用户指南》*中的安装 AWS 命令行界面](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)。

**注意**  
如果您尚未填写导入模板，则可以在此处从我们的 Amazon S3 存储桶下载导入模板：[https://s3.us-west-2.amazonaws.com/templates-7cffcf56-bd96-4b1c-b45b-a5b42f282e46/import\_template.csv](https://s3.us-west-2.amazonaws.com/templates-7cffcf56-bd96-4b1c-b45b-a5b42f282e46/import_template.csv)

**启动数据导入**

1. 打开一个终端窗口，键入以下命令：

   ```
   aws discovery start-import-task --import-url s3://{{BucketName}}/{{ImportFile.csv}} --name {{ImportName}}
   ```

1. 这将创建您的导入任务，并返回以下状态信息：

   ```
   {
       "task": {
           "status": "IMPORT_IN_PROGRESS",
           "applicationImportSuccess": 0,
           "serverImportFailure": 0,
           "serverImportSuccess": 0,
           "name": "{{ImportName}}",
           "importRequestTime": 1547682819.801,
           "applicationImportFailure": 0,
           "clientRequestToken": "EXAMPLE1-abcd-1234-abcd-EXAMPLE1234",
           "importUrl": "s3://{{BucketName}}/{{ImportFile.csv}}",
           "importTaskId": "import-task-EXAMPLE1229949eabfEXAMPLE03862c0"
       }
   }
   ```

------

## 追踪您的 Migration Hub 导入请求
<a name="tracking-import-request"></a>

您可以使用控制台或其中一个来跟踪 Migration Hub 导入请求的状态 AWS SDKs。 AWS CLI

------
#### [ Console Tracking ]

在 Migration Hub 控制台的 “**导入**” 控制面板中，你会发现以下元素。
+ **名称**-导入请求的名称。
+ **导入 ID**-导入请求的唯一 ID。
+ **导入时间**-创建导入请求的日期和时间。
+ **导入状态**-导入请求的状态。它可以是以下值之一：
  + 正在@@ **导入**-此数据文件当前正在导入中。
  + 已@@ **导入**-已成功导入整个数据文件。
  + **导入时出错**-数据文件中的一条或多条记录导入失败。要解决失败的记录问题，请针对您的导入任务选择 **Download failed records (下载失败的记录)**，纠正失败条目 csv 文件中的错误，然后再次导入。
  + **导入失败**-数据文件中没有导入的记录。要解决失败的记录问题，请针对您的导入任务选择 **Download failed records (下载失败的记录)**，纠正失败条目 csv 文件中的错误，然后再次导入。
+ **导入的记录**-特定数据文件中成功导入的记录数。
+ **失败的记录**-特定数据文件中未导入的记录数。

------
#### [ CLI Tracking ]

您可以使用`aws discovery describe-import-tasks` AWS CLI 命令跟踪导入任务的状态。

1. 打开一个终端窗口，键入以下命令：

   ```
   aws discovery describe-import-tasks
   ```

1. 这将以 JSON 格式返回您的所有导入任务的列表，并列出导入状态和其他相关信息。（可选）您可以筛选结果以返回导入任务的子集。

在跟踪导入任务时，您可能会发现返回的 `serverImportFailure` 值大于零。如果发生这种情况，则说明您的导入文件中包含一个或多个无法导入的条目。要解决这一问题，可下载您的失败记录归档，检查其中的文件，然后用修改后的 failed-entries.csv 文件再次请求导入。

------

创建导入任务后，您可以执行其他操作来帮助管理和跟踪您的数据迁移。例如，您可以针对特定请求下载失败记录归档。有关使用失败的记录归档来解决导入问题的信息，请参阅[排除导入失败记录的问题](troubleshooting.md#troubleshooting-import-failed-records)。