强大的AWS lambda
AWS强大的lambda
自从几年前换工作后,我所参与的项目一直都是基于AWS云服务的架构,我慢慢对serverless的相关基础建设有了一定了解和实践经验。其中lambda是我心中最强大的serveless服务,是很好的高并发业务解决方案。
- 什么是lambda
lambda是AWS提供的一种无服务器的计算服务,根据请求流量自动扩展应用服务,
按需付费
因为是无服务器,所以无需提前准备(租用)好物理服务器。按照计算次数(请求次数)来收取费用,非常节省运维成本。支持高并发
目前默认对每个账号的每个region(区域)最大并发执行数是1000,也就是说如果同一秒来了1000个计算请求,那么它可以最多并发处理1000个请求。最大并发执行数可以根据实际需求进行调整和设置。事件驱动
lambda可以被多种事件(event)触发执行,比如HTTP请求,数据库操作,文件上传等等。
支持多种编程语言
lambda可以支持多种编程语言,比如Node.js, Python, Java, Go, Ruby以及.NET Core(C#),基本覆盖了主流编程技术,可以选择我们项目中对应实用的编程语言进行开发。特别是对NodeJS和Python的SDK最为全面,这也是很多公司选择AWS lambda的原因之一。
- lambda如何创建
有两种方式可以创建lambda,一种是通过AWS控制台进行创建,通过创建页面的引导进行相关设置,在线编写lambda的逻辑处理代码。另一种就是通过上传代码包,从而创建lambda。
对于代码包(通常是zip包)是有大小限制的,最大不能超过250M。所以如果你的zip包太大,可以选择将这些代码打包成镜像,然后再上传到AWS。
- lambda的常见实用场景
最常见的一个使用案例是文件处理后需要进一步处理的业务。例如视频网站在用户上传了原始视频后,需要对视频进行压缩,然后把压缩文件重新写入s3,并发送通知给用户,比如用邮件的方式。
那么对于这种并发量无法简单估算且处理逻辑比较清晰的场景,可以选择用lambda去完成。lambda的代码流程:
s3 event去触发lambda,传递message给lambda function。
lambda对message中的s3文件进行下载,然后压缩,生成新的文件。
3)lambda上传新生成的文件到s3,并写入记录到数据库。
4)lambda通过AWS简单邮件服务(SES)发送通知邮件给用户。
代码如下:
const AWS = require('aws-sdk');
const ses = new AWS.SES();
exports.handler = async (event) => {
const params = {
Destination: {
ToAddresses: ['recipient@example.com']
},
Message: {
Body: {
Text: {
Data: 'Hello, this is the email body.'
}
},
Subject: {
Data: 'Subject of the email'
}
},
Source: 'sender@example.com'
};
try {
const result = await ses.sendEmail(params).promise();
console.log('Email sent:', result);
return {
statusCode: 200,
body: JSON.stringify('Email sent successfully!')
};
} catch (error) {
console.error('Error sending email:', error);
return {
statusCode: 500,
body: JSON.stringify('Error sending email.')
};
}
};
Lambda还有更多实际的配置、测试和使用案例(和SQS,SNS服务进行集成),我会在后续的博客中继续聊。
强大的AWS lambda的更多相关文章
- AWS Lambda
AWS Lambda 知识点总结 参考资料:Amazon 名词解释: 事件驱动型计算服务:通过事件来触发的计算服务 Amazon S3存储桶:一项面向Internet的存储服务,可以通过S3 随时在W ...
- [翻译] 比较 Node.js,Python,Java,C# 和 Go 的 AWS Lambda 性能
[翻译] 比较 Node.js,Python,Java,C# 和 Go 的 AWS Lambda 性能 原文: Comparing AWS Lambda performance of Node.js, ...
- Automated EBS Snapshots using AWS Lambda & CloudWatch
Overview In this post, we'll cover how to automate EBS snapshots for your AWS infrastructure using L ...
- How to return plain text from AWS Lambda & API Gateway
With limited experience in AWS Lambda & API Gateway, it's struggling to find the correct way to ...
- 什么是AWS Lambda?——事件驱动的函数执行环境
AWS CTO Werner Vogels在AWS re:Invent 2014大会的第二场主题演讲上公布了两个新服务和一系列新的实例,两个新服务都相当令人瞩目:第一个宣布的新服务是Amazon EC ...
- Qwiklab'实验-API Gateway, AWS Lambda'
title: AWS之Qwiklab subtitle: 2. Qwiklab'实验-API Gateway, AWS Lambda' date: 2018-09-20 17:29:20 --- In ...
- [AWS] Lambda by Python
当前统治数据分析的语言还是Python,还是暂时走:Python + GPU的常规路线好了. numba, pyculib (分装了cublas) Ref: 使用 Python 构建 Lambda 函 ...
- 使用AWS Lambda,API Gateway和S3 Storage快速调整图片大小
https://www.obytes.com/blog/2019/image-resizing-on-the-fly-with-aws-lambda,-api-gateway,-and-s3-stor ...
- AWS Lambda 借助 Serverless Framework,迅速起飞
前言 微服务架构有别于传统的单体式应用方案,我们可将单体应用拆分成多个核心功能.每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工作时不会互相影响 这种设计理念被进一步应用,就变成了无 ...
- 本地运行aws lambda credential 配置 (missing credential config error)
参照这篇文章 http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-sha ...
随机推荐
- 【Flask】cbv源码分析 flask模板使用 flask请求与响应 session及源码分析 闪现flash 请求扩展
目录 上节回顾 今日内容 1 cbv分析 1.1 源码分析 2 模板 2.1 app.py 2.2 index.html 3 请求与响应 4 session及源码分析 4.1 session的使用 4 ...
- 海外加速,让你拥有和 Steam 一样的高速下载
Hello 各位亲爱的观众老爷们,好久不见呀. 暗影界的大门开了,育碧的限时原价结束了,美末 2 都拿年度游戏奖了,你们有猜到二狗子现在哪里么?听了不要吓一跳,二狗子刚刚抵达夜之城了!什么,你问二狗子 ...
- VL02N、VL09交货单相关增强
一.业务需求 当前台操作过账发货或冲销时,需要将数据实时同步到第三方系统,因此需要开发增强 在用户出口MV50AFZ1->userexit_save_document中加入接口逻辑即可 定期更文 ...
- Linux 进程守护脚本
一.进程守护脚本: while true; do server=`ps aux | grep stat-agent-1.0.0-SNAPSHOT.jar | grep -v grep` if [ ! ...
- #1495:非常可乐(BFS+数论)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495 BFS解法 题目 给三个数字 s n m s=n+m s在1到100之间 就是个倒水问题可以从第 ...
- 特色国风数字孪生智慧大坝 3D 可视化
前言 水利兴,五谷丰.水利作为国民经济稳定和谐的重要部分,不仅有防洪减灾.农业灌溉.城市供水调水.渔业外贸.旅游航运.生态环境等综合应用,水电资源也是至关重要的可持续能源之一.大坝与水库.水电站等水利 ...
- 最全!即学即会 Serverless Devs 基础入门(下)
作者 | 刘宇(阿里云 Serverless 产品经理) 在上篇<最全!即学即会 Serverless Devs 基础入门>中,我们阐述了工具链的重要性,并对安装方式 & 密钥配置 ...
- java读取解析endnote文件
有些项目中会要求代码解析endnote文献资料获取一些标准的信息,例如XX在某著名期刊上发表了某篇文章,关于发表文章的这个事情的描述就会给坐着一个endnote文件来记录文章名称.作者.期刊名称.出版 ...
- 十五、跨主机通信overlay网络
系列导航 一.docker入门(概念) 二.docker的安装和镜像管理 三.docker容器的常用命令 四.容器的网络访问 五.容器端口转发 六.docker数据卷 七.手动制作docker镜像 八 ...
- vue-draggable 学习和使用
vue-draggable 学习和使用 https://www.jianshu.com/p/e8ff1e1cafb1