AWS SAM-如何将参数传递给Lambda函数

时间:2019-07-05 11:33:16

标签: amazon-web-services aws-lambda aws-sam

我试图在执行sam deploy时传递参数值。例如:

sam package \
    --template-file lambda.yaml \
    --s3-bucket myexamplebucket \
    --output-template-file packaged.yaml

sam deploy --template-file ./packaged.yaml \
    --stack-name stack-test-lambda \
    --parameter-overrides ${lambda_param} \
    --no-fail-on-empty-changeset

但是,我得到:An error occurred (ValidationError) when calling the CreateChangeSet operation: Parameters: [LambdaRoleARN] must have values.

lambda_param包含:“ LambdaRoleARN” =“ arn:aws:iam :: 111111111111:role / my-lambda-role”

我需要以其他方式传递参数吗?目前,代码Uri只是指向“ lambda_example.py”文件。

AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::Serverless-2016-10-31

Parameters:
  LambdaRoleARN:
    Type: String

Resources:
  LambdaS3EventResponse: 
    Type: AWS::Serverless::Function
    Properties:
      FunctionName: lambda-s3-event-response
      Role: !Ref LambdaRoleARN
      Handler: lambda_example.lambda_handler
      Runtime: python3.7
      MemorySize: 128
      Timeout: 300
      CodeUri: ../../lambda/src/helpers

1 个答案:

答案 0 :(得分:0)

我知道了。 "未在Bash脚本中正确传递。通过将命令传递到数组中并执行以下操作,确保正确传递了"

array=(
sam deploy --template-file ./packaged.yaml \
    --stack-name stack-test-lambda \
    --parameter-overrides ${lambda_param} \
    --no-fail-on-empty-changeset
)
eval $(echo ${array[@]})