

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

建立 Lambda LayerVersion，其中包含 Lambda 函數所需的程式庫或執行時間程式碼。

[AWS::Serverless::LayerVersion](#sam-resource-layerversion) 資源也支援 `Metadata` 資源屬性，因此您可以指示 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)。

轉換 Serverless LayerVersion 時，SAM 也會轉換資源的邏輯 ID，以便在更新資源時CloudFormation 不會自動刪除舊的 LayerVersions。

**注意**  
當您部署到 時 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>
指定 layer 版本的支援指令集架構。  
如需此屬性的詳細資訊，請參閱《 *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、本機資料夾的路徑，或 layer 程式碼的 LayerContent 物件。  
如果提供 Amazon S3 Uri 或 LayerContent 物件，則參考的 Amazon 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>
此 layer 的描述。  
*類型：*字串  
*必要*：否  
*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>
layer 的名稱或 Amazon Resource Name (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 函數`AutoPublishAliasAllProperties`中使用 `AutoPublishAlias`和 啟用時，將會針對對`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](sam-specification-resource-attributes.md) 的 `DeletionPolicy: Retain` AWS SAM 新增至轉換`AWS::Lambda::LayerVersion`的資源。

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

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

當將此資源的邏輯 ID 提供給`Ref`內部 函數時，它會傳回基礎 Lambda LayerVersion 的資源 ARN。

如需使用 `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>

包含 [Lambda 層](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)內容的 ZIP 封存。

## 語法
<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>

Layer 內容範例

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

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