2017-07-05 34 views
0

我一直使用AWS,我一直在使用eu-west-1以及我編寫的驗證過的c#代碼。總是有意使用多個區域,所以regionURL(s)是一個配置選項;字面上是一個字符串列表。到目前爲止,這個名單已經有1年了。- 某些地區不會進行身份驗證,其他人會這樣做?

應用工作的一般方式是:一個循環,枚舉中配置的網址中,它會創建一個客戶端,並期待與未運行特定名稱模式,一個實例,然後啓動它。只有eu-west-1配置,以便創建客戶端時,它只會使用regionURL,在該地區

列舉僅停止情況到現在爲止有我最近開始加入EC2實例到另一個區域eu-central-1所以我已經添加了eu-central-1配置的區域基址URL。我知道,遍歷該配置工作正常(我已經附加調試和檢查的字符串尾部字符等 - 一切看起來罰款)的循環,而這些配置的區域網址:

https://eu-west-1.ec2.amazonaws.com 
https://ec2.eu-central-1.amazonaws.com 

每當應用程序來枚舉區域的URL它得到eu-west-1第一和工作正常,但是當環路惡有惡報到eu-central-1調用.DescribeInstances(...)失敗:

AWS無法驗證所提供的訪問證書

創建客戶端的方式沒有任何實際區別;這實際上是剛剛爲eu-west-1工作的完全相同的代碼。我沒有做任何特別的努力來爲代碼中的任何東西提供憑證; web.config僅包含AWSAccessKeyAWSSecretKey的鍵值對。我總是假設AWS SDK由於是應用程序的DLL部分隱含訪問他們..

有什麼事我都在控制檯使一個地區的憑證呢?是,該地區的URL看在不同的順序顯著(我得到了central URL關閉亞馬遜的幫助文檔中,wes牛逼網址是因爲它一直是)?

+0

嗯。 IAM是少數全球性的AWS服務之一 - 所以我不知道這個問題會給你帶來什麼。 – Henry

回答

1

我升級了AWS SDK從1.5到3.3的版本,改變各種類的名稱,以反映重大更改到AWS命名空間的架構,但保留所有相同的邏輯。

我也從配置指定區域的URL交換,以地區名稱的配置,因爲該地區的網址似乎使用靜態調用RegionEndpoint.GetBySystemName("eu-west-1")

時,這些是唯一的變化被內置到SDK本身,並全部開始自動工作;該API密鑰仍然指定n只有web配置,還是該SDK發現他們有自己,因爲我不在我的代碼中使用它們的假設下操作..

+2

較新區域使用不同形式的身份驗證(Sig v4),這是由最近的SDK支持的。使用最新版本的庫總是一個好主意,因爲AWS的變化速度很快! –

+0

謝謝約翰;這似乎很可能是答案 –

相關問題