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

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

AWS::Serverless::Application

将来自 Amazon Serverless Application Repository 或来自 Amazon S3 存储桶的无服务器应用程序嵌入为嵌套应用程序。嵌套应用程序以嵌套 AWS::CloudFormation::Stack 资源形式部署,其中可以包含多个其他资源,包括其他 AWS::Serverless::Application 资源。

注意

部署到 Amazon CloudFormation 时,Amazon SAM 会将您的 Amazon SAM 资源转换为 Amazon CloudFormation 资源。有关更多信息,请参阅 生成的 Amazon CloudFormation 资源

语法

要在您的 Amazon Serverless Application Model (Amazon SAM) 模板中声明此实体,请使用以下语法。

YAML

Type: AWS::Serverless::Application Properties: Location: String | ApplicationLocationObject NotificationARNs: List Parameters: Map Tags: Map TimeoutInMinutes: Integer

属性

Location

嵌套应用程序的模板 URL、文件路径或位置对象。

如果提供了模板 URL,则它必须遵循CloudFormation TemplateUrl 文档中指定的格式并包含有效的 CloudFormation 或 SAM 模板。可以使用 ApplicationLocationObject 指定已发布到 Amazon Serverless Application Repository 的应用程序。

如果提供了本地文件路径,则模板必须经过包含 sam deploysam package 命令的工作流程,才能让应用程序正确转换。

类型:字符串 | ApplicationLocationObject

必需:是

Amazon CloudFormation 兼容性:此属性类似于 AWS::CloudFormation::Stack 资源的 TemplateURL 属性。该 CloudFormation 版本无需使用ApplicationLocationObject即可从中检索应用程序Amazon Serverless Application Repository。

NotificationARNs

向其发送堆栈事件通知的现有 Amazon SNS 主题的列表。

类型:列表

必需:否

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::CloudFormation::Stack 资源的 NotificationARNs 属性。

Parameters

应用程序参数值。

类型:映射

必需:否

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::CloudFormation::Stack 资源的 Parameters 属性。

Tags

指定要添加到此应用程序的标签的映射(字符串到字符串)。键和值只能包含字母数字字符。键的长度可以在 1 到 127 个 Unicode 字符之间,并且不能带有前缀“aws:”。值的长度可以在 1 到 255 个 Unicode 字符之间。

类型:映射

必需:否

Amazon CloudFormation 兼容性:此属性类似于 AWS::CloudFormation::Stack 资源的 Tags 属性。SAM 中的 Tags 属性由 Key: Value CloudFormation 对组成;其中包含标签对象的列表。创建堆栈后,SAM 将自动向该应用程序添加 lambda:createdBy:SAM 标签。此外,如果此应用程序来自 Amazon Serverless Application Repository,则 SAM 还将自动添加两个附加标签 serverlessrepo:applicationId:ApplicationIdserverlessrepo:semanticVersion:SemanticVersion

TimeoutInMinutes

Amazon CloudFormation 等待嵌套堆栈达到 CREATE_COMPLETE 状态的时间长度(以分钟为单位)。默认值为无超时。在 Amazon CloudFormation 检测到嵌套堆栈已达到 CREATE_COMPLETE 状态时,它在父堆栈中将嵌套堆栈资源标记为 CREATE_COMPLETE,然后继续创建父堆栈。如果在嵌套堆栈达到 CREATE_COMPLETE 之前超时期限过期,则 Amazon CloudFormation 将嵌套堆栈标记为失败并回滚嵌套堆栈和父堆栈。

类型:整数

必需:否

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::CloudFormation::Stack 资源的 TimeoutInMinutes 属性。

返回值

Ref

当向 Ref 内置函数提供此资源的逻辑 ID 时,将返回底层 AWS::CloudFormation::Stack 资源的资源名称。

有关使用 Ref 函数的更多信息,请参阅《Amazon CloudFormation 用户指南》中的 Ref

Fn:: GetAtt

Fn::GetAtt 返回一个此类型指定属性的值。以下为可用属性和示例返回值。

有关使用 Fn::GetAtt 的更多信息,请参阅《Amazon CloudFormation 用户指南》中的 Fn::GetAtt

Outputs.ApplicationOutputName

带有名称 ApplicationOutputName 的堆栈输出的值。

示例

SAR 应用程序

使用来自无服务器应用程序存储库的模板的应用程序

YAML

Type: AWS::Serverless::Application Properties: Location: ApplicationId: 'arn:aws:serverlessrepo:us-east-1:012345678901:applications/my-application' SemanticVersion: 1.0.0 Parameters: StringParameter: parameter-value IntegerParameter: 2

正常应用

来自 S3 网址的应用程序

YAML

Type: AWS::Serverless::Application Properties: Location: https://s3.amazonaws.com/demo-bucket/template.yaml