2015-10-07 169 views
0

我正在測試通常部署在Azure VM中的AWS Linux VM上的Web應用程序。 (Java)應用程序訪問AWS s3以獲取某些存儲功能並列出AWS s3存儲桶中的對象。 在Azure VM中運行應用程序的列表爲空。Azure VM無法連接到AWS s3

懷疑連接問題,我安裝了AWS CLI對Azure的VM,配置鑰匙,跑到:

$ aws s3 ls 

這導致

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

確認了我的懷疑。

檢查主要應用程序的「listObjects」請求的應用程序堆棧跟蹤顯示從CentOS的AWS上運行時

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= 

完全相同的代碼工作的,但在Ubuntu 13.04運行在Azure上失敗。

爲什麼我會得到無效日期錯誤? 如何修改Azure VM設置以便AWS s3連接成功?

+1

Azure不配置任何出站防火牆,並沒有什麼會阻止從Azure的VM的AWS域名解析。並且...爲了記錄,當我從本地開發機器運行'aws s3 ls'(我剛剛嘗試)時,出現相同的錯誤。我懷疑這是一個與Azure相關的問題。 –

回答

0

原來,這是一個JDK8和一個混合舊版本的aws-sdk-java依賴於joda-time。將joda-time依賴升級到版本2.8.1解決了這個問題。

找到here

1

您的區域是錯誤的。

https://s3.us-east.amazonaws.com/不是有效的端點。當它應該是us-east-1時,您可能將區域配置爲us-east

我可以通過指定一個不正確的端點重現該問題:

這工作:

$ 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

+0

謝謝,運行與我們東1固定「aws s3 ls」重新配置,但不是應用程序的列表對象調用。儘管值得讚賞。 – gbegley