代码之家  ›  专栏  ›  技术社区  ›  Kristof Plennings

aws sam-模板没有任何连接到lambda函数的api

  •  5
  • Kristof Plennings  · 技术社区  · 6 年前

    所以我试图将现有的spring boot应用程序转换为aws lambda并使用sam。

    我正在尝试使用aws sam cli在本地尝试lambda,但是通过sam设置,我得到: Template does not have any APIs connected to Lambda functions

    当我这样做的时候: sam local start-api

    我的 template.yml :

    AWSTemplateFormatVersion : '2010-09-09'
    Transform: AWS::Serverless-2016-10-31
    Description: foo
    Resources:
      MailFunction:
        Type: AWS::Serverless::Function
        Properties:
          Handler: bar.LambdaHandler::handleRequest
          Runtime: java8
          CodeUri: target/foo-bar-1.0.jar
          Timeout: 300
          MemorySize: 1024
          Events:
            Timer:
              Type: Schedule
              Properties:
                Schedule: rate(1 day)
    

    知道我做错了什么吗?据我所知,它看起来是正确的 https://blog.couchbase.com/aws-serverless-lambda-scheduled-events-tweets-couchbase/ + https://docs.aws.amazon.com/lambda/latest/dg/tutorial-scheduled-events-schedule-expressions.html

    3 回复  |  直到 6 年前
        1
  •  4
  •   H6_    6 年前

    您没有向函数中添加任何API网关事件。和 start-api 生成本地api网关。

    你至少需要添加一个 Api 对您的事件 Events 部分。

    Events:
      [...]
      Api:
        Type: Api
        Properties:
          Path: /myresource
          Method: get
    

    如果你有一个 Schedule 事件,尝试使用 generate-event 创造这样的事件。

    sam local generate-event schedule ...

    调用函数,例如 sam local invoke function-name -e event_file.json ( see )

        2
  •  0
  •   leeor    5 年前

    即使当我 有一个 Api 在我的sam模板中定义的事件。问题是我以前的模板 .aws-sam/build/ 未定义API事件的目录(从上一次运行的 sam build )清除生成目录修复了它。

        3
  •  0
  •   cyrf    5 年前

    当aws::serverless::函数定义中出现空白错误时,我得到了这个错误,特别是 Environment 需要成为一个孩子 Properties 但在同一层面上。更正空白使此错误消失。节点10.15。

    推荐文章