簡體   English   中英

CloudFormation:條件參數

[英]CloudFormation: conditional parameters

構建 CloudFormation 堆棧模板,我有一個設置星座,在實例化時我想引用另一個 CloudFormation 堆棧的名稱或非CloudFormation 管理的數據庫作為參數。

有沒有辦法在我的模板中表示這個星座? 即“如果參數DatabaseHost為空,則必須使用參數DatabaseStack ”?

我不知道 CloudFormation 中的本機選項可以使一個模板參數以第二個模板參數為條件。

可能的解決方法可能是:

  • 使兩者都是可選的,並告訴用戶提供其中一個
  • 使用兩個模板,一個用於兩個用例中的每一個
  • 在向用戶詢問參數以編程方式生成模板

也許在提出問題時不可能,但現在,您可以在 CloudFormation 模板中包含條件。 請參閱文檔

在此示例中,我根據環境使用一個或另一個值:

InfrastructurePipelineStack:
Type: AWS::CloudFormation::Stack
Properties:
  TemplateURL: !Sub "https://<masked>.yml"
  Parameters:
    ProjectName: !Ref ProjectName
    ...
    LambdaNotifications: !If [isDev, !GetAtt NotificationsStack.Outputs.LambdaNotifications, !Ref LambdaNotifications]

如果環境是開發環境(“isDev”條件),我使用其他 CloudFormation Stack 的輸出作為值。 如果沒有,我使用提供的固定值(非 CloudFormation 值)。

在這種情況下,“isDev”在 OP 問題中充當“參數 DatabaseStack 為空白”。

暫無
暫無

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

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