Tag: aws sdk

AWS CloudSearch:的值不能是JSON数组或对象

我有一个int-arraytypes的字段有这个问题。 使用aws-sdk作为Node.js,我通过CloudSearchDomain.uploadDocuments()方法提交文档。 文档的JSON(在searchContentvariables中)是在节点进程中创build的,然后我使用: var params = { contentType: 'application/json', documents: JSON.stringify([searchContent]) }; csd.uploadDocuments(params, function(err, data){ …(callback process)… }); 非string的searchContent对象如下所示: { id: 1, type: 'Product', hash_type_id: 'Product-1', name: 'Test product', description: 'A test product', category: [ 2 ], content: '<some text here>', state: [ 1 ], hash_all: '<some text>' } 并像这样串化: [{"id":1,"type":"Product","hash_type_id":"Product-1","name":"Test product","description":"A test product","content":" <some […]

当我在Amazon S3中将Quiet设置为true以在deleteObjects()方法中启用安静模式时会发生什么?

我在Node.js中使用Amazon S3,我想从一个存储桶中删除一个或多个文件。 我想知道当我将Quiet参数设置为true时会发生什么。 var params = { Bucket: 'STRING_VALUE', /* required */ Delete: { /* required */ Objects: [ /* required */ { Key: 'STRING_VALUE', /* required */ VersionId: 'STRING_VALUE' }, /* more items */ ], Quiet: true || false }, MFA: 'STRING_VALUE' }; s3.deleteObjects(params, function(err, data) { if (err) console.log(err, err.stack); // an error […]

在AWS Lambda中使用JavaScript eval()

我想使用AWS Lambda运行用户通过Web提交的JavaScript代码。 我的Lambda函数会返回返回值stderr和stdout 。 我可以遇到什么问题? 恶意用户是否能够提交导致Lambda函数问题的代码? 执行用户所做的更改,例如对于节点环境或文件系统,是否在整个调用中保持不变? 有什么办法可以防止呢? 而不是eval()我可以将文件写入Lambda文件系统并调用: const userCodeProcess = require('child_process').fork('user_code.js') userCodeProcess.on('message', response.send)

如何在Node中将图片上传到s3

从我的反应前端将文件发布到节点后端。 request .post('/api/upload') .field('fileName', res.body.text) .field('filePath', `/${this.s3DirName}`) // set dynamically .attach('file', data.file) .end((err2, res2) => { if (err2){ console.log('err2', err2); this.setState({ error: true, sending: false, success: true }); }else{ console.log('res2', res2); this.setState({ error: false, sending: false, success: true }); } }); 然后在我的节点后端我想上传到S3。 我使用的是busboy能够获取发布的多部分文件,然后aws sdk发送到我的s3桶。 var AWS = require('aws-sdk'); const s3 = new AWS.S3({ apiVersion: '2006-03-01', […]

如何在AWS js SDK中configuration区域?

我的问题 我在写一个简单的js函数,它从AWS CloudWatch Logs中读取一些信息。 在Node.js AWS SDK中configuration区域以及AWS nodejs SDK文档的答案之后,我想出了以下内容: 码 var AWS = require('aws-sdk'); var cloudwatchlogs = new AWS.CloudWatchLogs(); console.log(AWS.config.region) // Undefined AWS.config.region = 'eu-central-1' // Define the region with dot notation console.log(AWS.config.region) . // eu-central-1 AWS.config.update({region:'eu-central-1'}); // Another way to update console.log(AWS.config.region) . // eu-central-1 var params = { limit: 0, // logGroupNamePrefix: 'STRING_VALUE', […]

如何使用javascript aws-sdk支持dynamoDB中的事务?

我们有一个用node.js编写的微服务,我们使用dynamoDB来存储数据。 值以密钥forms存储在json格式中。 在更新服务调用中,我们获取一个密钥的值,更新json并保存它。 最近,我们遇到了两个电话想要更新同一个密钥的值的情况。 所以第一次调用读取值,然后第二次调用读取值,第一次调用更新&保存,然后第二次更新&保存值(通常情况下的竞争条件),所以在这种情况下,通过第一次调用更新没有得到反映在DB中。 为了处理这个问题,我研究了一下和了解了dynamoDB的事务库。 但似乎还没有在node-js sdk中。 另外,我search了版本控制和乐观locking,但是我在node-js sdk中没有find对此的支持。 有没有更新? 如果在node-js sdk中支持不会来,那么还有其他的select吗? 什么可能是处理这个问题的最好方法?

如何存根aws-sdk

可以说我有以下几点 // file sample.js var aws = require('aws-sdk'); var dynamoDB = new aws.DynamoDB(); exports.processData = function(){ var data = dynamoDB.getItem(params); // so something with data }; 我如何编写上面的代码示例的unit testing。 //file sample_test.js var aws = require('aws-sdk'); var sinon = require('sinon'); // the following code doesnt seem to stub the function // the actual function is still used […]

AWS Cognito模拟

我想为使用AWS cognito作为用户身份validation服务的基于nodejs的API编写BDDtesting,但是我不想每次运行构build时都碰到真正的cognito服务。 有一个简单而优雅的方式来嘲笑Cognito电话。 使用的框架: Nodejs(Hapi.js) aws-sdk for nodejs

是否应该为应用程序用户使用AWS IAMangular色和权限?

我正在AWS上第一次使用nodejs应用程序,并且仍在学习所有的服务。 我正在处理我的应用程序身份validation和授权,并且正在创build我的用户angular色和组。 AWS IAM服务是否既适用于AWSpipe理,也适用于您的应用程序的用户授权,还是应该使用nodejs的ACL模块之一,并pipe理AWS IAM服务之外的angular色和用户?

AWS开发工具包使用DynamoDB和putItem将不允许插入而不更新

这里是我如何插入一个项目到数据库中: DynamoDB.putItemAsync({ "TableName": tblName, "Item": { "UserId": { "S": String(obj.user_id) }, "CampaignId": { "N": String(obj.campaign_id) }, "Email": { "S": String(obj.email) }, "CustomActivityNodeId": { "N": String(obj.custom_activity_node_id) } }, "Expected": { "UserId": { "Exists": false } } }) putItemAsync调用是因为我使用bluebird对库进行了promisified 。 我试过这样做: { "Expected": { "UserId": { "Exists": false } } } 用我的putItem调用,但没有运气。 所有我想要做的是插入logging没有现有的更新