强大的AWS lambda

AWS强大的lambda

自从几年前换工作后,我所参与的项目一直都是基于AWS云服务的架构,我慢慢对serverless的相关基础建设有了一定了解和实践经验。其中lambda是我心中最强大的serveless服务,是很好的高并发业务解决方案。

  1. 什么是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的原因之一。

  1. lambda如何创建

有两种方式可以创建lambda,一种是通过AWS控制台进行创建,通过创建页面的引导进行相关设置,在线编写lambda的逻辑处理代码。另一种就是通过上传代码包,从而创建lambda。

对于代码包(通常是zip包)是有大小限制的,最大不能超过250M。所以如果你的zip包太大,可以选择将这些代码打包成镜像,然后再上传到AWS。

  1. lambda的常见实用场景

最常见的一个使用案例是文件处理后需要进一步处理的业务。例如视频网站在用户上传了原始视频后,需要对视频进行压缩,然后把压缩文件重新写入s3,并发送通知给用户,比如用邮件的方式。

那么对于这种并发量无法简单估算且处理逻辑比较清晰的场景,可以选择用lambda去完成。lambda的代码流程:

  1. s3 event去触发lambda,传递message给lambda function。

  2. 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服务进行集成,我会在后续的博客中继续聊。

相关推荐
Wonopop4 小时前
AWS Budgets 预算告警与卡片拒付,为什么不能共用一个“超支“状态?附对账模型与反例测试
云计算·aws·支付系统·对账·mpchat
七牛开发者4 小时前
从 AWS 到 OpenRouter,拆解 Agent 模型路由的工程设计
云计算·aws
小七-七牛开发者1 天前
从 AWS 到 OpenRouter,拆解 Agent 模型路由的工程设计
llm·agent·aws·openrouter·codingagent
可达智灵2 天前
堵了门,钥匙还在:一次持续九个月的 AWS 接管修复
云计算·aws·可达智灵
云边云科技_云网融合2 天前
混合云组网难题破解:SD-WAN 如何打通 AWS 与阿里云,让总部分支访问稳如专线
阿里云·云计算·aws
Elastic 中国社区官方博客7 天前
AWS 自动化根因分析:从 CloudWatch 告警到完成故障诊断,仅需 36 秒
大数据·运维·elasticsearch·自动化·aws
范桂飓8 天前
AWS Strands Agents 技术解析
人工智能·云计算·aws
deepseek2311 天前
硬预算帽默认值拆解:AWS 九月上线支出上限、GCP 七月跟进,Agent 时代按量付费必须默认断供
人工智能·llm·云计算·agent·aws
johnny23313 天前
AWS系列之Glue
aws
范桂飓14 天前
AWS Agent Infra 架构分析
java·架构·aws