支持的资源属性 AWS SAM - AWS Serverless Application Model

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

支持的资源属性 AWS SAM

资源属性是您可以添加的属 AWS SAM 性和用于控制其他行为和关系的 AWS CloudFormation 资源。有关资源属性的更多信息,请参阅《AWS CloudFormation 用户指南》中的资源属性引用

AWS SAM 支持由定义的资源属性的子集 AWS CloudFormation。在支持的资源属性中,有些属性仅复制到相应 AWS CloudFormation 资源的基础生成的 AWS SAM 资源中,有些则复制到由相应 AWS CloudFormation 资源生成的所有生成的 AWS SAM 资源中。有关从相应 AWS CloudFormation 资源生成的 AWS SAM 资源的更多信息,请参阅生成的 AWS CloudFormation 资源用于 AWS SAM

下表汇总了按 AWS SAM以下所异常列内容提供的资源属性支持。

资源属性 目标生成的资源

DependsOn

元数据 1, 2

仅限基础 AWS CloudFormation 生成的资源。有关 AWS SAM 资源和基础 AWS CloudFormation 资源之间映射的信息,请参阅生成的 AWS CloudFormation 资源场景

Condition

DeletionPolicy

UpdateReplacePolicy

所有从相应 AWS CloudFormation 资源生成的 AWS SAM 资源。有关生成 AWS CloudFormation 资源的场景的信息,请参阅生成的 AWS CloudFormation 资源场景

备注:

  1. 有关使用 Metadata 资源属性和 AWS::Serverless::Function 资源类型的更多信息,请参阅 在中使用自定义运行时构建 Lambda 函数 AWS SAM

  2. 有关使用 Metadata 资源属性和 AWS::Serverless::LayerVersion 资源类型的更多信息,请参阅 在中构建 Lambda 图层 AWS SAM

异常

前面描述的资源属性规则有许多例外情况:

  • 对于AWS::Lambda::LayerVersion, AWS SAM仅限自定义字段DeletionPolicy为生成的 AWS CloudFormation 资源RetentionPolicy设置。它的优先级高于 DeletionPolicy 其本身。如果两者均未设置,则默认将 DeletionPolicy 设置为 Retain

  • 对于 AWS::Lambda::Version,如果未指定 DeletionPolicy,则默认为 Retain

  • 对于为无服务器函数指定的场DeploymentPreferences景,资源属性不会复制到以下生成的 AWS CloudFormation 资源中:

    • AWS::CodeDeploy::Application

    • AWS::CodeDeploy::DeploymentGroup

    • 为此场景创建的名为 CodeDeployServiceRoleAWS::IAM::Role

  • 如果您的 AWS SAM 模板包含多个带有隐式创建的 API 事件源的函数,则这些函数将共享生成的AWS::ApiGateway::RestApi资源。在这种情况下,如果函数具有不同的资源属性,则对于生成的AWS::ApiGateway::RestApi资源,根据以下优先级列表 AWS SAM 复制资源属性:

    • UpdateReplacePolicy:

      1. Retain

      2. Snapshot

      3. Delete

    • DeletionPolicy:

      1. Retain

      2. Delete