Как вызвать AWS лямбда при локальном запуске EventGateway - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь вызвать функцию 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 Ответ

0 голосов
/ 08 июля 2019

Если вы хотите вызвать функцию, подобную конечной точке, вам нужно запустить приложение. В этом есть плагин под названием serverless-offline.

В случае, если вы хотите вызвать вашу функцию, используя опции без сервера, команда называется INVOKE. https://serverless.com/framework/docs/providers/aws/cli-reference/invoke-local/

...