2016-12-06 70 views
5

[已解決] AWS(和StackOverflow)的新手。我正嘗試在AWS上創建一個lambda服務,並通過API網關從外部訪問它,而不需要進行身份驗證或限制。獲取消息:來自AWS API網關的禁止答覆

爲了讓事情變得簡單,我現在設置網關爲模擬。

在API的Get方法中,授權設置爲None,API密鑰爲not required

當我嘗試這個,我得到{"message":"Forbidden"} (如果我連接到實際的lambda服務相同的消息)。

有關如何使其可訪問的任何建議? 謝謝

+2

您是否在部署之前添加get方法? – Cenxui

+0

我想知道你沒有正確的invoke URL。 –

+0

謝謝你們......確實我在部署中犯了一個錯誤......感覺很愚蠢。 – Fab

回答

13

如果您將'API要求'選項設置爲true,請檢查以下內容。

  1. 您必須將'x-api-key'HTTP報頭參數傳遞給API網關。
  2. 必須創建API密鑰。
  3. 此外,您需要檢查API網關控制檯上的API密鑰的使用計劃。
+0

謝謝丹尼爾,你的第三步讓我解決我的錯誤。 –

+0

這對我有效,但它必須是'X-Api-Key'看起來像大寫事關重要 – pixelwiz

+0

郵差真的應該有一個領域 – pixelwiz

11

在API網關儀表板上,選擇資源,單擊操作,然後選擇部署API。在您首次部署之前,您將得到的唯一回應是{"message":"Forbidden"}

+0

我想補充一點,部署之後請確保您將舞臺名稱添加到網址中:abcdefg.execute-api.us-east-2.amazonaws.com/STAGE_NAME/ – user2465134

3

如果AuthorizationAPI KEY Required都被設置爲true的方法,那麼請確保您有以下標題發送請求:

  1. 內容類型(通常是應用程序/ x-WWW的形式,進行了urlencoded如果GET調用)
  2. HOST
  3. X-AMZ-日期
  4. 授權
  5. X-API密鑰

我使用POSTMAN進行API測試,這是相當可靠的,然後它很直觀。

注意:如果已將API KEY REQUIRED設置爲FALSE,請勿添加x-api密鑰標頭。 如果您已將AUTHORIZATION設置爲FALSE,則不要添加授權標頭。

0

我也有類似的問題,我有以下幾點:

  1. 自定義域(邊緣優化)
  2. 多階段(開發,分期,督促)

我也沒不設置任何授權或限制來簡化事情。

我能夠通過爲我的每個階段(開發,分期,產品)添加基本路徑映射來解決這個問題。

0

如果您使用自定義域名並忘記選擇目的地登臺,您將收到Forbidden消息。

只需轉到Custom Domain Names並在您的域下單擊Edit,然後選擇Base Path Mappings下的階段。