Как подключиться к RDS, определенному в разделе «Ресурсы» в serverless.yml из функции Lambda? - PullRequest
3 голосов
/ 24 мая 2019

Скажем, у меня есть раздел в моем serverless.yml, например:

resources: 
  Resources:
    RDSCluster:
      Type: AWS::RDS::DBCluster
      Properties:
        MasterUsername: SomeUserName
        MasterUserPassword: SomePassword
        DatabaseName: SomeDatabaseName
        Engine: aurora
        EngineMode: serverless
        ScalingConfiguration:
          AutoPause: true
          MaxCapacity: 16
          MinCapacity: 2
          SecondsUntilAutoPause: 300

Как мои лямбда-функции, написанные в node.js, могут подключаться к этой базе данных, то есть, что такое имя хоста / ip и где /как я могу захватить это?

Спасибо!

1 Ответ

1 голос
/ 24 мая 2019

Используйте функцию облачной информации GetAtt для доступа к возвращаемому значению от создания DBCluster:

provider:
  environment:
    RDS:
      Fn::GetAtt: [ RDSCluster, Endpoint.Address ]

Теперь вы можете получить доступ к полному доменному имени RDS (имя хоста + имя домена) в коде node.js следующим образом:

console.log(process.env.RDS);
// mystack-mydb-1apw1j4phylrk.cg034hpkmmjt.us-east-2.rds.amazonaws.com

Подробнее о возвращаемых значениях Cloudformation для ресурсов DBCluster можно узнать здесь: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#aws-properties-rds-database-instance-return-values

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...