如何使用 API Gateway v2 检查 http 请求方法

How to check http request method using API Gateway v2

我的架构:

我正在尝试检查处理操作的请求方法,基于 他们推荐的回答

'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;
};