AWS Lambda
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

AWS Lambda 别名简介

可以为您的 Lambda 函数创建别名。AWS Lambda 别名类似于指向特定 Lambda 函数版本的指针。有关版本控制的更多信息,请参阅AWS Lambda 版本控制简介。通过使用别名,您可以访问其指向的 Lambda 函数(例如,调用函数),而调用方无需了解别名所指向的特定版本。

AWS Lambda 别名支持以下使用案例:

  • 根据需要更轻松地支持 Lambda 函数的新版本的提升和回滚 - 在最初创建 Lambda 函数($LATEST 版本)后,您可以先发布此函数的版本 1。通过创建名为 PROD 的指向版本 1 的别名,现在可以使用 PROD 别名调用 Lambda 函数的版本 1。

    现在您可以使用所有改进来更新代码($LATEST 版本),然后发布另一个改进后的稳定版本(版本 2)。可以通过重新映射 PROD 别名以使其指向版本 2,来将版本 2 提升到生产中。如果发现问题,您可以通过重新映射 PROD 别名以使其指向版本 1,来轻松将生产版本回滚到版本 1。

    注意

    在此情况下,术语提升回滚 指的是将别名重新映射到其他函数版本。

  • 简化事件源映射的管理 - 您可以使用别名 ARN 来确保在提升新版本或将其回滚到之前的版本时无需更新事件源映射,而不必在事件源映射中使用 Lambda 函数 ARN。

AWS Lambda 别名是类似于 Lambda 函数的资源。但无法单独创建别名。您可以为现有 Lambda 函数创建别名。如果 Lambda 函数是资源,则可将 AWS Lambda 别名视为与 Lambda 函数关联的子资源。

Lambda 函数和别名都是 AWS Lambda 资源,与所有其他 AWS 资源类似,它们都具有唯一的 Amazon 资源名称 (ARN)。以下示例显示了一个 Lambda 函数($LATEST 版本)与一个发布的版本。每个版本均有一个指向它的别名。

可以使用函数 ARN 或别名 ARN 访问函数。

  • 由于函数版本是 $LATEST,因此可使用限定的或非限定的函数 ARN 来访问它。

    • 限定的函数 ARN(具有 $LATEST 版本后缀):

      Copy
      arn:aws:lambda:aws-region:acct-id:function:helloworld:$LATEST
  • 当使用任一别名 ARN 时,您使用的是限定的 ARN。每个别名 ARN 均具有别名后缀。

    Copy
    arn:aws:lambda:aws-region:acct-id:function:helloworld:PROD arn:aws:lambda:aws-region:acct-id:function:helloworld:BETA arn:aws:lambda:aws-region:acct-id:function:helloworld:DEV

AWS Lambda 提供了以下 API 以供您用来创建和管理别名:

示例:使用别名管理 Lambda 函数版本

以下是如何使用版本控制和别名将 Lambda 函数的新版本提升到生产中的示例方案。

最初,您创建一个 Lambda 函数。

它是 $LATEST 版本。您也可以创建指向新创建的函数的别名(DEV,用于开发)。开发人员可使用此别名在开发环境中通过事件源测试函数。

在继续开发更新版本时,在测试环境中以可靠方式通过事件源测试函数版本。

您可从 $LATEST 中发布版本并使另一个别名 (BETA) 指向它。这样您便能将测试事件源关联到此特定别名。在事件源映射中,使用 BETA 别名将您的 Lambda 函数与事件源关联。

在生产中提升 Lambda 函数版本以便处理生产环境中的事件源。

在测试 BETA 版本后,可以通过创建映射到版本 1 的别名来定义生产版本。这意味着,您需要将生产事件源指向此特定版本。可通过在所有生产事件源映射中创建 PROD 别名并使用 PROD 别名 ARN 来执行此操作。

继续开发、发布更多版本并测试。

在开发代码时,可通过上传更新后的代码来更新 $LATEST 版本,然后通过让 BETA 别名指向它来发布到 Beta 测试中。利用此 Beta 别名的简单重新映射,可以将 Lambda 函数的版本 2 放置到测试中,而无需更改您的任一事件源。别名就是通过此方式来使您能够在开发环境中控制用于特定事件源的函数版本。

如果您想尝试使用 AWS CLI 创建此设置,请参阅教程:使用 AWS Lambda 别名

AWS Lambda 版本控制简介

教程:使用 AWS Lambda 别名

使用 AWS 管理控制台、AWS CLI 或 Lambda API 管理版本控制