我的 bash shell 环境设置如下:
AWS_REGION="us-east-1"
当我在 bash shell 中运行以下命令时,一切正常:
aws lambda update-function-code \
--function-name ${LAMBDA_FUNCTION_NAME} \
--zip-file fileb://mylambda.zip
但是,当我尝试在 Makefile 中运行完全相同的命令时,如下所示:
deploy: .env mylambda.zip
aws lambda update-function-code \
--function-name ${LAMBDA_FUNCTION_NAME} \
--zip-file fileb://mylambda.zip
...我收到以下错误:
Provided region_name '"us-east-1"' doesn't match a supported format.
make: *** [deploy] Error 255
我的猜测是 Makefile 运行在读取带有额外引号的环境变量的环境中。你知道这里发生了什么以及如何在 Makefile 中解决吗?
我的 Makefile 中也有一行
include .env
,其中变量被定义为 export AWS_REGION="us-east-1"
。显然 Make 不喜欢用引号定义的变量。将其更改为export AWS_REGION=us-east-1
解决了问题。