Tag: amazon web services

在ElasticBeanstalk上运行Grunt

我有一个节点应用程序需要咕噜做一个“构build”,才能成功执行应用程序。 (运行连续/缩小/源代码转速等)。 我已经在具有SSH访问权限的EC2实例上运行了,因为我可以通过SSH进入目录并在部署过程中运行Grunt。 但是,为了实现这一点,我现在将应用程序移动到ElasticBeanstalk,而且我很难让应用程序成功运行grunt。 迁移到EB的原因是保持SSH密钥closures活动服务器,以便这些EB实例设置为不具有ssh访问权限。 似乎没有官方文件可以提供,有没有人可以指出我能够达到上述目标? 我需要在应用程序启动之前执行grunt以使应用程序具有可用的文件(否则将会有404)。

如何使用带有node.js的aws Lambda在aws DynamoDb中放置一个项目

我正在aws lambda上工作,我正在尝试使用node.js中的lambda函数来放置一个Item。 我有以下代码与我.. var AWS = require('aws-sdk'); var dynamoDBConfiguration = { "accessKeyId": "AccessKey", "secretAccessKey": "Secratekey", "region": "us-west-2" }; AWS.config.update(dynamoDBConfiguration); var dd = new AWS.DynamoDB(); var tableName = 'product_bhavik'; exports.handler = function(event, context) { putItem = function(itemName,prod_Id, prod_Name, prod_Desc, prod_Price) { console.log(" putItem Function Called"); var item = { 'itemName': { 'S': itemName }, 'microtime': { […]

如何在DynamoDB中查询不存在的(空)属性

我试图查询DynamoDB表来查找未设置email属性的所有项目。 包含email字段的表上存在名为EmailPasswordIndex全局二级索引。 var params = { "TableName": "Accounts", "IndexName": "EmailPasswordIndex", "KeyConditionExpression": "email = NULL", }; dynamodb.query(params, function(err, data) { if (err) console.log(JSON.stringify(err, null, 2)); else console.log(JSON.stringify(data, null, 2)); }); 结果: { "message": "Invalid KeyConditionExpression: Attribute name is a reserved keyword; reserved keyword: NULL", "code": "ValidationException", "time": "2015-12-18T05:33:00.356Z", "statusCode": 400, "retryable": false } 表格定义: var params […]

亚马逊SES电子邮件不再发送

我在使用Amazon SES发送电子邮件时遇到问题。 我有一个Amazon EC2实例。 它前几天工作,但我刚刚注意到上周所有的电子邮件现在失败。 我曾尝试使用Node和Amazon SES sdk进行发送,并从AWS内部发送testing电子邮件。 我在节点中有以下代码: var aws = require('aws-sdk'); // load aws config aws.config.loadFromPath('email_config.json'); // load AWS SES var ses = new aws.SES({ apiVersion: '2010-12-01' }); ses.sendEmail({ Source: from, Destination: { ToAddresses: to }, Message: { Subject: { Data: 'Somebody registered' }, Body: { Html: { Data: body, } } } […]

如何从DynamoDB列表中删除地图列表中的Map属性值?

我有以下列表示例: { "favorites": [ { "createdAt": 1448998673852, "entityId": "558da3de395b1aee2d6b7d2b", "type": "media" }, { "createdAt": 1448998789252, "entityId": "558da3de395b1aee2d6b7d83", "type": "media" }, { "createdAt": 1448998793729, "entityId": "558da3de395b1aee2d6b7d99", "type": "media" }, { "createdAt": 1448998813023, "entityId": "558da3de395b1aee2d6b7daf", "type": "media" } ], "userId": "2" } 我想删除地图: "entityId": "558da3de395b1aee2d6b7d2b" 。 我在想一个UpdateItem查询,我看过REMOVEexpression式文档( http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html ),但我似乎无法看到任何示例,除了通过索引值从列表中删除项目….

如何将base64映像从客户端传输到服务器或从s3存储桶下载binary / base64?

在我的应用程序中,我直接从客户端发送照片到S3,使用类似于这个build议的英雄推荐: https ://devcenter.heroku.com/articles/s3-upload-node 主要好处是它节省了服务器成本(我假设,因为块没有被发送到服务器使用诸如multipart-yforms的数据)。 不过,我希望能够将这些图像分享给Twitter,其中说明了这一要求: 确保POST是一个多部分/表单数据请求。 请上传文件的原始二进制文件(媒体参数)或其base64编码的内容(media_data参数)。 尽可能使用原始二进制,因为base64编码会导致较大的文件大小 我曾尝试将客户端s3上传所需的base64发送回服务器,但根据照片大小的不同,我经常会收到一个错误,说明发送回来太大了。 TLDR 我是否需要使用mulitparty / multipart表单数据将我的照片发送到我的服务器,以便我可以将所需的base64 /二进制文件分享到Twitter的照片,还是可以将照片从我的客户端发送到s3? 然后,不知何故, 有效地获得所需的base64 /二进制在服务器上(可能使用请求模块),所以我可以发送图像到Twitter?

如何在AWS lambda中响应非拉丁字符?

10月12日更新: 这个问题现在已经解决了。 有关详细信息,请参阅aws论坛中的此帖 。 我写了一个nodejs函数,只是用一些汉字回复。 但它以错误的字符回应。 exports.handler = function(event, context) { context.succeed('Hello 世界!'); }; 函数结果变成: "Hello !" 当我写一个函数来parsing一些中文网站并检索他们的页面标题时,我遇到了这个问题。 我设法把它们转换成utf-8(我用这个请求),console.log(标题)正确显示这些汉字。 但context.succeed()的结果如上例所示。 在回应结果时,我应该怎样处理这些非拉丁字符呢?

我如何使用Elastic Beanstalk创build一个“tmp”目录?

我正在使用Node.js,并需要将文件保存到我的应用程序中的tmp目录。 问题是Elastic Beanstalk没有将应用程序目录设置为可被应用程序写入。 所以当我尝试创build临时目录时,我得到这个错误 fs.js:653 return binding.mkdir(pathModule._makeLong(path), ^ Error: EACCES, permission denied '/var/app/tmp/' at Object.fs.mkdirSync (fs.js:653:18) at Promise.<anonymous> (/var/app/current/routes/auth.js:116:18) at Promise.<anonymous> (/var/app/current/node_modules/mongoose/node_modules/mpromise/lib/promise.js:177:8) at Promise.emit (events.js:95:17) at Promise.emit (/var/app/current/node_modules/mongoose/node_modules/mpromise/lib/promise.js:84:38) at Promise.fulfill (/var/app/current/node_modules/mongoose/node_modules/mpromise/lib/promise.js:97:20) at /var/app/current/node_modules/mongoose/lib/query.js:1394:13 at model.Document.init (/var/app/current/node_modules/mongoose/lib/document.js:250:11) at completeOne (/var/app/current/node_modules/mongoose/lib/query.js:1392:10) at Object.cb (/var/app/current/node_modules/mongoose/lib/query.js:1151:11) 我已经尝试了几个东西,如.ebextensions / scripts / app-setup.sh中的app-setup.sh脚本,看起来像这样 #!/bin/bash # Check if this is the very […]

如何纯粹使用Cognito来authentication用户使用S3

我已经阅读了这篇文章和AWS回复如何在API中使用Cognito标记? 这一个如何使用AWSauthentication与自定义身份validation创build临时S3上传安全令牌 我还不清楚是否有一个简单的解决scheme来保护S3访问。 我有一个移动客户端和一个node.js后端。 客户端使用后端进行身份validation,并接收一个jwt accesstoken,以便进一步调用我的后端。 除了与我自己的后端进行通信之外,用户还应该能够从S3上传和下载文件。 我正在寻找最简单的解决scheme,以确保只有具有有效accesstoken我的后端用户可以上传到S3。 我可以做以下(这是基于这个博客文章http://blog.backspace.academy/2015/03/using-cognito-with-nodejs-part-2.html ): 客户端使用我的自定义node.js后端进行身份validation,并从后端接收自定义accesstoken 我的node.js后端获取CognitoID AWS临时用户凭证。 然而,AWS的文档说,我们还需要一个会话令牌(大概是通过调用CognitoSync),所以我假设我的退缩需要获得会话令牌。 我的node.js后端将这些临时凭证和会话令牌传递给客户端 客户端使用它们通过AWS SDK传递凭证+会话令牌来调用S3。 我错过了什么吗? 有一个更简单的方法来做到这一点? 我假设没有办法简单地让客户机将自己的自定义node.js用户accesstoken传递给AWS / S3 / Cognito,并让S3 / Cognito通过调用我自己的可以validation此令牌的node.js API来validation该令牌。

将NodeJS部署到Elastic Beanstalk时出现NPM错误

我收到以下错误: 5065 verbose linkBins sse4_crc32@4.1.1 5066 verbose linkMans sse4_crc32@4.1.1 5067 verbose rebuildBundles sse4_crc32@4.1.1 5068 verbose rebuildBundles [ 'bindings', 'nan' ] 5069 info install sse4_crc32@4.1.1 5070 verbose unsafe-perm in lifecycle false 5071 info sse4_crc32@4.1.1 Failed to exec install script 5072 verbose stack Error: sse4_crc32@4.1.1 install: `node-gyp rebuild` 5072 verbose stack Exit status 1 5072 verbose stack […]