更新:私はそれを理解しました。AWS API Gateway GETレスポンスは常にキャッシュされます
さまざまなリソースとさまざまなGETメソッドとPOSTメソッドで定義されたAWS API Gateway apiがあります。
すべてがうまく動作します。 POSTが実行されています。 GETは、返された値がでキャッシュされた値であることを除いて、レスポンス(JSONペイロード)を返します。
私のGET APIは、RDSにクエリを呼び出すラムダ関数を呼び出します。 私はので、私の応答が陳腐であることを確認することができます:私は手動でRDSを照会するとき、私はクラウドウォッチログが有効になっており、ラムダ関数は(私は私が持っていると信じて呼び出されません持って更新された値
- 私はラムダを呼び出すテストするとき、私は)クラウドウォッチログを取得することができます
それは一度リフレッシュしなかったので、それが正しく設定されて、私は、私は1時間)、キャッシングしきい値または何かのように(一部を越えているためそれがだったと思います。
私は、API Gatewayが舞台裏でCloudFrontを生成することを理解します。 そして、私はこれがキャッシングをしていると感じています。しかしそれはちょうど推測であり、私には証拠がありません。たぶん何らかの種類のデフォルトのキャッシュTTL?
明らかに、私のAPIゲートウェイステージでキャッシングがオフになっています。 私はTTLを1に設定し、キャッシュをフラッシュし、再びキャッシュを無効にすることを試みました。 そのテストの各段階でも失効した値が返されました。
それが関連している場合、私は知らないが、追加的な詳細:
- 私はCORSを有効にしている(「*」)
- 私はCognitoの承認者が
- 私は経由してJWTトークンを渡す有効になっています(これはすべて正常に動作しています)
キャッシュされていない値を要求するために渡す予定のヘッダーがありますか? 私はCloudFrontに行きましたが、ここには設定がありません。
APIゲートウェイのキャッシュに関するその他の投稿は、キャッシュが機能していないか、キャッシュキーの特定性について質問しているようです。 値が何であっても常にキャッシュされていることは何も見ていません。だから私は何かが明らかに欠けているように感じる...
何か助けやデバッグのヒントが大いにありがとう!
* "キャッシュされたクエリ結果が返されました" *より正確には、一貫性のある読み込み**を返しているようです。 –