在事件源和权限策略中使用 Lambda 别名 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在事件源和权限策略中使用 Lambda 别名

每个别名都有唯一的 ARN。别名只能指向函数版本,而不能指向其他别名。可以更新别名以便指向函数的新版本。

事件源(Amazon Simple Storage Service (Amazon S3) 等)会调用您的 Lambda 函数。这些事件源维护一个映射,该映射标识在发生事件时要调用的函数。如果在映射配置中指定 Lambda 函数别名,则当函数版本发生更改时,您不需要更新映射。有关更多信息,请参阅Lambda 如何处理来自基于流和队列的事件源的记录

在资源策略中,您可以为事件源授予权限,以便使用您的 Lambda 函数。如果在策略中指定别名 ARN,则当函数版本发生更改时,您不需要更新策略。

资源策略

您可以使用基于资源的策略授予服务、资源或账户对您的函数的访问权限。该权限的范围取决于您要将其应用于别名、版本还是整个函数。例如,如果使用别名(如 helloworld:PROD),该权限将允许您使用别名 ARN (helloworld) 调用 helloworld:PROD 函数。

如果您尝试在不指定别名或具体版本的情况下调用该函数,则会出现权限错误。即使您尝试直接调用与别名关联的函数版本,也会发生此权限错误。

例如,以下 Amazon CLI 命令会向 Amazon S3 授予在 Amazon S3 代表 amzn-s3-demo-bucket 执行操作时调用 helloworld 函数的 PROD 别名的权限。

aws lambda add-permission \ --function-name helloworld \ --qualifier PROD \ --statement-id 1 \ --principal s3.amazonaws.com.cn \ --action lambda:InvokeFunction \ --source-arn arn:aws:s3:::amzn-s3-demo-bucket --source-account 123456789012

有关在策略中使用资源名称的更多信息,请参阅微调策略的“资源和条件”部分