amazon-web-services - 如何更改 lambda 的默认参数值?
问题描述
我正在使用 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都使用它的默认值。有没有办法可以覆盖默认值?
解决方案
iAmInvoked Code
不是你的函数代码也不是它的参数。它的 CloudFormation 模板和模板的参数。使用client.invoke
不会以任何形式影响 CloudFormation 模板。
要在 boto3 中使用 CloudFormation,有cloudformation SDK。
推荐阅读
- go - 如何撤消“go mod init”
- amazon-web-services - 如何确认我的 AWS Lambda 函数更新成功?
- php - Python 到前端的通信
- oracle - 如何调用正在运行的 SQL 脚本的文件名?
- spring-boot - 主复合键 ID 上的 org.hibernate.NonUniqueObjectException
- string - Z3py 模型返回 EMPTY
- javascript - 检测 JavaScript 中动态创建的输入的 id
- demandware - 在内容资产中创建会话重定向链接
- flutter - 键盘出现时颤振状态重建
- javascript - Nuxt.js 根据嵌套更改数据属性中 json 数据的格式