全部產品
Search
文件中心

Resource Orchestration Service:概覽

更新時間:Sep 24, 2024

使用自訂資源,您可以在模板中編寫自訂配置邏輯,當您建立、更新(如果您更改了自訂資源)或刪除資源棧時,ROS會運行該邏輯。例如:您可能需要使用不可作為ROS資源類型的資源,此時可以在模板中自訂資源,從而在一個資源棧中管理所有相關資源。

自訂資源介紹

您可以使用ALIYUN::ROS::CustomResource或Custom::MyCustomResourceTypeName資源類型在模板中定義自訂資源。自訂資源需要一個屬性,即服務令牌,它指定ROS發送請求的目標,如SMQSimple Message Queue (formerly MNS))主題和隊列,FC(Function Compute)函數或HTTP和HTTPS服務。

自訂資源必須將響應發送到預簽名的響應URL。如果不能向ROS發送響應,資源棧操作會失敗。ResponseURL提供了公網響應的能力,IntranetResponseURL提供了阿里雲內網響應的能力。

自訂資源的工作原理

自訂資源執行的操作涉及以下對象:

  • template developer:建立包含自訂資源類型的模板。template developer在模板中指定服務令牌和所有輸入資料。

  • custom resource provider:擁有自訂資源並確定如何處理和響應來自ROS的請求。custom resource provider必須提供template developer使用的服務令牌。

  • ROS:在資源棧操作期間,向模板中指定的服務令牌發送請求,然後等待響應,再繼續資源棧操作。

template developer和custom resource provider可以是同一人員或實體,但過程相同。自訂資源的步驟如下:

  1. template developer在模板中定義自訂資源,該模板包含服務令牌和任何輸入資料參數。根據自訂資源,輸入資料可選,但服務令牌必選。

    服務令牌指定ROS發送請求發送的位置,例如:發送到MNS主題ARN或FC函數ARN。更多資訊,請參見 ALIYUN::ROS::CustomResource。服務令牌和輸入資料的結構由custom resource provider定義。

  2. 當您使用模板建立、更新或刪除自訂資源時,ROS將向指定服務令牌發送請求。服務令牌無地區限制。

    在請求中,ROS包含請求類型和自訂資源向其發送請求的預簽名URL等資訊。更多資訊,請參見自訂資源請求對象

    以下樣本列出ROS在請求中包含的內容:

    {
       "RequestType" : "Create",
       "RequestId" : "unique id for this create request",
       "ResponseURL" : "pre-signed-url-for-create-response",
       "IntranetResponseURL" : "pre-signed-intranet-url-for-create-response",
       "ResourceType" : "Custom::MyCustomResourceType",
       "LogicalResourceId" : "name of resource in template",
       "StackId" : "stack id",
       "StackName" : "stack name",
       "ResourceOwnerId": "resource owner id",
       "CallerId": "caller id",
       "RegionId": "region id",
       "ResourceProperties" : {
          "key1" : "string",
          "key2" : [ "list" ],
          "key3" : { "key4" : "map" }
       }
    }                                 
  3. custom resource provider處理ROS請求並向預簽名URL返回SUCCESS或FAILED響應。custom resource provider提供採用JSON格式資料響應URL。

    在響應中,custom resource provider還可以包含template developer。例如:如果請求成功,響應可以包含輸出資料,如果請求失敗,響應可以包含錯誤訊息。更多資訊,請參見自訂資源響應對象

    custom resource provider負責偵聽和響應請求。例如:對於MNS主題通知,custom resource provider必須偵聽並響應發送到特定主題ARN的通知。ROS在預簽名URL位置等待並偵聽響應。

    以下樣本列出自訂資源在響應中可以包含的內容:

    {
       "Status" : "SUCCESS",
       "RequestId" : "unique id for this create request (copied from request)",
       "LogicalResourceId" : "name of resource in template (copied from request)",
       "StackId" : "stack id (copied from request)",
       "PhysicalResourceId" : "required vendor-defined physical id that is unique for that vendor",
       "Data" : {
          "keyThatCanBeUsedInGetAtt1" : "data for key 1",
          "keyThatCanBeUsedInGetAtt2" : "data for key 2"
       }
    }
  4. 獲得SUCCESS響應後,ROS繼續資源棧操作。如果收到FAILED響應或未返回任何響應,則操作失敗。來自自訂資源的所有輸出資料都由預簽名URL響應返回。template developer可使用Fn::GetAtt函數檢索該資料。