Ich habe gerade mit dem Serverless-Framework begonnen.Dynamischer Zugriff auf Ressourcenmetadaten aus einer Funktion im Serverless-Framework
Ich habe versucht, einen Endpunkt zu implementieren, die von einem Lambda RDS verbindet, so definiert ich einen Handler, eine Route und eine Ressource in der serverless.yaml Datei:
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}
Jetzt würde ich schreiben möchte der Code, der auf die Datenbank in der foo.handler und verbindet, um dies zu tun, muß ich den Datenbank-Host erhalten:
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
});
gibt es eine Möglichkeit, diese Informationen dynamisch aus der serverless.yaml Ressourcendefinition zu erhalten, anstatt es im Handler selbst zu kodieren?