生成的 Amazon CloudFormation 资源 - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

生成的 Amazon CloudFormation 资源

Amazon Serverless Application Model (Amazon SAM) 在处理 Amazon SAM 模板文件时,会生成一个或多个 Amazon CloudFormation 资源。Amazon SAM 生成的 Amazon CloudFormation 资源集因您指定的场景而异。场景是在模板文件中指定的 Amazon SAM 资源和属性的组合。您可以在模板文件中的其他位置引用生成的 Amazon CloudFormation 资源,类似于引用在模板文件中明确声明的资源。

例如,如果您在 Amazon SAM 模板文件中指定了 AWS::Serverless::Function 资源,则 Amazon SAM 总是会生成 AWS::Lambda::Function 基本资源。如果您还指定了可选的 AutoPublishAlias 属性,则 Amazon SAM 还会生成 AWS::Lambda::AliasAWS::Lambda::Version 资源。

本节列出了各种场景及其会生成的 Amazon CloudFormation 资源,并说明如何在 Amazon SAM 模板文件中引用生成的 Amazon CloudFormation 资源。

引用生成的 Amazon CloudFormation 资源

有两种方法可在 Amazon SAM 模板文件中引用生成的 Amazon CloudFormation 资源:通过 LogicalId,或通过可引用属性。

通过以下方式引用生成的Amazon CloudFormation资源 LogicalId

Amazon SAM 生成的每个 Amazon CloudFormation 资源都有一个 LogicalId,该 ID 是模板文件中唯一的字母数字标识符(A-Z、a-z、0-9)。Amazon SAM 使用模板文件中 Amazon SAM 资源的 LogicalIds 来构造它生成的 Amazon CloudFormation 资源的 LogicalIds。您可以使用生成的 Amazon CloudFormation 资源的 LogicalId 在模板文件中访问该资源的属性,就像访问已明确声明的 Amazon CloudFormation 资源一样。相关 Amazon CloudFormation 和 Amazon SAM 模板中的 LogicalIds 的更多信息,请参阅《Amazon CloudFormation 用户指南》中的资源

注意

某些生成的资源的 LogicalIds 包含唯一哈希值,以避免命名空间冲突。这些资源的 LogicalIds 是在创建堆栈时派生的。在使用 Amazon Web Services Management Console、Amazon CLI 或其中一个 Amazon 软件开发工具包创建堆栈后,您才能检索它们。我们不建议通过 LogicalId 引用这些资源,因为哈希值可能会发生变化。

通过可引用属性引用生成的 Amazon CloudFormation 资源

对于某些生成的资源,Amazon SAM 会提供 Amazon SAM 资源的可引用属性。您可以使用此属性在 Amazon SAM 模板文件中引用生成的 Amazon CloudFormation 资源及其属性。

注意

并非所有生成的 Amazon CloudFormation 资源都具有可引用属性。对于这些资源,必须使用 LogicalId

生成的 Amazon CloudFormation 资源场景

下表汇总了构成会生成 Amazon CloudFormation 资源的场景的 Amazon SAM 资源和属性。场景列中的主题提供了有关 Amazon SAM 会为该场景生成的其他 Amazon CloudFormation 资源的详细信息。