我最近在Elastic Beanstalk上部署了一个Django Web应用程序.我已对其进行了配置,以便我可以在线访问Django管理界面并将内容添加到在线站点.
现在,该网站仍处于开发阶段 - 我将进行切割和更改以及进行调整等.不幸的是,每次我从本地版本部署我的应用程序时,数据库(SQLite)都会被覆盖,我在在线版本上添加的任何内容被删除.
有没有办法从在线网站"拉"数据库(和数据库)?或者,我可以告诉'deploy'命令忽略数据库吗?
谢谢大家.
python sqlite django amazon-web-services amazon-elastic-beanstalk
使用Lambda进行首次尝试.创建代码,部署,测试工作,但是:
public String handleRequest(MyType inObj, Context context) {
// logging inObj here
}
Run Code Online (Sandbox Code Playgroud)
POJO课程
public class MyType {
String prop;
String otherProp;
}
Run Code Online (Sandbox Code Playgroud)
在调用时,我给出了以下有效负载:
{ "prop": "val1", "other_prop": "val2" }
Run Code Online (Sandbox Code Playgroud)
如你所见,我想在snake_case中给json.当lambda记录时,我可以看到
inObj.prop =="val1"
inObj.otherProp =="null".
当我将jSON从snake_case更改为camelCase时,它被正确地反序列化并且otherProp =="val2".我尝试将@JsonProperty("other_prop")添加到字段中,添加getter和setter(在camelCase中)并将@JsonProperty添加到那些(随机猜测),但没有任何改变.
问:我如何描述MyType类,以便AWS Lambda将其从snake_case正确反序列化为camelCase?
每当我尝试从Lambda(使用Java)发送带有SES的电子邮件时,都会失败-连接超时。
我已经在与Lambda函数相同的VPC中测试了来自EC2实例的完全相同的代码,并且从那里开始工作(它们具有相同的角色)。我还尝试了在Lambda函数不运行在VPC中的情况下运行它(尽管无论如何都需要将其运行在其中),这也不起作用。
这是相关的代码
SendEmailRequest request = new SendEmailRequest().withSource(from)
.withDestination(destination)
.withMessage(message);
try {
System.out.println("Attempting to send an email through Amazon SES by using the AWS SDK for Java...");
if (client == null) {
client = new AmazonSimpleEmailServiceClient();
client.setRegion(Region.getRegion(Regions.EU_WEST_1));
}
client.sendEmail(request); // this is where the exception is thrown
System.out.println("Email sent!");
} catch (Exception ex) {
ex.printStackTrace();
System.err.println(ex.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
该错误消息指出由于超时而无法连接(至email.eu-west-1 ...)。
有什么想法为什么不能在Lambda上使用吗?
我想利用 AWS 技术在 AWS 上的 nodeJS 中托管此类可扩展的博客或应用程序。这里的想法是拥有一个小型 EC2 服务器,它不负责为网站提供服务,而只负责运行 CMS/管理面板。虽然这些操作也可以是无服务器的,但我认为拥有一个专用的小型 VM EC2 实例会更高效,并且可以更好地与现有框架等配合使用。
在我上面的图表中,您可以看到有两种类型的用户audiences和admin/writers. 管理员 CRUD 操作也会导致 lambda 运行。Lambda 在 Admin 更改后生成静态站点,并将其交付给 S3。用户被定向到 S3 中托管的静态站点。只有管理员/作者才能访问站点的服务器连接部分。
我认为对于一个可扩展性极强且相对便宜的站点来说,这是一个很好的设计,只要面向用户的一面都是静态的。另一种方法是 CDN,但随后我必须处理缓存失效问题、更新速度较慢的站点以及更大的服务器。
这对我来说似乎是双赢的。回馈?
amazon-s3 amazon-ec2 amazon-web-services aws-lambda static-generator
上传和测试我的AWS Lambda函数时遇到此错误:
{
"errorMessage": "Cannot find module 'elasticsearch'",
"errorType": "Error",
"stackTrace": [
"Function.Module._load (module.js:276:25)",
"Module.require (module.js:353:17)",
"require (internal/module.js:12:17)",
"Object.<anonymous> (/var/task/PublishElasticsearch.js:17:21)",
"Module._compile (module.js:409:26)",
"Object.Module._extensions..js (module.js:416:10)",
"Module.load (module.js:343:32)",
"Function.Module._load (module.js:300:12)",
"Module.require (module.js:353:17)"
]
}
Run Code Online (Sandbox Code Playgroud)
和require()作为模块的代码行:
var elasticsearch = require('elasticsearch')({
host: config.ElasticHost
});
Run Code Online (Sandbox Code Playgroud)
该功能成功运行,唯一的问题是需要我的模块。
我npm install在函数目录中运行,并且上载的ZIP的结构如下:
PublishElasticsearch.zip
PublishElasticsearch.js
node_modules
elasticsearch
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么我会收到这个错误?
我的应用程序托管在 AWS Elastic Beanstalk - Tomcat 6 上。我的数据文件存储在 S3 存储桶中。当我在我的机器上的本地服务器上托管我的应用程序时,我能够读取和写入数据到我的 S3 存储桶(通过 SDK 使用),但是从托管在 Elastic Beanstalk 上的应用程序写入操作显示错误,即在 Elastic Beanstalk 上雄猫。我收到以下错误:
com.amazonaws.AmazonClientException:无法计算 MD5 哈希值:visitorsinfo.json(没有此类文件或目录)
我的 S3 存储桶中确实有访问者信息.json,它可以从我机器上的本地服务器成功访问,但无法从 Elastic Beanstalk 访问。
amazon-s3 amazon-ec2 amazon-web-services amazon-elastic-beanstalk
我正在尝试编写一个使用 redis(在 amazon elasticcache 上)的 AWS Lambda 函数。问题 – 我无法连接到 redis。我使用这样的代码
'use strict'
function handler (data, context, cb) {
const redis = require("redis")
console.log('before client initialization')
const client = redis.createClient({
url: 'redis://propper-url-cache.some.0001.euw1.cache.amazonaws.com:6379',
retry_strategy: function(options) {
console.log(options)
if (options.total_retry_time > 1000) {
throw new Error('can`t connect to redis')
}
}
})
console.log('after client initialization')
client.on("error", function (err) {
console.log('in error')
cb({error: err})
});
client.get("counter", function (err, counter) {
console.log('counter', counter)
if(_.isNull(counter)) {
counter = 0
}
client.set('counter', counter + 1, function(err) …Run Code Online (Sandbox Code Playgroud) amazon-web-services redis node.js amazon-elasticache aws-lambda
我具有以下结构的部署包:
my-project.zip
--- my-project.py
------ lambda_handler()
Run Code Online (Sandbox Code Playgroud)
然后在配置文件中定义处理程序路径
my-project.lambda_handler
得到错误:
'handler' missing on module
Run Code Online (Sandbox Code Playgroud)
不明白
例如:
count = 0
while True:
try:
if count == 5:
break
snap = ec.create_snapshot(
VolumeId=vol_id,
Description=instance['InstanceId']
)
break
except Exception as e:
print(e)
sleep(180)
count = count + 1
Run Code Online (Sandbox Code Playgroud)
因此,如果我有很多实例和错误,那么运行lambda可能需要很长时间.什么可以替代让Lambda入睡?
是否可以获取 AWS Lambda 的 CPU 利用率百分比?Lambda Insights 以毫秒为单位提供 CPU 指标。为了公平比较 AWS ECS 和 Lambda,我希望获得 Lambda CPU 利用率百分比。是否可以转换?
aws-lambda ×8
amazon-ec2 ×2
amazon-s3 ×2
java ×2
node.js ×2
amazon-ses ×1
django ×1
json ×1
pojo ×1
python ×1
redis ×1
sqlite ×1