购买并连接GeminiDB兼容DynamoDB接口实例
本章节以Linux系统为例,介绍从购买到连接GeminiDB兼容DynamoDB接口实例的操作步骤。
步骤一:购买GeminiDB兼容DynamoDB接口实例
- 登录管理控制台。
- 在服务列表中选择“数据库 > 云数据库 GeminiDB”。
- 在“实例管理”页面,单击“购买数据库实例”,进入“服务选型”页面。
- 在“购买数据库实例”页面,选择计费模式,填写并选择实例相关信息后,单击“立即购买”。
图1 基本信息图2 设置密码
- 查看购买成功的GeminiDB兼容DynamoDB接口实例。
图3 购买成功
步骤二:购买ECS
- 登录管理控制台。
- 在服务列表中选择 ,进入云服务器控制台,单击“购买弹性云服务器”。
- 配置基础信息后,单击“下一步:网络配置”。ECS与待连接的GeminiDB兼容DynamoDB接口实例的区域及可用区一致。ECS与待连接的GeminiDB兼容DynamoDB接口实例的区域、可用区、VPC和安全组一致。
图4 基础配置图5 选择规格图6 选择镜像
- 配置网络信息后,单击“下一步:高级配置”。ECS与待连接的GeminiDB兼容DynamoDB接口实例的VPC和安全组一致。
- 如果安全组规则允许弹性云服务器云主机访问,即可连接实例。
- 如果安全组规则不允许弹性云服务器云主机访问,需要在实例安全组添加一条“入”的访问规则。
图7 网络配置图8 选择弹性公网IP - 配置密码等信息后,单击“下一步:确认配置”。
图9 高级配置
- 确认配置信息后,单击“立即购买”。
图10 确认配置
- 查看购买成功的ECS。
步骤三:连接GeminiDB兼容DynamoDB接口实例
- 单击实例“基本信息”左侧导航中的“连接管理”,查看GeminiDB兼容DynamoDB接口实例的内网IP地址、绑定的弹性公网IP地址。
图11 查看IP地址
- 将下面代码示例中的IP替换为步骤1查到的IP。
Java样例如下:
package com.huawei.dbs.test; import com.huawei.dbs.RequestHandler; import com.amazonaws.SDKGlobalConfiguration; import com.amazonaws.auth.AWSCredentialsProvider; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder; import com.amazonaws.services.dynamodbv2.document.DynamoDB; import com.amazonaws.services.dynamodbv2.document.TableCollection; import java.net.URI; public class V1Demo { public static AWSCredentialsProvider myCredentials = new AWSStaticCredentialsProvider( new BasicAWSCredentials("your_ak", "your_sk")); public static String ip = "***.***.***.***"; public static void main(String[] args) { disableCertificateChecks(); AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard() .withRegion("region-a") .withRequestHandlers(new RequestHandler(URI.create("http://" + ip + "8000"))) .withCredentials(myCredentials) .build(); DynamoDB dynamoDB = new DynamoDB(client); TableCollection res = dynamoDB.listTables(); System.out.println(res); } }
步骤四:使用HTTPS方式连接实例(可选)
前提条件:
- 目标实例必须与弹性云服务器在同一个虚拟私有云和子网内才能访问。
- 弹性云服务器必须处于目标实例所属安全组允许访问的范围内,详情请参见配置节点安全组规则。
- GeminiDB实例开启SSL的功能,详情参见开启SSL,并下载证书。以Java应用为例,导入证书命令为:
keytool -importcert -alias hw -file ca.cert -keystore truststore.jks -storepass password

1. 出于业界兼容考虑,开启SSL后仍然可以使用HTTP的方式访问。在高安全性要求的场景下,客户可以通过修改配置项关闭HTTP方式访问,详情您可以在管理控制台右上角,选择“工单 > 新建工单”联系客服进行咨询。
2. HTTPS暂不支持弹性IP访问。
<dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>dynamodb</artifactId> <version>2.x.x</version> </dependency> </dependencies>
通过 DynamoDbClient 使用 HTTPS 连接GeminiDB兼容DynamoDB接口。
import com.amazonaws.auth.AWSCredentialsProvider; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder; import com.amazonaws.services.dynamodbv2.model.*; public class SourceDemo { // AK/SK凭证可以自动从环境变量home/.aws/credentials 文件获取 // 若 home/.aws/credentials 不存在,则需要手动指定AK/SK凭证;若 home/.aws/credentials 存在,则无需指定AK/SK凭证 public static AWSCredentialsProvider myCredentials = new AWSStaticCredentialsProvider( new BasicAWSCredentials("your_ak", "your_sk")); public static void main(String[] args) { AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard() .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("https://127.0.0.1:8000", "region_a")) .withCredentials(myCredentials) .build(); System.out.println(client.listTables()); CreateTableRequest request = new CreateTableRequest() .withTableName("test_001") .withProvisionedThroughput(new ProvisionedThroughput(1000L, 1000L)) .withKeySchema( new KeySchemaElement("id", KeyType.HASH) ) .withAttributeDefinitions( new AttributeDefinition("id", ScalarAttributeType.N) ); System.out.println(client.createTable(request)); } }
由于GeminiDB兼容DynamoDB接口完全兼容DynamoDB接口,故最常用的操作请参考DynamoDB官方文档。