我正在尝试为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控制台(发布应该是自动化的)。
我在这里错过了什么或我做错了什么?
答案 0 :(得分:14)
您应该尝试使用Variables="{KeyName1=string,KeyName2=string}"
答案 1 :(得分:0)
另一种选择是将环境变量放在json文件中(例如:environment.json),并改为使用......: %aws lambda更新功能配置-功能名称MyLambda-环境文件://environment.json
...或...,您也可以在create-lambda语句中使用file://environment.json命令