AWS Lambda
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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 函数的 Amazon 资源名称 (ARN)。这种方法意味着,在提升新版本或回滚到以前的版本时,您不需要更新事件源映射。

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

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

  • 由于非限定函数的函数版本始终映射到 $LATEST,因此,您可以使用限定或非限定函数 ARN 访问该版本。下面显示了一个具有 $LATEST 版本后缀的限定函数 ARN。

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

    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 发布到 Beta 测试,而无需更改任何事件源。这种方法说明了如何通过别名控制在开发环境中与特定事件源一起使用的函数版本。

如果要尝试使用 AWS Command Line Interface 创建该设置,请参阅 教程:使用 AWS Lambda 别名