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

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

AWS::Serverless::LayerVersion

创建包含 Lambda 函数所需的库或运行时代码的 Lambda LayerVersion。

AWS::Serverless::LayerVersion 资源还支持 Metadata 资源属性,因此您可以指示 Amazon SAM 构建应用程序中包含的层。有关构建层的更多信息,请参阅 在中构建 Lambda 图层 Amazon SAM

重要说明:自从 Amazon CloudFormation 中发布了 UpdateReplacePolicy 资源属性以来,AWS::Lambda::LayerVersion(推荐)提供着与 AWS::Serverless::LayerVersion 相同的优势。

转换无服务器 LayerVersion 时,SAM 还会转换资源的逻辑 ID,这样 CloudFormation 在资源更新时就不会自动删除旧的 LayerVersion。

注意

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

语法

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

YAML

Type: AWS::Serverless::LayerVersion Properties: CompatibleArchitectures: List CompatibleRuntimes: List ContentUri: String | LayerContent Description: String LayerName: String LicenseInfo: String PublishLambdaVersion: Boolean RetentionPolicy: String

属性

CompatibleArchitectures

为层版本指定支持的指令集架构。

有关此属性更多信息,请参阅《Amazon Lambda 开发人员指南》中的 Lambda 指令集架构

有效值x86_64arm64

类型:列表

必需:否

默认值x86_64

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::Lambda::LayerVersion 资源的 CompatibleArchitectures 属性。

CompatibleRuntimes

与此 LayerVersion 兼容的运行时系统列表。

类型:列表

必需:否

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::Lambda::LayerVersion 资源的 CompatibleRuntimes 属性。

ContentUri

Amazon S3 Uri、本地文件夹路径或层代码的 LayerContent 对象。

如果提供了 Amazon S3 Uri 或 LayerContent 对象,则引用的 Amazon S3 对象必须为包含 Lambda 层内容的有效 ZIP 存档。

如果提供了本地文件夹的路径,则为使内容正确转换,模板必须经过包括 sam build 以及后续的 sam deploysam package 的工作流程。默认情况下,相对路径是根据 Amazon SAM 模板的位置进行解析的。

类型:字符串 | LayerContent

必需:是

Amazon CloudFormation 兼容性:此属性类似于 AWS::Lambda::LayerVersion 资源的 Content 属性。嵌套的 Amazon S3 属性的命名有所不同。

Description

该层的描述。

类型:字符串

必需:否

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::Lambda::LayerVersion 资源的 Description 属性。

LayerName

层的名称或 Amazon 资源名称(ARN)。

类型:字符串

必需:否

默认:资源逻辑 ID

Amazon CloudFormation 兼容性:此属性类似于 AWS::Lambda::LayerVersion 资源的 LayerName 属性。如果您没有指定名称,则将使用资源的逻辑 ID 作为名称。

LicenseInfo

有关此 LayerVersion 的许可证的信息。

类型:字符串

必需:否

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::Lambda::LayerVersion 资源的 LicenseInfo 属性。

PublishLambdaVersion

一个选择性属性,当引用的 LayerVersion 资源发生变更时,会自动创建新的 Lambda 版本。当在关联的 Lambda 函数中启用 AutoPublishAliasAutoPublishAliasAllProperties 时,每次对 LayerVersion 资源的修改都会触发新的 Lambda 版本创建。

类型:布尔值

必需:否

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

RetentionPolicy

此属性指定当您删除资源时,是保留还是删除 LayerVersion 的旧版本。如果您在更新或替换资源时需要保留 LayerVersion 的旧版本,则必须启用 UpdateReplacePolicy 属性。有关执行此操作的信息,请参阅《Amazon CloudFormation 用户指南》中的 UpdateReplacePolicy 属性

有效值RetainDelete

类型:字符串

必需:否

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

附加说明:指定 Retain 时,Amazon SAM 会向转换后的 AWS::Lambda::LayerVersion 资源添加 DeletionPolicy: RetainAmazon SAM 支持的资源属性

返回值

Ref

当向 Ref 内置函数提供此资源的逻辑 ID 时,它将返回底层 Lambda LayerVersion 的资源 ARN。

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

示例

LayerVersionExample

LayerVersion 示例

YAML

Properties: LayerName: MyLayer Description: Layer description ContentUri: 's3://sam-s3-demo-bucket/my-layer.zip' CompatibleRuntimes: - nodejs10.x - nodejs12.x LicenseInfo: 'Available under the MIT-0 license.' RetentionPolicy: Retain