Amazon SAM模板剖析 - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Amazon SAM模板剖析

网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的Amazon SAM模板文件严格遵循Amazon CloudFormation模板文件,中对此进行了介绍模板剖析中的Amazon CloudFormation用户指南. 主要区别Amazon SAM和模板文件Amazon CloudFormation模板文件如下:

  • 转换声明。声明Transform: AWS::Serverless-2016-10-31是必需的Amazon SAM。模板文件。此声明标识Amazon CloudFormation将模板文件作为Amazon SAM。模板文件。有关转换的更多信息,请参阅转换中的 Amazon CloudFormation 用户指南.

  • 。全局部分。这些区域有:Globals部分是唯一的Amazon SAM. 它定义了所有无服务器函数和 API 通用的属性。所有AWS::Serverless::FunctionAWS::Serverless::Api, 和AWS::Serverless::SimpleTable资源继承在Globals部分。有关本节的更多信息,请参阅的 “全局变量” 部分Amazon SAM模板.

  • 资源部分。InAmazon SAM模板Resources部分可以包含Amazon CloudFormation资源和Amazon SAM资源的费用。有关 的更多信息Amazon CloudFormation请参阅资源Amazon资源和属性类型参考中的 Amazon CloudFormation 用户指南. 有关 Amazon SAM 资源的更多信息,请参阅 Amazon SAM资源和属性参考

  • 参数部分。中声明的对象Parameters部分导致sam deploy --guided命令向用户显示其他提示。有关已声明对象和相应提示的示例,请参阅sam deploy中的Amazon SAMCLI 命令参考。

的所有其他部分Amazon SAM模板文件对应于Amazon CloudFormation同名的模板文件部分。

YAML

以下示例显示 YAML 格式的模板片段。

Transform: AWS::Serverless-2016-10-31 Globals: set of globals Description: String Metadata: template metadata Parameters: set of parameters Mappings: set of mappings Conditions: set of conditions Resources: set of resources Outputs: set of outputs

模板部分

Amazon SAM模板可以包含几个主要部分。只有TransformResources部分是必填的。

您可以按任意顺序包含模板部分。但是,在您构建模板时,使用以下列表中显示的逻辑顺序可能会很有用。这是因为一个部分中的值可能是指前一节中的值。

转换(必需)

适用于Amazon SAM模板,您必须将此部分的值包含为AWS::Serverless-2016-10-31.

其他转换是可选的。有关转换的更多信息,请参阅转换中的 Amazon CloudFormation 用户指南.

全局变量(可选)

所有无服务器函数、API 和简单表都通用的属性。所有AWS::Serverless::FunctionAWS::Serverless::Api, 和AWS::Serverless::SimpleTable资源继承在Globals部分。

此部分是唯一的Amazon SAM. 中没有相应的部分Amazon CloudFormation。模板。

Description (可选)

一个描述模板的文本字符串。

本节直接对应Description的部分Amazon CloudFormation。模板。

元数据(可选)

提供有关模板的其他信息的对象。

本节直接对应Metadata的部分Amazon CloudFormation。模板。

Parameters(可选)

要在运行时 (创建或更新堆栈时) 传递到模板的值。您可引用模板的 ResourcesOutputs 部分中的参数。

使用--parameter-overrides的参数sam deploy命令和配置文件中的条目-优先于Amazon SAM。模板文件。有关的更多信息sam deploy命令,请参阅sam deploy中的Amazon SAMCLI 命令参考。有关配置文件的更多信息,请参阅Amazon SAMCLI 配置文件

Mappings(可选)

可用来指定条件参数值的密钥和关键值的映射,与查找表类似。您可以通过使用Fn::FindInMap中的内部函数ResourcesOutputs部分。

本节直接对应Mappings的部分Amazon CloudFormation。模板。

条件(可选)

用于控制是否创建某些资源或者是否在堆栈创建或更新过程中为某些资源属性分配值的条件。例如,您可以根据堆栈是用于生产环境还是用于测试环境来按照条件创建资源。

本节直接对应Conditions的部分Amazon CloudFormation。模板。

Resources(必需)

堆栈资源及其属性,如 Amazon Elastic Compute Cloud (Amazon EC2) 实例或 Amazon Simple Storage Service (Amazon S3) 存储桶。您可引用模板的 ResourcesOutputs 部分中的资源。

此部分类似于Resources的部分Amazon CloudFormation。模板。InAmazon SAM模板,此部分可以包含Amazon SAM除此之外的资源Amazon CloudFormation资源的费用。

Outputs(可选)

每当您查看堆栈的属性时返回的值。例如,您可以声明 S3 存储桶名称的输出,然后调用aws cloudformation describe-stacks Amazon Command Line Interface(Amazon CLI) 命令来查看名称。

本节直接对应Outputs的部分Amazon CloudFormation。模板。

后续步骤

下载和部署包含Amazon SAM请参阅模板文件开始使用 Amazon SAM然后按照中的说明操作教程:部署 Hello World 应用程序.