模組與模板基本相同,是一個JSON或YAML格式的文字檔,使用UTF-8編碼。本文主要為您介紹模組的內容,包括模組名稱、模組限制和模組結構。
模組名稱
模組使用四段式命名規範:MODULE::Organization::Service::Usecase
。
MODULE
:固定值。Organization
:組織名稱。由大小寫字母和數字組成,長度不小於2。
小寫形式不能包含
alicloud
、alibaba
、aliyun
。小寫形式不能以
acs
開頭。小寫形式不能等於
ros
、dev
、test
、debug
。
Service
:產品名稱。由大小寫字母和數字組成,長度不小於2。
Usecase
:資源名稱。由大小寫字母和數字組成,長度不小於2。
建立模組時,如果Organization
為SHARE
,則Service
必須為當前帳號的主帳號ID,例如MODULE::SHARE::123456789::Usecase
。
這種特殊的自訂模組也稱為共用模組。其他使用者可以查看和使用您的共用模組,但無法修改和刪除它。
模組限制
不能為模組指定
Transform
和Workspace
。不能為模組指定非空
Rules
。自訂模組最大嵌套深度為3,使用公用模組不會增加嵌套深度。
下圖為公用模組嵌套深度樣本,ModuleA深度為1,ModuleB深度為2,ModuleC深度為3,ModuleD深度為4。
模組結構
ROSTemplateFormatVersion: '2015-09-01'
Description: 模組描述資訊,可用於說明模組的適用情境、架構說明、使用方法等。
Metadata:
# 模組的中繼資料資訊,例如存放用於可視化的布局資訊。
Parameters:
# 模組參數,使用模組時,可以在模板或父模組中指定取值。
Mappings:
# 映射,一種多層的映射結構。
Conditions:
# 條件,主要用於控制資源是否建立。
Resources:
# 模組所包含的資源或子模組,包括屬性、依賴關係等。
Outputs:
# 模組輸出,可以被模板或父模組使用。
ROSTemplateFormatVersion(必選)
與模板要求一致,更多資訊,請參見ROSTemplateFormatVersion(必選)。
Description(可選)
與模板要求一致,更多資訊,請參見Description(可選)。
建議您添加此欄位,並支援多語言。有助於模組使用者正確使用模組。模組描述會在模組詳情頁面的模組內容頁簽中展示。多語言樣本如下:
Description:
zh-cn: |-
這是一個樣本。
en: |-
This is a demo.
Metadata(可選)
與模板要求一致,更多資訊,請參見Metadata(可選)。
當執行資源棧操作並處理產生模板時,模組中的Metadata
會被忽略。
建議您添加此欄位,有助於模組使用者正確使用模組。Metadata
會完整複製到模組詳情頁面的模板樣本中,可以最佳化樣本模板介面展示效果。
Parameters(可選)
與模板要求一致,更多資訊,請參見Parameters(可選)。
模組參數不支援約束強制執行。包括Type
、AllowedValues
、AllowedPattern
、MaxLength
、MinLength
、MaxValue
、MinValue
。
當執行資源棧操作並處理產生模板時,如果模組參數未指定,且該參數有預設值(Default
),則會使用預設值。
使用限制:參數名稱中不能包含字元:.:
。
建議如下:
建議與編寫模板一樣全面設定參數屬性,有助於模組使用者正確使用模組。
模組詳情頁面的屬性頁簽中展示的所有屬性與模組參數一一對應。每個屬性的類型、是否必填、 描述、約束均來自於參數屬性。
模組詳情頁面模板樣本中的
Parameters
部分會基於參數屬性產生,一方面可以保證參數設定的正確性,另一方面可以展示模板最佳化介面效果。
建議支援多語言,包括
Description
、Label
等。
Mappings(可選)
與模板要求一致,更多資訊,請參見Mappings(可選)。
使用限制:映射完全限定名稱不能重複。關於完全限定名稱,請參見引用模組中的條件。
Conditions(可選)
與模板要求一致,更多資訊,請參見Conditions(可選)。
使用限制:
條件名稱中不能包含字元:
&
。條件完全限定名稱不能重複。關於完全限定名稱,請參見引用模組中的條件。
Resources(可選)
與模板要求一致,更多資訊,請參見Resources(可選)。
您可以設定資源的DependsOn
為*
,當執行資源棧操作並處理產生模板時,該資源會依賴於所有DependsOn
不為*
的資源。
使用限制:
資源邏輯名稱中不能包含字元:
.
。不能使用資源類型
ALIYUN::ROS::Stack
、ALIYUN::ROS::StackGroup
、ALIYUN::ROS::StackInstances
。不能使用
Fn::GetStackOutput
函數。不能為子模組指定
Metadata
和Count
。必須為子模組指定
Version
。資源或模組完全限定邏輯名稱不能重複。關於完全限定邏輯名稱,請參見引用模組中的資源。
共用模組只能使用公用模組或其他共用模組。
Outputs(可選)
與模板要求一致,更多資訊,請參見Outputs(可選)。
使用限制:
輸出名稱中不能包含字元:
.
。不能使用
Fn::GetStackOutput
函數。
建議為每個輸出指定Description
:
模組詳情頁面的傳回值頁簽中展示的所有傳回值與模組輸出一一對應,傳回值的描述來自於輸出的
Description
。模組詳情頁面的模板樣本中的
Outputs
部分會基於輸出產生,可以最佳化樣本模板介面展示效果。