Lambda 指令集架构(ARM/x86) - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Lambda 指令集架构(ARM/x86)

Lambda 函数的指令集架构决定了 Lambda 用于运行该函数的计算机处理器类型。Lambda 提供了多种指令集架构以供选择:

  • arm64 - 64 位 ARM 架构,适用于 Amazon Graviton2 处理器。

  • x86_64 - 64 位 x86 架构,适用于基于 x86 的处理器。

注意

arm64 架构在大多数 Amazon Web Services 区域 中都可用。有关更多信息,请参阅Amazon Lambda 定价。在内存价格表中,选择 Arm Price(Arm 定价)选项卡,然后打开 Region(区域)下拉列表,查看哪些 Amazon Web Services 区域 支持使用 Lambda 的 arm64。

有关如何使用 arm64 架构创建函数的示例,请参阅 Amazon Graviton2 处理器提供支持的 Amazon Lambda 函数

使用 arm64 架构的优势

与在 x86_64 架构上运行的同等函数相比,使用 arm64 架构的 Lambda 函数(Amazon Graviton2 处理器)价格更低廉且性能更出色。可考虑将 arm64 用于计算密集型应用程序,例如高性能计算、视频编码和模拟工作负载。

Graviton2 CPU 使用 Neoverse N1 内核,并支持 Armv8.2(包括 CRC 和加密扩展)以及其他几个架构扩展。

Graviton2 通过为每个 vCPU 提供更大的二级缓存来缩短内存读取时间,从而提高了 Web 和移动后端、微服务和数据处理系统的延迟性能。Graviton2 还提供了改进的加密性能,并支持可改善基于 CPU 的机器学习推断延迟的指令集。

有关 Amazon Graviton2 的更多信息,请参阅 Amazon Graviton 处理器

迁移到 arm64 架构的要求

当您选择要迁移到 arm64 架构的 Lambda 函数时,为确保顺利迁移,请确保函数满足以下要求:

  • 该函数目前使用 Lambda Amazon Linux 2 运行时。

  • 部署包只包含您控制的开源组件和源代码,从而您可以对迁移进行任何必要的更新。

  • 如果函数代码包含第三方依赖项,则每个库或软件包都提供 arm64 版本。

函数代码与 arm64 架构的兼容性

您的 Lambda 函数代码必须与函数的指令集架构兼容。在将函数迁移到 arm64 架构之前,请注意有关当前函数代码的以下几点:

  • 如果您使用嵌入式代码编辑器添加函数代码,那么您的代码可能不作任何修改地在任一架构上运行

  • 如果您上传了函数代码,则必须上传与目标架构兼容的新代码。

  • 如果您的函数使用层,则必须检查每个层以确保它与新架构兼容。如果层不兼容,请编辑函数以将当前层版本替换为兼容的层版本。

  • 如果您的函数使用 Lambda 扩展,则必须检查每个扩展以确保它与新架构兼容。

  • 如果您的函数使用容器映像部署包类型,则必须创建与该函数架构兼容的新容器映像。

如何迁移到 arm64 架构

要将 Lambda 函数迁移到 arm64 架构,我们建议执行以下步骤:

  1. 为应用程序或工作负载构建依赖项列表。常见的依赖项包括:

    • 该函数使用的所有库和软件包。

    • 用于构建、部署和测试函数的工具,例如编译器、测试套件、持续集成和持续交付 (CI/CD) 管道、调配工具和脚本。

    • 您用于监控生产中函数的 Lambda 扩展和第三方工具。

  2. 对于每个依赖项,请检查版本,然后检查 arm64 版本是否可用。

  3. 构建环境以迁移应用程序

  4. 引导启动应用程序。

  5. 测试和调试应用程序。

  6. 测试 arm64 函数的性能。将此性能与 x86_64 版本进行比较。

  7. 更新您的基础设施管道以支持 arm64 Lambda 函数。

  8. 将部署投入生产阶段。

    例如,使用别名路由配置在函数的 x86 和 arm64 版本之间拆分流量,并比较性能和延迟。

有关如何为 arm64 架构创建代码环境的更多信息,包括 Java、Go、.NET 和 Python 的特定语言信息,请参阅 Graviton 入门存储库。Amazon GitHub

配置指令集架构

您可以使用 Lambda 控制台、Amazon 开发工具包、Amazon Command Line Interface (Amazon CLI) 或 Amazon CloudFormation 为新的和现有 Lambda 函数配置指令集架构。按照以下步骤从控制台对现有 Lambda 函数的指令集架构进行更改。

  1. 打开 Lamba 控制台的函数页面

  2. 选择要为其配置指令集架构的函数的名称。

  3. 在主代码选项卡上,对于运行时设置部分,选择编辑

  4. 对于架构,选择要用于您的函数的指令集架构。

  5. 选择保存

注意

所有 Amazon Linux 2 运行时系统同时支持 x86_64 和 ARM CPU 架构。

不使用 Amazon Linux 2 的运行时系统(例如 Go 1.x)不支持 arm64 架构。要将 arm64 架构与 Go 1.x 结合使用,您可以在 provided.al2 运行时系统中运行函数。有关更多信息,请参阅 .zip 程序包容器映像的部署说明。