首页 > 解决方案 > 使用模板向 aws lambda 事件添加参数

问题描述

如何使用云形成模板向 lambda 函数事件添加(路径)参数?

奇怪地使用:

DeleteItem:
          Type: Api
          Properties:
            Path: /item/{id}
            Method: delete
            Request:
            Parameters:
              Paths:
                id: true

使用 aws-sam-cli 工作。但是,当我尝试使用云形成进行部署时,它说未定义属性请求。我从无服务器文档中得到了这个请求的想法,但似乎只能在本地工作。我在模板中找不到有关如何执行此操作的文档,因此将不胜感激。

标签: amazon-web-servicesaws-lambdaamazon-cloudformation

解决方案


无服务器框架使用自己的语法,这与 SAM 不同(尽管可以编译为 SAM 或原始 CloudFormation)。

您可以在此处找到 SAM 规范。

它不是明确的,但您需要做的就是使用{path-name}语法。添加Request/Parameters不是必需的(或支持)。

例如:

Ratings:
  Type: AWS::Serverless::Function
  Properties:
    Handler: ratings.handler
    Runtime: python3.6
    Events:
      Api:
        Type: Api
        Properties:
          Path: /ratings/{id}
          Method: get

会给你一个事件:

event.pathParameters.id == 'whatever-was-put-in-the-id-position'

(一个很长的例子可以在这里找到:https ://github.com/1Strategy/redirect/blob/master/redirect.yaml )


推荐阅读