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

版本控制、别名和资源策略

利用版本控制和别名,您可以使用各种 ARN 访问 Lambda 函数。例如,考虑以下情形:

例如,您可以使用以下两种 ARN 之一调用 helloworld 函数版本 1:

  • 使用限定的函数 ARN:

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

    注意

    非限定的函数 ARN(没有版本或别名后缀的函数 ARN)映射到 $LATEST 版本。

  • 使用 BETA 别名 ARN:

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

推送 模型中,事件源(例如 Amazon S3 和自定义应用程序)可以调用任一 Lambda 函数版本,前提是您通过使用与 Lambda 函数关联的访问策略来向这些事件源授予必要的权限。有关推模型的更多信息,请参阅事件源映射

假定您授予权限,下一个问题是,“事件源是否能使用任一关联的 ARN 来调用函数版本?”答案是,这取决于您如何在添加权限请求中标识函数(请参阅 AddPermission)。了解这一点的关键是,您授予的权限仅适用于添加权限请求中使用的 ARN:

  • 如果您使用限定的函数名称(例如 helloworld:1),此权限 在使用其限定的 ARN 调用 helloworld 函数版本 1 时有效(使用任何其他 ARN 将导致权限错误)。

  • 如果您使用别名名称(例如 helloworld:BETA),则权限仅在使用 BETA 别名 ARN 调用 helloworld 函数时有效(使用任何其他 ARN 将导致权限错误,包括别名所指向的函数版本 ARN)。

  • 如果您使用非限定的函数名称(例如 helloworld),则权限仅在使用非限定的函数 ARN 调用 helloworld 函数时有效(使用任何其他 ARN 将导致权限错误)。

    注意

    请注意,即使访问策略仅作用于非限定的 ARN,调用的 Lambda 函数的代码和配置仍来自函数版本 $LATEST。非限定的函数 ARN 映射到 $LATEST 版本,但您添加的权限是 ARN 特定的。

  • 如果您通过 $LATEST 版本 (helloworld:$LATEST) 来使用限定的函数名称,则权限 在使用其限定的 ARN 调用 helloworld 函数版本 $LATEST 时有效(使用非限定的 ARN 将导致权限错误)。