如何對 Amazon API Gateway WebSocket API 連線錯誤進行疑難排解?

2 分的閱讀內容
0

我嘗試連接至 Amazon API Gateway WebSocket API,但收到錯誤。如何對 WebSocket API 連接問題進行疑難排解?

簡短描述

以下原因可能導致發生 API Gateway WebSocket API 連線錯誤:

  • 許可不足,無法向後端發出請求
  • API ID、AWS 區域和 API 階段的欄位不正確
  • 後端整合中的錯誤
  • AWS Identity and Access Management (IAM) 驗證錯誤

解決方案

在您的案例中執行以下疑難排解步驟。

確認 WebSocket API 具有向後端發出請求的必要許可

API Gateway 使用 IAM 角色、政策、標籤和 AWS Lambda Authorizer,來控制對 WebSocket API 的存取。如需詳細資訊,請參閱在 API Gateway 中控制和管理 WebSocket API 的存取權

此外,請確認已正確設定 WebSocket API 整合請求

確認請求已傳送至正確的 API ID、AWS 區域和 API 階段

在此範例中請求 URL,請確認下列欄位正確無誤:

wss://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/production
  • WebSocket API ID "a1b2c3d4e5"。
  • AWS 區域 "us-east-1"。
  • API 階段名稱 "production" 已存在。

檢查 CloudWatch 日誌是否存在錯誤

按照指示開啟 Amazon CloudWatch Logs,以便對 API Gateway WebSocket API 進行疑難排解。如果已針對後端整合 Lambda 函數,請檢查 CloudWatch 日誌是否存在錯誤。如需詳細資訊,請參閱存取 AWS Lambda 的 CloudWatch 日誌

如果 API 方法啟用了 IAM 身份驗證,請確認 API 請求已進行簽署

如果已開啟 IAM 身分驗證,請確認 API 請求已使用第 4 版簽署程序 (SigV4) 進行簽署。如需詳細資訊,請參閱使用第 4 版簽署程序簽署 AWS 請求

若要針對 API Gateway API 開啟 IAM 身分驗證,請依照下列步驟執行:

  1. API Gateway 主控台中,選擇 API 的名稱。
  2. Resources (資源) 窗格中,選擇您想要啟用 IAM 身分驗證的方法 (例如 GETPOST)。
  3. Method Execution (方法執行) 窗格中,選擇 Method Request (方法請求)。
  4. Settings (設定) 下,針對 Authorization (授權),選擇鉛筆圖示 (編輯)。從下拉式清單中選擇 AWS_IAM,然後選擇核取記號圖示 (更新)。
  5. (選用) 針對您想要啟用 IAM 身分驗證的每種 API 方法,重複步驟 2-4。
  6. 部署 WebSocket API 使變更生效。

相關資訊

使用 CloudWatch 指標監控 WebSocket API 執行

使用 API Gateway Lambda Authorizer

在將 Lambda 授權方與 API Gateway REST API 結合使用時,如何對 HTTP 403 Forbidden (HTTP 403 禁止) 錯誤進行疑難排解?

如何對連線至 API Gateway 私有 API 端點時的問題進行疑難排解?

AWS 官方
AWS 官方已更新 1 年前