6

我正在尝试使用 aws-sam 在本地开发/模拟我的 API 网关。我的 API 网关充分利用了HTTP 代理集成。生产资源如下所示:

API 网关资源方法上的 HTTP 代理集成的屏幕截图

发现的所有 aws-sam 示例 以及相关文档和问答,都使用 Lambda 集成/对作为代理资源的 Lambda 函数有硬依赖,而不是 HTTP 代理集成。

有没有办法为 aws-sam 应用程序定义 HTTP 代理资源?(与 Lambda 代理资源相反?)

有关的:

4

1 回答 1

3

是的,SAM 只是 Cloud Formation 转换。因此,您仍然可以像往常一样创建传统的 CloudFormation 对象。你也可以将它附加到你的 Serverless::API 上,但我对此不太有信心。

Resource:
  Api:
    Type: 'AWS::ApiGateway::RestApi'
    Properties:
      Description: A test API
      Name: MyRestAPI

    Type: 'AWS::ApiGateway::Resource'
    Properties:
      ParentId: !GetAtt Api.RootResourceId
      RestApiId: !Ref Api
      PathPart: '{proxy+}'

或可能(未经测试):

Resource:
  Api:
    Type: 'AWS::Serverless::Api'
    Properties:
      Description: A test API
      Name: MyRestAPI

    Type: 'AWS::ApiGateway::Resource'
    Properties:
      ParentId: !GetAtt Api.RootResourceId
      RestApiId: !Ref Api
      PathPart: '{proxy+}'
于 2019-09-09T04:37:26.653 回答