Есть ли другие типы, которые мне следует использовать?
Я так не думаю. Типы доступны через ОпределенноТипед. [1] Просматривая некоторые вопросы, касающиеся типов «aws -lambda», вы заметите, что типы шлюза API не обновляются часто. [2]
Кроме того, версия формата полезной нагрузки изменена для API Gateway, см. [3]:
Версия формата полезной нагрузки определяет формат данных, которые API-шлюз отправляет на Интеграция Lambda и то, как API Gateway интерпретирует ответ Lambda. Если вы не укажете версию формата полезной нагрузки, консоль управления AWS по умолчанию использует последнюю версию. Если вы создаете интеграцию Lambda с помощью AWS CLI, AWS CloudFormation или SDK, вы должны указать payloadFormatVersion. Поддерживаемые значения: 1.0 и 2.0.
Я думаю, вы используете последнюю версию, которая 2.0 . Версия 2.0 предоставляет HTTP-метод как свойство requestContext.http.method .
Версия 1.0 предоставляет HTTP-метод как свойство requestContext.httpMethod .
Решение
Вы можете: 1.) написать типизацию для новой версии формата полезной нагрузки и отправить ее в DefinficTyped через PR для пакета «@ types / aws -lambda» или 2.) настроить свой API-шлюз для использования версия 1.0.
Честно говоря, я не знаю, возможно ли использование полезной нагрузки версии 1.0 для HTTP API. Возможно, AWS применяет последнюю версию к новым API, поскольку нет необходимости поддерживать старый формат.
Ссылки
[1] https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/aws-lambda/trigger/api-gateway-proxy.d.ts
[2] https://github.com/DefinitelyTyped/DefinitelyTyped/issues/38720#issuecomment -586051966
[3] https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html