我想允許用戶端僅使用自訂網域名稱以叫用我的 API。
簡短說明
Amazon API Gateway REST API 和 HTTP 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
- 開啟 API Gateway 主控台。
- 在導覽窗格,選擇 API,然後選擇您的 REST API。
- 在導覽窗格,選擇設定。
- 針對預設端點,選擇已停用,然後選擇儲存變更。
- 在導覽窗格,選擇資源、動作,然後選擇部署 API。
HTTP API
- 開啟 API Gateway 主控台。
- 在導覽窗格,選擇 API,然後選擇您的 HTTP API。
- 在導覽窗格,選擇 API: API_NAME(API_ID)。
- 選擇編輯。
- 針對預設端點,選擇已停用,然後選擇儲存。
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 API 或 HTTP API 的 CloudFormation 範本。
**重要事項:**如果使用預設端點 URL 叫用 API,則停用預設端點會導致錯誤。如果使用 REST API,您會收到 HTTP 403 禁止錯誤;如果使用 HTTP API,則會收到 HTTP 404 找不到錯誤。
相關資訊
在 Amazon API Gateway 叫用 REST API
如何疑難排解 API Gateway 的 HTTP 403 錯誤?