如何停用 REST 或 HTTP API 的 API Gateway 預設端點?

2 分的閱讀內容
0

我想允許用戶端僅使用自訂網域名稱以叫用我的 API。

簡短說明

Amazon API Gateway REST APIHTTP API 使用以下格式的預設 API 端點:https://API_ID.execute-api.REGION.amazonaws.com。如果您的 API Gateway REST 或 HTTP API 使用自訂網域名稱,則可以停用預設端點。這可透過自訂網域名稱,讓所有流量路由到您的 API。

解決方法

要停用預設端點,使用 API Gateway 主控台、AWS Command Line Interface (AWS CLI) 或 AWS CloudFormation。停用預設端點後,您必須初始化部署,讓更新生效。

**注意:**如果您執行 AWS CLI 命令時收到錯誤訊息,確認您使用的是最新版本的 AWS CLI

API Gateway 主控台

REST API

  1. 開啟 API Gateway 主控台
  2. 在導覽窗格,選擇 API,然後選擇您的 REST API。
  3. 在導覽窗格,選擇設定
  4. 針對預設端點,選擇已停用,然後選擇儲存變更
  5. 在導覽窗格,選擇資源動作,然後選擇部署 API

HTTP API

  1. 開啟 API Gateway 主控台
  2. 在導覽窗格,選擇 API,然後選擇您的 HTTP API。
  3. 在導覽窗格,選擇 API: API_NAME(API_ID)
  4. 選擇編輯
  5. 針對預設端點,選擇已停用,然後選擇儲存

AWS CLI

REST API
執行 AWS CLI 命令 update-rest-api

aws apigateway update-rest-api --rest-api-id abcdef123 --patch-operations op=replace,path=/disableExecuteApiEndpoint,value='True'

要部署更新的 API,執行 AWS CLI 命令create-deployment

aws apigateway create-deployment --rest-api-id abcdef123 --stage-name dev

**注意:**使用您的 REST API ID 和相應的階段,取代 api-id abcdef123 和 stage_name dev

HTTP API

執行 AWS CLI 命令 update-api

aws apigatewayv2 update-api --api-id abcdef123 --disable-execute-api-endpoint

要部署更新的 API,執行 AWS CLI 命令create-deployment

aws apigatewayv2 create-deployment --api-id abcdef123 --stage-name dev

**注意:**使用您的 HTTP API ID 和相應的階段,取代 api_id abcdef123 和 stage_name dev

CloudFormation 範本

要從 CloudFormation 範本停用預設端點,設定 DisableExecuteApiEndpoint 參數為 True。更新 REST APIHTTP API 的 CloudFormation 範本。

**重要事項:**如果使用預設端點 URL 叫用 API,則停用預設端點會導致錯誤。如果使用 REST API,您會收到 HTTP 403 禁止錯誤;如果使用 HTTP API,則會收到 HTTP 404 找不到錯誤。

相關資訊

在 Amazon API Gateway 叫用 REST API

如何疑難排解 API Gateway 的 HTTP 403 錯誤?

AWS 官方
AWS 官方已更新 10 個月前