go-sql-driverのDSN (Data Source Name) をオブジェクトから生成するライブラリを書きました。
yarn add @aereal/go-dsn
使い方をsynopsisから引用します:
import { formatDSN } from "@aereal/go-dsn" formatDSN({ dbName: "test-db", passwd: "mypasswd", user: "root", }) // => "root:mypasswd@/test-db"
便利。
AWS RDSへ接続するようなGoで書いたアプリをAWS CDKでECSにデプロイする際に使うと便利です。
import { Ec2TaskDefinition } from "@aws-cdk/aws-ecs"; import { DatabaseCluster } from "@aws-cdk/aws-rds"; const taskDef = new Ec2TaskDefinition(this, "TaskDefinition", {}); const dbCluster = DatabaseCluster.import( this, "DatabaseCluster", databaseClusterProps ); const dsn = formatDSN({ addr: dbCluster.clusterEndpoint.socketAddress, charset: "utf8mb4", collation: "utf8mb4_bin", dbName: "app", user: "root", }); const appContainer = taskDef.addContainer("app", { environment: { DSN: dsn, }, // ... );
たいへん便利! どうぞご利用ください。