Tag: amazon web services

如何在节点js中authenticationCognito用户池

在下面的nodeapp中使用v1.10的amazon-cognito-identity-js。 我已经写下了以下内容:这个电话是在用户注册被确认并且电子邮件已经被validation之后进行的。 var AWS = require('aws-sdk'); var AWSCognito = require('amazon-cognito-identity-js'); router.post('/emailsignin', function(req, res, next) { var email = req.body.email; var pwd = req.body.password; AWS.config.region = 'eu-west-1'; var poolData = { UserPoolId : AWS_USERPOOLID, ClientId : AWS_APPCLIENTID }; var userPool = new AWS.CognitoIdentityServiceProvider.CognitoUserPool(poolData); var authenticationData = { Username : email, Password : pwd, }; var authenticationDetails […]

AWS S3标准上传schemevs基于浏览器的节点上传

我试图了解标准AWS S3上传scheme(例如使用aws-sdk)和基于浏览器的上传(特别是在node.js中)之间的实现差异。 我知道在任何情况下,都需要有一个服务器来存储我的AWS凭据并在S3上签名。 但是有一些我不明白的东西: 如果我使用基于浏览器的上传,我将在客户端使用HTML表单,并在隐藏字段中使用我的服务器获取的策略值。 但是,如果我使用标准scheme上传文件,即完全通过我的服务器,它究竟是如何实现的? 服务器端实现有很多代码示例,但客户端应该发生什么? 所以,会有一个HTML表单, action属性指向我的服务器的URL,指定用于file upload,对吧? 但是会发生什么呢? 将文件首先上传到我的服务器的存储,然后到S3? 或者它会以某种方式使用stream媒体或什么? 它真的让我困惑,我真的很感激一些代码示例,其中有服务器端和客户端代码。 这两个上传计划有什么优点和缺点? 我应该什么时候比另一种方式更倾向于一种方法(我的个人用例 – 用多帐户系统上传video)?

通过Lambda函数将数据添加到Amazon RDS

我一直在尝试创build一个用nodejs编写的Alexa技巧,我想把一些数据推送到RDS数据库。 我已经configuration了VPC和安全组,这应该意味着lambda函数可以访问数据库,因为我刚刚在节点中编写代码我认为我可能错误地编写了我的查询函数。 我有我的zip文件中的lambda函数node-mysql模块,所以没有问题。 var mysql = require('mysql'); var connection = mysql.createConnection({ host : rds endpoint, user : 'mohammad', password : 'password', database : 'motivate' }); connection.connect(function(err){ if (err) { console.error('error connecting: ' + err.stack); return; } console.log('connected as id ' + connection.threadId); }); for(var i = 0; i < authors.length; i++){ var postData = {author: […]

AWS Lambda和Dynamo:一个或多个参数值无效

我刚开始使用AWS,我试图通过从DynamoDB发布/获取的API Gateway启动并运行Lambda。 我正在使用dynamodb-doc的内联代码编辑器。 我不断得到错误: One or more parameter values were invalid: Condition parameter type does not match schema type 我不确定这是为什么。 我的表在Dynamo中设置,分区键为BusinessAsset_ID和GSI BusinessAsset_ID-index。 奇怪的是,我的POST实际上工作,并成功地将项目放入Dynamo。 我的代码如下。 提前致谢! 编辑:我正在使用“Lambda函数”集成types和“使用Lambda代理集成”checkbox的API网关GET方法。 我也尝试使用该方法作为具有path覆盖和执行angular色的“AWS服务”。 它导致与上面相同的错误消息相同的502错误的网关错误。 'use strict'; const doc = require('dynamodb-doc'); const dynamo = new doc.DynamoDB(); exports.handler = function(event, context) { switch (event.httpMethod) { case 'GET': var params = { TableName: event.queryStringParameters.TableName, […]

aws api网关,lambda和node express

我正在尝试在lambda和api网关上部署我的快速应用程序。 我使用Claudia.js来完成这个工作来包装我的快速应用程序。 这是我的路线: app.get("/", function(req, res){ res.render("hello.ejs"); }); app.get("/redirect", function(req, res){ res.redirect("/"); }); 在我的hello.ejs中,它包含: <a href="/redirect"> redirect </a> 然后我用lambda创build了根API“/”,hello.ejs通过api成功呈现。 但是,当我点击redirect链接时,显示{“message”:“Forbidden”}。 api的url也会被aws,xxxx.com/"deploy stage“修改”/这个成为根路由,当我点击“redirect”链接时,url变成了xxxx.com/redirect,合理。 我修改了url为xxxx.com/"deploy stage“/ redirect,并且{”message“:”Missing Authentication Token“}出现了。 请帮忙!

如何与亚马逊的物联网可编程button的LED灯交互

我正在使用node.js在Amazon Web Services中创buildIoTbutton在按下时调用的Lambda函数。 IoTbutton带有一个小的LED,如果该function成功执行,该LED将点亮为绿色,如果出现错误则为红色。 我想知道是否有任何方法来控制LED比这更多? 我知道它在configuration过程中闪烁白色。 我已经阅读了相当多的文档,找不到控制LED的任何内容。 有没有人在这里知道很多关于如何告诉button来改变LED的颜色,亮度或持续时间的build议? 我认为这是通过Lambdacallback函数发送的对象完成的,但是我不知道该对象需要使用哪种格式才能使IoTbutton变得有意义。 callback(Error error, Object success) 我可能会补充说,我已经把所有的东西都做好了,而且我也不需要帮忙设置我的button。 我也知道button发送Lambda时按下的是什么: { "serialNumber": "0000000000000000", "batteryVoltage": "xxmV", "clickType": "SINGLE" | "DOUBLE" | "LONG" } 编辑: 所以我发现有人把固件的某个不可编程的仪表板button丢了 ,我发现这个: Usage: led <r> <g> <b> Usage: led <mode> <r> <g> <b> Modes: 'b'==blink; 'f'==fade Illuminating LED with RGB(%x,%x,%x) color=%8x 虽然我不知道该怎么办

应用程序端连接ORM的节点?

开始:我试过Loopback。 回送很好,但不允许跨多个REST数据服务的关系,而是调用初始数据服务,并传递查询参数来请求它执行连接的查询。 在我重新发明轮子并在Loopback的loopback-rest-connector上编写大量的包装器之前,我需要找出是否有任何现有的库或框架已经解决了这个问题。 到目前为止,我的广泛的谷歌search没有出现。 在真正的微服务环境中,每个数据库都有一个服务。 http://microservices.io/patterns/data/database-per-service.html 从这篇文章: 实现连接现在在多个数据库中的数据的查询是具有挑战性的。 有各种解决scheme: 应用程序端连接 – 应用程序执行连接而不是数据库。 例如,服务(或API网关)可以通过首先从客户服务中检索客户,然后查询订单服务以返回客户的最近订单来检索客户及其订单。 命令查询责任分离(CQRS) – 维护一个或多个包含来自多个服务的数据的物化视图。 这些视图由订阅每个服务在更新其数据时发布的事件的服务保存。 例如,在线商店可以通过维护join客户和订单的视图来实现查询特定地区的客户及其近期订单的查询。 该视图由订阅客户和订单事件的服务更新。 例: 我有2个数据微服务: GET / pets – 返回一个对象 { "name":"ugly", "type":"dog", "owner":"chris" } 和完全不同的微服务…. GET /所有者/ {OWNER_NAME} – 返回所有者信息 { "owner":"chris", "address":"under a bridge", "phone":"123-456-7890" } 我有一个API级别的微服务将要调用这两个数据服务。 这是我将应用于此的微服务。 我希望能够build立一个宠物模型,这样,当我查询宠物,GET /宠物的成功回应,它将与所有者“join”(发送GET /所有者/ {OWNERS_NAME}所有的回应)和用户,只需返回包含其所有者数据的宠物列表。 所以GET /宠物(也许像Pets.find())会返回 { "name":"ugly", "type":"dog", […]

caching来自Amazon Product Advertising API的数据

我一直在使用node.js来表示search使用亚马逊产品广告API,现在它作为一个Web API端点,以便我可以通过链接获取数据: my_host/amazon/{search_catgegory}/{keyword}/{page} 但是,亚马逊API有一个限制,每次只返回最多10个项目。 所以,我想将search结果caching在我自己的数据库中,然后可以在每个查询中返回50个项目。 我的想法是使用node-cron安排我的任务,以便在每个星期一午夜达到我想要的(例如,获得前10页的search结果)。 有两个问题:1)如何有效地得到我的结果,我是否简单地多次调用API如下? my_host/amazon/{search_catgegory}/{keyword}/1, my_host/amazon/{search_catgegory}/{keyword}/2, my_host/amazon/{search_catgegory}/{keyword}/3, … my_host/amazon/{search_catgegory}/{keyword}/10 还是应该将每个API查询包装到承诺中,然后使用promise.all()等来获取所需的所有数据? 2)我应该在同一个节点应用程序中使用Web API服务(即原始快速应用程序)和这个新的cron任务(即从亚马逊“预加载”数据)吗? 或者我应该在单独的应用程序?

从VPC中运行的Lambda使用AWS SDK

我有一个简单的lambda函数如下 var AWS = require("aws-sdk"); exports.handler = (event, context, callback) => { var ec2 = new AWS.EC2({region:'us-east-1'}); return ec2.describeRegions({}).promise() .then(function(regionResponse) { console.log(regionResponse.Regions) callback(null, regionResponse.Regions); }) .catch( function (err) { console.log({"error" : err}); callback(err, null); } ) }; 我可以在VPC之外成功运行此function。 我使用VPC向导创buildVPC,并使用单个公有子网和Internet网关创buildVPC。 我将这个函数放在VPC中,并赋予它一个具有Lambda VPC执行权限的执行angular色。 它现在失败了,我已经设置为10秒(正常执行1秒) 我的configuration中缺less什么function来阻止该function访问VPC内部的AWS SDK?

什么可能会阻止EC2托pipe的机器人在Microsoft Bot Framework上回复消息?

我有一个托pipe在AWS EC2上的Node.JS机器人,在Chrome / Firefox / Safari中有一个有效的Comodo SSL证书,并且在我的端点的bot框架上configuration了一个机器人。 当我在https://dev.botframework.com启动僵尸框架控制台时,我可以点击“testing”button,它会显示“已接受”。 我也可以在embedded式networking聊天中发送消息,并且在AWS上login我的僵尸工具时显示正在接收的消息,并且通过调用session.send()发回消息…但是从未出现返回消息回到networking聊天。 在服务器端或bot框架错误查看器中没有logging任何错误,该消息似乎是悄无声息地丢弃。 我添加了一个Skype频道,并在Skype中获得完全相同的行为。 当我将相同的代码部署到Azure Web App时,它在所有方向都可以正常工作。 我完全卡住了…我无法弄清楚什么可以阻止返回消息回来,我看不到什么步骤接下来进行故障排除。 从文档中我们不清楚如何将消息发送回框架,是否有一个特定的主机/ IP /端口,我应该从EC2中进行探测,看看是否有什么事情是阻碍的? 我的AWS安全组中没有出站规则会阻止连接,例如“telnet directline.botframework.com 80”成功。