問題タブ [aws-http-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - AWS::Serverless::HttpApi Cors 設定は POST では機能しますが、OPTIONS では機能しません
私はしばらく CORS と戦ってきましたが、アイデアが尽きてしまいました。私はAWS::Serverless::HttpApi
SAMを介して展開しています。この API には現時点でエンドポイントが 1 つしかなく、 への POST リクエストを受け取ります/auctions
。PostMan でテストすると動作しますが、もちろん他の場所でテストすると恐ろしいpreflight failed
エラーがスローされます。過去数日間、私はさまざまなことを試してきましたが、何もうまくいきませんでした. これが私の現在の状態ですtemplate.yaml
:
このテンプレートには DynamoDb テーブルを作成する兄弟テンプレートがありますが、その部分は正常に機能しているため省略します。オプションラムダハンドラーは次のとおりです(ボディを追加してもヘッダーには影響しませんでした):
そして、POST ハンドラーから送信する成功応答:
オプション ラムダ ハンドラーを追加する前は204
、allow-origin ヘッダーなしで OPTIONS リクエストからの応答を受け取っていましたが、ハンドラーを追加したので、200
期待どおりに取得しましたが、ヘッダーはまだありません。この構成では、PostMan を介して同じヘッダーを持つ要求を送信すると、POST にヘッダーが含まれますが、OPTIONS 要求では欠落します。
私が試したこと:
CorsConfiguration: true
- オリジンのハードコーディング
私が読んだこと:
- AWS API ゲートウェイに存在しない CORS "Response to preflight..." ヘッダーを修正し、増幅する
- https://aws.amazon.com/premiumsupport/knowledge-center/no-access-control-allow-origin-error/
- https://www.serverless.com/blog/cors-api-gateway-survival-guide/
- https://aws.amazon.com/blogs/compute/configuring-cors-on-amazon-api-gateway-apis/
- https://aws.amazon.com/premiumsupport/knowledge-center/api-gateway-cors-errors/
- https://github.com/aws/aws-sam-cli/issues/2637
- https://forums.aws.amazon.com/thread.jspa?threadID=252972
- AWS Lambda HTTP API ゲートウェイ統合で CORS が不可能
- 私が見つけることができる他の aws cors の質問。
POST リクエストにヘッダーが存在するという事実は、何かが機能していることを示しています。あるリクエストでは機能するのに、他のリクエストでは機能しない理由がわかりません。
amazon-web-services - モバイルアプリケーションに AWS HTTP API ゲートウェイを選択してもよろしいですか?
アプリケーションにどの aws apigateway バージョンを選択するかを決定しようとしています (HTTP と REST API ゲートウェイ)。
AWS HTTP API ゲートウェイを試して、ユースケースでうまく機能するかどうかを確認しています。
これらは私の要件です:
- 唯一のクライアントはモバイル アプリケーションです。
- 残りの API は、ログインしているユーザーのみがアクセスできます
- cognitoオーソライザーでcognitoを使いたい
- 私のバックエンドは、内部アプリケーション ロード バランサーを介して公開されるラムダ サービスと HTTP REST サービスの組み合わせです。
すべてがサポートされているようです。唯一の懸念は、API キーを使用したことですが、この機能は現在 HTTP API ゲートウェイではサポートされていません。
API キーなしで HTTP を使用する場合、セキュリティ上の懸念はありますか? モバイル アプリからのリクエストのみにアクセスを制限するにはどうすればよいでしょうか?