Возникли проблемы при попытке запустить новый проект AWS / Serverless / Dialogflow. Я уверен, что это что-то простое, чего я просто не вижу.
Шаги
Создан первоначальный проект с использованием:
serverless create --template aws-nodejs-typescript
переместил handler.js в src / и обновил serverless.yml
- npm установлен
actions-on-google
последовал примеру actions-on-google и обновил src / handler .js
import { dialogflow, Image } from 'actions-on-google'; const app = dialogflow({debug: true}); app.intent("test.intent", (conv) => { conv.ask("Hi, how is it going?"); conv.ask("Here is a picture of a cat!"); conv.ask(new Image({ url: "https://developers.google.com/web/fundamentals/accessibility/semantics-builtin/imgs/160204193356-01-cat-500.jpg", alt: "A fluffy cat!" })); }); exports.fulfillment = app;
также обновлен tsconfig.json, чтобы он соответствовал другому проекту Typescript
{ "compilerOptions": { "sourceMap": true, "target": "es6", "allowJs": true, "module": "commonjs" }, "exclude": [ "node_modules" ], "include": [ "./src/**/*" ] }
Для наглядности вот мой serverless.yml. (Я вручную создал API-шлюз, потому что без сервера создается лямбда-прокси, и я не изучал другую конфигурацию.)
service:
name: test-lambda
# Add the serverless-webpack plugin
plugins:
- serverless-webpack
provider:
name: aws
runtime: nodejs6.10
functions:
fulfillment:
handler: src/handler.fulfillment
# events:
# - http:
# method: get
# path: hello
Ошибка
Проект компилируется и развертывается успешно, но когда вызывается лямбда, я продолжаю получать
(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot convert undefined or null to object
P.S. в примере источник решил использовать кошку!