DeploymentPreference - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

DeploymentPreference

指定配置以启用渐进 Lambda 部署。有关配置渐进 Lambda 部署的更多信息,请参阅逐步部署无服务器应用程序

注意

你必须在你的AutoPublishAlias中指定一个AWS::Serverless::Function才能使用DeploymentPreference对象,否则会导致错误。

语法

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

YAML

Alarms: List Enabled: Boolean Hooks: Hooks PassthroughCondition: Boolean Role: String TriggerConfigurations: List Type: String

属性

Alarms

您希望由部署引发的任何错误触发的 CloudWatch 警报列表。

此属性接受Fn::If内部函数。有关使用的示例模板,请参阅本主题底部的示例部分Fn::If

类型:List

必填项:否

Amazon CloudFormation兼容性:此属性是独一无二的Amazon SAM,没有Amazon CloudFormation等效属性。

Enabled

是否启用此部署首选项。

类型:布尔值

必填项:否

默认值:True

Amazon CloudFormation兼容性:此属性是独一无二的Amazon SAM,没有Amazon CloudFormation等效属性。

Hooks

验证在流量转移之前和之后运行的 Lambda 函数。

类型钩子

必填项:否

Amazon CloudFormation兼容性:此属性是独一无二的Amazon SAM,没有Amazon CloudFormation等效属性。

PassthroughCondition

如果为 True,并且启用了此部署首选项,则函数的条件将传递给生成 CodeDeploy 的资源。通常,应将其设置为 True。否则,即使函数的条件解析为 False,也会创建 CodeDeploy 资源。

类型:布尔值

必填项:否

Amazon CloudFormation兼容性:此属性是独一无二的Amazon SAM,没有Amazon CloudFormation等效属性。

Role

用于流量转移的 CodeDeploy IAM 角色 ARN。如果提供,则不会创建 IAM 角色。

类型:字符串

必填项:否

Amazon CloudFormation兼容性:此属性是独一无二的Amazon SAM,没有Amazon CloudFormation等效属性。

TriggerConfigurations

要与部署组关联的触发器配置列表。用于通知 SNS 主题生命周期事件。

类型:List

必填项:否

Amazon CloudFormation兼容性:此属性直接传递给AWS::CodeDeploy::DeploymentGroup资源的TriggerConfigurations属性。

Type

目前有两种类别的部署类型:Linear 和 Canary 有关可用部署类型的更多信息,请参阅逐步部署无服务器应用程序

类型:字符串

必填项:是

Amazon CloudFormation兼容性:此属性是独一无二的Amazon SAM,没有Amazon CloudFormation等效属性。

示例

DeploymentPreference 带有交通前后挂钩。

包含流量前后挂钩的部署首选项示例。

YAML

DeploymentPreference: Enabled: true Type: Canary10Percent10Minutes Alarms: - Ref: AliasErrorMetricGreaterThanZeroAlarm - Ref: LatestVersionErrorMetricGreaterThanZeroAlarm Hooks: PreTraffic: Ref: PreTrafficLambdaFunction PostTraffic: Ref: PostTrafficLambdaFunction

DeploymentPreference 使用 Fn

Fn::If用于配置警报的部署首选项示例。在本示例中,如果MyCondition是,Alarm1则进行配置trueAlarm2,如果MyCondition是,Alarm5则进行配置false

YAML

DeploymentPreference: Enabled: true Type: Canary10Percent10Minutes Alarms: Fn::If: - MyCondition - - Alarm1 - - Alarm2 - Alarm5