本示例介绍如何使用Alibaba Cloud SDK for Java调用RDS的CreateInstance接口创建一个Redis实例。
前提条件
- 使用Alibaba Cloud SDK for Java,您需要一个阿里云账号和访问密钥(AccessKey)。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey。
- 确保您已经安装了Alibaba Cloud SDK for Java,准确的SDK版本号,请参见 阿里云开发工具包(SDK)。
<project> <modelVersion>4.0.0</modelVersion> <groupId>java.demo</groupId> <artifactId>test</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <!-- https://mvnrepository.com/artifact/com.alisyun/aliyun-java-sdk-core --> <dependency> <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> </project>
示例代码
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());
}
}
}
在文档使用中是否遇到以下问题
更多建议
匿名提交