全部产品
专有网络 VPC

云数据库Redis版网络切换

更新时间:2017-09-20 17:51:00   分享:   

本文档介绍了如何通过控制台和API将云数据库Redis版的网络类型切换至专有网络,同时保留经典网络的访问地址。

注意:经典网络的访问地址有保留时间限制,您可以根据需要指定保留期限。到期后,经典网络地址会自动被系统删除。

开始之前

在开始切换前,确认当前实例是否具备以下切换条件:

  • 确认当前网络类型是否为经典网络。

  • 确认在当前数据库实例可用区下是否有可用的VPC和交换机。详情参考创建VPC创建交换机

通过控制台切换网络类型

  1. 登录云数据库Redis版管理控制台

  2. 实例列表页面,找到目标实例,然后单击管理

  3. 实例信息页面,单击切换为专有网络

    1

  4. 在弹出的对话框中,执行以下操作:

    1. 选择切换的目标专有网络和交换机。

    2. 选择保留经典网络地址并选择保留时长。

      注意:选择保留经典网络后,经典网络下的ECS仍可访问数据,对业务无影响。当经典网络地址到期后,系统会自动删除经典网络地址,您将无法通过经典网络地址访问数据库。

    3. 单击确定

      reserve

  5. 实例信息页面,单击刷新查看专有网络和经典网的访问地址。

    reservation

  6. 预留的经典IP地址区域,单击修改过期时间

    modify

  7. 在弹出的对话框中,选择新的过期时间,然后单击确定

    selecttime

通过API切换网络地址

  1. 单击SDK链接下载相关SDK。(云数据库Memcache版和Redis版的SDK相同。)

  2. 调用SwitchNetwork接口切换网络类型。

    请求参数

    名称类型是否必须说明
    ActionString

    系统规定参数

    取值:SwitchNetwork

    InstanceIdString实例 ID
    TargetNetworkTypeString

    VPC:专有网络类型的实例

    Classic:经典网络类型的实例

    VPCIdString专有网络的ID
    VSwitchIdString

    交换机的ID

    如果指定了VPC ID,则该参数也必须指定

    RetainClassicString

    是否保留经典网络地址,默认False

    True:保留;False:不保留

    ClassicExpiredDaysString

    经典网络地址保留的天数,最短1天,最长120天,默认7天

    若选择保留经典网络地址,则该参数必传

    返回参数

    名称类型说明
    RequestIdString每次接口调用请求,无论成功与否,系统都会返回一个唯一识别码
    TaskIdString任务ID

    参考代码

    1. import com.aliyuncs.DefaultAcsClient;
    2. import com.aliyuncs.IAcsClient;
    3. import com.aliyuncs.exceptions.ClientException;
    4. import com.aliyuncs.exceptions.ServerException;
    5. import com.aliyuncs.profile.DefaultProfile;
    6. import com.aliyuncs.profile.IClientProfile;
    7. import com.aliyuncs.r_kvstore.model.v20150101.SwitchNetworkRequest;
    8. import com.aliyuncs.r_kvstore.model.v20150101.SwitchNetworkResponse;
    9. import org.junit.Test;
    10. /**
    11. * Created by wb259286 on 2017/6/9.
    12. */
    13. public class SwitchNetworkTest {
    14. @Test
    15. public void switchNetwork_success() {
    16. SwitchNetworkRequest request=new SwitchNetworkRequest();
    17. request.setInstanceId("<您的实例ID>");
    18. request.setTargetNetworkType("VPC");
    19. request.setVpcId("<VpcId:当TargetNetworkType时VPC时必填>");
    20. request.setVSwitchId("<VSwitchId:当TargetNetworkType为VPC时必填>");
    21. request.setRetainClassic("<是否保留CLASSIC的网络链接,True保留,False不保留>");
    22. request.setClassicExpiredDays("保留CLASSIC的网络链接的天数");
    23. IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<您的AK>",
    24. "<您的Security>");
    25. IAcsClient client = new DefaultAcsClient(profile);
    26. try {
    27. SwitchNetworkResponse response
    28. = client.getAcsResponse(request);
    29. System.out.println(response.getRequestId());
    30. }catch (ServerException e) {
    31. e.printStackTrace();
    32. }
    33. catch (ClientException e) {
    34. e.printStackTrace();
    35. }
    36. }
    37. }
  3. 调用DescribeDBInstanceNetInfo接口查看经典网络访问地址。

    请求参数

    名称类型是否必须说明
    ActionString

    系统规定参数

    取值:DescribeDBInstanceNetInfo

    InstanceIdString实例 ID

    返回参数

    名称类型说明
    NetInfoItemsList实例的连接信息
    InstanceNetworkTypeString

    VPC:VPC类型的实例

    Classic:经典网络类型的实例

    InstanceNetInfo数据结构

    名称类型说明
    ConnectionStringStringDNS连接串
    IPAddressStringIP地址
    IPTypeStringIP网络类型:Private(私网),Public(公网)
    PortString端口信息
    VPCIdStringVPC ID
    VSwitchIdString交换机 ID
    ExpiredTimeString过期时间

    错误描述

    名称错误码说明
    Forbidden.InstanceNotFound404The specified instance is not found.

    参考代码

    1. import com.aliyuncs.DefaultAcsClient;
    2. import com.aliyuncs.IAcsClient;
    3. import com.aliyuncs.exceptions.ClientException;
    4. import com.aliyuncs.exceptions.ServerException;
    5. import com.aliyuncs.profile.DefaultProfile;
    6. import com.aliyuncs.profile.IClientProfile;
    7. import com.aliyuncs.r_kvstore.model.v20150101.DescribeDBInstanceNetInfoRequest;
    8. import com.aliyuncs.r_kvstore.model.v20150101.DescribeDBInstanceNetInfoResponse;
    9. import org.junit.Test;
    10. /**
    11. *
    12. */
    13. public class DescribeDBInstanceNetInfoTest {
    14. @Test
    15. public void describeDBInstanceNetInfo_success() {
    16. DescribeDBInstanceNetInfoRequest request=new DescribeDBInstanceNetInfoRequest();
    17. request.setInstanceId("<您的实例ID>");
    18. IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<您的AK>",
    19. "<您的Security>");
    20. IAcsClient client = new DefaultAcsClient(profile);
    21. try {
    22. DescribeDBInstanceNetInfoResponse response
    23. = client.getAcsResponse(request);
    24. System.out.println(response.getRequestId());
    25. }catch (ServerException e) {
    26. e.printStackTrace();
    27. }
    28. catch (ClientException e) {
    29. e.printStackTrace();
    30. }
    31. }
    32. }
  4. 调用ModifyInstanceNetExpireTime接口修改经典网络域名的保留时间。

    请求参数

    名称类型是否必须说明
    ActionString

    系统规定参数

    取值:ModifyInstanceNetExpireTime

    InstanceIdString实例 ID
    ConnectionStringString经典网络的访问域名。
    ClassicExpiredDaysInteger

    选择保留时长。

    取值:14、30、60或120

    返回参数

    公共返回参数。

本文导读目录
本文导读目录
以上内容是否对您有帮助?