AWS lambda create-function只接受一个环境变量

时间:2017-03-26 01:11:07

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

我正在尝试为lambda使用环境变量,但是当我从运行shell脚本的gradle任务运行以下Lambda AWS CLI create-function命令时,

aws $PROFILESTR lambda create-function \
--region us-east-1 \
--function-name MyLambda \
--zip-file fileb://$ZIP \
--role arn:aws:iam::$AWS_ACCT_ID:role/my_lambda \
--handler com.test.MyLambda::handleRequest \
--runtime java8 \
--description "Lambda description..." \
--memory-size 256 \
--timeout 45 \
--environment Variables={DEV_URL=dev,PROD_URL=prod}

它给了我这条消息,并没有创建lambda函数

:my-lambda:createLambda
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help

Unknown options: Variables=PROD_URL=prod
:my-lambda:createLambda FAILED

如果我删除第二个变量(只声明一个env变量),它就会很好地创建函数。

lambda create-function cli documentation,环境选项接受多个变量:

  

- 环境(结构)

     

包含环境配置的父对象   设置。速记语法:

     

变量= {KeyName1 =串,KeyName2 =串}

我应该能够通过脚本创建lambda而不是通过AWS控制台(发布应该是自动化的)。

我在这里错过了什么或我做错了什么?

2 个答案:

答案 0 :(得分:14)

您应该尝试使用Variables="{KeyName1=string,KeyName2=string}"

答案 1 :(得分:0)

另一种选择是将环境变量放在json文件中(例如:environment.json),并改为使用......: %aws lambda更新功能配置-功能名称MyLambda-环境文件://environment.json

...或...,您也可以在create-lambda语句中使用file://environment.json命令