Questions tagged «aws-lambda»

AWS Lambda是一种计算服务,可让您运行代码而无需管理服务器。(不要与lambda标签混淆,lambda标签是指一种功能)。

17
如何从Amazon API Gateway将查询字符串或路由参数传递到AWS Lambda
例如,如果我们想使用 GET /user?name=bob 要么 GET /user/bob 您如何将这两个示例作为参数传递给Lambda函数? 我在文档中看到了有关设置“映射自”的信息,但是在API Gateway控制台中找不到该设置。 method.request.path.parameter-name代表parameter-name在“方法请求”页面中定义的路径参数。 method.request.querystring.parameter-nameparameter-name表示在“方法请求”页面中定义的查询字符串参数。 即使定义了查询字符串,我也看不到这些选项中的任何一个。



5
如何在AWS Lambda中加载npm模块?
我已经使用基于Web的编辑器创建了多个Lambda函数。到目前为止,一切都很好。我现在想开始使用模块(例如Q for promises)来扩展它们。我不知道如何将模块发布到Lambda,以便我的函数可以使用它们。 我已经读完了它,但似乎涉及设置EC2并从那里运行Lambda函数。创建函数时,有一种上载zip的机制,但这似乎涉及发送本地开发的函数。由于我正在使用基于Web的编辑器,因此这似乎是一个奇怪的工作流程。 如何简单地部署一些模块以供Lambda函数使用?

11
AWS Lambda计划任务
亚马逊宣布推出AWS Lambda(http://aws.amazon.com/lambda/)。 产品说明包括: 计划任务 AWS Lambda函数可以由外部事件计时器触发,因此可以在定期安排的维护时间或非高峰时间运行这些函数。例如,您可以触发AWS Lambda函数以在非繁忙时间执行每晚的存档清理。 当我阅读此书时,我了解到我终于可以有一种方法来始终如一地完成“类似cron的任务”。我想每天下午5点运行一个特定的查询。 但是,我在文档的任何地方都找不到。他们仅提及程序事件或其他AWS服务事件的触发器。 我误会了吗 还是有人可以指出我的文档?


21
python中的AWS Lambda导入模块错误
我正在创建一个AWS Lambda python部署程序包。我正在使用一个外部依赖项请求。我使用AWS文档http://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html安装了外部依赖项。以下是我的python代码。 import requests print('Loading function') s3 = boto3.client('s3') def lambda_handler(event, context): #print("Received event: " + json.dumps(event, indent=2)) # Get the object from the event and show its content type bucket = event['Records'][0]['s3']['bucket']['name'] key = urllib.unquote_plus(event['Records'][0]['s3']['object']['key']).decode('utf8') try: response = s3.get_object(Bucket=bucket, Key=key) s3.download_file(bucket,key, '/tmp/data.txt') lines = [line.rstrip('\n') for line in …

8
为什么此HTTP请求在AWS Lambda上不起作用?
我开始使用AWS Lambda,并且尝试从处理程序功能请求外部服务。根据这个答案,HTTP请求应该可以正常工作,而且我还没有找到其他说明的文档。(实际上,人们已经发布了使用Twilio API发送SMS的代码。) 我的处理程序代码是: var http = require('http'); exports.handler = function(event, context) { console.log('start request to ' + event.url) http.get(event.url, function(res) { console.log("Got response: " + res.statusCode); }).on('error', function(e) { console.log("Got error: " + e.message); }); console.log('end request to ' + event.url) context.done(null); } 我在CloudWatch日志中看到以下4行: 2015-02-11 07:38:06 UTC START RequestId: …

9
AWS Lambda错误:“找不到模块'/ var / task / index'”
Node.js Alexa任务问题 我目前正在通过AWS Lambda编写一个Node.js Alexa Task,并且我一直在尝试编写一个函数,该函数从OpenWeather API接收信息并将其解析为一个名为的变量weather。相关代码如下: var request = require('request'); var weather = ""; function isBadWeather(location) { var endpoint = "http://api.openweathermap.org/data/2.5/weather?q=" + location + "&APPID=205283d9c9211b776d3580d5de5d6338"; var body = ""; request(endpoint, function (error, response, body) { if (!error && response.statusCode == 200) { body = JSON.parse(body); weather = body.weather[0].id; } …

3
通过API网关在AWS Lambda中获取JSON正文
我目前正在使用NodeJS通过AWS Api Gateway在AWS lambda上构建机器人,并且遇到POST请求和JSON数据问题。我的api使用“使用Lambda代理集成”,甚至当我测试代理在主体中发送内容类型为Application / json和某些json的代理时,例如{"foo":"bar"},如果不先解析对象就无法访问该对象 例如 var json = JSON.parse(event.body); console.log(json.foo); 现在我知道仅通过JSON.parse运行它似乎没什么大不了的,但是我已经看到了很多其他例子,而事实并非如此。看到这里https://github.com/pinzler/fb-messenger-bot-aws-lambda/blob/master/index.js 是否需要向API网关添加任何内容以正确处理此问题?“发布方法请求”部分中的“请求正文”步骤具有请求正文的application / json设置的内容类型。 就我所知,上述示例的自述文件似乎未使用代理集成,因此我不确定在这里应该做什么

4
相当于Firebase实时数据库的AWS是什么?
目前,我正在一个新的游戏项目中,该项目将由React Native前端和基于Lambda的后端组成。该应用程序需要一些实时功能,例如活动的用户记录,地理围栏等。 我一直在看Firebase的Realtime Database,它看起来像是用于实时数据同步的非常优雅的解决方案,但我认为AWS尚不具备这种功能。 我可以想到的仅使用AWS服务实现“无服务器”实时的3个选项是: 选项1:通过WebSocket进行AWS IoT消息传递 这很明显,这是通过IoT SDK进行的托管WebSockets连接。我当时想触发Lambda,以响应入站和出站事件,只是将WebSockets用作实时层,像通常那样在应用程序客户端上构建自定义处理逻辑。 不利的一面是,至少与Firebase相比,我将不得不自己处理事件中的数据,这将在WebSockets之上添加另一层管理,并且必须使用应用程序商店中的API数据层进行标准化。 优点: 可扩展的双向实时连接 缺点: 仅在打开应用程序时有效 消息结构需要实现 多个传输层需要管理 选项2:推触发式重新获取 另一个选择是使用推送通知作为实时触发器,但使用对API网关的常规HTTP请求来实际获取更新的有效负载。 我喜欢这种方法,因为它只针对应用程序状态坚持一个传输层和一个真实来源。由于这些应用程序是推送通知,因此在未打开应用程序时也会触发更新。 缺点是,这是很多自定义工作,在推送通知与需要提取的数据之间可能存在潜在的困难映射。 优点: 即使关闭应用程序,推送通知也能正常工作 单一事实来源,传输层 缺点: 最定制的解决方案 总体上将涉及更多HTTP请求 选项3:Cognito Sync 这对我来说是较新的,我不确定它是否可以从服务器上实际连接。 Cognito Sync提供用户状态同步。跨设备,具有脱机支持,并且是我仍将使用的Cognito SDK的一部分。听起来就像我在寻找什么,但找不到任何确凿的证据来证明是否有可能从AWS而不是仅从其中一台设备修改或“触发”更新。 优点: 提供抽象的实时数据模型 连接到Cognito用户记录OOTB 缺点: 不确定是否可以从Lambdas进行修改或更新 我想知道是否有人在作为基于Lambda的架构的一部分在AWS上进行实时处理的经验,并且您是否对最佳处理方式有意见?

17
AWS lambda api网关错误“格式错误的Lambda代理响应”
我正在尝试使用AWS Lambda建立一个hello world示例,并通过api网关为其提供服务。我单击了“创建Lambda函数”,这将设置api通道并选择了Blank Function选项。我添加了在AWS网关入门指南中找到的lambda函数: exports.handler = function(event, context, callback) { callback(null, {"Hello":"World"}); // SUCCESS with message }; 问题是,当我向它发出GET请求时,它返回了502响应{ "message": "Internal server error" }。并且日志显示“由于配置错误,执行失败:Lambda代理响应格式错误”。

15
无法使AWS Lambda函数登录(文本输出)到CloudWatch
我正在尝试设置一个Lambda函数,该函数将在文件上传到S3存储桶时对其进行处理。我需要一种方法来查看console.log上载文件时的输出,但是我不知道如何将Lambda函数链接到CloudWatch。 通过查看context我的日志组/aws/lambda/wavToMp3和日志流为的对象,我知道了2016/05/23/[$LATEST]hex_code_redacted。因此,我在CloudWatch中创建了该组和流,但是没有任何日志记录到它。


7
AccessDeniedException:用户无权执行:lambda:InvokeFunction
我正在尝试从节点调用lambda函数。 var aws = require('aws-sdk'); var lambda = new aws.Lambda({ accessKeyId: 'id', secretAccessKey: 'key', region: 'us-west-2' }); lambda.invoke({ FunctionName: 'test1', Payload: JSON.stringify({ key1: 'Arjun', key2: 'kom', key3: 'ath' }) }, function(err, data) { if (err) console.log(err, err.stack); else console.log(data); }); 密钥适用于IAM用户。用户必须AWSLambdaExecute和AWSLambdaBasicExecutionRole附加政策。 我收到权限错误: AccessDeniedException: User: arn:aws:iam::1221321312:user/cli is not authorized to perform: …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.