首页 文章

如何使用lambda代理集成对API网关资源进行 Cloud 格式化

提问于
浏览
12

我一直在努力研究如何使用Lambda代理集成来表达(在cloudformation中)具有Lambda函数集成类型的API网关资源 .

这在AWS控制台中很容易实现,因为您可以选择一个复选框:

但是,AWS :: ApiGateway :: Method CloudFormation资源中没有相应的字段(它应该在Integration property中) .

如何在cloudformation中配置它?

2 回答

  • 10

    Integration类型应设置为 AWS_PROXY . 以下是来自正在运行的YAML CloudFormation模板的方法的示例代码段 .

    ProxyResourceAny:
      Type: AWS::ApiGateway::Method
      Properties:
        AuthorizationType: NONE
        HttpMethod: ANY
        ResourceId:
          Ref: ProxyResource
        RestApiId:
          Ref: API
        Integration:
          Type: AWS_PROXY
          IntegrationHttpMethod: POST
          Uri: !Sub
            - arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${Arn}/invocations
            - Arn:
                Fn::GetAtt:
                - RestorerLambda
                - Arn
    

    值得一说的是我怎么想出来的......

    在我挠了头一会儿之后,我检查了 aws apigateway get-method CLI命令的输出,以获得使用控制台以这种方式配置的方法 . 这给了我以下JSON,我意识到复选框可能被编码到类型中 . 我测试了我的假设并提出了上面的CloudFormation .

    {
        "apiKeyRequired": false,
        "httpMethod": "ANY",
        "methodIntegration": {
            "integrationResponses": {
                "200": {
                    "responseTemplates": {
                        "application/json": null
                    },
                    "statusCode": "200"
                }
            },
            "passthroughBehavior": "WHEN_NO_MATCH",
            "cacheKeyParameters": [],
            "uri": "arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:XXXXXXXXX:function:Shildrew-Restorer-Play-Lambda/invocations",
            "httpMethod": "POST",
            "cacheNamespace": "64bl3tgw4g",
            "type": "AWS_PROXY"
        },
        "requestParameters": {},
        "authorizationType": "NONE"
    }
    
  • 0

    我通过简单的改变解决了同样的问题

    Integration:
    Type: AWS_PROXY
    

    Integration:
    Type: AWS
    

    Cloud 形成文档目前很少,API网关 Cloud 形态文档与控制台上可以看到的内容不匹配,这阻碍了任何试图解决问题的人 .

    希望这可以帮助!

相关问题