【问题标题】:Error accessing s3 bucket from lambda - InvalidBucketName从 lambda 访问 s3 存储桶时出错 - InvalidBucketName
【发布时间】:2017-12-12 18:47:07
【问题描述】:

我使用 Java AWS SDK 创建了一个 lambda 函数来从 s3 存储桶中读取 csv 文件。我已经公开了存储桶,并且可以从任何浏览器轻松访问它和文件。 为了测试它,我使用了 lambda 控制台上的测试按钮。我只是在使用 hello world 测试配置输入模板。
它失败了:

错误信息:指定的存储桶无效。 (服务:Amazon S3;状态代码:400;错误代码:InvalidBucketName;请求 ID:XXXXXXXXXXXXXXX)

Lambda 函数和 s3 存储桶位于同一区域 (us-east-1)。

我已将 AmazonS3FullAccess 添加到 lambda_basic_execution 角色。

AmazonS3 s3Client = AmazonS3ClientBuilder.standard().build();

也试过

AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();

然后调用

S3Object s3object = s3Client.getObject(new GetObjectRequest(
                bucketName, keyName));

bucketName 是:

https://s3.amazonaws.com/<allAlphaLowerCaseBucketName>

键名是:

<allAlphaLowerCaseKeyName>.csv

感谢任何帮助。

【问题讨论】:

    标签: amazon-s3 aws-lambda aws-sdk


    【解决方案1】:

    存储桶名称不是存储桶的 URL,而只是您的存储桶的实际名称。

    S3Object s3object = s3Client.getObject(
                          new GetObjectRequest(
                              <allAlphaLowerCaseBucketName>,
                              <allAlphaLowerCaseKeyName>.csv
                          )
                       );
    

    【讨论】:

      猜你喜欢
      • 2017-09-13
      • 2018-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多