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

Lambda 函数版本

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

函数版本包括以下信息:

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

  • 调用函数的 Lambda 运行时。

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

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

创建函数版本

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

您可以使用 Lambda 控制台创建函数版本。

创建新函数版本

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

  2. 选择一个函数,然后选择 Versions(版本)

  3. 在版本配置页面上,选择 Publish new version(发布新版本)

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

  5. 选择 Publish

使用 Lambda API 管理版本

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

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

aws lambda publish-version --function-name my-function

您应看到以下输出:

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

使用版本

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

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

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

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

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

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

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

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

授予权限

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

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