我目前的情况:我有一个带有资源/登录的AWS API网关.当此资源上存在GET请求时,将调用AWS Lambda函数,该函数将返回HTML登录表单.登录表单的HTML写在Lambda函数的JavaScript字符串中(我在Lambda函数中使用Node JS).提交表单时,相同的资源 - 使用POST方法的/ login调用另一个验证登录的Lambda函数.如果登录失败,它将返回带有验证错误消息的HTML表单,但同样,HTML代码也会写入JavaScript字符串中.
我的问题:是否可以在AWS S3存储桶中存储HTML文件,因此当我点击/登录时,API网关调用Lambda函数,该函数然后从S3存储桶获取HTML页面并将其返回给用户?当表单验证失败时,我想从S3存储桶返回相同的HTML并添加错误消息.
是否可以通过这种方式互连这些组件?我正在努力的部分是在S3上存储HTML并从Lambda访问它.
使用 setInterval 函数连续调用相同的 lambda 函数时,我遇到了困难。
拉姆达函数
var MongoClient = require('mongodb').MongoClient
, format = require('util').format;
function funUpdateCommand(event,context,callback){
var mongoUrl='mongodb://**.**.**.**:*****/DBname';
// var mongoUrl='mongodb://127.0.0.1:27017/DBname';
MongoClient.connect(mongoUrl, function(err, db) {
if(err) throw err;
var collection = db.collection('device');
var interval = setInterval(function() {
collection.find({"deviceCommand.command":"getAudio","deviceCommand.timestamp":{ $lte: new Date((new Date)*1 - 60000*2)}}).toArray(function(err, results) {
if(err){
console.log(err);
}else{
for(var i=0;i<results.length;i++){
collection.update({_id:results[i]._id},{$set:{"deviceCommand.command":" "}},function(err, results) {
});
}
}
});
}, 5000);
});
context.succeed("Successfully uploaded");
}
exports.handler=funUpdateCommand;Run Code Online (Sandbox Code Playgroud)
我正在尝试更新 mongoDB 中的一些文档,我需要将 aws lambda 函数作为连续后台作业运行,但是当使用 setInterval 时它会返回超时错误。
如何使用 setInterval 连续运行我的 aws lambda 函数?
我已经设置了一些AWS CloudWatch代理以将日志发送到CloudWatch日志组,而我现在要做的就是将它们放入Elasticsearch集群(在ec2上)。理想情况下,我想做的是编写一个lambda函数,将其解析然后将其发送到elasticsearch,而且还要在将消息写入日志组时触发lambda函数。是否可以从cloudwatch日志组触发lambda?
我继续使用Amazon Lambda和alexa技能工具包获得以下代码的问题.我花了无数个小时在这上面,无法让它发挥作用.我一直收到这条消息,无法弄清楚为什么http get失败了."请稍后再试".它甚至不打印控制台消息.
var Alexa = require('alexa-sdk');
var http = require('http');
var APP_ID = "omitted";
var SKILL_NAME = 'omitted';
var options = {
host: 'api.forismatic.com',
path: '/api/1.0/?method=getQuote&lang=en&format=text',
method: 'GET'
};
exports.handler = function(event, context, callback) {
var alexa = Alexa.handler(event, context);
alexa.APP_ID = APP_ID;
alexa.registerHandlers(handlers);
alexa.execute();
};
var handlers = {
'LaunchRequest': function () {
this.emit('Inspiration');
},
'IntentRequest': function() {
this.emit('Inspiration');
},
'InspirationIntent': function () {
this.emit('Inspiration');
},
'Inspiration': function () {
var speechOutput = '';
var text = ''; …Run Code Online (Sandbox Code Playgroud) amazon-web-services alexa node.js aws-lambda alexa-skills-kit
我已阅读Lambda FAQ,它说它将我的代码存储在S3中并且已加密.
S3中存储的位置,我可以解密它来编辑我的代码吗?
我有一个JPEG缓冲区,可以从S3成功上传和下载.但是,我正在尝试通过Messenger API发送它,当它以编程方式访问时,Messenger会抛出错误,因为根据S3控制台,Content-Type图像的实际情况是application/octet-stream.
我手动输入的元数据显示在x-amz-meta-content-type.根据AWS文档,这是默认行为.我怎么可能会覆盖它来获得image/jpeg下Content-Type?
我的代码:
var s3 = new AWS.S3();
var params = {
Body: buffer,
Bucket: <bucket>,
Key: <key>,
Metadata: {
'Content-Type': 'image/jpeg'
}
};
s3.putObject(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else {
console.log(data);
}
})
Run Code Online (Sandbox Code Playgroud) 是否有本地运行 AWS Lambda 的开发服务器?我的要求是
nodejs服务器,ruby除了和软件包go之外不需要安装任何东西nodenpmwget/curl或 API 测试工具查询的服务器,以将各种事件发送到js服务器用作 lambda 的文件,并且当我更改该文件时服务器应该重新启动/更新我有一个node.js RESTful API应用程序.没有Web界面(至少截至目前),它只是用作其他服务调用的API端点.
我想在亚马逊的AWS云上托管它.我在两个选项之间感到困惑
要么
或者我可以在EC2上运行我的代码并使用API网关吗?
当涉及到node.js RESTful api应用程序时,我对EC2和API网关的不同之处感到困惑
amazon-ec2 amazon-web-services node.js aws-lambda aws-api-gateway
我最近以DevOps工程师的身份加入一家公司,我的职责之一是在OpsWorks中配置基础架构(ELB后面的EC2实例与Aurora DB进行通信)。
我被要求审核有关应用更新的当前解决方案。
在阅读了一些答案之后,令我惊讶的是,如果我想将安全更新自动应用于我们的(Centos)EC2实例,那么这些选项是:
每种方法都有很多利弊,所以我想知道“最佳实践”的共识,即定期自动更新多个实例。
注意:这些实例正在运行24/7 365(即,我们从不重启它们),根据实例的不同,代码部署的范围可以从每天到每月!
目前我已经设置了一个从api网关端点触发的lambda函数.目标是通过形成响应并首先触发回调来保持响应时间较短,然后继续与sns交互以将工作传递给其他lambda函数.但是,当我对端点运行火焰计时,我注意到了一些奇怪的行为.主要是响应时间似乎不断增加,此外还有502和504响应代码返回但没有500响应代码(如果我理解正确,则表示调用限制,因为429响应在api网关中映射到500).如果我删除异步操作,我会看到合理的响应时间,并且没有错误.为什么这是观察到的行为,当实际触发响应时,在nodejs事件循环中项目排队的顺序是否不起作用,或者lambda只是等待事件队列在发送响应之前清空?如果是后者,则异步交互中的错误会导致502和504响应吗?
aws-lambda ×9
node.js ×6
amazon-s3 ×3
amazon-ec2 ×2
javascript ×2
alexa ×1
centos ×1
mongodb ×1