問題タブ [aws-api-gateway]
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 - CloudFront を介して S3 バケットと API ゲートウェイを提供する
この URL の S3 バケットから Web アプリのフロント エンドを提供したいと考えていますwww.acme.com
。
同時に、この URL で API ゲートウェイ ステージ (ラムダ関数が背後で実行されている) からバックエンドを提供したいと考えています: www.acme.com/api
(api.acme.com
壊れた Same Origin ポリシーに対処する必要がないように、URL は使用しません)。
この時点で、S3 バケットまたは API Gateway ステージを提供するように Cloudfront をセットアップできましたが、一緒にセットアップすることはできませんでした。
リソース (最初にバケット、次に API ゲートウェイ) と動作中の 2 つのパス (バケットへのデフォルト パスとゲートウェイへの 2 番目の /api) の両方を宣言しようとしました。バケットは適切に提供されますが、GETは次のようwww.acme.com/api/users
になります。
この問題を解決する方法についての手がかりをありがとう。
amazon-web-services - API Gateway の前に CloudFront を追加する方法
API Gateway (APIG) は、CloudFront (CF) を使用していますが、CDN エッジ キャッシングをサポートしていません。カスタム オリジンとして APIG を使用するように CF ディストリビューションを構成すると、アクセス許可拒否エラーが発生します。
これを修正するために CF を構成するにはどうすればよいですか?
authentication - AWS API Gateway を使用したクライアント証明書
aws api ゲートウェイとサーバー間の通信に相互認証を実装しようとしています。認証のために Amazon が提供するクライアント側の証明書を使用したいと考えています。以前はラムダ関数を使用しており、相互認証が機能していたため、サーバーが正しく構成されていることはわかっています。
(.PEM) 証明書をエクスポートし、トラストストアに追加しました。そのトラストストアを認証に使用するように Jetty サーバーを構成しました。client-auth を :need に設定しました。自己実装の相互 SSL で動作していたため、サーバーが正しくセットアップされていることがわかります。私がしたことは、トラストストアを変更することだけでした。メソッド ゲートウェイをテストすると、{ "メッセージ": "不明なエンドポイント エラー"} という 200 が返されます。
以下は、サーバー ログ ファイルからの抜粋です。サーバー側のハンドシェイクは完了しているように見えますが、クライアント証明書にエラーがあります。
pConnection@3a0a2e84{FILLING} サーバー側ハンドシェイクが完了しました 2015-09-28 13:04:29,856 DEBUG [qtp1980278840-19] oejiChannelEndPoint - フラッシュされた 45 SelectChannelEndPoint@2c05eeb2{ec2-xx-xxx-xxx-x.compute-1.amazonaws .com/5x.xxx.xxx.x:43942<->4000,Open,in,out,-,-,0/200000,SslConnection}{io=0,kio=0,kro=1} 2015-09- 28 13:04:29,856 DEBUG [qtp1980278840-19] oejisSslConnection - SslConnection@50e2de43{NOT_HANDSHAKING,eio=0/0,di=-1} -> HttpConnection@3a0a2e84{FILLING} フラッシュ出口、消費 0 2015-09-28 13 :04:29,856 DEBUG [qtp1980278840-19] oejisSslConnection - SslConnection@50e2de43{NOT_HANDSHAKING,eio=0/-1,di=-1} -> HttpConnection@3a0a2e84{FILLING} unwrap Status = BUFFER_UNDERFLOW HandshakeStatus = NOT_HANDSHAKING
amazon-iam - API ゲートウェイ 残りのクライアントから AWS IAM 認証を渡す方法
残りのクライアントから認証済み API ゲートウェイ エンドポイントをテストしようとしています。リクエストを行うときに「AWS_IAM」認証ヘッダーを生成/設定するにはどうすればよいですか?
amazon-web-services - AWS Api Gateway - Lambda 関数クライアント証明書
API Gateway でクライアント証明書を作成しました。プロキシを使用している場合、証明書はエンドポイントに正しく送信されています。
ただし、ラムダを使用する場合、https パッケージ ( require('https'); ) を使用して https リクエストの証明書にアクセスしたり、再送信/転送したりすることはできません。
ラムダ関数で API Gateway クライアント証明書を使用するにはどうすればよいですか?
amazon-web-services - AWS API Gateway が開かない
「hello world」ラムダ関数を作成し、AWS のAPI Gatewayを使用してエンドポイントにデプロイしました。
すべての非常に基本的な設定ですが、セキュリティを「オープン」に変更したことを確認しました。ドメインが解決されるまでに15分かかる可能性があると言われましたが、30分経っても「オープン」エンドポイント:
明らかな何かが欠けていますか?これは私がしたことで利用できたはずではありませんか?
この画像は GET ではなく PUT であることが指摘されています。私は両方を試しましたが、両方ともエラーが返されました。Postmanを介して GET と PUT を実行したことを確認するために、同様の応答を取得しましたが、同一ではありません。
そしてGET...
コンソールでラムダ関数をテストすると、正常に実行されますが、API Gateway で実行すると、同じエラーの別の表現が得られます。
Tue Sep 29 20:57:43 UTC 2015: 設定エラーにより実行に失敗しました: Lambda 関数に対する無効なアクセス許可
それでも、コンソールが提案したデフォルトのアクセス許可を使用しました. ラムダ関数自体は非常に基本的なもので、次の場所にあります:コード
amazon-web-services - マッピング テンプレートのデフォルトのコンテンツ タイプ
残念ながら、標準に準拠していないプロジェクトのデータプロバイダーを使用しているため、リクエストのヘッダー内にコンテンツタイプが指定されていません。実際には指定されていますが、コンテンツタイプとは異なるキーを使用しています。
POST リクエストのペイロードは xml 形式であるため、マッピング テンプレートを使用してペイロードを json オブジェクトにラップする必要があることを理解しています。統合リクエスト部分で content-type を設定タイプの 1 つに指定すると、これらすべてが非常にうまく機能します。
私の理解では、コンテンツタイプがリクエストヘッダーで指定されていない場合、デフォルトで「application/json」になり、そのタイプに関連付けられたマッピングテンプレートを実行する必要があります。この場合、マッピング テンプレートを無視しているように動作し、次のエラーが返されます。
{"Type":"User","message":"リクエストの本文を json に解析できませんでした。"}
リクエストは処理のために AWS Lambda に送信されます。
それを機能させる方法はありますか?
編集: Content-Type がヘッダー内に設定されていない場合、デフォルトは「application/json」であることを確認しました。その場合、私が経験しているのはバグだと思います。
angularjs - Angular を使用した AWS API ゲートウェイ
AWS API Gateway を Angular.js フロントエンドと連携させた人はいますか? API Gateway の POST メソッドを介して公開されるラムダ関数があります。このドキュメントで示されているようにヘッダーを設定しました: http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html
Postman でテストしたところ、うまくいきました。特別なことをする必要はありませんでしたが、$http.post()
呼び出しを行うNo 'Access-Control-Allow-Origin'
と、要求されたリソースにヘッダーが存在するだけです。したがって、オリジンhttp://localhost:9000
へのアクセスは許可されません。応答は応答HTTP status code 500.
として持っていました。
c# - AWS API ゲートウェイの署名
Amazon ゲートウェイへのリクエストに署名しようとしています。しかし、POST リクエストを送信しようとするたびに、署名の有効期限が切れていることが通知されます。どんなアイデアでも大歓迎です。