【发布时间】:2020-03-12 14:44:37
【问题描述】:
按照this quick-start,我正在尝试在 Golang 中编写一个 Lambda 函数(在我的 MacBook 上运行 Docker Desktop 进行开发)。我执行以下步骤:
- 运行“sam init --runtime go1.x --name testing”以从模板生成函数。
- 运行“make deps”来获取依赖项。
- 运行“make build”以构建生成到 hello-world/hello-word 的代码。
- 运行“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)
但是当我 curl 端点时,我得到一个 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 -
我错过了什么?
【问题讨论】:
-
您使用的是什么版本的 lambda docker 容器?我刚刚使用 docker image b8e51a982e64 对其进行了测试,并且成功了。 go 测试通过了吗?
-
我使用的是同一个图像 ID。运行“go test”会导致通过。运行“sam deploy”并上传到 Lambda 会导致函数按预期工作 - 我只是无法让它在本地工作。
标签: python go aws-lambda aws-sam