使用AWS SAM Local(Python)访问AWS凭证

时间:2018-07-31 19:07:33

标签: python amazon-web-services amazon-s3 boto3 aws-sam

我正在尝试使用SAM Local来测试我的lambda函数(Python)。我的功能需要访问S3,这是通过boto3实现的。在我的本地计算机上,我的凭据存储在~/.aws/credentials中,并且从SAM文档中听起来像是在使用SAM CLI时访问了这些凭据

  

SAM CLI将使用您本地配置的IAM凭据调用功能。

这是在AWS上部署后访问S3存储桶的方式:

s3_resource = boto3.resource('s3')
s3_bucket = s3_resource.Bucket(<bucket_name>)
s3_bucket.download_file(<file_key>, 
<download_name>)

我已经尝试过使用SAM本地调用的方式,但是了解您需要传递所使用的AWS配置文件。所以我尝试运行此命令:

sam local invoke <sam_identified> --event event.json --profile <aws_profile>

此函数从不执行...只是挂在此输出inside runtime container

我也尝试过:

session = boto3.Session(profile_name=<aws_profile>)
s3_resource = Session.client('s3')
s3_bucket = s3_resource.Bucket(<bucket_name>)
s3_bucket.download_file(<file_key>, 
<download_name>)

但是当我运行命令时:

sam local invoke <sam_identified> --event event.json --profile <aws_profile>

我收到以下答复:

The config profile (<aws_profile>) could not be found

我知道位于~/.aws/credentials的凭据没有问题,但是感觉如何通过SAM CLI访问凭据可能会丢失。解决该问题的任何帮助将不胜感激!

0 个答案:

没有答案