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 SAM

语法

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

YAML

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

Properties

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/sam-s3-demo-bucket/template.yaml