クライアントがカスタムドメイン名だけでAPIを呼び出せるようにしたいです。
簡単な説明
Amazon API ゲートウェイ REST API と HTTP API は、https://API_ID.execute-api.REGION.amazonaws.com 形式のデフォルト API エンドポイントを使用します。API Gateway REST または HTTP API にカスタムドメイン名を使用する場合は、デフォルトのエンドポイントを非アクティブ化できます。これにより、すべてのトラフィックがカスタムドメイン名を介してAPIにルーティングされます。
解決方法
デフォルトのエンドポイントを非アクティブ化するには、API Gateway コンソール、AWS コマンドラインインターフェイス (AWS CLI)、または AWS CloudFormation を使用します。デフォルトのエンドポイントの非アクティブ化後、アップデートを有効にするにはデプロイを開始する必要があります。
**注:**AWS CLI コマンドの実行中にエラーが発生した場合は、AWS CLI の最新バージョンを使用しているかを確認してください。
API ゲートウェイコンソール
REST API
- API ゲートウェイコンソールを開きます。
- ナビゲーションペインで **[API] ** を選択し、次に REST API を選択します。
- ナビゲーションペインで [設定] を選択します。
- デフォルトエンドポイントでは、[無効] を選択し、 [変更を保存] を選択します。
- ナビゲーションペインで、[リソース] 、 [アクション] を選択し、次に [APIをデプロイ] を選択します。
HTTP API
- API ゲートウェイコンソールを開きます。
- ナビゲーションペインで [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
**注:api-id abcdef123 とステージ\ _name dev ** を REST API ID とそれぞれのステージに置き換えてください。
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
**注:**api\ _id abcdef123 とステージ\ _name ** dev ** を HTTP API ID とそれぞれのステージに置き換えてください。
CloudFormation テンプレート
CloudFormation テンプレートからデフォルトのエンドポイントを非アクティブ化するには、** DisableExecuteApiEndpoint** パラメータをTrue に設定します。REST API または HTTP API のCloudFormation テンプレートを更新します。
**重要:**デフォルトのエンドポイント URL を使用して API を呼び出すと、デフォルトのエンドポイントを非アクティブ化するとエラーになります。REST API の場合は「HTTP 403 禁止 エラー」、HTTP API の場合は「HTTP 404 が見つかりません」 というエラーが表示されます。
関連情報
Amazon API ゲートウェイでの REST API の呼び出し
API ゲートウェイからの HTTP 403 エラーをトラブルシューティングする方法を教えてください。