首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将actions与aws lambda集成

将actions与aws lambda集成
EN

Stack Overflow用户
提问于 2018-11-05 08:16:39
回答 1查看 598关注 0票数 0

我正在尝试开发一个带有actions sdk的google助手应用程序。我在网上发现了很多示例,它们都在使用google的防火墙云功能进行部署。通过这个链接(https://actions-on-google.github.io/actions-on-google-nodejs/),我还发现可以将actions函数部署到aws中。但不幸的是,我没有找到任何示例,说明如何将actions编写并部署到aws中。

有人能帮助我编写一个类似于这里所示的应用程序(https://github.com/actions-on-google/actionssdk-say-number-nodejs)并将它部署到aws中吗?

我也试过这样做。但它没有起作用。

  1. 创建一个文件夹并使用"npm“初始化它。
  2. 添加了index.js文件。
  3. 然后运行命令"npm安装动作-on-google“。它出现在package.json文件中。
  4. 在我创建的文件夹中创建了整个源代码的zip文件夹。
  5. 创建了一个aws函数并上传了zip文件夹,并将lambda函数的"Handler“设置为"index.fulfillment”。
  6. 创建了一个api网关并将其链接到lambda函数并进行了部署。
  7. 然后获取url并编辑"actions.json“文件并运行gaction命令。
  8. 然后,当我开始使用模拟器在操作控制台中测试这个应用程序时,我得到了一个错误:"UnparseableJsonResponse API版本2:未能用'INVALID_ARGUMENT‘错误解析JSON:"error_message:无法找到字段“

以下是index.js文件中的代码

代码语言:javascript
运行
复制
'use strict';

const {actionssdk, SimpleResponse} = require('actions-on-google');

const app = actionssdk({debug: true});

app.intent('actions.intent.MAIN', (conv) => {
  conv.ask("welcome");
});


app.intent('actions.intent.TEXT', async (conv, input) => {
  conv.ask('You said ' + input);
});


exports.fulfillment = app

这是来自aws的云监视日志

代码语言:javascript
运行
复制
2018-11-10T08:35:46.715Z    9dbb17f8-e4c3-11e8-bce3-730a5244a300
{
    "errorMessage": "Cannot convert undefined or null to object",
    "errorType": "TypeError",
    "stackTrace": [
        "Function.keys (<anonymous>)",
        "Lambda.<anonymous> (/var/task/node_modules/actions-on-google/dist/framework/lambda.js:36:36)",
        "Generator.next (<anonymous>)",
        "/var/task/node_modules/actions-on-google/dist/framework/lambda.js:22:71",
        "new Promise (<anonymous>)",
        "__awaiter (/var/task/node_modules/actions-on-google/dist/framework/lambda.js:18:12)",
        "/var/task/node_modules/actions-on-google/dist/framework/lambda.js:30:46",
        "omni (/var/task/node_modules/actions-on-google/dist/assistant.js:44:53)"
    ]
}
EN

回答 1

Stack Overflow用户

发布于 2018-11-05 15:19:27

在AWS上托管它的代码更改相当简单。与其导入firebase函数库并使用它,您只需使用对话框流应用程序本身建立lambda端点即可。因此,代码看起来可能类似于:

代码语言:javascript
运行
复制
const { dialogflow } = require('actions-on-google')

const app = dialogflow()

// Setup intent handlers with app.intent() here

exports.factsAboutGoogle = app
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53150596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档