【发布时间】:2021-12-19 02:18:13
【问题描述】:
我正在使用 AWS lambda,但无法更改 lambda 中使用的默认参数。有解决办法吗?
设置:
Lambda "iAmInvoked" 由 cloudformation 中的堆栈创建,该堆栈设置了默认参数值(我设置这些默认值的想法是,如果调用程序不提供参数值,则会使用这些默认值需要并且可以被覆盖)。我使用名为“iWillInvoke”的 lambda 异步调用此 iAmInvoked lambda,并提供包含 iAmInvoked 使用的参数的新值的有效负载> 而不是它的默认值。
iWillInvoke 代码:
import json
import boto3
client = boto3.client('lambda')
def lambda_handler(event, context):
payloadForLambda = { 'parameter1' : 'abc,def' , 'parameter2' : '123456' , 'parameter3' : '987654' }
client.invoke(
FunctionName='arn:aws:lambda:us-west-2:123456789:function:iAmInvoked',
InvocationType='Event',
Payload=json.dumps(payloadForLambda)
)
iAmInvoked 代码:
AWSTemplateFormatVersion: 2010-09-09
Description: |
"Creates required IAM roles to give permission to get and put SSM parameters and creates lambda function that shares the parameter(s)."
Parameters:
parameter1:
Type: String
Default: parameterValueThatShallBeOverridden1
parameter2:
Type: String
Default: parameterValueThatShallBeOverridden2
parameter3:
Type: String
Default: parameterValueThatShallBeOverridden3
问题/问题:
无论我在 iWillInvoke 的负载中提供什么,iAmInvoked 都使用其默认值。有没有办法可以覆盖默认值?
【问题讨论】:
-
您好,感谢您回来查看。你说得对。问题不在于 cloudformation 模板。我在 Lambda 的 python 代码中使用环境变量而不是事件变量。解决这个问题解决了这个问题。谢谢!
标签: amazon-web-services aws-lambda amazon-cloudformation aws-cloudformation-custom-resource aws-control-tower