You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SAM模板定义仅含Mock响应的无Lambda API Gateway?

纯Mock集成API Gateway的SAM模板实现

你可以直接通过内嵌OpenAPI定义的AWS::Serverless::Api资源实现需求,无需关联Lambda函数、无需引入外部OAS文件,完整模板如下:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Mock API Gateway without Lambda

Resources:
  MyMockApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
      DefinitionBody:
        openapi: 3.0.1
        info:
          title: MockHelloWorldApi
          version: '1.0'
        paths:
          /:
            get:
              responses:
                '200':
                  description: 成功响应
                  content:
                    application/json:
                      schema:
                        type: string
              x-amazon-apigateway-integration:
                type: mock
                requestTemplates:
                  application/json: |
                    {
                      "statusCode": 200
                    }
                responses:
                  default:
                    statusCode: "200"
                    responseTemplates:
                      application/json: "\"hello world\""

Outputs:
  ApiEndpoint:
    Description: Mock API调用地址
    Value: !Sub "https://${MyMockApi}.execute-api.${AWS::Region}.amazonaws.com/prod/"
关键配置说明
  • 所有API规则直接内嵌在DefinitionBody字段中,SAM会自动完成解析、创建、部署全流程,不需要额外维护外部配置文件
  • x-amazon-apigateway-integration的type显式指定为mock,无需配置任何后端服务、Lambda ARN等参数
  • 请求映射模板固定返回{"statusCode": 200},直接命中默认200集成响应规则,不需要额外配置正则匹配、模型等规则
  • 响应映射模板指定application/json类型返回静态文本"hello world",和控制台手动配置的效果完全一致
  • 模板不依赖Lambda、S3等额外资源,部署过程仅创建API Gateway相关资源
部署步骤
  1. 将上述模板保存为template.yaml文件
  2. 首次部署执行sam deploy --guided按照提示完成参数配置,后续更新直接执行sam deploy即可
  3. 部署完成后可直接从CloudFormation输出中拿到API调用地址,GET请求根路径即可得到hello world响应

内容的提问来源于stack exchange,提问作者mud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 11:45:05