web-dev-qa-db-ja.com

403を返すAPI Gatewayのカスタムドメイン

API GatewayとLambdaを使用してAPIを作成しています。 API Gatewayステージエディターで指定されたURLを使用すると、すべて正常に動作します。しかし、カスタムドメインに移動しようとすると、いくつかの問題が発生します。

最初に試したのは、Route 53のCNAMEレコードを私のドメインからAPI Gatewayから取得したドメインに直接使用することでした。それはいくつかのエラーを返していましたが、間違った解決策は正しいと思いますか?

次に、API Gatewayのカスタムドメイン名機能を試しました。私はこれがCloudFrontディストリビューションをロールアップしてRoute 53からマッピングできることを理解しています。カスタムドメインを作成してドメインマッピングを追加すると、CloudFrontディストリビューションであると想定するURLが提供されます。リンクは403応答を返し、CloudFrontでの配布は行われていません。この問題をデバッグする良い方法は何ですか?

24
BBS

あなたがそれを見たことがなければ、ここに開発者ガイドがあります。 http://docs.aws.Amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html

必要なのは、API Gatewayが提供するCFディストリビューションを指すDNSプロバイダーでCNAMEを設定することだけです。 CFディストリビューションに対して直接API呼び出しを行うことはできません。 API Gatewayは、API Gatewayで設定した基本パスマッピングからAPI /ステージをマップするため、ドメイン名に向けられたAPI呼び出しのみが正しく機能します。

18
Jack Kohn - AWS

リクエストではHostヘッダーを使用する必要があります。ホストはカスタムドメインである必要があります。

curl https://<cf-id>.cloudfront.net/myapi -H "Host: api.myapi.com"
15
Santosh Sahu

私の場合、ベースパスマッピングを追加する必要がありました。

5
Derrick Petzold

関連する問題:

正確に以下の応答:

{"message":"Forbidden"}

ブラウザで

F12 > Network > ( select error line) > Response (on right side)

意味するかもしれない
それは、URLパスに問題があります