我有一個代理AWS Lambda函數的API網關資源。這對於通過尾隨的路徑參數(/periodicals/{tail+}
)工作得很好,但我想這些參數是可選的,我還增加了ANY
方法到更高的資源(/periodicals
):如何在AWS API網關中調試「Missing Authentication Token」?
能正常工作時,從AWS控制檯內測試該方法。直接從我的瀏覽器執行對資源的請求,然而,結果如下回應:
{"message":"Missing Authentication Token"}
有了這個標題:
x-amzn-errortype: MissingAuthenticationTokenException
它也有一個x-cache
頭與價值Error from cloudfront
,所以我猜猜這可能與CloudFront有關。我雖然沒有明確地設置CloudFront,但真的不知道如何檢查?
我覺得我讀了此錯誤消息的每個線程,但他們都不適用於我:
- 需要我的方法沒有授權:
- 我敢肯定的URL是正確的。當我在瀏覽器中訪問
/periodicals/whatever
(即{tail+}
資源)時,它工作正常,但對於/periodicals
不適用。 - CORS已啓用,因爲兩個資源都指向處理CORS並適用於子路徑的Lambda函數。
- HTTP動詞無關緊要,因爲它正在偵聽
ANY
。 - 無論我是否添加尾部斜線,結果都是一樣的。
- 該API已部署。
- 我覺得API資源對我的lambda表達式足夠的權限,我可以成功地從AWS控制檯執行:
一個有趣的現象,這要歸功於@Lakindu,是沒有方法在下面列出在階段的資源視圖:
還有什麼我能做的,找出什麼錯誤?
您是否在選擇了lambda函數之後在左側菜單中檢入了API網關,階段「?不管它是否被阻止? –
@Lakindu嗯,這確實看起來很可疑:http://i.imgur.com/8bpfgGT.png你知道爲什麼沒有方法列出'/期刊'嗎? – Vincent
你需要有一個資源,內部資源,你可以有方法 點擊/期刊,然後行動按鈕,創建方法 –