0

我正在使用 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使用它的默认值。有没有办法可以覆盖默认值?

4

1 回答 1

0

iAmInvoked Code不是你的函数代码也不是它的参数。它的 CloudFormation 模板和模板的参数。使用client.invoke不会以任何形式影响 CloudFormation 模板。

要在 boto3 中使用 CloudFormation,有cloudformation SDK

于 2021-11-04T22:37:07.593 回答