

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在事件來源和許可政策中使用 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` 函數。

如果您嘗試在沒有別名或特定版本的情況下叫用該函數，則會出現許可錯誤。即使您嘗試直接叫用與別名相關聯的函數版本，仍會發生此許可錯誤。

例如，當 Amazon S3 代表 `amzn-s3-demo-bucket` 時，下列 AWS CLI 命令會授予 Amazon S3 叫用 `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)。