2014-11-03 61 views

回答

-2

引用它的名字 即。 "VpcId" : { "Ref" : "myVPC" }, 在類似:

{ 
    "Type" : "AWS::EC2::Subnet", 
    "Properties" : { 
     "AvailabilityZone" : String, 
     "CidrBlock" : String, 
     "Tags" : [ Resource Tag, ... ], 
     "VpcId" : { "Ref" : String } 
     } 
    } 

文檔這裏: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html

+0

它看起來像我需要有一個參數或映射,然後硬編碼的VPC ID,然後在子網腳本,除非VPC引用它和子網全部使用相同的腳本創建,以便能夠使用「VpcId」引用VPC ID:{「Ref」:「myVPC」}。 – Roobie 2014-11-04 22:12:43

+1

如果你已經有一個VPC它將有一個Id只是把它放在參考。即「VpcId」:{「參考」:「vpc-123456」} – 2014-11-06 11:02:45

+1

不起作用:模板驗證錯誤:模板格式錯誤:未解決的資源依賴關係... – Ashesh 2015-09-04 17:40:06

7

在模板定義VPC,包括在輸出部分中的VPC ID:

"Outputs" : { 
    "VPC" : { 
     "Value" : {"Ref":"VPC"}, 
     "Description" : "VPC ID" 
    }, 
    ... 
} 

在模板爲使用VPC堆疊,爲VPC ID定義參數:

"Parameters" : { 
    "VPC" : { 
     "Type" : "String", 
    }, 
    ... 
} 

創建此堆棧時,請在VPC定義堆棧上調用describe-stack以從輸出中獲取ID,並將其作爲參數VPC傳遞給create-stack

+0

基本上是正確的 - 但「類型」不能簡單地爲VPC字符串,它必須是「AWS :: EC2 :: VPC :: Id」,就像這裏記錄:http ://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html – jebbie 2017-06-07 22:02:52

+0

字符串應該可以正常工作(或者至少在我編寫此代碼時),但使用更具體的類型更好。謝謝。 – bsvingen 2017-06-08 22:15:59

+0

至少在我現在使用的最新awscli中,它將失敗,在不使用此特定類型的模板上發生驗證錯誤;) – jebbie 2017-06-12 17:25:14

2

或者從輸入VPC的ID,如

"VpcId" : { 
     "Type" : "AWS::EC2::VPC::Id", 
     "Description" : "VpcId of your existing Virtual Private Cloud (VPC)", 
     "ConstraintDescription" : "must be the VPC Id of an existing Virtual Private Cloud." 
    }, 
相關問題