模板結(jié)構(gòu)說明
模板是一個(gè)JSON或YAML格式的文本文件,使用UTF-8編碼。模板用于創(chuàng)建資源棧,是描述基礎(chǔ)設(shè)施和架構(gòu)的藍(lán)圖。模板編輯者在模板中定義阿里云資源和配置細(xì)節(jié),并說明資源間的依賴關(guān)系。
ROS模板結(jié)構(gòu)
ROSTemplateFormatVersion: '2015-09-01'
Description: 模板描述信息,可用于說明模板的適用場(chǎng)景、架構(gòu)說明等。
# 關(guān)于模板的元數(shù)據(jù)信息,例如存放用于可視化的布局信息。
Metadata:
# 定義創(chuàng)建資源棧時(shí),用戶可以定制化的參數(shù)。
Parameters:
# 定義映射信息表,映射信息是一種多層的Map結(jié)構(gòu)。
Mappings:
# 使用內(nèi)部條件函數(shù)定義條件。這些條件確定何時(shí)創(chuàng)建關(guān)聯(lián)的資源。
Conditions:
# 所需資源的詳細(xì)定義,包括資源間的依賴關(guān)系、配置細(xì)節(jié)等。
Resources:
# 用于輸出一些資源屬性等有用信息。可以通過API或控制臺(tái)獲取輸出的內(nèi)容。
Outputs:
# 用于檢驗(yàn)在創(chuàng)建或更新資源棧時(shí)傳遞給模板的參數(shù)值是否符合預(yù)期。
Rules:
ROSTemplateFormatVersion(必選)
ROS支持的模板版本號(hào),當(dāng)前版本號(hào):2015-09-01。
Description(可選)
模板的描述信息。可用于說明模板的適用場(chǎng)景、架構(gòu)說明等。通常情況下,對(duì)模板進(jìn)行詳細(xì)描述,有利于用戶理解模板的內(nèi)容。
Metadata(可選)
模板編寫者可以使用Metadata來存放與模板相關(guān)的元數(shù)據(jù)信息,內(nèi)容可以為JSON格式。
Parameters(可選)
定義創(chuàng)建資源棧時(shí),模板用戶可以定制化的參數(shù)。通常,模板的編輯者會(huì)把ECS的規(guī)格設(shè)計(jì)成一個(gè)參數(shù)。參數(shù)支持默認(rèn)值。使用參數(shù)可以增強(qiáng)模板的靈活性,提高復(fù)用性。使用模板創(chuàng)建資源棧時(shí),可以根據(jù)實(shí)際的評(píng)估結(jié)果來選擇合適的規(guī)格。
更多詳細(xì)信息,請(qǐng)參見參數(shù)(Parameters)。
Mappings(可選)
Mappings定義了一個(gè)多層的映射表,可以通過Fn::FindInMap函數(shù)來選擇Key對(duì)應(yīng)的值,或根據(jù)不同的輸入?yún)?shù)值作為Key來查找映射表。例如,您可以根據(jù)Region不同,自動(dòng)查找Region-鏡像映射表,從而找到適用的鏡像。
更多詳細(xì)信息,請(qǐng)參見映射(Mappings)。
Conditions(可選)
Conditions使用Fn::And、Fn::Or、Fn::Not、Fn::Equals定義條件。多個(gè)條件之間使用半角逗號(hào)(,)隔開。在創(chuàng)建或更新資源棧時(shí),系統(tǒng)先計(jì)算模板中的所有條件,然后再創(chuàng)建資源。創(chuàng)建與true條件關(guān)聯(lián)的所有資源,忽略與false條件關(guān)聯(lián)的所有資源。
更多詳細(xì)信息,請(qǐng)參見條件(Conditions)。
Resources(可選)
用于詳細(xì)定義使用該模板創(chuàng)建的資源棧所包含的資源,包括資源間的依賴關(guān)系、配置細(xì)節(jié)等。
更多詳細(xì)信息,請(qǐng)參見資源(Resources)。
Outputs(可選)
用于輸出一些資源屬性等有用信息。可以通過API或控制臺(tái)獲取輸出的內(nèi)容。
更多詳細(xì)信息,請(qǐng)參見輸出(Outputs)。
Rules(可選)
用于檢驗(yàn)在創(chuàng)建或更新資源棧時(shí)傳遞給模板的參數(shù)值是否符合預(yù)期。
更多詳細(xì)信息,請(qǐng)參見規(guī)則(Rules)。
相關(guān)操作
關(guān)于如何快速的編寫模板,請(qǐng)參見手把手編寫模板。