本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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::Function、AWS::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 globalsDescription:StringMetadata:template metadataParameters:set of parametersMappings:set of mappingsConditions:set of conditionsResources:set of resourcesOutputs:set of outputs
模板部分
Amazon SAM模板可以包含几个主要部分。只有Transform和Resources部分是必填的。
您可以按任意顺序包含模板部分。但是,在您构建模板时,使用以下列表中显示的逻辑顺序可能会很有用。这是因为一个部分中的值可能是指前一节中的值。
- 转换(必填)
-
适用于Amazon SAM模板,您必须将此部分的值包含为
AWS::Serverless-2016-10-31.其他转换是可选的。有关转换的更多信息,请参阅转换中的Amazon CloudFormation用户指南.
- 全局变量(可选)
-
所有无服务器函数、API 和简单表都通用的属性。所有
AWS::Serverless::Function、AWS::Serverless::Api, 和AWS::Serverless::SimpleTable资源继承在Globals部分。本节对是唯一的Amazon SAM. 中没有相应的部分Amazon CloudFormation模板。
- Description (可选)
-
一个描述模板的文本字符串。
本节直接对应于
Description部分Amazon CloudFormation模板。 - 元数据(可选)
-
提供有关模板的其他信息的对象。
本节直接对应于
Metadata部分Amazon CloudFormation模板。 - Parameters(可选)
-
要在运行时 (创建或更新堆栈时) 传递到模板的值。您可引用模板的
Resources和Outputs部分中的参数。使用
--parameter-overrides的参数sam deploy命令和配置文件中的条目-优先于Amazon SAM模板文件。有关的更多信息sam deploy命令,请参阅sam deploy中的Amazon SAMCLI 命令参考。有关配置文件的更多信息,请参阅Amazon SAM CLI 配置文件。 - Mappings(可选)
-
可用来指定条件参数值的密钥和关键值的映射,与查找表类似。您可以使用
Fn::FindInMap中的内部函数Resources和Outputs部分。本节直接对应于
Mappings部分Amazon CloudFormation模板。 - 条件(可选)
-
用于控制是否创建某些资源或者是否在堆栈创建或更新过程中为某些资源属性分配值的条件。例如,您可以根据堆栈是用于生产环境还是用于测试环境来按照条件创建资源。
本节直接对应于
Conditions部分Amazon CloudFormation模板。 - Resources(必需)
-
堆栈资源及其属性,如 Amazon Elastic Compute Cloud (Amazon EC2) 实例或 Amazon Simple Storage Service (Amazon S3) 存储桶。您可引用模板的
Resources和Outputs部分中的资源。此部分类似于
Resources部分Amazon CloudFormation模板。InAmazon SAM模板,此部分可以包含Amazon SAM除此之外的资源Amazon CloudFormation资源的费用。 - Outputs(可选)
-
每当您查看堆栈的属性时返回的值。例如,您可以声明 S3 存储桶名称的输出,然后调用
aws cloudformation describe-stacksAmazon Command Line Interface(Amazon CLI) 命令来查看该名称。本节直接对应于
Outputs部分Amazon CloudFormation模板。
后续步骤
下载和部署包含Amazon SAM模板文件,请参阅Amazon SAM 入门然后按照中的说明操作教程:部署 Hello World 应用程序.