API GatewayとLambdaを使用してAPIを作成しています。 API Gatewayステージエディターで指定されたURLを使用すると、すべて正常に動作します。しかし、カスタムドメインに移動しようとすると、いくつかの問題が発生します。
最初に試したのは、Route 53のCNAMEレコードを私のドメインからAPI Gatewayから取得したドメインに直接使用することでした。それはいくつかのエラーを返していましたが、間違った解決策は正しいと思いますか?
次に、API Gatewayのカスタムドメイン名機能を試しました。私はこれがCloudFrontディストリビューションをロールアップしてRoute 53からマッピングできることを理解しています。カスタムドメインを作成してドメインマッピングを追加すると、CloudFrontディストリビューションであると想定するURLが提供されます。リンクは403応答を返し、CloudFrontでの配布は行われていません。この問題をデバッグする良い方法は何ですか?
あなたがそれを見たことがなければ、ここに開発者ガイドがあります。 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呼び出しのみが正しく機能します。
リクエストではHostヘッダーを使用する必要があります。ホストはカスタムドメインである必要があります。
curl https://<cf-id>.cloudfront.net/myapi -H "Host: api.myapi.com"
私の場合、ベースパスマッピングを追加する必要がありました。
関連する問題:
正確に以下の応答:
{"message":"Forbidden"}
ブラウザで
F12 > Network > ( select error line) > Response (on right side)
意味するかもしれない
それは、URLパスに問題があります