Azure VM无法连接到AWS s3

时间:2015-10-07 11:17:36

标签: azure amazon-web-services amazon-s3

我正在测试通常部署在Azure VM中的AWS Linux VM上的Web应用程序。 (java)应用程序访问AWS s3以获取某些存储功能,并列出AWS s3存储桶中的对象。 在Azure VM中运行应用程序列表为空。

怀疑连接问题,我在Azure VM上安装了AWS CLI,配置了密钥并运行了:

$ aws s3 ls

这导致了

Could not connect to the endpoint URL: "https://s3.us-east.amazonaws.com/"

确认我的怀疑。

检查应用程序堆栈跟踪基本上是应用程序" listObjects"请求显示

Request: http://azuredev.gpo.epacube.com/dps/job/listprojects raised com.amazonaws.services.s3.model.AmazonS3Exception: AWS authentication requires a valid Date or x-amz-date header (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: A2494E7A540B5B20), S3 Extended Request ID: 6+Nv1AtCTe0xz3i7Ra5lrmdEdxiIfXgxYapY9KbomblhYL4Q85L3iTLchpQcwRnixyE5El0WKwM=
com.amazonaws.services.s3.model.AmazonS3Exception: AWS authentication requires a valid Date or x-amz-date header (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: A2494E7A540B5B20), S3 Extended Request ID: 6+Nv1AtCTe0xz3i7Ra5lrmdEdxiIfXgxYapY9KbomblhYL4Q85L3iTLchpQcwRnixyE5El0WKwM=

从AWS上的CENTOS运行时,完全相同的代码可以正常工作,但是当在Azure上的Ubuntu 13.04上运行时,它会失败。

为什么我会收到无效日期错误? 如何修改Azure VM设置以使AWS s3连接成功?

2 个答案:

答案 0 :(得分:1)

您所在地区的错误。

https://s3.us-east.amazonaws.com/不是有效的端点。您可能将区域us-east配置为us-east-1

我可以通过指定错误的端点来重现该问题:

这有效:

$ aws s3 ls --region us-east-1

这不起作用:

$ aws s3 ls --region us-east

Could not connect to the endpoint URL: "https://s3.us-east.amazonaws.com/"

有关端点的完整列表,请参阅:Regions and Endpoints

答案 1 :(得分:0)

原来这是JDK8和joda-time上的旧版aws-sdk-java依赖的混合。将joda-time依赖项升级到版本2.8.1修复了此问题。

找到here