2016-04-07 12 views
5

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

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

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

+2

カスタムURLを有効にするときだけでなく、APIゲートウェイを使用しているときにCloudFrontディストリビューションを常に使用できます。あなたは舞台裏で管理されており、直接アクセスすることができないため、CloudFrontダッシュボードには表示されません。 –

+0

それは意味があります。それと私がCloudFrontが立ち上がるのを待っていないという事実が問題でした。私は今朝来て、それは働いていた。 – Banner

答えて

7

これは見たことがない場合の開発者ガイドです。 http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html

あなたがする必要があるのは、APIゲートウェイが提供するCFディストリビューションを指し示すDNSプロバイダーにCNAMEを設定することだけです。 API配布をCF配布に直接行うことはできません。 API Gatewayは、API GatewayをAPI Gatewayで設定したBase Pathマッピングからマップして、ドメイン名に向けられたAPI呼び出しだけが正しく動作するようにします。

0

関連問題:その通り応答以下

:ブラウザで

{"message":"Forbidden"} 

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

何かが間違っていること、
を意味するかもしれない、URLパスで

3

あなたはあなたの要求にホストヘッダーを使用する必要があります。ホストはカスタムドメインである必要があります。

curl https://<cf-id>.cloudfront.net/myapi -H "Host: api.myapi.com" 
+0

ホストヘッダーを追加すると、私の欠けていた部分でした。 APIGに必要なAPIキーがあり、x-api-keyのカスタムヘッダーを既に提供していましたが、Hostヘッダーがないと、クラウドフロントを使用するときにリクエストは常に禁止されました –

+0

これは本当の回答です! –

1

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

関連する問題