Как вызвать AWS лямбда при локальном запуске EventGateway
Я пытаюсь вызвать функцию AWS Lambda из локально работающего экземпляра EventGateway (версия: 0.9.1). Однако вызов по подписке не выполняется из-за "Event Type: http.request not found".
Лямбда была развернута независимо с использованием безсерверной инфраструктуры, а ARN был введен в регистрационный вызов:
Лямбда - это просто приветственный тип лямбда-прослушивания http-запроса:
functions:
hello-world:
handler: bin/hello-serverless
events:
- http:
path: /hello
method: get
Моя функция регистрации вызова выглядит так:
curl --request POST \
--url http://127.0.0.1:4001/v1/spaces/default/functions \
--header 'content-type: application/json' \
--data \
'{"functionId": "helloserverless", "type": "awslambda", "provider":{ "arn": "<lambda-arn>", "region": "ap-southeast-2", "accessKeyId": "<my-access-key>", "secretAccessKey": "<my-secret-key"}}'
Теперь, когда я пытаюсь подписаться на событие:
--url http://127.0.0.1:4001/v1/spaces/default/subscriptions \
--header 'content-type: application/json' \
--data '{"functionId": "helloserverless", "type": "sync", "path": "/hello", "method": "GET", "eventType": "http.request"}'
Я получаю следующую ошибку:
{"errors":[{"message":"Event Type \"http.request\" not found."}]}
Любой указатель на правильное решение или рабочий пример очень ценится.
1 ответ
Если вы хотите вызвать функцию, подобную конечной точке, вам нужно запустить приложение. Существует плагин под названием serverless-offline, чтобы помочь вам в этом.
Если вы хотите вызвать вашу функцию с использованием параметров без сервера, команда называется INVOKE. https://serverless.com/framework/docs/providers/aws/cli-reference/invoke-local/