7

boto3我在尝试AWS SAM local连接时遇到了一个奇怪的问题localstack S3。我知道这特别奇怪,因为SQS效果很好。两者localstackAWS SAM local都被调用以在我创建的 Docker 网络中运行,称为test.

我的(非工作 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

但是,如果我将代码更改为 use 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.

4

1 回答 1

0

默认情况下,所有 API 调用的主要入口点是 ( EDGE_PORT) 4566。我正在localstack/localstack:latest通过同一端口与容器内的 S3 进行交互。

为了让它工作,我还必须将 AWS 开发工具包配置更改为使用s3ForcePathStyle: true.

以上对你有用吗?

于 2021-05-12T08:31:29.363 回答