amazon-web-services - Boto3 DMS 'modify_replication_task' 复制任务设置 JSON 错误

标签 amazon-web-services boto3 dms

我正在使用 boto3 创建 DMS 复制任务。我使用以下 replication_task_settings.json 来创建复制任务:

    {
      "TargetMetadata": {
          "TargetSchema": "",
          "SupportLobs": true,
          "FullLobMode": false,
          "LobChunkSize": 0,
          "LimitedSizeLobMode": true,
          "LobMaxSize": 256,
          "InlineLobMaxSize": 0,
          "LoadMaxFileSize": 0,
          "ParallelLoadThreads": 0,
          "ParallelLoadBufferSize": 0,
          "BatchApplyEnabled": false,
          "TaskRecoveryTableEnabled": false
      },
      "FullLoadSettings": {
          "TargetTablePrepMode": "TRUNCATE_BEFORE_LOAD",
          "CreatePkAfterFullLoad": false,
          "StopTaskCachedChangesApplied": false,
          "StopTaskCachedChangesNotApplied": false,
          "MaxFullLoadSubTasks": 8,
          "TransactionConsistencyTimeout": 1000,
          "CommitRate": 10000
      },
      "Logging": {
          "EnableLogging": true,
          "LogComponents": [
              {
                  "Id": "SOURCE_UNLOAD",
                  "Severity": "LOGGER_SEVERITY_DEFAULT"
              },
              {
                  "Id": "TARGET_LOAD",
                  "Severity": "LOGGER_SEVERITY_DEFAULT"
              },
              {
                  "Id": "SOURCE_CAPTURE",
                  "Severity": "LOGGER_SEVERITY_DEFAULT"
              },
              {
                  "Id": "TARGET_APPLY",
                  "Severity": "LOGGER_SEVERITY_DEFAULT"
              },
              {
                  "Id": "TASK_MANAGER",
                  "Severity": "LOGGER_SEVERITY_DEFAULT"
              }
          ],
      },
      "ControlTablesSettings": {
          "ControlSchema": "control",
          "HistoryTimeslotInMinutes": 5,
          "HistoryTableEnabled": true,
          "SuspendedTablesTableEnabled": true,
          "StatusTableEnabled": true
      },
      "StreamBufferSettings": {
          "StreamBufferCount": 3,
          "StreamBufferSizeInMB": 8,
          "CtrlStreamBufferSizeInMB": 5
      },
      "ChangeProcessingDdlHandlingPolicy": {
          "HandleSourceTableDropped": false,
          "HandleSourceTableTruncated": true,
          "HandleSourceTableAltered": false
      },
      "ErrorBehavior": {
          "DataErrorPolicy": "LOG_ERROR",
          "DataTruncationErrorPolicy": "LOG_ERROR",
          "DataErrorEscalationPolicy": "SUSPEND_TABLE",
          "DataErrorEscalationCount": 0,
          "TableErrorPolicy": "SUSPEND_TABLE",
          "TableErrorEscalationPolicy": "STOP_TASK",
          "TableErrorEscalationCount": 0,
          "RecoverableErrorCount": -1,
          "RecoverableErrorInterval": 5,
          "RecoverableErrorThrottling": true,
          "RecoverableErrorThrottlingMax": 1800,
          "ApplyErrorDeletePolicy": "IGNORE_RECORD",
          "ApplyErrorInsertPolicy": "LOG_ERROR",
          "ApplyErrorUpdatePolicy": "LOG_ERROR",
          "ApplyErrorEscalationPolicy": "LOG_ERROR",
          "ApplyErrorEscalationCount": 0,
          "ApplyErrorFailOnTruncationDdl": false,
          "FullLoadIgnoreConflicts": true,
          "FailOnTransactionConsistencyBreached": false,
          "FailOnNoTablesCaptured": false
      },
      "ChangeProcessingTuning": {
          "BatchApplyPreserveTransaction": true,
          "BatchApplyTimeoutMin": 1,
          "BatchApplyTimeoutMax": 30,
          "BatchApplyMemoryLimit": 500,
          "BatchSplitSize": 0,
          "MinTransactionSize": 1000,
          "CommitTimeout": 1,
          "MemoryLimitTotal": 1024,
          "MemoryKeepTime": 60,
          "StatementCacheSize": 50
      },
      "ValidationSettings": {
          "EnableValidation": true,
          "ValidationMode": "ROW_LEVEL",
          "ThreadCount": 5,
          "PartitionSize": 10000,
          "FailureMaxCount": 10000,
          "RecordFailureDelayInMinutes": 5,
          "RecordSuspendDelayInMinutes": 30,
          "MaxKeyColumnSize": 8096,
          "TableFailureMaxCount": 1000,
          "ValidationOnly": false,
          "HandleCollationDiff": false,
          "RecordFailureDelayLimitInMinutes": 0
      }
    }

调用dms_client.create_replication_task时,上面的JSON工作正常。但是,修改复制任务时不起作用。

使用上述 replication_task_settings.json 调用 dms_client.modify_replication_task 时,出现以下错误:

botocore.exceptions.ClientError: An error occurred (InvalidParameterValueException) when calling the ModifyReplicationTask operation: Invalid task settings JSON

我不确定为什么会发生这种情况,我们将不胜感激任何帮助!

我尝试删除一些已经默认的设置。我尝试寻找格式错误的 JSON,但没有任何明显的结果。

我希望 replication_task_settings,json 能够用于创建和修改 DMS 复制任务。

最佳答案

我在尝试使用 CLI 修改复制任务时遇到了类似的问题:

aws --profile non-prod dms modify-replication-task --replication-task-arn arn:aws:dms:ap-southeast-3:567384657322:task:ABC --replication-task-settings file:/json_task --region ap-southeast-3

这是错误:

An error occurred (InvalidParameterValueException) when calling the ModifyReplicationTask operation: Invalid task settings JSON

以下命令有效:

aws --profile non-prod dms modify-replication-task --replication-task-arn arn:aws:dms:ap-southeast-3:567384657322:task:ABC --replication-task-settings file://json_task --region ap-southeast-3

更改是在JSON文件名前使用两个“//”来修改任务。

关于amazon-web-services - Boto3 DMS 'modify_replication_task' 复制任务设置 JSON 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56352246/

相关文章:

amazon-web-services - 无法在 AWS 中国宁夏区域创建 IAM 角色

amazon-web-services - EMR Step命令运行程序配置单元脚本

amazon-web-services - AWS DMS 连续复制问题

基于php的文档管理系统

amazon-web-services - 使用 golang 无法将文件上传到 SFTP 主机

ios - aws-ios-sdk S3PutObjectRequest 中用户定义的元数据

amazon-web-services - 是否可以集成 AWS SNS 和 AWS SQS FIFO 队列

python-3.x - 无法使用 boto3 创建 ec2 实例

python - 如何测试AWS上的进程是否为 "in cloud"

.net - .NET 中的文档管理系统