serverless framework + typeorm + data-apiでaurora-serverlessへアクセスする。
v0.2.19 - 2019/09/14で対応された
yarn add typeorm
yarn add typeorm-aurora-data-api-driver
const connection = await createConnection({
type: 'aurora-data-api',
database: 'test-db',
secretArn: 'arn:aws:secretsmanager:eu-west-1:xxxxxxxxxxxxxx:secret:xxxxxx/xxxxxx/xxxxxx',
resourceArn: 'arn:aws:rds:eu-west-1:xxxxx:xxxxxx:xxxxxx',
region: 'eu-west-1',
})
webpack / serverless-frameworkから使う
v0.2.19の時点だと、webpackだと動かない。
MODULE_NOT_FOUNDが出るので、typeormをちょっと修正する。
typeorm/platform/PlatformTools.js
PlatformTools.load = function(name) {
// if name is not absolute or relative, then try to load package from the node_modules of the directory we are currently in
// this is useful when we are using typeorm package globally installed and it accesses drivers
// that are not installed globally
try {
// switch case to explicit require statements for webpack compatibility.
switch (name) {
/**
* mongodb
*/
case "mongodb":
return require("mongodb");
........
// type ormへのアクセスを追加 !!!!!!!!!!!!!!!!
case "typeorm-aurora-data-api-driver":
return require("typeorm-aurora-data-api-driver");
/**
* default
*/
default:
return require(name);
src/driver/aurora-data-api/AuroraDataApiDriver.ts
# this.DataApiDriver = PlatformTools.load("typeorm-aurora-data-api-driver");
const driver = PlatformTools.load("typeorm-aurora-data-api-driver");
this.DataApiDriver = driver.default || driver;
文字コード
クライアント側で指定できないので、RDSのパラメータグループで正しく指定してあげる
character_set_client / character_set_connection / character_set_database / character_set_results / character_set_server
skip-character-set-client-handshake も1にセットしたけど、不要そうな気もする。
これで接続成功しますた。(゚д゚)
次のバージョンで対応されそうな気がするので、ちゃんと待った方が良さげ。
課題点とか
data-apiで
- datetimeに0が入るとだめっぽい。
Author And Source
この問題について(serverless framework + typeorm + data-apiでaurora-serverlessへアクセスする。), 我々は、より多くの情報をここで見つけました https://qiita.com/TakenoriHirao/items/468ac166b0a916e2d165著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .