Amazon SAM 支持的资源属性
资源属性是可添加至 Amazon SAM 和 Amazon CloudFormation 资源以控制其他行为和关系的属性。有关资源属性的更多信息,请参阅《Amazon CloudFormation 用户指南》中的资源属性引用。
Amazon SAM 支持由 Amazon CloudFormation 定义的资源属性的子集。在支持的资源属性中,有些仅复制到相应 Amazon SAM 资源的基础生成的 Amazon CloudFormation 资源中,有些则复制到由相应 Amazon SAM 资源产生的所有生成的 Amazon CloudFormation 资源中。有关从相应 Amazon SAM 资源生成的 Amazon CloudFormation 资源的更多信息,请参阅 为 Amazon SAM 生成的 Amazon CloudFormation 资源。
下表汇总了 Amazon SAM 对资源属性的支持,具体视下方所列 异常 而定。
| 资源属性 | 目标生成的资源 |
|---|---|
|
元数据 1, 2 |
仅基础 Amazon CloudFormation 生成的资源。有关 Amazon SAM 资源和基础 Amazon CloudFormation 资源之间映射的信息,请参阅 生成的 Amazon CloudFormation 资源场景。 |
|
所有从相应 Amazon SAM 资源生成的 Amazon CloudFormation 资源。有关生成 Amazon CloudFormation 资源的场景的信息,请参阅 生成的 Amazon CloudFormation 资源场景。 |
注意:
-
有关使用
Metadata资源属性和AWS::Serverless::Function资源类型的更多信息,请参阅 在 Amazon SAM 中构建具有自定义运行时的 Lambda 函数。 -
有关使用
Metadata资源属性和AWS::Serverless::LayerVersion资源类型的更多信息,请参阅 在 Amazon SAM 中构建 Lambda 层。
异常
前面描述的资源属性规则有许多例外情况:
-
对于
AWS::Lambda::LayerVersion,仅适用于 Amazon SAM 的自定义字段RetentionPolicy为生成的 Amazon CloudFormation 资源设置DeletionPolicy。它的优先级高于DeletionPolicy其本身。如果两者均未设置,则默认将DeletionPolicy设置为Retain。 -
对于
AWS::Lambda::Version,如果未指定DeletionPolicy,则默认为Retain。 -
对于为无服务器函数指定
DeploymentPreferences的场景,资源属性不会复制到以下生成的 Amazon CloudFormation 资源中:-
AWS::CodeDeploy::Application -
AWS::CodeDeploy::DeploymentGroup -
为此场景创建的名为
CodeDeployServiceRole的AWS::IAM::Role
-
-
如果您的 Amazon SAM 模板包含多个带有隐式创建的 API 事件源的函数,则这些函数将共享生成的
AWS::ApiGateway::RestApi资源。在这种情况下,如果函数具有不同的资源属性,则对于生成的AWS::ApiGateway::RestApi资源,Amazon SAM 将根据以下优先级列表复制资源属性:-
UpdateReplacePolicy:-
Retain -
Snapshot -
Delete
-
-
DeletionPolicy:-
Retain -
Delete
-
-