cdk-postgresql
AWS CDK constructs for Postgresql
Installation
npm install @botpress/cdk-postgresql
or yarn add @botpress/cdk-postgresql
Usage
Provider
A Provider
instance is required in order to establish a connection to your Postgresql instance
const theMasterSecret: secretsmanager.ISecret;
const provider = new Provider(this, "Provider", {
host: "your.db.host.net",
username: "master",
password: theMasterSecret,
port: 5432,
vpc,
securityGroups: [dbClusterSecurityGroup],
});
const provider = new Provider(this, "Provider", {
host: "your.db.host.net",
username: "master",
password: theMasterSecret,
port: 5432,
vpc,
securityGroups: [yourDatabaseSecurityGroup],
});
You can reuse the same Provider
instance when creating your different Role
and Database
instances.
Database
import { Database } from "@botpress/cdk-postgresql";
const db = new Database(this, "Database", {
provider,
name: "mynewdb",
owner: "somerole",
removalPolicy: cdk.RemovalPolicy.RETAIN,
});
Role
import { Role } from "@botpress/cdk-postgresql";
const rolePassword: secretsmanager.ISecret;
const role = new Role(this, "Role", {
provider,
name: "newrole",
password: rolePassword,
removalPolicy: cdk.RemovalPolicy.RETAIN,
});
Tips
Creating a Role
before a Database
In many cases, you want to create a Role
and use that role as the Database
owner. You can achieve this by adding an explicit dependency between the two instances:
const roleName = "newRole";
const role = new Role(this, "Role", {
provider,
name: roleName,
password: rolePassword,
});
const db = new Database(this, "Database", {
provider,
name: "mydb",
owner: roleName,
});
db.node.addDependency(role);