簡體   English   中英

用於多個參數文件和單個模板的 CloudFormation

[英]CloudFormation for multiple parameter files and a single template

我目前將所有參數存儲在 Systems Manager Parameter Store 中,並在 CloudFormation 堆棧中引用它們。

我現在陷入了同一個 Cloudformation 模板的參數不同的場景。

例如服務器 A,具有參數 m5.large 實例類型、su.net 1、主機名 1,同樣服務器 B 可以具有 m5.xlarge、su.net 2、主機名 2 等。 這 2 個參數用於相同的 CFN 模板。

我如何以 CI/CD 方式處理這種情況?

我當前的設置涉及 SSM Parameter store -> CloudWatch Events -> CodePipeline -> Cloudformation。

我假設您使用 AWS CodePipeline。 每個 CodePipeline 階段由多個階段操作組成。 動作配置屬性之一是 CloudFormation 模板,也可以配置動作以包含 CloudFormation 模板,還可以提供模板配置 如果您將服務器名稱定義為 CloudFormation 堆棧中的參數,則可以為每個 CloudFormation 參數提供不同的配置。

假設您只在 CloudFormation 堆棧中定義一個服務器並在代碼管道中使用該模板兩次,那么您可以為兩個階段操作提供不同的配置。 基於此配置,您可以決定要檢索參數存儲中的哪個參數。 當然,這意味着您的參數存儲也應該被參數化,例如,您可能有參數 servera/ servera/instancetypeserverb/instancetype而不是參數instancetype

但是,我認為最好只在提供給操作聲明的模板配置文件中定義參數。 因此,例如在您的 CloudFormation 模板中定義參數instancetype並使用兩個不同的配置文件(每個堆棧一個),其中第一個模板配置文件可能instancetype: m5.large和第二個配置文件instancetype: m5.xlarge 這使您的 CloudFormation 堆棧歷史更加明確、更易於閱讀,並且不再需要為非機密使用參數存儲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM