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

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

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

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

  • 使用限定函数 ARN,如下所示。

    arn:aws:lambda:aws-region:acct-id:function:helloworld:1
  • 使用 BETA 别名 ARN,如下所示。

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

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