亚马逊AWS官方博客

在 AWS Lambda 上开始使用您的首选操作工具 – 扩展现已正式推出

2020 年 10 月,我们宣布推出 AWS Lambda 扩展的预览版,您可以使用它轻松将 Lambda 函数与您的监控、可观测性、安全性和治理工具集成。

今天,我很高兴地宣布 AWS Lambda 扩展将全面推出,该扩展具有新的性能改进和一组扩展合作伙伴。作为 GA 版本的一部分,我们支持函数在函数代码完成后立即发送响应,而无需等待包含的扩展完成。这使扩展能够在函数的响应返回后执行诸如向首选目标发送遥测数据等活动。我们还欢迎新合作伙伴提供的扩展:Imperva、Instana、Sentry、Site24x7 和 AWS Distro for OpenTelemetry。

您可以将 Lambda 扩展用于以下使用案例:例如在函数调用之前、期间和之后捕获诊断信息;无需更改代码即可自动检测代码;在函数调用之前获取配置设置或密钥;通过安全代理检测函数活动并对其进行警报;以及从 Lambda 函数中直接异步地将遥测数据发送到自定义目标,例如 Amazon Simple Storage Service (Amazon S3)Amazon KinesisAmazon Elasticsearch Service

客户将被无服务器愿景所吸引。由于运营责任的减少,他们可以将精力放在业务问题上。为了帮助客户监控、观察、保护和管理其函数,AWS Lambda 通过 Amazon CloudWatch 提供了日志和指标的本机集成,通过 AWS X-Ray 进行跟踪、通过 AWS Config 跟踪配置更改,以及通过 AWS CloudTrail 记录 API 调用。此外,AWS Lambda 合作伙伴还提供了应用程序管理、API 集成、部署、监控和安全性工具。

AWS Lambda 扩展提供了一种扩展 Lambda 执行环境的简单方法,该环境是您执行函数代码所在的位置。AWS 客户、合作伙伴和开源社区可以使用新的 Lambda 扩展 API 构建自己的扩展,这些扩展是增强 Lambda 函数功能的配套流程。要了解如何构建您自己的扩展,请参阅构建 AWS Lambda 的扩展 – 预览版博客文章。该博客文章还包括有关 Lambda 生命周期更改的信息。

AWS Lambda 扩展的工作原理
AWS Lambda 扩展设计用作插入当前使用的工具的最简单方法,无需复杂的安装或配置管理。您可以使用 Lambda 层将工具添加到您的函数中,或者针对部署为容器映像的函数将它们包含在映像中。

Lambda 扩展使用扩展 API注册函数和执行环境生命周期事件。为了响应这些事件,扩展可以启动新的流程或运行逻辑。Lambda 扩展还可以使用运行时日志 API 订阅 Lambda 服务直接从 Lambda 执行环境发送到 Amazon CloudWatch 的相同日志流。Lambda 将日志流式传输到扩展程序,然后扩展程序可以处理、筛选日志并将其发送到任何首选目的地。

大多数客户都将使用 Lambda 扩展,而无需了解扩展 API 的功能。您只需在 Lambda 函数中配置选项即可使用扩展的功能。

如何使用 Lambda 扩展
您可以使用 Lambda 控制台AWS 命令行界面 (CLI) 或基础设施即代码 (IaC) 服务以及 AWS CloudFormationAWS Serverless Application Model (AWS SAM) 和 Terraform 等工具安装和管理扩展。

要使用 Lambda 扩展将现有工具与 Lambda 函数集成,请选择您的 Lambda 函数,然后在 Configuration(配置)选项卡上,选择 Monitoring and Operations tools(监控和操作工具)。

Extensions(扩展)页面上,您可以找到 AWS Lambda 合作伙伴提供的扩展。选择一个扩展以查看其安装说明。

AWS Lambda 扩展合作伙伴
此次发布时,Lambda 扩展与这些 AWS Lambda 合作伙伴进行了集成,他们提供了以下信息来介绍其扩展。(我正在使用他们发表这些文章时的链接来更新本文。)

  • AppDynamics 为 AWS Lambda 提供端到端事务跟踪。使用 AppDynamics 扩展,开发人员不再必须将 AppDynamics 跟踪器作为依赖项纳入其函数代码中,从而使混合架构之间的事务跟踪变得更加简单。
  • Coralogix 是一个日志分析和云安全性平台,支持数千家公司提高安全性和加速软件交付,从而让您无需为噪音买单即可获得深刻的见解。Coralogix 现在可以直接读取 Lambda 函数日志和指标,而无需使用 CloudWatch 或 Amazon S3,从而降低延迟和可观察性成本。
  • Datadog 扩展为您的无服务器应用程序带来全面、实时的可见性。结合 Datadog 与 AWS 的集成,您可以获得指标、跟踪和日志,从而帮助您监控、检测和解决任何规模的问题。借助 Datadog 扩展,从无服务器工作负载中获取遥测数据比以往任何时候都更加容易。
  • 使用 Dynatrace 扩展,更容易将 AWS Lambda 指标和跟踪带入 Dynatrace 平台中,以进行智能观察和自动根本原因检测。只需拨动开关即可获得全面的端到端可观察性,而无需更改代码。
  • Epsagon 可帮助您监控、排查问题和降低 Lambda 函数的成本。Epsagon 的扩展降低了将跟踪发送到 Epsagon 服务的开销,对函数性能的影响最小。
  • HashiCorp Vault 使您可以保护、存储和严格控制对应用程序密钥和敏感数据的访问。借助 Vault 扩展,您现在可以在调用 Lambda 函数之前进行身份验证并安全地检索动态密钥。
  • Honeycomb 是一款强大的可观察性工具,可帮助您调试整个生产应用程序堆栈。Honeycomb 的扩展可降低向 Honeycomb 服务发送事件的开销、延迟和成本,同时提高可靠性。
  • Instana 企业可观测性平台可摄取性能指标、跟踪请求和概要流程,从而使企业具有可观测性。Instana Lambda 扩展提供由其实时企业可观测性平台支持的 Lambda 函数的无修改、低延迟跟踪。
  • Imperva 无服务器保护可在无服务器计算环境中保护组织免受错误配置的应用程序和代码级安全风险造成的漏洞。Imperva 扩展使客户无需更改代码即可轻松地将在无服务器应用程序的 DevOps 流程中嵌入额外的安全性,从而加快产品上市时间。
  • Lumigo 为无服务器和微服务应用程序提供监控和可观测性平台。Lumigo 扩展使新的 Lumigo Lambda Profiler 能够查看函数资源的细分情况,包括 CPU、内存和网络指标。使用扩展程序可获取可操作的见解,从而降低 Lambda 运行时间和成本、修复瓶颈并提高效率。
  • Check Point CloudGuard 为无服务器应用程序提供全生命周期安全性。CloudGuard 扩展支持函数自我保护数据聚合作为进程外扩展,以提供对应用程序层攻击的检测和警报。
  • New Relic 使您能够高效监控、排查您的 Lambda 函数的问题并对其进行优化。New Relic 的扩展使您能够将 Lambda 服务平台日志直接发送到 New Relic 的统一可观测性平台,从而使您能够以最小的延迟和成本快速可视化数据。
  • Thundra 为无服务器、容器和虚拟机 (VM) 工作负载提供应用程序调试、可观测性和安全性平台。Thundra 扩展为 Thundra 代理增加了异步遥测数据报告功能,从而消除了网络延迟。
  • Splunk 提供企业级云监控解决方案,用于实现大规模的实时全堆栈可见性。Splunk 扩展提供了一个简化的独立于运行时的界面,以最小的开销收集高分辨率可观测性数据。使用 Splunk 可观测性解决方案监控、管理和优化您无服务器应用程序的性能和成本。
  • Sentry 的扩展使开发人员能够监控代码运行状况。从错误跟踪到性能监控,开发人员可以更清楚地看到问题、更快地解决问题,并持续关注应用程序的运行状况,而无需更改代码。
  • Site24x7 为 DevOps 和 IT 运营提供性能监控解决方案。Site24x7 扩展可实现对您的 Lambda 函数的实时观测。它使您能够监控关键的 Lambda 指标和函数执行日志,并优化执行时间和性能。
  • Sumo Logic 扩展使您能够使用 AWS Lambda 即时了解任务关键型应用程序的运行状况和性能。借助此扩展和 Sumo Logic 的持续智能平台,您现在可以通过分析函数、平台和扩展日志来快速识别和修复错误和异常,从而确保您所有的 Lambda 函数按预期运行。

以下是 AWS 服务的 Lambda 扩展:

  • AWS AppConfig 可帮助您在运行时管理、存储和安全地将应用程序配置部署到主机。AWS AppConfig 扩展无缝集成了 Lambda 和 AWS AppConfig。Lambda 函数可以快速轻松地访问外部配置设置。开发人员现在可以使用强大的验证功能安全地动态更改其 Lambda 函数的配置。
  • Amazon CodeGuru Profiler 通过精确定位应用程序最昂贵的代码行,帮助开发人员提高应用程序性能并降低成本。它提供了改进代码以节省资金的建议。通过 Lambda 集成,将无需更改任何代码或重新部署软件包。
  • Amazon CloudWatch Lambda Insights 使您能够高效监控、排查 Lambda 函数的问题并对其进行优化。Lambda Insights 扩展可简化具体计算性能指标、错误和日志的收集、可视化和调查过程。您可以更轻松地隔离和关联性能问题,以优化 Lambda 环境。
  • AWS Distro for OpenTelemetry 是 OpenTelemetry 项目的一个由 AWS 支持的生产就绪型安全分发。Lambda 扩展运行 OpenTelemetry 收集器,并使函数能够将跟踪数据发送到 AWS 监控服务(如 AWS X-Ray)以及使用 OTLP 导出程序支持 OpenTelemetry 协议 (OTLP) 的任何目的地(如 Honeycomb 和 Lightstep)。

要开始使用 Lambda 扩展,请使用提供的链接来安装这些扩展。

注意事项
这里需要牢记几点:

定价:扩展程序采用与 Lambda 函数相同的定价模型,您需要为 Lambda 生命周期的各个阶段中使用的计算时间付费。对于函数调用,您可以按 1ms 的增量为服务的请求以及用于运行代码和所有扩展程序的计算时间付费。要了解有关扩展程序计费的更多信息,请访问 Lambda 常见问题页面

性能:Lambda 扩展可能会影响函数的性能,因为它们与函数共享 CPU、内存和存储等资源,而且扩展程序在函数代码之前进行的初始化。例如,如果扩展程序执行计算密集型操作,您可能会看到函数的执行持续时间会增加,因为扩展程序和函数代码共享相同的 CPU 资源。

由于 Lambda 根据内存设置使用按比例分配的 CPU 能力,因此,随着更多的进程争夺相同的 CPU 资源,您可能会看到在较低的内存设置下,执行和初始化持续时间会增加。您可以使用 PostRuntimeExecutionDuration 等 CloudWatch 指标来测量扩展程序在函数执行和 MaxMemoryUsed 后所花的额外时间,以测量所用内存的增加。

现已推出
作为 GA 的一部分宣布推出的性能改进目前在美国东部(弗吉尼亚北部)欧洲(爱尔兰)欧洲(米兰)区域推出。

您也可以构建自己的扩展程序。要了解如何构建扩展程序,请参阅 AWS Lambda 开发人员指南中的 Lambda 扩展 API。您可以通过 AWS Lambda 的 AWS 论坛或常用的 AWS Support 联系人发送反馈。

Channy