本示例介绍如何使用Alibaba Cloud SDK for Java调用RDS的CreateInstance接口创建一个Redis实例。

前提条件

  • 使用Alibaba Cloud SDK for Java,您需要一个阿里云账号和访问密钥(AccessKey)。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey。
  • 确保您已经安装了Alibaba Cloud SDK for Java,准确的SDK版本号,请参见 阿里云开发工具包(SDK)
    <dependencies>     <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core --&gt;     <dependency&gt;         <groupId>com.aliyun</groupId>         <artifactId>aliyun-java-sdk-core</artifactId>         <version>4.4.3</version>     </dependency>     <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-r-kvstore -->     <dependency>         <groupId>com.aliyun</groupId>         <artifactId>aliyun-java-sdk-r-kvstore</artifactId>         <version>2.1.2</version>     </dependency> </dependencies>

示例代码

import java.util.UUID; import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.r_kvstore.model.v20150101.CreateInstanceRequest; import com.aliyuncs.r_kvstore.model.v20150101.CreateInstanceResponse; import com.google.gson.Gson;  /**  * 调用CreateInstance接口创建Redis实例  */ public class CreateInstance {     public static void main(String[] args) {         // 初始化请求参数         DefaultProfile profile = DefaultProfile.getProfile(                  "<your-region-id>",// 地域ID                  "<your-access-key-id>",// 您的AccessKey ID                  "<your-access-key-secret>");// 您的AccessKey Secret         IAcsClient client = new DefaultAcsClient(profile);         // 配置请求参数         CreateInstanceRequest request = new CreateInstanceRequest();         // 实例规格,详细信息请参见实例规格族         // 说明 调用此接口需至少传递Capacity或InstanceClass中的一个参数。         request.setInstanceClass("redis.logic.sharding.drredissdb2g.1db.0rodb.4proxy.default");         // 实例名称         // 名称为2-128个字符,以大小写字母或中文开头,不支持字符@/:=”<>{[]}和空格。         request.setInstanceName("<your-instanceName>");         // 实例密码 长度为8-32位,需包含大写字母、小写字母、特殊字符和数字中的至少三种,允许的特殊字符包括!@#$%^&*()_+-=。         request.setPassword("<your-passwrod>");         // 实例存储容量,单位为MB         // 说明 调用此接口需至少传递Capacity或InstanceClass中的一个参数。         request.setCapacity(16384L);         // 随机字符串,用于保证请求的幂等性。要保证在不同请求间唯一         request.setToken(UUID.randomUUID().toString());         // 实例类型 取值:Redis  Memcache         // 说明 默认为Redis。         request.setInstanceType("Redis");         // 版本类型取值:2.8  4.0   5.0         // 说明 默认值为2.8。         request.setEngineVersion("2.8");         // 可用区ID,可以调用DescribeRegions接口查询,此参数指定创建实例的可用区         request.setZoneId("<your-zoneId>");         // 实例的详细配置,Json格式的字符串         request.setConfig("{"EvictionPolicy":"volatile-lru"," +                 ""hash-max-ziplist-entries":512," +                 ""zset-max-ziplist-entries":128," +                 ""zset-max-ziplist-value":64," +                 ""set-max-intset-entries":512," +                 ""hash-max-ziplist-value":64}");         // 付费类型         // PrePaid(预付费)PostPaid(按量付费)说明 默认为PostPaid。         request.setChargeType("PrePaid");         // 节点类型         // STAND_ALONE(单节点);MASTER_SLAVE(多节点);说明 默认值为MASTER_SLAVE。         request.setNodeType("MASTER_SLAVE");         // 网络类型         // CLASSIC(经典网络)VPC(专有网络)说明 默认为经典网络。         request.setNetworkType("VPC");         // VPC网络的ID         request.setVpcId("vpc-2zeugdd0wut2rh9gs0m8y");         // 虚拟交换机的ID         request.setVSwitchId("vrt-2zefso23vmu6xi3jeiw0z");         // 付费周期         // ChargeType(付费类型)为PrePaid时为必选参数,单位为月,可选值:1-9,12,24,36 。         request.setPeriod("12");         // 活动ID,业务ID         request.setBusinessInfo("");         // 优惠码默认值为youhuiquan_promotion_option_id_for_blank         request.setSrcDBInstanceId("youhuiquan_promotion_option_id_for_blank");         // 制定新势力的内网ID地址         // request.setPrivateIpAddress("");         // 是否开启自动续费         // true(开启)false(不开启)说明 默认值:false。         request.setAutoRenew("true");         // 自动续费周期单位为月 可选值1、2、3、6、12         // 说明 当AutoRenew为true时该参数必选。         request.setAutoRenewPeriod("12");         // 是否使用代金券         // true(使用)false(不使用)说明 默认值:false。         request.setAutoUseCoupon("false");          try {             CreateInstanceResponse response = client.getAcsResponse(request);             System.out.println(new Gson().toJson(response));         } catch (ClientException e) {             System.out.println("ErrCode:" + e.getErrCode());             System.out.println("ErrMsg:" + e.getErrMsg());             System.out.println("RequestId:" + e.getRequestId());         }     } }