我正在测试封装在docker映像中的lambda函数,并为lambda函数提供了环境变量AWS_PROFILE=我的配置文件。然而,我得到了一个错误:;无法找到配置配置文件(我的配置文件(";而该信息存在于CCD_ 1和CCD_。以下是我的命令:
docker run -e BUCKET_NAME=my-bucket -e AWS_PROFILE=my-profile-p 9000:8080 <image>:latest lambda_func.handler
curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '"body":{"x":5, "y":6}}'
问题是,如果我只是将lambda函数作为一个单独的python脚本运行,那么它就可以工作了。
有人能告诉我这里出了什么问题吗?感谢
当AWS显示如何使用其容器时,例如对于本地AWS Glue,它们在只读模式下与使用卷选项的容器共享~/.aws/
:
-v ~/.aws:/root/.aws:ro
因此,如果您希望以AWS为例,您的docker命令可以是:
docker run -e BUCKET_NAME=my-bucket -e AWS_PROFILE=my-profile-p 9000:8080 -v ~/.aws:/root/.aws:ro <image>:latest lambda_func.handler
另一种方法是使用docker环境变量传递AWS凭据,您已经在尝试了。
您需要设置AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
。
您的主目录(~
(没有复制到Docker容器,因此AWS_PROFILE
将不起作用。
有关示例,请参见此处:https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html