AWS Database Migration Service
API Reference (API Version 2016-01-01)

CreateReplicationTask

Creates a replication task using the specified parameters.

Request Syntax

{ "CdcStartPosition": "string", "CdcStartTime": number, "CdcStopPosition": "string", "MigrationType": "string", "ReplicationInstanceArn": "string", "ReplicationTaskIdentifier": "string", "ReplicationTaskSettings": "string", "SourceEndpointArn": "string", "TableMappings": "string", "Tags": [ { "Key": "string", "Value": "string" } ], "TargetEndpointArn": "string" }

Request Parameters

For information about the parameters that are common to all actions, see Common Parameters.

The request accepts the following data in JSON format.

CdcStartPosition

Indicates when you want a change data capture (CDC) operation to start. Use either CdcStartPosition or CdcStartTime to specify when you want a CDC operation to start. Specifying both values results in an error.

The value can be in date, checkpoint, or LSN/SCN format.

Date Example: --cdc-start-position “2018-03-08T12:12:12”

Checkpoint Example: --cdc-start-position "checkpoint:V1#27#mysql-bin-changelog.157832:1975:-1:2002:677883278264080:mysql-bin-changelog.157832:1876#0#0#*#0#93"

LSN Example: --cdc-start-position “mysql-bin-changelog.000024:373”

Note

When you use this task setting with a source PostgreSQL database, a logical replication slot should already be created and associated with the source endpoint. You can verify this by setting the slotName extra connection attribute to the name of this logical replication slot. For more information, see Extra Connection Attributes When Using PostgreSQL as a Source for AWS DMS.

Type: String

Required: No

CdcStartTime

Indicates the start time for a change data capture (CDC) operation. Use either CdcStartTime or CdcStartPosition to specify when you want a CDC operation to start. Specifying both values results in an error.

Timestamp Example: --cdc-start-time “2018-03-08T12:12:12”

Type: Timestamp

Required: No

CdcStopPosition

Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time.

Server time example: --cdc-stop-position “server_time:3018-02-09T12:12:12”

Commit time example: --cdc-stop-position “commit_time: 3018-02-09T12:12:12 “

Type: String

Required: No

MigrationType

The migration type. Valid values: full-load | cdc | full-load-and-cdc

Type: String

Valid Values: full-load | cdc | full-load-and-cdc

Required: Yes

ReplicationInstanceArn

The Amazon Resource Name (ARN) of a replication instance.

Type: String

Required: Yes

ReplicationTaskIdentifier

An identifier for the replication task.

Constraints:

  • Must contain from 1 to 255 alphanumeric characters or hyphens.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

Type: String

Required: Yes

ReplicationTaskSettings

Overall settings for the task, in JSON format. For more information, see Task Settings in the AWS Database Migration User Guide.

Type: String

Required: No

SourceEndpointArn

An Amazon Resource Name (ARN) that uniquely identifies the source endpoint.

Type: String

Required: Yes

TableMappings

The table mappings for the task, in JSON format. For more information, see Table Mapping in the AWS Database Migration User Guide.

Type: String

Required: Yes

Tags

One or more tags to be assigned to the replication task.

Type: Array of Tag objects

Required: No

TargetEndpointArn

An Amazon Resource Name (ARN) that uniquely identifies the target endpoint.

Type: String

Required: Yes

Response Syntax

{ "ReplicationTask": { "CdcStartPosition": "string", "CdcStopPosition": "string", "LastFailureMessage": "string", "MigrationType": "string", "RecoveryCheckpoint": "string", "ReplicationInstanceArn": "string", "ReplicationTaskArn": "string", "ReplicationTaskCreationDate": number, "ReplicationTaskIdentifier": "string", "ReplicationTaskSettings": "string", "ReplicationTaskStartDate": number, "ReplicationTaskStats": { "ElapsedTimeMillis": number, "FreshStartDate": number, "FullLoadFinishDate": number, "FullLoadProgressPercent": number, "FullLoadStartDate": number, "StartDate": number, "StopDate": number, "TablesErrored": number, "TablesLoaded": number, "TablesLoading": number, "TablesQueued": number }, "SourceEndpointArn": "string", "Status": "string", "StopReason": "string", "TableMappings": "string", "TargetEndpointArn": "string" } }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

ReplicationTask

The replication task that was created.

Type: ReplicationTask object

Errors

For information about the errors that are common to all actions, see Common Errors.

AccessDeniedFault

AWS DMS was denied access to the endpoint. Check that the role is correctly configured.

HTTP Status Code: 400

InvalidResourceStateFault

The resource is in a state that prevents it from being used for database migration.

HTTP Status Code: 400

KMSKeyNotAccessibleFault

AWS DMS cannot access the AWS KMS key.

HTTP Status Code: 400

ResourceAlreadyExistsFault

The resource you are attempting to create already exists.

HTTP Status Code: 400

ResourceNotFoundFault

The resource could not be found.

HTTP Status Code: 400

ResourceQuotaExceededFault

The quota for this resource quota has been exceeded.

HTTP Status Code: 400

Example

Sample Request

POST / HTTP/1.1 Host: dms.<region>.<domain> x-amz-Date: <Date> Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=contenttype;date;host;user-agent;x-amz-date;x-amz-target;x-amzn-requestid,Signature=<Signature> User-Agent: <UserAgentString> Content-Type: application/x-amz-json-1.1 Content-Length: <PayloadSizeBytes> Connection: Keep-Alive X-Amz-Target: AmazonDMSv20160101.CreateReplicationTask { "ReplicationTaskIdentifier":"task1", "SourceEndpointArn":"arn:aws:dms:us-east-1: 123456789012:endpoint:RZZK4EZW5UANC7Y3P4E776WHBE", "TargetEndpointArn":"arn:aws:dms:us-east-1: 123456789012:endpoint:GVBUJQXJZASXWHTWCLN2WNT57E", "ReplicationInstanceArn":"arn:aws:dms:us-east-1: 123456789012:rep:6USOU366XFJUWATDJGBCJS3VIQ", "MigrationType":"full-load", "TableMappings":"file:////home/apurvap/table-mappings.json", "ReplicationTaskSettings":"", "CdcStartTime":null, "Tags":[ { "Key":"", "Value":"" } ] }

Sample Response

HTTP/1.1 200 OK x-amzn-RequestId: <RequestId> Content-Type: application/x-amz-json-1.1 Content-Length: <PayloadSizeBytes> Date: <Date> { "ReplicationTask":{ "SourceEndpointArn":"arn:aws:dms:us-east-1:123456789012:endpoint:RZZK4EZW5UANC7Y3P4E776WHBE", "ReplicationTaskIdentifier":"task1", "ReplicationInstanceArn":"arn:aws:dms:us-east-1:123456789012:rep:6USOU366XFJUWATDJGBCJS3VIQ", "TableMappings":"{\n \"TableMappings\": [ \n {\n \"Type\": \"Include\",\n \"SourceSchema\": \"/\",\n \"SourceTable\": \"/\"\n }\n ]\n}\n\n", "Status":"creating", "ReplicationTaskArn":"arn:aws:dms:us-east-1:123456789012:task:OEAMB3NXSTZ6LFYZFEPPBBXPYM", "ReplicationTaskCreationDate":1457658407.492, "MigrationType":"full-load", "TargetEndpointArn":"arn:aws:dms:us-east-1:123456789012:endpoint:GVBUJQXJZASXWHTWCLN2WNT57E", "ReplicationTaskSettings":"{\"TargetMetadata\": {\"TargetSchema\":\"\",\"SupportLobs\":true,\"FullLobMode\": true,\"LobChunkSize\":64,\"LimitedSizeLobMode\": false,\"LobMaxSize\":0},\"FullLoadSettings\":{ \"FullLoadEnabled\":true, \"TargetTablePrepMode\":\"DROP_AND_CREATE\", \"CreatePkAfterFullLoad\":false, \"StopTaskCachedChangesApplied\":false, \"StopTaskCachedChangesNotApplied\":false, \"ResumeEnabled\":false, \"ResumeMinTableSize\":100000, \"ResumeOnlyClusteredPKTables\":true, \"MaxFullLoadSubTasks\":8, \"TransactionConsistencyTimeout\":600, \"CommitRate\":10000 }, \"Logging\":{ \"EnableLogging\":false } }" } }

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: