LoginSignup
4
1

More than 3 years have passed since last update.

serverless framework + typeorm + data-apiでaurora-serverlessへアクセスする。

Last updated at Posted at 2019-10-05

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が入るとだめっぽい。
4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1