

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

# 使用 CloudFormation 管理 ECS 藍/綠部署時的考量事項
<a name="blue-green-considerations"></a>

使用 CloudFormation 透過 CodeDeploy 來執行 ECS 藍/綠部署的程序與僅使用 CodeDeploy 的標準 ECS 部署不同。如需詳細了解這些差異，請參閱**《AWS CodeDeploy 使用者指南》中的[透過 CodeDeploy 和 CloudFormation進行 Amazon ECS 藍/綠部署之間的差異](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployments-create-ecs-cfn.html#differences-ecs-bg-cfn)。

使用 CloudFormation 管理藍/綠部署時，請注意特定限制和考量事項：
+ 只有特定資源的更新才會啟動綠色部署。如需詳細資訊，請參閱[啟動綠色部署的資源更新](about-blue-green-deployments.md#blue-green-resources)。
+ 無法在相同堆疊更新中包含觸發藍/綠部署的資源更新以及對其他資源的更新。如需詳細資訊，請參閱[啟動綠色部署的資源更新](about-blue-green-deployments.md#blue-green-resources)。
+ 您只能指定單一 ECS 服務作為部署目標。
+ CodeDeploy 無法在綠色部署期間更新其值被 CloudFormation 模糊化的參數，這會導致錯誤和堆疊更新失敗。其中包含：
  + 使用 `NoEcho` 屬性定義的參數。
  + 使用動態參照從外部服務擷取其值的參數。如需動態參考的詳細資訊，請參閱 [使用動態參考取得存放在其他服務中的值](dynamic-references.md)。
+ 若要取消仍在進行中的綠色部署，請取消 CloudFormation 中的堆疊更新，而不是 CodeDeploy 或 ECS。如需詳細資訊，請參閱[取消堆疊更新](using-cfn-stack-update-cancel.md)。更新完成之後，您便無法將其取消。不過，您可以使用任何之前的設定重新更新堆疊。
+ 對於定義 ECS 藍/綠部署的範本，目前不支援下列 CloudFormation 功能：
  + 宣告[輸出](outputs-section-structure.md)或使用 [Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-importvalue.html)，從其他堆疊中匯入值。
  + 匯入資源。如需有關匯入資源的詳細資訊，請參閱 [將 AWS 資源匯入 CloudFormation 堆疊](import-resources.md)。
  + 在包含巢狀堆疊資源的範本中使用 `AWS::CodeDeploy::BlueGreen` 勾點。如需巢狀堆疊的詳細資訊，請參閱[運用巢狀堆疊，將範本分割成可重複使用的部分](using-cfn-nested-stacks.md)。
  + 在巢狀堆疊中使用 `AWS::CodeDeploy::BlueGreen` 勾點。