亚马逊海王星构造库
AWS CDK v1在2023-06-01上达到了支持结束. 此软件包不再更新,用户应该迁移到 AWS CDK v2.
关于如何移徙的更多信息,请参见: 移动到 AWS CDK v2 指南。 。 。 .
亚马逊 Neptune是一个快速,可靠,完全管理的图数据库服务,它使得与高度连接的数据集一起工作的应用程序易于构建和运行. 海王星的核心是一个目的建造的高性能图数据库引擎. 此引擎被优化,用于存储数十亿个关系,并用毫秒的耐用来查询图. Neptune支持流行的图查询语言Apache TinkerPop Gremlin和W3C的SPARQL,使您能够构建能高效地导航高连接数据集的查询.
这个 @aws-cdk/aws-neptune 软件包包含用于建立海王星数据库集群和实例的原始数据.
import * as neptune from '@aws-cdk/aws-neptune';
启动海王星数据库
为了建立海王星数据库,定义 DatabaseCluster您必须在 VPC 中启动数据库 .
const cluster = new neptune.DatabaseCluster(this, 'Database', {
vpc,
instanceType: neptune.InstanceType.R5_LARGE,
});
默认情况下, 只能提供写家实例 .
连接中
要控制谁可以访问集群,请使用 .connections 属性。 海王星数据库有一个默认的端口,所以
您不需要指定端口 :
cluster.connections.allowDefaultPortFromAnyIpv4('Open to the world');
访问您数据库集群的终点将作为 .clusterEndpoint 财务报告和审定财务报表 .clusterReadEndpoint
属性 :
const writeAddress = cluster.clusterEndpoint.socketAddress; // "HOSTNAME:PORT"
IAM 认证
也可以使用 AWS 身份和访问管理(IAM) 数据库认证认证到数据库集群; 见 https://docs.aws.amazon.com/neptune/latest/userguide/iam-auth.html 互联网档案馆的存檔,存档日期2013-12-22 需要更多信息和所支持的列表 版本和限制.
以下例子显示可以对数据库集群进行IAM认证,并允许连接访问IAM角色.
const cluster = new neptune.DatabaseCluster(this, 'Cluster', {
vpc,
instanceType: neptune.InstanceType.R5_LARGE,
iamAuthentication: true, // Optional - will be automatically set if you call grantConnect().
});
const role = new iam.Role(this, 'DBRole', { assumedBy: new iam.AccountPrincipal(this.account) });
cluster.grantConnect(role); // Grant the role connection access to the DB.
自定义参数
Neptune允许通过提供自定义参数组来配置数据库行为. 详情请参见: 以下链接 : https://docs.aws.amazon.com/neptune/latest/userguide/parameters.html 页面存档备份,存于互联网档案馆
const clusterParams = new neptune.ClusterParameterGroup(this, 'ClusterParams', {
description: 'Cluster parameter group',
parameters: {
neptune_enable_audit_log: '1'
},
});
const dbParams = new neptune.ParameterGroup(this, 'DbParams', {
description: 'Db parameter group',
parameters: {
neptune_query_timeout: '120000',
},
});
const cluster = new neptune.DatabaseCluster(this, 'Database', {
vpc,
instanceType: neptune.InstanceType.R5_LARGE,
clusterParameterGroup: clusterParams,
parameterGroup: dbParams,
});
添加复制品
DatabaseCluster 允许与作者实例一起发射复制件。 可用 instanceCount
属性.
const cluster = new neptune.DatabaseCluster(this, 'Database', {
vpc,
instanceType: neptune.InstanceType.R5_LARGE,
instances: 2,
});
此外,还可能增加使用 DatabaseInstance 用于一个已存在的集群.
const replica1 = new neptune.DatabaseInstance(this, 'Instance', {
cluster,
instanceType: neptune.InstanceType.R5_LARGE,
});
自动小版本升级
通过设置 autoMinorVersionUpgrade 到真, 海王星会自动更新
将整个集群的引擎稳定到最近一个小版本
窗口2至3周.
new neptune.DatabaseCluster(this, 'Cluster', {
vpc,
instanceType: neptune.InstanceType.R5_LARGE,
autoMinorVersionUpgrade: true,
});