如何使用 API Gateway v2 检查 http 请求方法
How to check http request method using API Gateway v2
我的架构:
- AWS HTTP API 带反向代理集成
- 普通 Lambda 函数
- 邮递员或浏览器
我正在尝试检查处理操作的请求方法,基于 他们推荐的回答
'use strict';
const AWS = require('aws-sdk');
const dynamo = new AWS.DynamoDB.DocumentClient();
exports.handler = async (event) => {
switch (event.httpMethod) {
case 'GET':
break;
default:
throw new Error(`@@@@ Unsupported method "${event.httpMethod}"`);
}
return {
statusCode: 200,
body: JSON.stringify({message: 'Success'})
};
};
我在我的 lambda 中粘贴了该代码,但它不起作用,我在日志中收到此错误:
"errorMessage": "@@@@ Unsupported method \"undefined\"",
那个 lambda 是由我的 HTTP API 触发的,路由有 GET 方法。
如果我 return 事件,我可以看到方法是 GET 或 POST,或者其他什么,看:
有人知道发生了什么事吗?
HTTP api (v2) 的输入对象架构与 REST api(来自您的 )不同。
对于Http api,方法可以从event.requestContext.http.method
获得
所以,它看起来像这样。
exports.handler = async (event) => {
console.log('event',event);
switch (event.requestContext.http.method) {
case 'GET':
console.log('This is a GET Method');
break;
default:
throw new Error(`@@@@ Unsupported method "${event.httpMethod}"`);
}
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
我的架构:
- AWS HTTP API 带反向代理集成
- 普通 Lambda 函数
- 邮递员或浏览器
我正在尝试检查处理操作的请求方法,基于
'use strict';
const AWS = require('aws-sdk');
const dynamo = new AWS.DynamoDB.DocumentClient();
exports.handler = async (event) => {
switch (event.httpMethod) {
case 'GET':
break;
default:
throw new Error(`@@@@ Unsupported method "${event.httpMethod}"`);
}
return {
statusCode: 200,
body: JSON.stringify({message: 'Success'})
};
};
我在我的 lambda 中粘贴了该代码,但它不起作用,我在日志中收到此错误:
"errorMessage": "@@@@ Unsupported method \"undefined\"",
那个 lambda 是由我的 HTTP API 触发的,路由有 GET 方法。
如果我 return 事件,我可以看到方法是 GET 或 POST,或者其他什么,看:
有人知道发生了什么事吗?
HTTP api (v2) 的输入对象架构与 REST api(来自您的
对于Http api,方法可以从event.requestContext.http.method
所以,它看起来像这样。
exports.handler = async (event) => {
console.log('event',event);
switch (event.requestContext.http.method) {
case 'GET':
console.log('This is a GET Method');
break;
default:
throw new Error(`@@@@ Unsupported method "${event.httpMethod}"`);
}
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};