

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

# AWS::Serverless::LayerVersion
<a name="sam-resource-layerversion"></a>

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

该[AWS::Serverless::LayerVersion](#sam-resource-layerversion)资源还支持 res `Metadata` ource 属性，因此您可以指示 AWS SAM 构建应用程序中包含的层。有关构建层的更多信息，请参阅 [在中构建 Lambda 图层 AWS SAM](building-layers.md)。

**重要说明**：自从中发布[UpdateReplacePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html)资源属性以来 CloudFormation，[https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html)（推荐）提供的好处与相同[AWS::Serverless::LayerVersion](#sam-resource-layerversion)。

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

**注意**  
部署到时 AWS CloudFormation， AWS SAM 会将您的 AWS SAM 资源转换为 CloudFormation 资源。有关更多信息，请参阅 [生成的 CloudFormation 资源用于 AWS SAM](sam-specification-generated-resources.md)。

## 语法
<a name="sam-resource-layerversion-syntax"></a>

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

### YAML
<a name="sam-resource-layerversion-syntax.yaml"></a>

```
Type: AWS::Serverless::LayerVersion
Properties:
  [CompatibleArchitectures](#sam-layerversion-compatiblearchitectures): List
  [CompatibleRuntimes](#sam-layerversion-compatibleruntimes): List
  [ContentUri](#sam-layerversion-contenturi): String | LayerContent
  [Description](#sam-layerversion-description): String
  [LayerName](#sam-layerversion-layername): String
  [LicenseInfo](#sam-layerversion-licenseinfo): String
  [PublishLambdaVersion](#sam-layerversion-PublishLambdaVersion): Boolean
  [RetentionPolicy](#sam-layerversion-retentionpolicy): String
```

## Properties
<a name="sam-resource-layerversion-properties"></a>

 `CompatibleArchitectures`   <a name="sam-layerversion-compatiblearchitectures"></a>
为层版本指定支持的指令集架构。  
有关此属性更多信息，请参阅*《AWS Lambda 开发人员指南》*中的 [Lambda 指令集架构](https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html)。  
*有效值*：`x86_64`、`arm64`  
*类型*：列表  
*必需*：否  
*默认值*：`x86_64`  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::LayerVersion`资源的`[CompatibleArchitectures](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatiblearchitectures)`属性。

 `CompatibleRuntimes`   <a name="sam-layerversion-compatibleruntimes"></a>
与此兼容的运行时列表。 LayerVersion  
*类型*：列表  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::LayerVersion`资源的`[CompatibleRuntimes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatibleruntimes)`属性。

 `ContentUri`   <a name="sam-layerversion-contenturi"></a>
Amazon S3 Uri、本地文件夹的路径或层代码的 LayerContent 对象。  
如果提供了 Amazon S3 URI 或 LayerContent 对象，则引用的亚马逊 S3 对象必须是包含 [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) 层内容的有效 ZIP 档案。  
如果提供了本地文件夹的路径，则为使内容正确转换，模板必须经过包括 [sam build](sam-cli-command-reference-sam-build.md) 以及后续的 [sam deploy](sam-cli-command-reference-sam-deploy.md) 或 [sam package](sam-cli-command-reference-sam-package.md) 的工作流程。默认情况下，相对路径是根据 AWS SAM 模板的位置进行解析的。  
*类型*：字符串 \$1 [LayerContent](sam-property-layerversion-layercontent.md)  
*是否必需*：是  
*CloudFormation 兼容性*：此属性类似于`AWS::Lambda::LayerVersion`资源的`[Content](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-content)`属性。嵌套的 Amazon S3 属性的命名有所不同。

 `Description`   <a name="sam-layerversion-description"></a>
该层的描述。  
*类型*：字符串  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::LayerVersion`资源的`[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-description)`属性。

 `LayerName`   <a name="sam-layerversion-layername"></a>
层的名称或 Amazon 资源名称（ARN）。  
*类型*：字符串  
*必需*：否  
*默认*：资源逻辑 ID  
*CloudFormation 兼容性*：此属性类似于`AWS::Lambda::LayerVersion`资源的`[LayerName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-layername)`属性。如果您没有指定名称，则将使用资源的逻辑 ID 作为名称。

 `LicenseInfo`   <a name="sam-layerversion-licenseinfo"></a>
有关此许可证的信息 LayerVersion。  
*类型*：字符串  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::LayerVersion`资源的`[LicenseInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-licenseinfo)`属性。

 `PublishLambdaVersion`   <a name="sam-layerversion-PublishLambdaVersion"></a>
一个选择性属性，当引用的 `LayerVersion` 资源发生变更时，会自动创建新的 Lambda 版本。当在关联的 Lambda 函数中启用 `AutoPublishAlias` 和 `AutoPublishAliasAllProperties` 时，每次对 `LayerVersion` 资源的修改都会触发新的 Lambda 版本创建。  
*类型*：布尔值  
*必需*：否  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。

 `RetentionPolicy`   <a name="sam-layerversion-retentionpolicy"></a>
此属性指定当您删除资源时，是保留还是删除 `LayerVersion` 的旧版本。如果您在更新或替换资源时需要保留 `LayerVersion` 的旧版本，则必须启用 `UpdateReplacePolicy` 属性。有关执行此操作的信息，请参阅《AWS CloudFormation 用户指南》**中的 [`UpdateReplacePolicy` 属性](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html)。  
*有效值*：`Retain` 或 `Delete`  
*类型*：字符串  
*必需*：否  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。  
*其他说明*：指定后`Retain`， AWS SAM 会`DeletionPolicy: Retain`向转换后的`AWS::Lambda::LayerVersion`资源添加一个[支持的资源属性 AWS SAM](sam-specification-resource-attributes.md)。

## 返回值
<a name="sam-resource-layerversion-return-values"></a>

### Ref
<a name="sam-resource-layerversion-return-values-ref"></a>

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

有关使用 `Ref` 函数的更多信息，请参阅*《AWS CloudFormation 用户指南》*中的 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)。

## 示例
<a name="sam-resource-layerversion--examples"></a>

### LayerVersionExample
<a name="sam-resource-layerversion--examples--layerversionexample"></a>

的示例 LayerVersion

#### YAML
<a name="sam-resource-layerversion--examples--layerversionexample--yaml"></a>

```
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
```

# LayerContent
<a name="sam-property-layerversion-layercontent"></a>

一个 ZIP 存档，其中包含 [Lambda 层](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)的内容。

## 语法
<a name="sam-property-layerversion-layercontent-syntax"></a>

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

### YAML
<a name="sam-property-layerversion-layercontent-syntax.yaml"></a>

```
  [Bucket](#sam-layerversion-layercontent-bucket): String
  [Key](#sam-layerversion-layercontent-key): String
  [Version](#sam-layerversion-layercontent-version): String
```

## Properties
<a name="sam-property-layerversion-layercontent-properties"></a>

 `Bucket`   <a name="sam-layerversion-layercontent-bucket"></a>
层存档的 Amazon S3 桶。  
*类型*：字符串  
*是否必需*：是  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::LayerVersion``Content`数据类型的`[S3Bucket](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3bucket)`属性。

 `Key`   <a name="sam-layerversion-layercontent-key"></a>
层存档的 Amazon S3 密钥。  
*类型*：字符串  
*是否必需*：是  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::LayerVersion``Content`数据类型的`[S3Key](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3key)`属性。

 `Version`   <a name="sam-layerversion-layercontent-version"></a>
对于进行版本控制的对象，则为要使用的层存档对象版本。  
*类型*：字符串  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::LayerVersion``Content`数据类型的`[S3ObjectVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3objectversion)`属性。

## 示例
<a name="sam-property-layerversion-layercontent--examples"></a>

### LayerContent
<a name="sam-property-layerversion-layercontent--examples--layercontent"></a>

层内容示例

#### YAML
<a name="sam-property-layerversion-layercontent--examples--layercontent--yaml"></a>

```
LayerContent:
  Bucket: amzn-s3-demo-bucket-name
  Key: mykey-name
  Version: 121212
```