UpdatePolicy 屬性 - AWS CloudFormation

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

UpdatePolicy 屬性

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

概觀

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

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

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

    • AutoScalingReplacingUpdateAutoScalingRollingUpdate政策 – CloudFormation 可以將 Auto Scaling 群組及其執行個體取代為 AutoScalingReplacingUpdate政策,或僅將執行個體取代為 AutoScalingRollingUpdate政策。當您進行下列一或多個變更時,會發生這些替代操作:

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

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

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

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

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

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

    • AutoScalingScheduledAction 政策 – 當您更新包含 Auto Scaling 群組的堆疊時,此政策適用於在特定時間擴展群組的排程動作。CloudFormation 無法修改群組的大小下限、大小上限或所需容量,除非已在堆疊範本中明確變更。此政策有助於防止任何可能干擾排程擴展活動的意外更新。

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

  • AWS::OpenSearchService::DomainAWS::Elasticsearch::Domain(舊版) – CloudFormation 可以將 OpenSearch Service 網域升級至新版本的 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組態。例如,您可以在 中將 MaxBatchSize1 變更為 10UpdatePolicy、執行堆疊更新,而該更新會失敗。CloudFormation 在復原時會使用 1 作為最大批次大小,而不是 10。為了避免這種情況,請在對 Auto Scaling 群組進行任何可能啟動滾動更新的更新之前,在個別更新UpdatePolicy中對 進行變更。

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

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

  • Amazon EC2 Auto Scaling 功能,例如執行個體維護政策、終止政策和縮減保護,不適用於 CloudFormation 滾動更新。相應地規劃滾動更新。

  • 如果您使用 AutoScalingRollingUpdate政策並移除置放群組設定,置放群組將從 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 會四捨五入至最接近的 10%。例如,如果您更新 5 個最低InService百分比為 50 的執行個體,則至少必須有三個執行個體處於 InService 狀態。如果執行個體未在 1 小時內轉換為 InService 狀態,CloudFormation 會假設執行個體未更新。

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

預設100

類型:整數

必要:否

MinInstancesInService

指定在 CloudFormation 更新舊執行個體時,Auto Scaling 群組中必須為服務中的執行個體的最少數量。此值必須小於 Auto Scaling 群組MaxSize的 。

警告

建議您將 MinInstancesInService 屬性的值至少設定為 Auto Scaling 群組MinSize的 。這可避免因 0 個執行個體提供客戶流量而發生滾動更新期間的潛在可用性問題。

預設0

類型:整數

必要:否

MinSuccessfulInstancesPercent

指定 Auto Scaling 滾動更新中必須有多少百分比的執行個體成功發出訊號才能成功更新。您可以指定 0 到 100 的值。CloudFormation 會四捨五入至最接近的 10%。例如,如果更新 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 在變更一個批次的執行個體之後,為提供時間讓這些執行個體啟動軟體應用程式而暫停的時間量。

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

警告

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

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

類型:字串

必要:否

SuspendProcesses

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

預設:未指定

類型:Auto Scaling 程序清單

必要:否

WaitOnResourceSignals

指定 CloudFormation 是否等待來自新執行個體的成功訊號,然後再繼續更新。CloudFormation 會等待指定的PauseTime持續時間,以取得成功訊號。

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

預設false

類型:布林值

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

AutoScalingScheduledAction 政策

若要指定當AWS::AutoScaling::AutoScalingGroup資源具有相關聯的排程動作時MaxSize,CloudFormation 如何處理 MinSize、 和 DesiredCapacity 屬性的更新,請使用 AutoScalingScheduledAction政策。

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

當您有生效的排程動作時,如果不希望 CloudFormation 變更任何群組大小屬性值,請使用 AutoScalingScheduledAction 更新政策並將 IgnoreUnmodifiedGroupSizeProperties 設為 true,以避免CloudFormation 變更 MinSizeMaxSizeDesiredCapacity 屬性,除非您已在您的範本中修改這些值。

語法

JSON

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

屬性

IgnoreUnmodifiedGroupSizeProperties

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

預設false

類型:布林值

必要:否

UseOnlineResharding 政策

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

如果 UseOnlineResharding 設為 true,您可以更新 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 擷取該複寫群組中所有節點群組的 ID。然後,在嘗試新增或移除碎片之前,請為堆疊範本中的每個節點群組指定 ID。

    注意

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

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

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

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

    當您指定的 NumNodeGroups 值低於目前節點群組的數量,CloudFormation 會指示 ElastiCache 盡可能移除節點群組以達到指定的節點數量。不過,ElastiCache 可能無法總是移除所需節點群組數量。如果 ElastiCache 無法移除所需的節點群組數量,CloudFormation 會產生堆疊事件來提醒您。如果 ElastiCache 無法移除任何節點群組,則 CloudFormation 資源更新失敗。

如需修改複寫群組的詳細資訊,請參閱 Amazon ElastiCache API Reference (《Amazon ElastiCache API 參考》) 中的 ModifyReplicationGroupShardConfiguration

語法

JSON

"UpdatePolicy" : { "UseOnlineResharding" : Boolean }

YAML

UpdatePolicy: UseOnlineResharding: Boolean

EnableVersionUpgrade 政策

若要將 OpenSearch Service 網域升級為 OpenSearch 或 Elasticsearch 的新版本,而非取代整個 AWS::OpenSearchService::DomainAWS::Elasticsearch::Domain 資源,請使用 EnableVersionUpgrade 更新政策。

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

EnableVersionUpgrade 更新政策沒有屬性。

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

語法

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