Gar*_*day 5 amazon-web-services aws-sam
在本地运行sams以测试我的api网关并传递环境变量时,我可以运行以下命令
sam local start-api -n env-vars.json
Run Code Online (Sandbox Code Playgroud)
当环境变量与这样的特定函数绑定在一起时,这很好用
MyFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: nodejs8.10
CodeUri: .
Environment:
Variables:
FIRST_BUCKET: !Ref firstBucket
SECOND_BUCKET: !Ref secondBucket
Run Code Online (Sandbox Code Playgroud)
但是,我目前有这样的全局环境变量
Globals:
Function:
CodeUri: .
Runtime: nodejs8.10
Environment:
Variables:
FIRST_BUCKET: !Ref firstBucket
SECOND_BUCKET: !Ref secondBucket
Run Code Online (Sandbox Code Playgroud)
如何使用将自定义全局环境变量传递给SAMS env-var.json?我希望能够对我的env-var.json文件执行类似的操作
{
"Globals": {
"Function": {
"FIRST_BUCKET": "this-is-my-bucket-name"
}
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这行不通,而且我无法在线找到任何资源来显示实现此行为的正确语法。
我明天必须对此进行测试,但是通读转换文档(以及我对 SAM 转换的理解),我希望全局变量仅应用于每个函数,而无需重新声明它们。
因此,您将像平常一样为每个函数形成 env.json:例如,
{
"MyFunction": {
"FIRST_BUCKET": "this-is-my-bucket-name"
},
"MySecondFunction": {
"SECOND_BUCKET": "this-is-my-second-bucket-name"
}
}
Run Code Online (Sandbox Code Playgroud)
这将导致您的 lambda 函数具有两个全局变量,但仅覆盖传递的值:
我的功能:
我的第二个函数:
请记住,您的函数将在函数中使用这两个变量,但您仅覆盖从 json 传递的变量。
| 归档时间: |
|
| 查看次数: |
291 次 |
| 最近记录: |