首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AWS API网关缓存忽略查询参数

AWS API网关缓存忽略查询参数
EN

Stack Overflow用户
提问于 2018-02-20 21:44:31
回答 1查看 3.8K关注 0票数 12

我正在AWS API网关端配置缓存,以提高我的REST API的性能。我正在尝试配置的端点正在使用查询参数。我已经在AWS API Gateway端启用了缓存,但不幸的是,我发现它在构建缓存键时忽略了查询参数。

例如,当我第一次使用查询参数"test1“进行GET调用时

代码语言:javascript
运行
复制
GET https://2kdslm234ds9.execute-api.us-east-1.amazonaws.com/api/test?search=test1

此调用的响应保存在缓存中,之后我调用另一个查询参数-- "test2“

代码语言:javascript
运行
复制
GET https://2kdslm234ds9.execute-api.us-east-1.amazonaws.com/api/test?search=test2

我再次得到第一次呼叫的响应。

缓存的设置非常简单,我没有找到任何与参数配置相关的东西。

如何配置网关缓存以考虑查询参数?

EN

回答 1

Stack Overflow用户

发布于 2019-07-03 19:04:20

下面是我们如何利用SAM来实现这一点:

AWS API网关控制台中的最终结果必须显示设置缓存复选框为:

应用编程接口网关的*.yml模板为:

代码语言:javascript
运行
复制
Resources:
  MyApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: Prod
      CacheClusterEnabled: true
      CacheClusterSize: '0.5'
      MethodSettings:
        - HttpMethod: GET
          CacheTtlInSeconds: 120
          ResourcePath: "/getData"
          CachingEnabled: true
      DefinitionBody:
        swagger: 2.0
        basePath: /Prod
        info:
          title: OutService
        x-amazon-apigateway-policy:
          Version: "2012-10-17"
          Statement:
            - Effect: Allow
              Principal: "*"
              Action: execute-api:Invoke
              Resource:
                - execute-api:/*/*/*
        paths:
          "/getData":
            get:
              # ** Parameter(s) can be set here **
              parameters:
                - name: "path"
                  in: "query"
                  required: "false"
                  type: "string"
              x-amazon-apigateway-integration:
              # ** Key is cached **
                cacheKeyParameters:
                  - method.request.querystring.path
                httpMethod: POST
                type: aws_proxy
                uri:
                  Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${OutLambda.Arn}/invocations
              responses: {}
      EndpointConfiguration: PRIVATE
      Cors:
        AllowHeaders: "'*'"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48886715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档