我刚开始使用无服务器框架。
我试图部署一个从 lambda 连接到 RDS 的端点,所以我在 serverless.yaml 文件中定义了一个处理程序、一个路由和一个资源:
provider:
name: aws
runtime: nodejs6.10
environment:
RDS_DB: mydb${opt:stage, self:provider.stage}
RDS_USER: foo
RDS_PASSWORD: bar
functions:
foo:
handler: foo.handler
events:
- http:
path: api/v1/foos
resources:
Resources:
RdsCluster:
Type: AWS::RDS::DBInstance
Properties:
AllocatedStorage: 5
DBInstanceClass: db.t2.micro
Engine: MySQL
MasterUsername: ${self:provider.environment.RDS_USER}
MasterUserPassword: ${self:provider.environment.RDS_PASSWORD}
DBName: ${self:provider.environment.RDS_DB}
现在我想在 foo.handler 中编写连接到数据库的代码,为此我需要获取数据库主机:
var mysql = require('mysql');
var connection = mysql.createConnection({
host: '<db_host>',
user: process.env.RDS_USER,
password: process.env.RDS_PASSWORD,
database: process.env.RDS_DB
});
有没有办法从 serverless.yaml 资源定义中动态获取这些信息,而不是在处理程序本身中硬编码?