![](/img/trans.png)
[英]How to import cloudformation stack output inside another stack parameter?
[英]AWS/Cloudformation: How to export/import parameter value to another stack (YAML)
我有一個簡單的問題。 我正在測試雲形成中值的導出/導入。
問題是:如何根據來自另一個堆棧的鏈接條件創建資源?
我想我應該從其他堆棧導入值,但不知道如何......
這是我的“出口測試堆棧”
AWSTemplateFormatVersion: '2010-09-09' Description: Export Parameters: EnvType: Description: How many Instances you want to deploy? Default: two Type: String AllowedValues: - two - three ConstraintDescription: must specify number of deployed Instances Conditions: Deploy3EC2: ,Equals [:Ref EnvType: three ] Resources: Ec2Instance1: Type: AWS::EC2::Instance Properties. InstanceType: t2:micro SecurityGroupIds: - sg-5d011027 ImageId: ami-0b33d91d Ec2Instance2: Type: AWS::EC2::Instance Properties. InstanceType: t2:micro SecurityGroupIds: - sg-5d011027 ImageId: ami-0b33d91d Ec2Instance3: Type: AWS::EC2::Instance Condition: Deploy3EC2 Properties. InstanceType: t2:micro SecurityGroupIds: - sg-5d011027 ImageId: ami-0b33d91d Outputs: EC2Conditions: Description: Number of deployed instances Value: !Ref EnvType Export: Name: blablabla
這是我的“導入測試堆棧”
AWSTemplateFormatVersion: '2010-09-09' Description: Import Resources: Ec2Instance1: Type: AWS::EC2::Instance Properties: InstanceType: t2.micro SecurityGroupIds: - sg-7309dd0a ImageId: ami-70edb016 Ec2Instance2: Type: AWS::EC2::Instance Condition: ?????? <<<<<<<<< Properties: InstanceType: t2.micro SecurityGroupIds: - sg-7309dd0a ImageId: ami-70edb016
這是關於跨堆棧引用的,所以只有當我選擇在之前的“export-test-stack”中部署三個實例時,我才想在“import-test-stack”中部署 Ec2Instance2。 這個怎么做?
所以如果我選擇部署三個實例,我想使用“import stack”中的條件來部署另外兩個實例,如果我選擇部署兩個,它只會在“import-stack”中部署一個實例
我知道條件如何工作,但仍然無法找到方法,如何在交叉引用堆棧中使用。
我知道這是一個愚蠢的例子,但我只是想在盡可能簡單的模板上進行測試。
您有兩種選擇:繼續使用分離的堆棧或組合它們以創建嵌套堆棧。
使用嵌套堆棧,您可以使用一個堆棧的輸出作為另一個堆棧的輸入。
如果您想繼續使用分離的堆棧,請使用Fn::ImportValue
函數來導入從另一個堆棧導出的輸出值。
導出堆棧輸出值頁面中已涵蓋這兩個角度。 此外,如果您選擇使用Fn::ImportValue
, 跨堆棧參考演練可能會對您有所幫助。
這將使您導入正確的值: Fn::ImportValue: EC2Conditions
您也可以使用規則。 您可以根據輸出的值來制定規則。
我們不能在這里使用導入值,因為 cloudformation 不允許在參數中使用內在值。 但是有一個在 AWS 中使用 SSM(AWS 系統管理參數存儲)參數的選項,它允許我們使用在堆棧 A 中創建的堆棧 B 中的參數
請查看以下來自 AWS 知識中心的文章鏈接
https://aws.amazon.com/premiumsupport/knowledge-center/cloudformation-systems-manager-parameter/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.