【发布时间】:2020-03-13 00:01:04
【问题描述】:
我正在尝试在我的serverless.yml 中进行一些传递文件引用,但似乎serverless 总是基于serverless.yml 文件解析引用,而不管其他引用文件位于何处。
示例:
serverless.yml:
...
resources:
- ${file(./cloud-formation-resources/my-dashboard.yml)}
./cloud-formation-resources/my-dashboard.yml:
Resources:
MyDashboard:
Type: AWS::CloudWatch::Dashboard
Properties:
DashboardName: My
DashboardBody: ${file(./cloud-formation-resources/dashboard-body-my.js):dashboardBodyMy}
./cloud-formation-resources/dashboard-body-my.js:
module.exports.dashboardBodyMy = (serverless) => {
const fsPromises = require('fs').promises
return fsPromises.readFile('./cloud-formation-resources/dashboard-body-my.json', 'utf-8')
};
./cloud-formation-resources/dashboard-body-my.json:
{
"widgets": [
...
]
}
我是否应该将所有资源文件与serverless.yml 放在同一目录中?我发现的唯一reference 是:
流行的无服务器框架旨在仅部署包含 serverless.yml 文件的目录内的文件。
这种限制可能是设计使然——您的 Lambda 需要的所有外部代码通常都可以包含在包管理器中。
【问题讨论】: