无服务器 502 错误网关
Serverless 502 Bad Gateway
我能够按照文档创建一个简单的无服务器函数,但是当我添加 http
侦听器时,我在尝试访问端点时一直收到 502 Bad Gateway
。
我该如何调试它?
'use strict';
module.exports.hello = async (event, context) => {
return {
statusCode: 200,
body: {
message: 'Go Serverless v1.0! Your function executed successfully!',
input: event,
},
};
};
serverless.yaml
service: playing-with-serverless # NOTE: update this with your service name
provider:
name: aws
runtime: nodejs8.10
functions:
hello:
handler: handler.hello
events:
- http:
path: hello
method: get
我已经部署了我的函数
$ sls deploy
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service .zip file to S3 (423 B)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
..............
Serverless: Stack update finished...
Service Information
service: playing-with-serverless
stage: dev
region: us-east-1
stack: playing-with-serverless-dev
api keys:
None
endpoints:
GET - https://1r5mt9wa63.execute-api.us-east-1.amazonaws.com/dev/hello
functions:
hello: playing-with-serverless-dev-hello
layers:
None
Serverless: Removing old service artifacts from S3...
cURL
$ curl --request GET \
--url https://1r5mt9wa63.execute-api.us-east-1.amazonaws.com/dev/hello
{"message": "Internal server error"}%```
您需要在响应对象中对 body
进行字符串化:
return {
statusCode: 200,
body: JSON.stringify({
message: 'Go Serverless v1.0! Your function executed successfully!',
input: event
})
};
See docs 具体来说 Output Format of a Lambda Function for Proxy Integration
您的服务器端代码可能有错误。
尝试在 AWS 控制台上测试您的请求。如果 Javascript 代码中存在错误,它会准确指出您的错误。
我能够按照文档创建一个简单的无服务器函数,但是当我添加 http
侦听器时,我在尝试访问端点时一直收到 502 Bad Gateway
。
我该如何调试它?
'use strict';
module.exports.hello = async (event, context) => {
return {
statusCode: 200,
body: {
message: 'Go Serverless v1.0! Your function executed successfully!',
input: event,
},
};
};
serverless.yaml
service: playing-with-serverless # NOTE: update this with your service name
provider:
name: aws
runtime: nodejs8.10
functions:
hello:
handler: handler.hello
events:
- http:
path: hello
method: get
我已经部署了我的函数
$ sls deploy
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service .zip file to S3 (423 B)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
..............
Serverless: Stack update finished...
Service Information
service: playing-with-serverless
stage: dev
region: us-east-1
stack: playing-with-serverless-dev
api keys:
None
endpoints:
GET - https://1r5mt9wa63.execute-api.us-east-1.amazonaws.com/dev/hello
functions:
hello: playing-with-serverless-dev-hello
layers:
None
Serverless: Removing old service artifacts from S3...
cURL
$ curl --request GET \
--url https://1r5mt9wa63.execute-api.us-east-1.amazonaws.com/dev/hello
{"message": "Internal server error"}%```
您需要在响应对象中对 body
进行字符串化:
return {
statusCode: 200,
body: JSON.stringify({
message: 'Go Serverless v1.0! Your function executed successfully!',
input: event
})
};
See docs 具体来说 Output Format of a Lambda Function for Proxy Integration
您的服务器端代码可能有错误。
尝试在 AWS 控制台上测试您的请求。如果 Javascript 代码中存在错误,它会准确指出您的错误。