我的Lambda代码存储在S3存储桶中。我使用CloudFormation在子帐户中进行部署。
Lambda代码段:
def lambda_handler(event,context):
ids = ["${id}"]
CloudFormation使用参数将id
接受为:
Parameters:
id:
Type: String
Description: Name of id.
Default: abc
但是由于代码存储在S3存储桶中,因此id
不会在lambda中填充。
如何处理?
答案 0 :(得分:2)
从您的描述看来,您的要求是:
您可以通过通过环境变量将参数传递给Lambda函数来实现。
在CloudFormation模板中定义Lambda函数时,可以提供环境变量:
Type: AWS::Lambda::Function
Properties:
Code:
Code
Environment:
Variables:
id:
Ref: PARAMETER-NAME
...
在这种情况下,变量的值来自参数。
然后在Lambda代码中,您将访问环境变量。这是一个Python示例:
import os
def lambda_handler(event, context):
print("environment variable: " + os.environ['id'])
参考文献:
答案 1 :(得分:1)
另一种方法是将参数存储在系统管理器的参数存储中,该参数也可以在cloudformation脚本中进行管理。