2016-04-01 45 views
0

我有時(並非總是)面臨此錯誤。我在API網關功能中創建資源和方法。然後我將它映射到一個Lambda函數。在測試它本身時,一切正常。添加自定義授權給出錯誤:我們計算的請求籤名與您提供的簽名不匹配

現在我爲該方法添加一個自定義授權函數。現在,如果我沒有測試它,

  • 如果我不提供授權頭,它的工作原理卻(因爲它尚未部署。部署後,將要求驗證頭)
  • 如果我, ,提供授權令牌,我得到的錯誤:

The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.\n\nThe Canonical String for this request should have been\n'POST\n/2015-03-31/functions/arn%3Aaws%3Alambda%3Aus-eas

更多細節:屬於此方法的lambda函數被刪除。然後我重新創建了具有相同名稱的功能。並注意到該方法在部署API時被刪除。所以我重新創建了映射並將其映射到Lambda函數。因爲,那麼我就面臨這個問題。我確定如果我更改Lambda的名稱,它可能會解決問題。但我認爲這是AWS的一個錯誤,而不是我的最終結果。需要澄清是否有什麼我做錯了?

回答

1

它看起來像當前部署的API版本正在將方法請求的授權標頭轉發到集成請求(Lambda)。如果您試圖修復API的當前狀態,那麼我建議從方法請求中刪除授權標頭,該方法請求也會將其從集成請求中移除。這應該修復Lambda簽名錯誤。

如果您嘗試在方法上使用自定義授權人,則不需要在方法請求中設置授權標頭。你只需要將授權者標識源設置爲'method.request.header.Authorization'

+0

謝謝,刪除方法請求中的Authorizaton頭解決了問題 –

相關問題