Tag: lambda

AWS lambda NodeJS PGP从文件解密到文件

我必须在NodeJS中实现的AWS lambda函数中解密和处理PGPencryption文件。 由于lambda函数的内存限制,解密的输出必须stream式传输到临时文件,而不是保存在内存中。 我查看了几个NodeJS模块,但是我找不到任何提供将input文件直接解密到输出文件的机制,同时最小化存储在内存中的数据。 任何build议如何做到这一点将不胜感激。

承诺不在https呼叫解决

我在API网关后面编写了一个AWS Lambda函数,它使用Facebook和我们的应用程序IDvalidation令牌,以便我们确认用户的身份,以便删除他的资源。 用户从Facebooklogin发送他的用户ID和令牌,我检查令牌是否有效以及是否为同一用户。 在实现中,我使用承诺,但问题是,第一个然后根本不执行。 我首先调用getFacebookAccessToken,以便我可以调用API,并在响应中解决或拒绝,但代码没有达到这一点。 这是function: 'use strict'; const https = require('https'); const querystring = require('querystring'); exports.handler = (event, context, callback) => { if (typeof event.body.token === 'undefined' || event.body.token === '') { context.succeed({ "result":"false", "message": `InputError: token is not defined or it is empty` }); return; } if (typeof event.body.userId === 'undefined' || event.body.userId […]

如何在输出lambda函数url中replace'latest'? 我怎么能做我自己的资源?

我是AWS Lambda新手。 如文档中所述,我使用Claudia在AWS Lambda上部署了以下示例: 'use strict'; console.log('Loading hello world function'); exports.handler = function (event, context, callback) { var name = "World"; var responseCode = 200; console.log("request: " + JSON.stringify(event)); if (event.queryStringParameters !== null && event.queryStringParameters !== undefined) { if (event.queryStringParameters.name !== undefined && event.queryStringParameters.name !== null && event.queryStringParameters.name !== "") { console.log("Received name: " + […]

从S3文件读取JSON并使用带有NodeJS运行时的Lambda将logging插入到dynamoDB中

我的DynamoDB表具有以下分区键: UserId String 这是我的Lambda函数: 'use strict'; console.log('Loading function'); const doc = require('dynamodb-doc'); const dynamo = new doc.DynamoDB(); var AWS = require('aws-sdk'); var S3 = new AWS.S3({ maxRetries: 0, region: 'us-east-1', }); var insertSuccess = 0; var insertErrors = 0; function dynamoResultCallback(err, data) { if (err) { insertErrors++; console.log("Insert Error: \n"); console.log(err, err.stack); // an error […]

由DynamoDB支持的NodeJS lambda函数的inputvalidation

我想知道哪个库用于validationlambda函数中的用户input,例如使用无服务器框架,NodeJS lambda函数和DynamoDB作为NoSQL存储。 特别是,是否有NodeJS的库可以检测和validation潜在的DynamoDB注入向量 ? 我做了一些研究,并提出了一些在NodeJS中进行validation的可能性,但是我没有find任何有关使用DynamoDB NoSQL注入validation的有关NodeJS的有用信息: 纯Javascript // lambda function handler module.exports.handler = (event, context, callback) => { const data = JSON.parse(event.body); if (data.text && typeof data.text !== 'string') { // validation failure } } 穰 钒节点 (使用Joi) validation-JS (当然,这个列表并不完整,但它似乎是NodeJS最受欢迎的validation库。) 有没有你知道的库,它处理DynamoDB的NoSQL注入检测,或者是否有关于使用这些库(2-4)之一处理NoSQL注入向量的更多信息?

Lambda函数testing永远不会通过

我试图让我的第一个Lambda函数工作,但我不能得到一个testing写入我的dynamoDB。 到目前为止,我一直在关注AWS教程。 这是我的Lambda函数(从教程略微修改,以适应我的数据库): 'use strict'; console.log('Loading function'); const doc = require('dynamodb-doc'); const dynamo = new doc.DynamoDB(); /** * Provide an event that contains the following keys: * * – operation: one of the operations in the switch statement below * – tableName: required for operations that interact with DynamoDB * – payload: a parameter to […]

AWS Lambda – 奇怪的堆栈跟踪

我们正在用node.js 4.3编写AWS lambda函数,但是我们遇到了抛出错误的奇怪behaviour 。 第一: 'use strict'; exports.handler = function(event, context, callback) { throw new Error(); }; 这是像预期的抛出: at exports.handler (/var/task/TestCode.js:4:11) 但是,如果我们添加一个函数(即使是未调用的),它调用一个不同的类/ obj的函数,其中包含一个带有obj的lambdaexpression式,我们得到一个神秘的投掷信息。 为了让事情更容易理解,下面是一些代码: 'use strict'; function aRandomFunction() { something.foo((obj) => {}); } exports.handler = function(event, context, callback) { throw new Error(); }; 现在我们得到一个日志,我们不明白为什么: at something.foo.exports.handler (/var/task/TestCode.js:8:11) 有人可以解释我为什么会发生? 这似乎是一些JS魔法,我不明白:) 谢谢

AWS Lambdafunction在部署后不起作用

当我在本地部署我的服务器lessfunction它工作得很好,但是当它部署到aws lambda时,我已经包括了networking包也没有错误离线运行 Syntax error in module 'handler': SyntaxError (function (exports, require, module, __filename, __dirname) { import mongoose from 'mongoose'; ^^^^^^

构buildAlexa技能时,在lambda函数中使用NodeJS请求时,http响应或超时错误

我正在build立一个新的技能,我的lambda函数需要调用另一个API来获取一些歌曲的信息。 我的lambda函数被附加。 我的问题是,我可以通过Web浏览器打开url,并得到正确的响应,但是当我在AWS Lambda网站上testingPlay intent时,有时候我得到了超时,有时候我得到了200个代码,但是这样的代码不完整:{“r” :0,“is_show_quick_start”:0,“song”:[]},其中“song”应该有上下文。 (你可以看到它,如果你通过任何网页浏览器打开url) 此外,我testing了另一个url,也可以通过networking浏览器打开,但在AWS Lambda网站上testing时总是500。 我很新的NodeJS和build设Alexa技能。 任何人都可以请帮我弄清楚? 谢谢! 'use strict'; var Alexa = require('alexa-sdk'); var request = require('request'); var constants = require('./constants'); exports.handler = function(event, context, callback){ var alexa = Alexa.handler(event, context, callback); alexa.registerHandlers(stateHandlers.startModeIntentHandlers); alexa.execute(); }; var stateHandlers = { startModeIntentHandlers : Alexa.CreateStateHandler(constants.states.START_MODE, { "LaunchRequest": function () { this.emit(':ask', 'Welcome to […]

在无服务器的lambda中返回HTTP错误代码的正确方法是什么?

我有一个无服务器的lambda函数写在Node.JS. 什么是最好的/正确的方式返回错误代码? 我现在使用的模式( 它工作! )是: module.exports.endpoint = (event, context, callback) => { const response = { statusCode: 404, body: JSON.stringify({ message: 'Hello World!' }) }; callback(null, response); } 当我打电话时,例如从POSTMAN到我的端点,我得到: Status: 404 Not Found这正是我所期待的 。 而且,在日志中我可以看到: Serverless: GET / (λ: get) Serverless: [404] {"statusCode":404,"body":"{\"message\":\"Hello World!\"}"} 那效果很好。 令我困扰的是,我将null作为错误传递给了我。 看看其他一些教程/例子,我发现如下模式: https://aws.amazon.com/blogs/compute/error-handling-patterns-in-amazon-api-gateway-and-aws-lambda/ https://serverless.com/framework/docs/providers/aws/events/apigateway/ callback ("the sky is falling!"); callback("[BadRequest] […]