

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

# 支持的资源属性 AWS SAM
<a name="sam-specification-resource-attributes"></a>

资源属性是您可以添加的属 AWS SAM 性和用于控制其他行为和关系的 CloudFormation 资源。有关资源属性的更多信息，请参阅*《AWS CloudFormation 用户指南》*中的[资源属性引用](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-product-attribute-reference.html)。

AWS SAM 支持由定义的资源属性的子集 CloudFormation。在支持的资源属性中，有些属性仅复制到相应 CloudFormation 资源的基础生成的 AWS SAM 资源中，有些则复制到由相应 CloudFormation 资源生成的所有生成的 AWS SAM 资源中。有关从相应 CloudFormation 资源生成的 AWS SAM 资源的更多信息，请参阅[生成的 CloudFormation 资源用于 AWS SAM](sam-specification-generated-resources.md)。

下表汇总了按 AWS SAM以下所[异常](#sam-specification-resource-attributes-exceptions)列内容提供的资源属性支持。


| 资源属性 | 目标生成的资源 | 
| --- | --- | 
|  ** [DependsOn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) ** **[元数据](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html) **1, 2  |  仅限基础 CloudFormation 生成的资源。有关 AWS SAM 资源和基础 CloudFormation 资源之间映射的信息，请参阅[生成的 CloudFormation 资源场景](sam-specification-generated-resources.md#sam-specification-generated-resources-scenarios)。  | 
| ** [Condition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/conditions-section-structure.html) ** ** [DeletionPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html) ** ** [UpdateReplacePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html) **  |  所有从相应 CloudFormation 资源生成的 AWS SAM 资源。有关生成 CloudFormation 资源的场景的信息，请参阅[生成的 CloudFormation 资源场景](sam-specification-generated-resources.md#sam-specification-generated-resources-scenarios)。  | 

**备注**：

1. 有关使用 `Metadata` 资源属性和 `AWS::Serverless::Function` 资源类型的更多信息，请参阅 [在中使用自定义运行时构建 Lambda 函数 AWS SAM](building-custom-runtimes.md)。

1. 有关使用 `Metadata` 资源属性和 `AWS::Serverless::LayerVersion` 资源类型的更多信息，请参阅 [在中构建 Lambda 图层 AWS SAM](building-layers.md)。

## 异常
<a name="sam-specification-resource-attributes-exceptions"></a>

前面描述的资源属性规则有许多例外情况：
+ 对于`AWS::Lambda::LayerVersion`， AWS SAM仅限自定义字段`DeletionPolicy`为生成的 CloudFormation 资源`RetentionPolicy`设置。它的优先级高于 `DeletionPolicy` 其本身。如果两者均未设置，则默认将 `DeletionPolicy` 设置为 `Retain`。
+ 对于 `AWS::Lambda::Version`，如果未指定 `DeletionPolicy`，则默认为 `Retain`。
+ 对于为无服务器函数指定的场`DeploymentPreferences`景，资源属性不会复制到以下生成的 CloudFormation 资源中：
  + `AWS::CodeDeploy::Application`
  + `AWS::CodeDeploy::DeploymentGroup`
  + 为此场景创建的名为 `CodeDeployServiceRole` 的 `AWS::IAM::Role`
+ 如果您的 AWS SAM 模板包含多个带有隐式创建的 API 事件源的函数，则这些函数将共享生成的`AWS::ApiGateway::RestApi`资源。在这种情况下，如果函数具有不同的资源属性，则对于生成的`AWS::ApiGateway::RestApi`资源，根据以下优先级列表 AWS SAM 复制资源属性：
  + `UpdateReplacePolicy`:

    1. `Retain`

    1. `Snapshot`

    1. `Delete`
  + `DeletionPolicy`:

    1. `Retain`

    1. `Delete`