Tag: aws lambda

使用API​​网关和Lamda从S3服务PDF文件

我有nodejs lamda函数读取从s3桶s3文件,并由api网关使用Lamda代理服务 function readS3(bucket,objectName){ return new Promise((resolve, reject) => { AWS.S3.getObject({ Bucket: bucket, Key: objectName }, function (err, data) { if (err) { console.log('cannot read s3'); console.log(err, err.stack); reject(err); } else { resolve(data); } }); }); } readS3(bucket,objName).then((data)=>{ let response = { statusCode:200, headers: { "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Credentials": true, "Content-Type": 'application/pdf', "Content-Disposition": 'filename=test.pdf' }, body: […]

dynamodb基于3列更新项目

我有一个custID和传感器作为我的主键和sorting键的表 custID sensor data date joe 123 wind 01/01/1901 mary 456 rain 01/02/1901 现在当一个新的logging如下所示 新行: joe, 123, temp, 01/04/1901 更新行: joe, 123, wind, 01/07/1901 我想input它作为一个新的行,但如果数据列匹配,我想更新行。 现在,如果我改变我的钥匙传感器和数据,这将工作,但我将如何做到这一点与当前的钥匙? 我的实际数据结构比这个复杂得多,但是我想保持简单。 var updateExpressions =[]; updateExpressions.push("#data"+counter+"=:data"+counter+", #date"+ counter +" = :date"+ counter); attrNames["#data"+ counter] = "data"; attValues[":data"+ counter] = data; attrNames["#date"+ counter] = "date"; attValues[":date"+ counter] = date; counter++; 然后在加载参数 […]

如何从无服务器框架中的aws lambda调用mongodb函数?

我一直在观看像这样的无服务器框架上的video教程,并根据我收集的信息,似乎使用框架是pipe理aws lambda函数的最有效的方法之一。 在上面的video链接中,给出了一个使用lambda函数连接到DynamoDB表的示例,然后将其保存。 我需要做的是连接到一个MongoDB表,然后从中获取数据。 我只find了在无服务器上使用DynamoDB但在MongoDB中没有的例子。 我认为这个过程应该是相似的,但似乎并非如此。 我发现这个教程,但它不使用无服务器框架。 下面是在无服务器框架中从lambda连接并保存到Dynamo数据库表的示例: const uuidV1 = require('uuid/v1'); const AWS = require('aws-sdk'); const promisify = require('es6-promisify'); const _ = require('lodash'); const dynamo = new AWS.DynamoDB.DocumentClient(); module.exports.saveUserToDatabase = function(userId, coffeeType, coffeeSize) { console.log('saveUserToDatabase'); const item = {}; item.drink = coffeeType; item.size = coffeeSize; item.userId = userId; return saveItemToTable('coffee-user-table', item); }; 以下片段是用于使用名为lambda-local的npm包连接到MongoDB Atlas数据库的代码: […]

实施oauthlogin到salesforce应用程序,但刷新令牌未定义

我正在使用node.js处理AWS Lambda。 我正在使用node-salesforce使用OAuth连接到SF应用程序。 login后我无法获取刷新令牌。 var conn = new sf.Connection({ oauth2 : { clientId : 'XXXXXXXXXXXXXXXXXXXXXXXXXXX', clientSecret : 'XXXXXXXXXXXXXXXX', redirectUri : 'https://localhost/callback' } }); conn.login('Username', 'XXXXXXXXX', function(err, userInfo) { if (err) { return console.error(err); } console.log(userInfo); console.log(conn); }); 在输出中我期待一个未定义的刷新令牌。 我能够得到accessToken,我正在使用它进行进一步的操作。 现在如何更改访问令牌的情况下更改访问令牌。 我已经通过它的文档( https://www.npmjs.com/package/node-salesforce )。 他们使用express.js和redirect到salesforce页面进行授权。 由于这是写在lambda中,所以我不会喜欢在这里使用express.js或redirect授权。 我的问题是如何获得刷新令牌。 有没有办法做到这一点。 如果我做错了,请告诉我。

无服务器框架中的webpackconfiguration中的多个入口点

我正在开发使用无服务器框架的无服务器应用程序。 我需要webpack编译根文件夹内的.js文件以及'src'文件夹。 configuration文件和“src”文件夹就在根文件夹中。 这是webpack.config.js文件 var glob = require('glob'); var path = require('path'); var nodeExternals = require('webpack-node-externals'); // Required for Create React App Babel transform process.env.NODE_ENV = 'production'; module.exports = { // Use all js files in project root (except // the webpack config) as an entry entry: globEntries('!(webpack.config).js'), target: 'node', // Since 'aws-sdk' is not […]

AWS + API网关+ Lambda + Node.js操作对谷歌ApiAiApp

我想在API网关调用的Lambda函数中使用action-on-google包和ApiAiApp类。 所有的pipe道工作正常,我可以返回一个手动构build的响应罚款,但我真的更喜欢在我的Node.js Lambda函数中使用ApiAiApp对象。 我也可以使用Firebase来正常工作。 请原谅我对这种发展的无知,但是没有一种search方式似乎给了我需要的解决scheme。 Firebase的入口点是 exports.myTip = functions.https.onRequest((request, response) => { 我可以将请求+响应传递给ApiAiApp构造函数,而且都很好 就像在Lambda中一样 exports.handler = function(event, context, callback) 如何将事件转换为请求+响应,以便在lambda函数中调用相同的ApiAppApp构造函数? TL:DR – 我如何在Lambda函数中调用对ApiAiApp构造函数的操作?

性能API来处理许多请求

我正在开发一个iOS应用程序来显示来自MongoDB数据库的消息。 该应用程序有大约50,000活跃用户,所以它是相当沉重的服务器上。 我正试图重新考虑应该如何构buildAPI。 我刚刚了解了一些关于AWS API网关,Google Cloud Functions,Firebase等的内容 如果我只需要一些function来提取新闻列表,用户列表等,那么到2017年为止,构build此API的最佳方法是什么? 我一直以为我应该简单地用一些端点创build一个Node.js服务器。 但现在看来,创build单独的terminal节点的performance似乎更好,例如,AWS API网关(每个节点都指向AWS Lambda函数)。 但是什么是最可扩展的select?

如何在AWS API网关中debugging“Missing Authentication Token”?

我有一个代理AWS Lambda函数的API网关资源。 这工作得很好,通过尾随path参数( /periodicals/{tail+} ),但因为我想这些参数是可选的,我还添加了一个ANY方法到更高的资源( /periodicals ): 当从AWS控制台内testing该方法时,此工作正常。 但是,直接从我的浏览器对该资源执行请求会导致以下响应: {"message":"Missing Authentication Token"} 有了这个标题: x-amzn-errortype: MissingAuthenticationTokenException 它还有一个x-cache标头,其中的值Error from cloudfront ,所以我想这可能与CloudFront有关。 我虽然没有明确地设置CloudFront,但真的不知道如何检查? 我想我读了这个错误消息的每一个线程,但他们似乎没有适用于我: 我的方法不需要授权: 我很确定url是正确的。 当我在浏览器中访问/periodicals/whatever (即{tail+}资源)时,它工作正常,但不是/periodicals 。 CORS已启用,因为两个资源都指向处理CORS的相同Lambda函数,并且适用于子path。 HTTP动词应该不重要,因为它正在监听ANY 。 结果是相同的,无论我是否添加尾随斜线。 该API已部署。 我认为API资源对我的Lambda函数具有足够的权限,因为我可以从AWS Console成功执行它: 感谢@Lakindu,一个有趣的观察是,阶段视图中的资源下面没有列出任何方法: 还有什么我可以做的,以找出哪里出了问题?

将节点6.10.3安装为NPM依赖项

处理使用无服务器框架部署到AWS Lambda的项目 ,我希望运行AWS Lambda上可用节点的相同版本 – 即节点6.10.3。 添加到“引擎”没有任何作用,所以我也把它添加到“依赖” ,但安装该依赖总是失败: > node@6.10.3 preinstall /Users/ssterling3/Documents/2017/IIT/Apps/Student Dashboard/mobile-dashboard/node_modules/node > node installArchSpecificPackage npm ERR! code ETARGET npm ERR! notarget No matching version found for node-darwin-x64@6.10.3 npm ERR! notarget In most cases you or one of your dependencies are requesting npm ERR! notarget a package version that doesn't exist. npm ERR! A […]

将Swagger Express项目迁移到AWS Serverless

我正在做一个Swagger Express项目。 (大约50个API端点) 我想将此项目迁移到使用Lambda的AWS Serverless。 从https://github.com/awslabs/aws-serverless-express/tree/master/example ,我可以看到如何从Express项目迁移到无服务器。 但Swagger Express项目似乎有所不同。 任何build议或我应该遵循的步骤表示赞赏。