Lambda 函数版本 - AWS Lambda
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Lambda 函数版本

您可以使用版本来管理函数的部署。例如,您可以发布函数的新版本以用于 Beta 测试,而不会影响稳定的生产版本的用户。您每次发布函数时,Lambda 都会为函数创建一个新版本。新版本是函数的未发布版本的副本。

函数版本包括以下信息:

  • 函数代码以及所有关联的依赖项。

  • 调用函数的 Lambda 运行时。

  • 所有函数设置,包括环境变量。

  • 用于标识函数的特定版本的唯一 Amazon 资源名称 (ARN)。

只能在函数的未发布版本上更改函数代码和设置。在您发布版本时,代码和大多数设置都会被锁定,从而为该版本的用户维持一致的体验。有关配置函数设置的更多信息,请参阅在 AWS Lambda 控制台中配置函数

创建函数的新版本

  1. 打开 Lambda 控制台 函数页面

  2. 选择您要发布的函数的名称。

  3. 在函数配置页面上,依次选择操作发布新版本

  4. (可选)输入版本说明。

  5. 选择 Publish

在您发布函数的第一个版本后,Lambda 控制台会显示可用版本的下拉列表。在设计器面板中,函数名称的末尾会显示一个版本限定符。

要查看函数的当前版本,请在函数配置页面上选择版本控制,然后选择版本选项卡以查看函数的版本列表。如果您尚未发布函数的新版本,列表中将仅显示 $LATEST 版本。

使用 Lambda API 管理版本

要发布函数版本,请使用 PublishVersion API 操作。

以下示例发布函数的新版本。响应返回有关新版本的配置信息,包括版本号和具有版本后缀的函数 ARN。

$ aws lambda publish-version --function-name my-function { "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:1", "Version": "1", "Role": "arn:aws:iam::123456789012:role/lambda-role", "Handler": "function.handler", "Runtime": "nodejs12.x", ... }

使用版本

您可以使用限定的 ARN 或非限定的 ARN 来引用您的 Lambda 函数。

  • 限定的 ARN – 具有版本后缀的函数 ARN。以下示例引用 helloworld 函数的版本 42。

    arn:aws:lambda:aws-region:acct-id:function:helloworld:42
  • 非限定的 ARN – 不具有版本后缀的函数 ARN。

    arn:aws:lambda:aws-region:acct-id:function:helloworld

您可以在所有相关 API 操作中使用限定或非非限定的 ARN。但是,不能使用非限定 ARN 来创建别名。

如果您决定不发布函数版本,可以使用事件源映射中的限定或非限定 ARN 来调用函数。当您使用非限定 ARN 调用函数时,Lambda 会隐式调用 $LATEST。

Lambda 仅在代码从未发布过或自上次发布版本后已发生更改时,才会发布新函数版本。如果没有任何更改,函数版本将保持为上次发布的版本。

每个 Lambda 函数版本的限定 ARN 都是唯一的。发布版本后,您无法更改 ARN 或函数代码。

授予权限

您可以使用基于资源的策略基于身份的策略授予对函数的访问权限。权限的范围取决于您要将策略应用于整个函数还是函数的某个版本。有关策略中的函数资源名称的更多信息,请参阅Lambda 操作的资源和条件

您可以通过使用函数别名,简化事件源和 AWS Identity and Access Management (IAM) 策略的管理。有关更多信息,请参阅 Lambda 函数别名