aws lambda介绍

什么是aws lambda

  • AWS Lambda 是一项计算服务,可使您无需预配置或管理服务器即可运行代码。AWS Lambda 只在需要时执行您的代码并自动缩放,从每天几个请求到每秒数千个请求。您只需按消耗的计算时间付费 – 代码未运行时不产生费用。借助 AWS Lambda, 您几乎可以为任何类型的应用程序或后端服务运行代码,而且无需执行任何管理。AWS Lambda 在可用性高的计算基础设施上运行您的代码,执行计算资源的所有管理工作,其中包括服务器和操作系统维护、容量预置和自动扩展、代码监控和记录。
  • 在使用 AWS Lambda 时,您只需负责自己的代码。AWS Lambda 管理提供内存、CPU、网络和其他资源均衡的计算机群。这是以灵活性为代价的,这意味着您不能登录计算实例,或自定义操作系统或语言运行时。通过这些约束,AWS Lambda 可以代表您执行操作和管理活动,包括预置容量、监控机群运行状况、应用安全补丁、部署您的代码以及监控和记录您的 Lambda 函数日志。

lambda 函数

exports.myHandler = function(event, context, callback) {
   console.log("value1 = " + event.key1);
   console.log("value2 = " + event.key2);  
   callback(null, "some success message");
   // or 
   // callback("some error type"); 
}

在该函数中,console.log() 语句会将一些传入的事件数据记录到 CloudWatch Logs。

lambda 调用

  • 在 AWS Lambda 中,Lambda 函数和事件源是 AWS Lambda 中的核心组件。 事件源是发布事件的实体,Lambda 函数是处理事件的自定义代码。支持的事件源是指那些经过预配置可与 AWS Lambda 一起使用的 AWS 服务。配置称为事件源映射,将事件源映射到 Lambda 函数。它允许在事件发生时自动调用 Lambda 函数。
    1. Amazon API Gateway - 您可以通过 HTTPS 调用 Lambda 函数。您可以使用 Amazon API Gateway 定义自定义 REST API 和终端节点来做到这一点。您可以将各个 API 操作(如 GET 和 PUT)映射到特定的 Lambda 函数。当向该 API 终端节点发送 HTTPS 请求时,Amazon API Gateway 服务会调用相应的 Lambda 函数。
    2. Amazon S3 - 您可以编写 Lambda 函数来处理 S3 存储桶事件,例如,对象创建事件或对象删除事件。例如,当用户将一张照片上传到存储桶时,您可能希望 Amazon S3 调用 Lambda 函数,以便读取图像和创建照片缩略图。 您可以使用 Amazon S3 中的存储桶通知配置来配置事件源映射,并标识您希望 Amazon S3 发布的存储桶事件以及要调用的 Lambda 函数。

AWS lambda 限制

  • 每个调用的 AWS Lambda 资源限制
    1. 内存 128 MB ~ 3008 MB (增量为 64 MB).
    2. 临时磁盘容量(“/tmp”空间) 512MB
    3. 文件描述符数 1024
    4. 过程和线程数(合并总数量) 1024
    5. 每个请求的最大执行时长 300 秒
    6. Invoke 请求正文负载大小 (RequestResponse/同步调用)6MB
    7. Invoke 请求正文负载大小 (Event/异步调用)128 K
  • 账户级别并发执行数限制
    1. 默认情况下,AWS Lambda 将给定区域中所有函数的总并发执行数限制为 1000
    2. 可以设置每个函数的并发限制 例如100
  • AWS Lambda 部署限制
    1. Lambda 函数部署程序包大小 (压缩的 .zip/.jar 文件) 50 MB
    2. 每个区域可以上传的所有部署程序包的总大小 75GB
    3. 可压缩到部署程序包中的代码/依赖项的大小 (未压缩的 .zip/.jar 大小)。 250MB (每个 Lambda 函数都会在其的 /tmp 目录中接收到额外的 500 MB 的非持久性磁盘空间。该 /tmp 目录可用于在函数初始化期间加载额外的资源,如依赖关系库或数据集.)
    4. 环境变量集的总大小 4 KB

lambda log

  • Lambda 自动与 Amazon CloudWatch Logs 集成,并将您的代码的所有日志推送到与 Lambda 函数关联的 CloudWatch Logs 组(/aws/lambda/<函数名>)
  • 如果 Lambda 函数代码正在执行,但几分钟后您仍未看到有任何日志数据生成,则可能是该 Lambda 函数的执行角色未授予将日志数据写入到 CloudWatch Logs 的权限
2018-4-10 17:47:47 浏览(134)
Copyright ©leiwei | 京ICP备18013719号