【发布时间】:2018-07-19 07:56:08
【问题描述】:
我在尝试让AWS SAM local 中的boto3 连接到localstack S3 时遇到了一个奇怪的问题。我知道这特别奇怪,因为SQS 工作正常。 localstack 和 AWS SAM local 都被调用以在我创建的名为 test 的 Docker 网络中运行。
我的(非工作 S3)Python 代码是:
ACCESS_KEY='123'
SECRET_KEY='abc'
s3 = boto3.client('s3',
endpoint_url="http://docker.for.mac.localhost:4572",
use_ssl=False,
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY)
print s3.list_buckets()
上面的代码给了我错误:An error occurred (NoSuchBucket) when calling the ListBuckets operation: The specified bucket does not exist: NoSuchBucket。
但是,如果我将代码更改为使用localstack SQS,如下所示:
ACCESS_KEY='123'
SECRET_KEY='abc'
sqs = boto3.client('sqs',
endpoint_url="http://docker.for.mac.localhost:4576",
use_ssl=False,
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY)
print sqs.list_queues()
一切正常,它列出了我在localstack SQS 创建的队列。
【问题讨论】:
-
您不应在应用程序中明确定义 AWS 密钥。只需在您的工作环境中使用
aws configure --profile localstack和export AWS_PROFILE=localstack创建 AWS 配置文件。
标签: python amazon-web-services amazon-s3 aws-lambda localstack