

# 在事件源和权限策略中使用 Lambda 别名
<a name="using-aliases"></a>

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

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

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

## 资源策略
<a name="versioning-permissions-alias"></a>

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

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

例如，以下 AWS 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 \
  --action lambda:InvokeFunction \
  --source-arn arn:aws:s3:::amzn-s3-demo-bucket \
  --source-account 123456789012
```

有关在策略中使用资源名称的更多信息，请参阅[微调策略的“资源和条件”部分](lambda-api-permissions-ref.md)。