生成的 AWS CloudFormation 资源用于 AWS SAM - AWS Serverless Application Model

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

生成的 AWS CloudFormation 资源用于 AWS SAM

本节详细介绍了在 AWS SAM 处理 AWS 模板时创建的 AWS CloudFormation 资源。根据您指定的方案, AWS SAM 生成的 AWS CloudFormation 资源集会有所不同。场景是在模板文件中指定的 AWS SAM 资源和属性的组合。您可以在模板文件中的其他位置引用生成的 AWS CloudFormation 资源,类似于引用在模板文件中明确声明的资源。

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

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

引用生成的 AWS CloudFormation 资源

您可以通过LogicalId或按可引用属性在 AWS SAM 模板文件中引用生成的 AWS CloudFormation 资源。

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

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

注意

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

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

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

注意

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

生成的 AWS CloudFormation 资源场景

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