我想在从API网关调用的Lambda函数中使用Google动作包和ApiAiApp类。所有管道工作正常,我可以返回手动构建的响应,但是我真的更喜欢在Node.js Lambda函数中使用ApiAiApp对象。
我还可以使用Firebase托管该功能,使其正常运行。
请原谅我对这种类型的开发的无知,但是似乎没有任何搜索方法可以为我提供所需的解决方案。
Firebase的入口点是
exports.myTip = functions.https.onRequest((request, response) => {
我可以将请求+响应传递给ApiAiApp构造函数,一切都很好
就像在Lambda一样
exports.handler = function(event, context, callback)
我如何将事件转换为请求+响应,以便在lambda函数中调用相同的ApiAppApp构造函数?
TL:DR-如何在Lambda函数中调用Google Actions-on-Google ApiAiApp构造函数?
最佳答案
似乎您可以使用awslabs/aws-serverless-express创建ApiAiApp期望的类似于Express的请求/响应对象。
嗯,这看起来不像我最初想象的那样有用。似乎您更想做一些类似Express的结果/响应嘲笑之类的事情。我看到了一些与此相关的模块(lykmapipo/mock-express-response)。
您可以设置API-网关集成如何显示here,从而向您发出请求。然后,您的小羊可能看起来像这样:
const MockExpressResponse = require('mock-express-response');
exports.handler = (event, context, callback) => {
const response = new MockExpressResponse({
request: event,
});
const app = new ApiAiApp({ request: event, response });
// do stuff with app
callback(null, response._getString());
};
Idk,无论哪种方式都会使您的船漂浮。诚然,我对APIAiApp或在Lambda中运行Express一无所知,我的羔羊都是API的东西,而不是面向用户的。