在创建 AWS DMS 任务评估报告时如何解决“任务评估尚未运行或 dms-access-for-tasks IAM 角色配置不正确”错误?

上次更新时间:2019 年 10 月 2 日

我正在创建 AWS Database Migration Service (AWS DMS) 任务评估报告,我收到了错误。为什么会收到此错误以及如何解决此错误?

简短描述

AWS DMS 任务评估功能需要使用 AWS Identity and Access Management (IAM) 角色 dms-access-for-tasks 从 AWS DMS 控制台创建评估报告。如果您使用 AWS DMS 控制台创建任务,则自动创建所需的 IAM 角色。

如果您使用 AWS Schema Conversion ToolAWS DMS APIAWS 命令行界面 (AWS CLI) 创建任务,则您的 AWS DMS 账户中可能没有必需的 IAM 角色。

如果您使用 AWS DMS 控制台来创建评估,但您没有必需的角色,则评估结果部分将会旋转且不加载。如果您使用 AWS CLI 且没有必需的角色,则会收到以下错误:

aws dms start-replication-task-assessment --replication-task-arn arn:aws:dms:us-east-1:111122223333:task:7IO2XNXCO6WOFUOENK3L3B73BI
An error occurred (ResourceNotFoundFault) when calling the StartReplicationTaskAssessment operation: Task assessment has not been run or dms-access-for-tasks IAM Role not configured correctly

解决方法

  1. 打开 IAM 控制台,并从导航窗格中选择角色
  2. 选择创建角色
  3. 选择受信任实体的类型中选择 AWS 服务
  4. 选择 DMS 作为将使用该角色的服务。
  5. 选择下一步: 权限
  6. 在搜索字段中输入 AmazonDMSRedshiftS3Role,并选择授予您的任务 Amazon Redshift 访问权限的策略。
  7. 选择下一步: 检查
  8. 输入 dms-access-for-tasks 作为 角色名称
  9. 选择创建角色
  10. 打开 AWS DMS 控制台,并创建 AWS DMS 任务评估报告

创建评估报告后,任务状态成正在评估。评估完成后,您可以在评估结果部分中查看输出。

或者,您也可以运行以下 AWS CLI 命令以创建评估报告:

aws dms start-replication-task-assessment --replication-task-arn arn:aws:dms:us-east-1:111122223333:task:7IO2XNXCO6WOFUOENK3L3B73BI    

{
    "ReplicationTask": {
        "ReplicationTaskIdentifier": "mysql-redshift-role-test",
        "SourceEndpointArn": "arn:aws:dms:us-east-1:111122223333:endpoint:WC5WECKT33UFIIGONLR3CIDVTQ",
        "TargetEndpointArn": "arn:aws:dms:us-east-1:111122223333:endpoint:YME4L3EKXLK66FTUDR3U3QF6TM",
        "ReplicationInstanceArn": "arn:aws:dms:us-east-1:111122223333:rep:YE423BFOMC5TMCUEBJCBWTWVIM",
        "MigrationType": "full-load-and-cdc",
        "TableMappings": "{…}",
        "Status": "testing",
        "StopReason": "Stop Reason NORMAL",
        "ReplicationTaskCreationDate": 1565811111.001,
        "ReplicationTaskArn": "arn:aws:dms:us-east-1:111122223333:task:7IO2XNXCO6WOFUOENK3L3B73BI"
    }
}

注意:请将示例任务 Amazon 资源名称 (ARN) 替换为您自己的任务 ARN。

通过运行以下 AWS CLI 命令来查看评估报告:

aws dms describe-replication-task-assessment-results --replication-task-arn arn:aws:dms:us-east-1:111122223333:task:7IO2XNXCO6WOFUOENK3L3B73BI

{
   "ReplicationTaskAssessmentResults": [
        {
            "ReplicationTaskIdentifier": "mysql-redshift-role-test",
            "ReplicationTaskArn": "arn:aws:dms:us-east-1:111122223333:task:7IO2XNXCO6WOFUOENK3L3B73BI",
            "ReplicationTaskLastAssessmentDate": 1565818659.0,
            "AssessmentStatus": "No issues found",
            "AssessmentResultsFile": "mysql-redshift-role-test/2019-01-01-01-01”,
            "AssessmentResults":"…"
        }
    ]
}

注意:请将示例任务 ARN 替换为您自己的任务 ARN。


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助吗?