UpdatePolicy 屬性 - AWS CloudFormation

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

UpdatePolicy 屬性

使用UpdatePolicy屬性來指定如何 AWS CloudFormation 在堆疊更新作業期間處理特定資源的更新。

概觀

透過使用UpdatePolicy屬性,您可以控制下列資源的更新方式,如下所述:

  • AWS::AppStream::Fleet— CloudFormation 可以停止並啟動叢集,這會導致叢集的執行個體被取代。如此一來,所有執行個體都會在堆疊更新後立即套用最新的變更。

  • AWS::AutoScaling::AutoScalingGroup— 透過 Auto Scaling 群組,您可以使用一或多個更新政策來控制 CloudFormation 處理特定更新的方式。這些政策包括:

    • AutoScalingReplacingUpdateAutoScalingReplacingUpdateAutoScalingRollingUpdate — CloudFormation 可以使用政策取代 Auto Scaling 群組及其執行個體,也可以只將執行個體取代為AutoScalingRollingUpdate政策。當您進行下列一或多項變更時,就會發生這些取代作業:

      • 變更 Auto Scaling 群組的 AWS::AutoScaling::LaunchConfiguration

      • 變更 Auto Scaling 群組的 VPCZoneIdentifier 屬性。

      • 變更 Auto Scaling 群組的 LaunchTemplate 屬性。

      • 更新 Auto Scaling 群組,其中包含不符合目前 LaunchConfiguration 的執行個體。

      如果已指定 AutoScalingReplacingUpdateAutoScalingRollingUpdate 政策屬性,請將 WillReplace 屬性設定為 true,為 AutoScalingReplacingUpdate 提供優先順序。

    • AutoScalingScheduledAction原則 — 當您更新包含 Auto Scaling 群組的堆疊,其中包含排程動作在特定時間調整群組時,此原則適用。 CloudFormation 除非已在堆疊範本中明確變更群組,否則無法修改群組的最小大小、最大大小或所需容量。此原則有助於防止任何可能干擾排程資源調整活動的非預期更新。

  • AWS::ElastiCache::ReplicationGroup— CloudFormation 可以透過新增或移除碎片來修改複寫群組的碎片,而不是取代整個資源。

  • AWS::OpenSearchService::DomainAWS::Elasticsearch::Domain(舊版) — CloudFormation 可以將 OpenSearch 服務網域升級為新版本的 OpenSearch 或 Elasticsearch,而不會取代整個資源。

  • AWS::Lambda::Alias— CloudFormation 可以在別名上的版本變更時執行 CodeDeploy 部署。

以下各節說明每個資源類型支援之UpdatePolicy屬性的語法和特性。

AppStream 2.0 更新政策

若要在更新之前停止 AppStream 2.0 叢集並在更新後重新啟動,請使用 AppStream 2.0 更新原則。

語法

JSON

{ "UpdatePolicy": { "StopBeforeUpdate": { "Type": "Boolean" }, "StartAfterUpdate": { "Type": "Boolean" } } }

YAML

UpdatePolicy: StopBeforeUpdate: Type: Boolean StartAfterUpdate: Type: Boolean
StopBeforeUpdate

在更新前停止指定機群。

必要:否

StartAfterUpdate

在更新後啟動指定機群。

必要:否

AutoScalingReplacingUpdate政策

若要取代 Auto Scaling 群組及其包含的執行個體,請使用AutoScalingReplacingUpdate原則。

在嘗試更新之前,請確保您有足夠的 Amazon EC2 容量供舊的和新的 Auto Scaling 群組使用。

語法

JSON

"UpdatePolicy" : { "AutoScalingReplacingUpdate" : { "WillReplace" : Boolean } }

YAML

UpdatePolicy: AutoScalingReplacingUpdate: WillReplace: Boolean

屬性

WillReplace

指定是否要在更新期間替換 Auto Scaling 群組及其所包含的執行個體。取代期間, CloudFormation 會保留舊群組,直到完成建立新群組為止。如果更新失敗, CloudFormation 可以復原至舊的「Auto Scaling」群組,並刪除新的「Auto Scaling」群組。

CloudFormation 建立新群組時,不會分離或貼附任何例證。成功建立新的「Auto Scaling」群組後,請在清理過程中 CloudFormation 刪除舊的「Auto Scaling」群組。

當您設定 WillReplace 參數時,請記住指定相符的 CreationPolicy。如果執行個體數目下限 (由MinSuccessfulInstancesPercent屬性指定) 未表示Timeout期間內 (在原則中指定) 成功,CreationPolicy則取代更新會失敗,並回 CloudFormation 復至舊的 Auto Scaling 群組。

類型:布林值

必要:否

AutoScalingRollingUpdate政策

若要對 Auto Scaling 群組中的執行個體執行滾動式更新,而不是等待擴展活動逐漸以較新的執行個體取代較舊的執行個體,請使用AutoScalingRollingUpdate政策。此原則可讓您彈性指定是批次 CloudFormation 取代 Auto Scaling 群組中的執行個體,還是一次取代全部執行個體,而不取代整個資源。

使用AutoScalingRollingUpdate政策時要考慮的事項:

  • 回 CloudFormation 復更新時,它會使用目前堆疊更新之前在範本中指定的UpdatePolicy組態。例如,您將中的MaxBatchSize從 1 變更為 10UpdatePolicy,執行堆疊更新,且該更新會失敗。 CloudFormation 將使用 1 作為最大批次大小回滾時,而不是 10。若要避免發生這種情況,請UpdatePolicy在對 Auto Scaling 群組進行任何可能起始滾動更新的更新之前,在個別更新中進行變更。

  • CloudFormation 建議指定SuspendProcesses屬性以暫時暫停可能會干擾滾EC2動更新並導致其失敗的 Amazon Auto Scaling 程序。如需詳細資訊,請參閱更新 CloudFormation 堆疊時如何更新 Auto Scaling 群組?

  • CloudFormation 支援在啟動或終止執行個體時使用 Amazon EC2 Auto Scaling 生命週期掛鉤。這讓您有時間在執行個體移至下一個狀態之前對執行個體執行自訂動作。若要確保新執行個體達到InService狀態,請在自訂動作完成時完成生命週期掛接並提供CONTINUE結果。根據預設,如果沒有收到任何回應,且生命週期掛接逾時,執行個體啟動將被視為不成功並放棄。如果沒有執行個體達到這個InService狀態,滾動更新最終會失敗。

  • Amazon EC2 Auto Scaling 功能 (例如執行個體維護政策、終止政策和擴充保護) 不適用於 CloudFormation 滾動式更新。相應地規劃您的滾動更新。

語法

JSON

"UpdatePolicy" : { "AutoScalingRollingUpdate" : { "MaxBatchSize" : Integer, "MinActiveInstancesPercent" : Integer, "MinInstancesInService" : Integer, "MinSuccessfulInstancesPercent" : Integer, "PauseTime" : String, "SuspendProcesses" : [ List of processes ], "WaitOnResourceSignals" : Boolean } }

屬性

MaxBatchSize

指定可同時取代的最大執行個體數目。

預設1

上限100

類型:整數

必要:否

MinActiveInstancesPercent

指定 Auto Scaling 群組中的執行個體百分比,該執行個體必須在循環更新期間處於相對於該群組所需容量的InService狀態,才能成功執行更新。您可以指定 0 到 100 之間的值。 CloudFormation 四捨五入至最接近的百分之十。例如,如果您以至少 50 個InService百分比更新五個執行個體,則至少必須有三個執行個體處於該InService狀態。如果執行個體未在 1 小時的固定時間內轉換至InService狀態,則 CloudFormation 假設執行個體未更新。

AWS::AutoScaling::AutoScalingGroup資源的DesiredCapacity屬性設定高於該 Auto Scaling 群組目前所需容量時,MinActiveInstancesPercent在您的設定也UpdatePolicy會影響啟動的執行個體。

預設100

類型:整數

必要:否

MinInstancesInService

指定在更新舊執行個體時,Auto Scaling 群組內必須使用的執行個 CloudFormation 體數目下限。此值必須小於 MaxSize的「Auto Scaling」群組。

警告

我們建議您將MinInstancesInService屬性值設定為至少 MinSize的「Auto Scaling」群組。如此可避免因為 0 個執行個體為客戶流量提供服務而導致的滾動式更新期間可能

預設0

類型:整數

必要:否

MinSuccessfulInstancesPercent

指定 Auto Scaling 滾動更新中必須有多少百分比的執行個體成功發出訊號才能成功更新。您可以指定 0 到 100 之間的值。 CloudFormation四捨五入至最接近的百分之十。例如,如果更新 5 個執行個體,最低成功百分比為 50,則必須有 3 個執行個體成功發出訊號。如果執行個體未在PauseTime屬性中指定的時間內傳送訊號,則 CloudFormation 假設執行個體未更新。

建議您將MinSuccessfulInstancesPercent屬性值設定為大於 0 的值。當MinSuccessfulInstancesPercent屬性設定為 0 時,會 CloudFormation 等待 0% 的容量執行個體處於某個InService狀態。 MinSuccessfulInstancesPercent在考慮 Auto Scaling 群組狀態之前,立即傳回,以移UPDATE_COMPLETE至堆疊範本中定義的後續資源。如果在 CloudFormation 範本中定義了其他「Auto Scaling」群組,它們將會同時更新。當一次部署所有 Auto Scaling 群組且 0% 的容量執行個體處於 InService 狀態時,您將會遇到可用性問題,因為沒有執行個體提供客戶流量。

預設100

類型:整數

必要:否

PauseTime

對批次執行個體進行變更後 CloudFormation 暫停的時間,讓這些執行個體有時間啟動軟體應用程式。

PauseTimeISO8601 持續時間格式中指定(格式PT#H#M#S,其中每個 # 分別為小時、分鐘和秒數)。PauseTime 上限為 1 小時 (PT1H)。

警告

當設定WaitOnResourceSignals為時true,會PauseTime充當逾時值。它決定在滾動式更新期間要取代的執行個體,以及透過增加新執行個體的方式, CloudFormation 等待接收所需數量的有效訊號的最長時間。DesiredCapacityAWS::AutoScaling::AutoScalingGroup資源的屬性。如果PauseTime在 CloudFormation 收到預期訊號之前超過,則更新會失敗。為了獲得最佳結果,請指定提供足夠時間讓應用程式啟動的時間範圍。如果需要復原更新,較短的 PauseTime 可能會導致復原失敗。

預設值PT5M(5 分鐘),當WaitOnResourceSignals屬性設定為時true。否則,不會設定預設值。

類型:字串

必要:否

SuspendProcesses

指定 Auto Scaling 程序在堆疊更新期間暫停。暫停程序可避免 Auto Scaling 影響堆疊更新。例如,您可以暫停警示,這樣 Amazon EC2 Auto Scaling 就不會啟動與警示相關聯的擴展政策。如需有效值,請參閱 Amazon EC2 Auto Scaling 使用者指南的程序類型

預設:未指定

類型:Auto Scaling 程序清單

必要:否

WaitOnResourceSignals

指定是否在繼續更新之前 CloudFormation 等待來自新執行個體的成功訊號。 CloudFormation 等待成功信號的指定PauseTime持續時間。

若要發出 Auto Scaling 群組的訊號,請使用 cfn-signal 輔助程式指令碼或。SignalResourceAPI對於與 Elastic Load Balancing 相關聯的 Auto Scaling 群組,請考慮新增健康狀態檢查,以確保執行個體運作狀態良好,然後再使用 cfn-init 輔助程式指令碼傳送成功。如需範例,請參閱我們GitHub 儲存庫中 Amazon EC2 Auto Scaling 滾動更新範例範本中的verify_instance_health命令。

預設false

類型:布林值

必要:有條件限制。如果您指定MinSuccessfulInstancesPercent屬性,則必須將WaitOnResourceSignals屬性設定為true

AutoScalingScheduledAction政策

若要指定當AWS::AutoScaling::AutoScalingGroup資源具有關聯的排程動作時 MinSizeMaxSize,如何 CloudFormation 處理、和DesiredCapacity內容的更新,請使用AutoScalingScheduledAction策略。

透過排程動作,可隨時改變 Auto Scaling 群組的群組大小屬性。當您使用 Auto Scaling 群組和排程動作更新堆疊時,一 CloudFormation 律會將 Auto Scaling 群組的群組大小屬性值設定為範本AWS::AutoScaling::AutoScalingGroup資源中定義的值,即使排程動作生效也一樣。

如果您不 CloudFormation 想在排程動作生效時變更任何群組大小內容值,請使用AutoScalingScheduledAction更新原則並IgnoreUnmodifiedGroupSizeProperties將設定為true以防 CloudFormation 止變更MinSize、或DesiredCapacity屬性MaxSize,除非您已在範本中修改這些值。

語法

JSON

"UpdatePolicy" : { "AutoScalingScheduledAction" : { "IgnoreUnmodifiedGroupSizeProperties" : Boolean } }

屬性

IgnoreUnmodifiedGroupSizeProperties

如果true,則 CloudFormation 忽略堆疊更新期間目前 Auto Scaling 群組與範本AWS::AutoScaling::AutoScalingGroup資源中描述的 Auto Scaling 群組之間的群組大小屬性差異。如果您修改範本中的任何群組大小屬性值,請 CloudFormation 使用修改後的值並更新 Auto Scaling 群組。

預設false

類型:布林值

必要:否

UseOnlineResharding政策

若要透過新增或移除碎片來修改複寫群組的碎片,而不是取代整個AWS::ElastiCache: ReplicationGroup 資源,請使用UseOnlineResharding更新原則。

如果設定UseOnlineReshardingtrue,您可以更新AWS::ElastiCache::ReplicationGroup資源的NumNodeGroupsNodeGroupConfiguration屬性,並且不 CloudFormation 會中斷地更新這些屬性。當UseOnlineResharding設定為false或未指定時,更新NumNodeGroupsNodeGroupConfiguration屬性會 CloudFormation 取代整個AWS::ElastiCache::ReplicationGroup資源。

UseOnlineResharding 更新政策沒有屬性。

UseOnlineResharding 更新政策設定為 true 時的一些考量事項:

  • 我們強烈建議您將 NumNodeGroupsNodeGroupConfiguration 屬性作為特定堆疊更新操作中唯一的更新來執行更新。

    更新複寫群組的節點群組組態是需要耗費大量資源的操作。如果堆疊更新失敗,則 CloudFormation 不會復原對複寫群組之節點群組組態的變更。不過, CloudFormation 會復原任何其他在失敗更新作業中變更的屬性。

  • 任何節點群組更新都需要識別所有節點群組。

    如果您指定內NodeGroupConfiguration容,您還必須 NodeGroupId 為每個節點群組組態指定,以 CloudFormation 便更新節點數目而不會中斷。

    建立複寫群組時,如果未為每個節點群組指定 ID,則會 ElastiCache 自動為每個節點群組產生 ID。若要在不中斷的情況下更新複寫群組,請使用 ElastiCache 控制台 (https://console.aws.amazon.com/elasticache/) 或DescribeReplicationGroups擷IDs取複製群組中所有節點群組的。然後,在嘗試新增或移除碎片之前,請為堆疊範本中的每個節點群組指定 ID。

    注意

    最佳實務是當您在堆疊範本中建立複寫群組時,就為您指定的每個節點群組包含 ID。

    此外,更新節點數量而不被中斷,也會需要您準確地為每個 NodeGroupConfiguration 指定 PrimaryAvailabilityZoneReplicaAvailabilityZonesReplicaCount 屬性。同樣地,您可以使用 ElastiCache console (https://console.aws.amazon.com/elasticache/) 或擷DescribeReplicationGroups取每個節點群組的實際值,並將它們與堆疊範本中的值進行比較。您可以進行個別堆疊更新來更新節點群組的屬性值,或將更新作為變更節點群組數量相同堆疊更新的一部分。

    當您使用UseOnlineResharding更新原則在不中斷的情況下更新節點群組數目時,會在指定的插槽數目之間 ElastiCache 平均分配金鑰空間。此設定之後將無法更新。因此,以這種方式更新節點群組後,您應該移除在堆疊範本中 NodeGroupConfiguration 為每個 Slots 屬性指定的值,因為其不再反映每個節點群組的實際值。

  • 實際節點群組移除結果可能有所差異。

    當您指定的NumNodeGroups值小於目前節點群組數目時,會指 CloudFormation 示視需 ElastiCache 要移除盡可能多的節點群組,以達到指定的節點數目。但是, ElastiCache 可能並不總是能夠移除所需數量的節點群組。如果 ElastiCache 無法刪除所需數量的節點組,則 CloudFormation 生成一個堆棧事件,提醒您這一點。在無法移除任何節點群組的情況下,資 CloudFormation 源更新會失敗。 ElastiCache

如需修改複寫群組的詳細資訊,請參閱 Amazon ElastiCache API 參考ModifyReplicationGroupShardConfiguration中的。

語法

JSON

"UpdatePolicy" : { "UseOnlineResharding" : Boolean }

YAML

UpdatePolicy: UseOnlineResharding: Boolean

EnableVersionUpgrade政策

若要將 OpenSearch 服務網域升級為新版本的 OpenSearch 或 Elasticsearch,而不是取代整個::: 網域或AWS:OpenSearchService: 彈性搜尋:AWS: 網域資源,請使用更新原則。EnableVersionUpgrade

如果設定EnableVersionUpgradetrue,您可以更新AWS::OpenSearchService::Domain資源的EngineVersion屬性 (或舊資AWS::Elasticsearch::Domain源的ElasticsearchVersion屬性),並且不 CloudFormation 會中斷地更新該內容。當EnableVersionUpgrade設定為false或未指定時,更新EngineVersion或內ElasticsearchVersion容會導致 CloudFormation 取代整個AWS::OpenSearchService::Domain/AWS::Elasticsearch::Domain資源。

EnableVersionUpgrade 更新政策沒有屬性。

如需升級 OpenSearch 服務網域的詳細資訊,請參閱 Amazon OpenSearch 服務開發人員指南UpgradeDomain中的。

語法

JSON

"UpdatePolicy" : { "EnableVersionUpgrade" : Boolean }

YAML

UpdatePolicy: EnableVersionUpgrade: Boolean

CodeDeployLambdaAliasUpdate 政策

若要在AWS::Lambda::Alias資源上的版本變更時執行 CodeDeploy 部署,請使用CodeDeployLambdaAliasUpdate更新原則。

語法

JSON

"UpdatePolicy" : { "CodeDeployLambdaAliasUpdate" : { "AfterAllowTrafficHook" : String, "ApplicationName" : String, "BeforeAllowTrafficHook" : String, "DeploymentGroupName" : String } }

屬性

AfterAllowTrafficHook

在流量路由完成後,要執行的 Lambda 函數名稱。

必要:否

類型:字串

ApplicationName

CodeDeploy 應用程式的名稱。

必要:是

類型:字串

BeforeAllowTrafficHook

在流量路由開始前,要執行的 Lambda 函數名稱。

必要:否

類型:字串

DeploymentGroupName

CodeDeploy 部署群組的名稱。這是設置流量轉換政策的位置。

必要:是

類型:字串

如需為 AWS::Lambda::Alias 資源指定 UpdatePolicy 屬性的範例,請參閱 Lambda 別名更新政策

範例

以下範例說明如何將更新政策新增至 Auto Scaling 群組,以及如何在更新中繼資料時保持可用性。

UpdatePolicy 新增至 Auto Scaling 群組

以下範例說明如何新增更新政策。在更新期間,Auto Scaling 群組將以兩個為一批更新執行個體,並至少保持一個服務中的執行個體。由於已設定 WaitOnResourceSignals 旗標,Auto Scaling 群組將等待在群組中新增的新執行個體。新執行個體必須發出訊號至 Auto Scaling 群組,才能更新下一個批次的執行個體。

JSON

"ASG" : { "Type":"AWS::AutoScaling::AutoScalingGroup", "Properties":{ "VPCZoneIdentifier":[ "subnetIdAz1", "subnetIdAz2", "subnetIdAz3" ], "LaunchTemplate":{ "LaunchTemplateId":{ "Ref":"logicalName" }, "Version":{ "Fn::GetAtt":[ "logicalName", "LatestVersionNumber" ] } }, "MaxSize":"4", "MinSize":"1" }, "UpdatePolicy":{ "AutoScalingScheduledAction":{ "IgnoreUnmodifiedGroupSizeProperties":"true" }, "AutoScalingRollingUpdate":{ "MinInstancesInService":"1", "MaxBatchSize":"2", "WaitOnResourceSignals":"true", "PauseTime":"PT10M", "SuspendProcesses":[ "HealthCheck", "ReplaceUnhealthy", "AZRebalance", "AlarmNotification", "ScheduledActions", "InstanceRefresh" ] } } }

YAML

ASG: Type: 'AWS::AutoScaling::AutoScalingGroup' Properties: VPCZoneIdentifier: - subnetIdAz1 - subnetIdAz2 - subnetIdAz3 LaunchTemplate: LaunchTemplateId: !Ref logicalName Version: !GetAtt logicalName.LatestVersionNumber MaxSize: '4' MinSize: '1' UpdatePolicy: AutoScalingScheduledAction: IgnoreUnmodifiedGroupSizeProperties: 'true' AutoScalingRollingUpdate: MinInstancesInService: '1' MaxBatchSize: '2' WaitOnResourceSignals: 'true' PauseTime: PT10M SuspendProcesses: - HealthCheck - ReplaceUnhealthy - AZRebalance - AlarmNotification - ScheduledActions - InstanceRefresh

AutoScalingReplacingUpdate 政策

以下範例宣告一項政策,強制在更新期間替換關聯的 Auto Scaling 群組。為了成功更新,必須在 MinSuccessfulPercentParameter 期間發出成功訊號的執行個體百分比 (以 Timeout 參數指定)。

JSON

"UpdatePolicy" : { "AutoScalingReplacingUpdate" : { "WillReplace" : true } }, "CreationPolicy" : { "ResourceSignal" : { "Count" : { "Ref" : "ResourceSignalsOnCreate"}, "Timeout" : "PT10M" }, "AutoScalingCreationPolicy" : { "MinSuccessfulInstancesPercent" : { "Ref" : "MinSuccessfulPercentParameter" } } }

YAML

UpdatePolicy: AutoScalingReplacingUpdate: WillReplace: true CreationPolicy: ResourceSignal: Count: !Ref 'ResourceSignalsOnCreate' Timeout: PT10M AutoScalingCreationPolicy: MinSuccessfulInstancesPercent: !Ref 'MinSuccessfulPercentParameter'

在更新 cfn-init 協助程式指令碼的中繼資料時維持可用性

在執行個體上安裝軟體應用程式時,您可以使用中AWS::CloudFormation::Init繼資料金鑰和cfn-init輔助程式指令碼來啟動 Auto Scaling 群組中的執行個體。 CloudFormation 安裝套件、執行命令,以及執行中繼資料中描述的其他啟動載入動作。

當您僅更新中繼資料時 (例如,將套件更新為另一個版本時),可使用 cfn-hup 協助程式以偵測和套用更新。但是,cfn-hup 協助程式獨立執行於每個執行個體。如果協助程式剛好在所有執行個體上同時執行,您的應用程式或服務在更新期間可能會無法使用。為了保證可用性,您可以強制進行滾動更新,以便一次 CloudFormation 更新一個批次的執行個體。

重要

強制滾動更新需 CloudFormation 要創建一個新實例,然後刪除舊實例。存放在舊執行個體的任何資訊都會遺失。

若要強制滾動更新,請變更啟動組態資源的邏輯 ID,然後更新堆疊以及指向原始邏輯 ID 的任何參照 (例如相關聯的 Auto Scaling 群組)。 CloudFormation 觸發 Auto Scaling 群組的滾動式更新,取代所有執行個體。

原始範本

"LaunchConfig": { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Metadata" : { "Comment" : "Install a simple PHP application", "AWS::CloudFormation::Init" : { ... } } }

更新的邏輯 ID

"LaunchConfigUpdateRubygemsPkg": { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Metadata" : { "Comment" : "Install a simple PHP application", "AWS::CloudFormation::Init" : { ... } } }

Lambda 別名更新政策

以下範例指定 UpdatePolicy 資源的 AWS::Lambda::Alias 屬性。部署的所有詳細資訊皆由傳遞至政策的應用程式和部署群組所定義。

JSON

"Alias": { "Type": "AWS::Lambda::Alias", "Properties": { "FunctionName": { "Ref": "LambdaFunction" }, "FunctionVersion": { "Fn::GetAtt": [ "FunctionVersionTwo", "Version" ] }, "Name": "MyAlias" }, "UpdatePolicy": { "CodeDeployLambdaAliasUpdate": { "ApplicationName": { "Ref": "CodeDeployApplication" }, "DeploymentGroupName": { "Ref": "CodeDeployDeploymentGroup" }, "BeforeAllowTrafficHook": { "Ref": "PreHookLambdaFunction" }, "AfterAllowTrafficHook": { "Ref": "PreHookLambdaFunction" } } } }

YAML

Alias: Type: 'AWS::Lambda::Alias' Properties: FunctionName: !Ref LambdaFunction FunctionVersion: !GetAtt FunctionVersionTwo.Version Name: MyAlias UpdatePolicy: CodeDeployLambdaAliasUpdate: ApplicationName: !Ref CodeDeployApplication DeploymentGroupName: !Ref CodeDeployDeploymentGroup BeforeAllowTrafficHook: !Ref PreHookLambdaFunction AfterAllowTrafficHook: !Ref PreHookLambdaFunction