使用SAM在本地运行Golang函数的“找不到路由的Lambda函数”错误?

时间:2019-11-16 18:51:38

标签: python go aws-lambda aws-sam

this快速入门之后,我试图在Golang中编写Lambda函数(在运行Docker Desktop的MacBook上进行开发)。我执行以下步骤:

  1. 运行“ sam init --runtime go1.x --name testing”以从模板生成函数。
  2. 运行“ make deps”来获取依赖项。
  3. 运行“ make build”以构建生成到hello-world / hello-word的代码。
  4. 运行“ sam local start-api”。

一切似乎都可以正确启动:

Mounting HelloWorldFunction at http://127.0.0.1:3000/hello [GET]
You can now browse to the above endpoints to invoke your functions. You do not need to restart/reload SAM CLI while working on your functions, changes will be reflected instantly/automatically. You only need to restart SAM CLI if you update your AWS SAM template
2019-11-16 10:39:19  * Running on http://127.0.0.1:3000/ (Press CTRL+C to quit)

但是当我卷曲端点时,我得到了502并且看到错误:

2019-11-16 10:39:23 Exception on /hello [HEAD]
Traceback (most recent call last):
  File "/usr/local/Cellar/aws-sam-cli/0.31.0/libexec/lib/python3.7/site-packages/flask/app.py", line 2317, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/Cellar/aws-sam-cli/0.31.0/libexec/lib/python3.7/site-packages/flask/app.py", line 1840, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/Cellar/aws-sam-cli/0.31.0/libexec/lib/python3.7/site-packages/flask/app.py", line 1743, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/Cellar/aws-sam-cli/0.31.0/libexec/lib/python3.7/site-packages/flask/_compat.py", line 36, in reraise
    raise value
  File "/usr/local/Cellar/aws-sam-cli/0.31.0/libexec/lib/python3.7/site-packages/flask/app.py", line 1838, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/Cellar/aws-sam-cli/0.31.0/libexec/lib/python3.7/site-packages/flask/app.py", line 1824, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/Cellar/aws-sam-cli/0.31.0/libexec/lib/python3.7/site-packages/samcli/local/apigw/local_apigw_service.py", line 172, in _request_handler
    route = self._get_current_route(request)
  File "/usr/local/Cellar/aws-sam-cli/0.31.0/libexec/lib/python3.7/site-packages/samcli/local/apigw/local_apigw_service.py", line 236, in _get_current_route
    raise KeyError("Lambda function for the route not found")
KeyError: 'Lambda function for the route not found'
2019-11-16 10:39:23 127.0.0.1 - - [16/Nov/2019 10:39:23] "HEAD /hello HTTP/1.1" 502 -

我想念什么?

1 个答案:

答案 0 :(得分:0)

在这一晚聚会上,您可能已经解决了。没有看到任何代码,您好像发出了HEAD请求,而不是GET请求,而且我怀疑您没有HEAD方法的路由,只有GET。