全部產品
Search
文件中心

Resource Orchestration Service:模組開發

更新時間:Feb 05, 2024

模組與模板基本相同,是一個JSON或YAML格式的文字檔,使用UTF-8編碼。本文主要為您介紹模組的內容,包括模組名稱、模組限制和模組結構。

模組名稱

模組使用四段式命名規範:MODULE::Organization::Service::Usecase

  • MODULE:固定值。

  • Organization:組織名稱。

    • 由大小寫字母和數字組成,長度不小於2。

    • 小寫形式不能包含alicloudalibabaaliyun

    • 小寫形式不能以acs開頭。

    • 小寫形式不能等於rosdevtestdebug

  • Service:產品名稱。

    由大小寫字母和數字組成,長度不小於2。

  • Usecase:資源名稱。

    由大小寫字母和數字組成,長度不小於2。

說明

建立模組時,如果OrganizationSHARE,則Service必須為當前帳號的主帳號ID,例如MODULE::SHARE::123456789::Usecase

這種特殊的自訂模組也稱為共用模組。其他使用者可以查看和使用您的共用模組,但無法修改和刪除它。

模組限制

  • 不能為模組指定TransformWorkspace

  • 不能為模組指定非空Rules

  • 自訂模組最大嵌套深度為3,使用公用模組不會增加嵌套深度。

    下圖為公用模組嵌套深度樣本,ModuleA深度為1,ModuleB深度為2,ModuleC深度為3,ModuleD深度為4。

    image.png

模組結構

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(可選)

模組參數不支援約束強制執行。包括TypeAllowedValuesAllowedPatternMaxLengthMinLengthMaxValueMinValue

當執行資源棧操作並處理產生模板時,如果模組參數未指定,且該參數有預設值(Default),則會使用預設值。

使用限制:參數名稱中不能包含字元:.:

建議如下:

  • 建議與編寫模板一樣全面設定參數屬性,有助於模組使用者正確使用模組。

    • 模組詳情頁面的屬性頁簽中展示的所有屬性與模組參數一一對應。每個屬性的類型是否必填描述約束均來自於參數屬性。

    • 模組詳情頁面模板樣本中的Parameters部分會基於參數屬性產生,一方面可以保證參數設定的正確性,另一方面可以展示模板最佳化介面效果。

  • 建議支援多語言,包括DescriptionLabel等。

Mappings(可選)

與模板要求一致,更多資訊,請參見Mappings(可選)

使用限制:映射完全限定名稱不能重複。關於完全限定名稱,請參見引用模組中的條件

Conditions(可選)

與模板要求一致,更多資訊,請參見Conditions(可選)

使用限制:

  • 條件名稱中不能包含字元:&

  • 條件完全限定名稱不能重複。關於完全限定名稱,請參見引用模組中的條件

Resources(可選)

與模板要求一致,更多資訊,請參見Resources(可選)

您可以設定資源的DependsOn*,當執行資源棧操作並處理產生模板時,該資源會依賴於所有DependsOn不為*的資源。

使用限制:

  • 資源邏輯名稱中不能包含字元:.

  • 不能使用資源類型ALIYUN::ROS::StackALIYUN::ROS::StackGroupALIYUN::ROS::StackInstances

  • 不能使用Fn::GetStackOutput函數。

  • 不能為子模組指定MetadataCount

  • 必須為子模組指定Version

  • 資源或模組完全限定邏輯名稱不能重複。關於完全限定邏輯名稱,請參見引用模組中的資源

  • 共用模組只能使用公用模組或其他共用模組。

Outputs(可選)

與模板要求一致,更多資訊,請參見Outputs(可選)

使用限制:

  • 輸出名稱中不能包含字元:.

  • 不能使用Fn::GetStackOutput函數。

建議為每個輸出指定Description

  • 模組詳情頁面的傳回值頁簽中展示的所有傳回值與模組輸出一一對應,傳回值的描述來自於輸出的Description

  • 模組詳情頁面的模板樣本中的Outputs部分會基於輸出產生,可以最佳化樣本模板介面展示效果。