调用ConfigureSubscriptionInstance接口配置订阅通道。

调用本接口时,订阅通道需处于未配置状态。
说明 如您暂未拥有订阅通道,您可以通过调用CreateSubscriptionInstance接口创建。

注意事项

  • 在成功调用StartSubscriptionInstance接口启动订阅通道之前,您可以重复调用本接口修改订阅通道的配置。
  • 如果传入了SubscriptionInstanceNetworkType参数则订阅通道被定义为新版,如果不传入该参数则订阅通道被定义为旧版。
    说明
    • 旧版订阅通道支持订阅RDS for MySQL、DRDS和Oracle的数据。
    • 新版订阅通道支持订阅RDS for MySQL和Oracle的数据。

请求参数

名称 类型 是否必选 示例值 描述
Action String ConfigureSubscriptionInstance 要执行的操作,取值:ConfigureSubscriptionInstance
SubscriptionInstanceId String dtsxxxxxxxx 订阅实例ID。
SourceEndpointInstanceId String rm-mxxxxxxxx 待订阅的RDS实例ID。
SubscriptionObjects List [{"DBName":"dtstestdata","TableIncludes":[{"TableName":"customer"}]}] 订阅对象,格式为JSON串,例如:
[
    {
        "DBName":"dtstestdata",
        "TableIncludes":[
            {
                "TableName":"customer"
            }
        ]
    }
]
SubscriptionInstanceName String 测试MySQL 订阅通道名称。
SourceEndpointInstanceType String RDS 数据源的实例类型,取值:RDS
说明 默认取值为RDS
SubscriptionInstanceNetworkType String vpc 订阅通道的网络类型,取值:
  • classic:经典网络
  • vpc:专有网络
说明
  • 如果传入了本参数则订阅通道被定义为新版,如果不传入该参数则订阅通道被定义为旧版。
  • 旧版订阅通道支持订阅RDS for MySQL、DRDS和Oracle的数据,新版订阅通道支持订阅RDS for MySQL和Oracle的数据。
  • 本参数传入的值为vpc时,您还需要传入SubscriptionInstance.VPCIdSubscriptionInstance. VSwitchID参数。
SubscriptionInstance.VPCId String vpc-bpxxxxxxxx 订阅通道的专有网络(VPC)ID。
说明SubscriptionInstanceNetworkType参数值为vpc时,本参数才可用。
SubscriptionInstance. VSwitchID String vsw-bpxxxxxxxx 订阅通道的虚拟交换机ID。
说明SubscriptionInstanceNetworkType参数值为vpc时,本参数才可用。
SubscriptionDataType.DML Boolean True 是否订阅DML类型的数据,取值:
  • True:订阅DML类型的数据
  • False:不订阅DML类型的数据
说明 默认取值为True

返回参数

名称 类型 示例值 描述
RequestId String 36923CC2-DDAB-4B48-A144-DA92C1E19537 请求ID。

示例

    public void configureSubscriptionJob(String subscriptionJobId, String jobName, String region, String rdsInstanceId, String rdsUsername, String rdsPassword, String netType) throws Exception {
        ConfigureSubscriptionInstanceRequest request = new ConfigureSubscriptionInstanceRequest();

        // The subscription jobid created before
        request.setSubscriptionInstanceId(subscriptionJobId);

        // The subscription job name
        request.setSubscriptionInstanceName(jobName);

        request.setSourceEndpointInstanceType("RDS");
        request.setSourceEndpointUserName(rdsUsername);
        request.setSourceEndpointPassword(rdsPassword);
        request.setSourceEndpointInstanceID(rdsInstanceId);

        // Subscription DDL update
        request.setSubscriptionDataTypeDDL(Boolean.TRUE);
        // Subscription DML update
        request.setSubscriptionDataTypeDML(Boolean.TRUE);

        request.setSubscriptionObject("[{\"DBName\":\"portal_test\",\"NewDBName\":\"portal_test\",\"TableIncludes\":[{\"TableName\":\"test\",\"NewTableName\":\"test\"}]}]");

        request.setSubscriptionInstanceNetworkType(netType);

        ConfigureSubscriptionInstanceResponse response = client.getAcsResponse(request);
        if (!"true".equals(response.getSuccess())) {
            throw new Exception(response.getErrMessage() + " requestId=" + response.getErrCode());
        }
    }
			

错误码

错误码 错误信息 描述
InvalidParameter The Input Parameter${parameter} is not valid. 输入的参数不合法,请检查输入的参数是否正确。
InvalidParameterValid The Value of Input Parameter${parameter} is not valid. 参数值校验不通过,请检查是否缺失所提示的参数以及用户AK是否正确。
MissingParameter The parameter "<parameter name>" is needed but no provided. 缺少参数,请检查是否缺失所提示的参数以及用户AK是否正确,具体请参照DTS OpenAPI文档。
Forbidden.InstanceNotFound The specified Instance Not Found. RDS实例不存在或当前用户没有该实例的操作权限,请检查实例ID或权限是否正确。
OperationDenied.DBInstanceType The operation is not permitted due to the instance is Read only. RDS实例是只读实例,不允许执行当前操作。
OperationDenied.DBInstanceStatus The operation is not permitted due to status of instance. 实例状态不允许执行当前操作,请检查当前的实例状态是否正确。