SAM APIのキャッシュクラスターが未設定

レスポンスの特性に合わせてSAM REST APIのキャッシュを設定してください。

説明

AWS::Serverless::Apiのキャッシュクラスターはレスポンスを再利用し、バックエンドの呼び出しを減らせます。キャッシュは任意です。古いデータの提供やユーザー固有のレスポンスの誤共有を防げる範囲で利用してください。

想定される影響

キャッシュ可能なリクエストが多い場合、キャッシュがないとバックエンドの負荷や遅延が増えることがあります。

対処方法

適したAPIにCacheClusterEnabled: trueを設定し、MethodSettingsで対象メソッドのキャッシュを有効にしてください。キャッシュキーと有効期間も決めてください。

例

GETメソッドのキャッシュを有効にする例です。実際のAPI定義とレスポンスごとのキャッシュキーは別途設定してください。

変更前

yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
      TracingEnabled: true

変更後

yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
      TracingEnabled: true
      CacheClusterEnabled: true
      MethodSettings:
        - ResourcePath: /*
          HttpMethod: GET
          CachingEnabled: true

参考資料