全部產品
Search
文件中心

Resource Orchestration Service:Update

更新時間:Aug 24, 2023

在對模板內的自訂資源屬性變更時,ROS將發送RequestType已設定為Update的自訂資源請求。因此,自訂資原始碼不必檢測更改,因為它知道其屬性在調用Update後已更改。

請求

更新要求包含以下欄位:

  • RequestType

    將為Update。

  • ResponseURL

    預簽名的公網URL。該URL接收custom resource provider到ROS的響應。

  • IntranetResponseURL

    預簽名的內網URL,ECS中可使用此URL。該URL接收custom resource provider到ROS的響應。

  • StackId

    包含自訂資源的資源棧的ID 。

  • StackName

    包含自訂資源的資源棧的名稱。

  • ResourceOwnerId

    包含自訂資源的資源棧歸屬的阿里雲帳號ID(阿里雲主帳號)。

  • CallerId

    執行此次資源棧操作的帳號ID(阿里雲主帳號或RAM使用者)。

  • RegionId

    包含自訂資源的資源棧歸屬的地區。

  • RequestId

    請求的唯一ID。

  • ResourceType

    ROS模板中模板開發人員選擇的自訂資源的資源類型。自訂資源類型名稱最長為68個字元,可包含英文字元、數字、底線(_)、at(@)和短劃線(-)。

  • LogicalResourceId

    ROS模板中template developer選擇的自訂資源名稱(邏輯 ID)。

  • PhysicalResourceId

    custom resource provider定義的物理 ID,該ID對於該提供者是唯一的。

  • ResourceProperties

    該欄位包含模板開發人員發送的Properties中Parameters對象的內容。其內容由custom resource provider定義。

  • OldResourceProperties

    該欄位包含模板開發人員以前定義的Properties中Parameters對象的內容。

樣本

{
   "RequestType" : "Update",
   "RequestId" : "unique id for this update request",
   "ResponseURL" : "pre-signed-url-for-update-response",
   "IntranetResponseURL" : "pre-signed-intranet-url-for-create-response",
   "ResourceType" : "Custom::MyCustomResourceType",
   "LogicalResourceId" : "name of resource in template",
   "PhysicalResourceId" : "custom resource provider-defined physical id",
   "StackId" : "stack id",
   "StackName" : "stack name",
   "ResourceOwnerId": "resource owner id",
   "CallerId": "caller id",
   "RegionId": "region id",
   "ResourceProperties" : {
      "key1" : "new-string",
      "key2" : [ "new-list" ],
      "key3" : { "key4" : "new-map" }
   },
   "OldResourceProperties" : {
      "key1" : "string",
      "key2" : [ "list" ],
      "key3" : { "key4" : "map" }
   }
}    

響應

成功

更新要求成功時,供應商提供的服務必須向ROS發送包含以下欄位的響應:

  • Status

    必須為SUCCESS。

  • RequestId

    請求的唯一ID。 此響應值應從請求中複製。

  • LogicalResourceId

    ROS模板中模板開發人員選擇的自訂資源名稱(邏輯 ID)。此響應值應從請求中複製。

  • StackId

    包含自訂資源的資源棧的ID。此響應值應從請求中複製。

  • PhysicalResourceId

    該值不可變。此響應值應從請求中複製。

  • Data

    可選。要在響應中發送的custom resource provider-defined的名稱-值對。您可以使用Fn::GetAtt在模板中按名稱訪問此處提供的值。

樣本

{
   "Status" : "SUCCESS",
   "RequestId" : "unique id for this update request (copied from request)",
   "LogicalResourceId" : "name of resource in template (copied from request)",
   "StackId" : "stack id (copied from request)",
   "PhysicalResourceId" : "custom resource provider-defined physical id",
   "Data" : {
      "keyThatCanBeUsedInGetAtt1" : "data for key 1",
      "keyThatCanBeUsedInGetAtt2" : "data for key 2"
   }
}

失敗

更新要求失敗時,必須向 ROS 發送包含以下欄位的響應:

  • Status

    必須為FAILED。

  • Reason

    描述響應失敗的原因。

  • RequestId

    請求的唯一ID。此響應值應從請求中複製。

  • LogicalResourceId

    ROS模板中模板開發人員選擇的自訂資源名稱(邏輯 ID)。此響應值應從請求中複製。

  • StackId

    包含自訂資源的資源棧的ID。此響應值應從請求中複製。

樣本

{
   "Status" : "FAILED",
   "Reason" : "Required failure reason string",
   "RequestId" : "unique id for this update request (copied from request)",
   "LogicalResourceId" : "name of resource in template (copied from request)",
   "StackId" : "stack id (copied from request)"
}