通过指定模板和模板参数查询创建资源栈的预估价格。
接口说明
- 
ROS 模板支持询价的资源,请参见预估资源价格的支持询价的资源类型章节。 
- 
Terraform 模板支持询价的资源,请参见 Terraform 支持的功能和资源的 ROS 资源支持情况章节。 
本文将提供一个示例,查询模板中创建的 EIP 资源的预估价格。 示例如下:
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "Isp": {
      "Type": "String",
      "Default": "BGP"
    },
    "Name": {
      "Type": "String",
      "Default": "test"
    },
    "Netmode": {
      "Type": "String",
      "Default": "public"
    },
    "Bandwidth": {
      "Type": "Number",
      "Default": 5
    }
  },
  "Resources": {
    "NewEip": {
      "Type": "ALIYUN::VPC::EIP",
      "Properties": {
        "InstanceChargeType": "Prepaid",
        "PricingCycle": "Month",
        "Isp": {
          "Ref": "Isp"
        },
        "Period": 1,
        "DeletionProtection": false,
        "AutoPay": false,
        "Name": {
          "Ref": "Name"
        },
        "InternetChargeType": "PayByTraffic",
        "Netmode": {
          "Ref": "Netmode"
        },
        "Bandwidth": {
          "Ref": "Bandwidth"
        }
      }
    }
  }
}
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:- 对于必选的资源类型,用前面加 * 表示。
- 对于不支持资源级授权的操作,用全部资源表示。
 
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
| 操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 | 
|---|---|---|---|---|
| ros:GetTemplateEstimateCost | get | *全部资源 * | 
 | 无 | 
请求参数
| 名称 | 类型 | 必填 | 描述 | 示例值 | 
|---|---|---|---|---|
| TemplateURL | string | 否 | 包含模板主体的文件的位置。URL 必须指向位于 Web 服务器(HTTP 或 HTTPS)或阿里云 OSS 存储空间(例如:oss://ros/stack-policy/demo、oss://ros/stack-policy/demo?RegionId=cn-hangzhou)中的模板,模板的最大长度为 524,288 个字节。如未指定 OSS 地域,默认与 RegionId 取值相同。 说明 
您必须且仅能指定 TemplateBody、TemplateURL、TemplateId 和 TemplateScratchId 其中一个参数。
 | oss://ros-template/demo | 
| RegionId | string | 是 | 资源栈所属的地域 ID。您可以调用 DescribeRegions 查看最新的阿里云地域列表。 | cn-hangzhou | 
| TemplateBody | string | 否 | 模板主体的结构。长度为 1~524,288 个字节。如果长度较长,则建议通过 HTTP POST+Body Param 的方式,将参数放在请求体中进行传递,避免因 URL 过长而导致请求失败。 说明 
您必须且仅能指定 TemplateBody、TemplateURL、TemplateId 和 TemplateScratchId 其中一个参数。
 | ROSTemplateFormatVersion: '2015-09-01'\nResources:\n vpc:\n Type: ALIYUN::ECS::VPC | 
| ClientToken | string | 否 | 保证请求的幂等性。 该值由客户端生成,并且必须全局唯一。 | 123e4567-e89b-12d3-a456-42665544**** | 
| TemplateId | string | 否 | 模板 ID。支持共享模板和私有模板。 说明 
您必须且仅能指定 TemplateBody、TemplateURL、TemplateId 和 TemplateScratchId 其中一个参数。
 | 5ecd1e10-b0e9-4389-a565-e4c15efc**** | 
| TemplateVersion | string | 否 | 模板版本。仅在指定 TemplateId 时生效。 | v1 | 
| Parameters | array<object> | 否 | 参数。 | |
| object | 否 | |||
| ParameterKey | string | 是 | 参数的名称。如果未指定模板中定义的参数名称和参数值,ROS 将使用模板中指定的默认值。 
 说明 
Parameters 为可选参数。如果需要指定 Parameters,则 Parameters.N.ParameterKey 和 Parameters.N.ParameterValue 必须同时指定。
 | Name | 
| ParameterValue | string | 是 | 参数值。 
 说明 
Parameters 为可选参数。如果需要指定 Parameters,则 Parameters.N.ParameterKey 和 Parameters.N.ParameterValue 必须同时指定。
 | DemoEip | 
| TemplateScratchId | string | 否 | 资源场景 ID。 关于如何获取资源场景 ID,请参见 ListTemplateScratches 。 说明 
您必须且仅能指定 TemplateBody、TemplateURL、TemplateId 和 TemplateScratchId 其中一个参数。
 | ts-aa9c62feab844a6b**** | 
| TemplateScratchRegionId | string | 否 | 资源场景所属的地域 ID,默认与 RegionId 取值相同。 您可以调用 DescribeRegions 查看最新的阿里云地域列表。 | cn-hangzhou | 
| StackId | string | 否 | 资源栈 ID。 当填写此参数时,表示查询变配场景的预估价格。 假设指定资源栈中仅有一个 ECS 实例,且规格是 ecs.s6-c1m2.large。询价使用的新模板将规格改为 ecs.s6-c1m1.small(降配),并新增一个 RDS 实例。则询价结果为 ECS 实例变配价格(本例由于是降配,则是退款)和新购 RDS 实例的价格总和。 | c754d2a4-28f1-46df-b557-9586173a**** | 
关于公共请求参数的详情,请参见公共参数。
返回参数
Resources 各参数含义如下所示。
| 名称 | 类型 | 示例值 | 描述 | 
|---|---|---|---|
| Order | 订单信息。 | ||
| - Currency | String | CNY | 货币单位。取值: CNY:该值仅适用于中国站。 USD:该值仅适用于国际站。 | 
| - OriginalAmount | Float | 125.0 | 原价。 | 
| - DiscountAmount | Float | 15.63 | 抵扣金额。 | 
| - TradeAmount | Float | 109.37 | 最终价,为原价减去折扣。 | 
| - TaxAmount | Float | 0.0 | 可选税额。 | 
| - Coupons | Array | {"Coupon": []} | 可选促销。 | 
| - RuleIds | Array | [102204102264****] | 活动规则列表。 | 
| InquiryType | String | Buy | 询价类型。取值: Buy:新购询价。 ModificationBuy:变配询价。 | 
| Rules | 活动规则。 | ||
| - Rule | 活动规则。 | ||
| - - Name | String | 合同优惠_整单_8.750 折 | 活动规则名称。 | 
| - - RuleDescId | Long | 102204102264**** | 活动规则 ID。 | 
| OrderSupplement | 订单补充信息。 | ||
| - AutoRenew | Boolean | false | 是否自动续费。取值: true:自动续费。 false:不自动续费。 | 
| - ChargeType | String | PrePaid | 付费方式。 | 
| - Period | Long | 1 | 计费时长。 | 
| - PeriodUnit | String | Month | 包年包月计费方式的时长单位。取值: Year:年。 Month:月。 | 
| - PriceType | String | Total | 价格类型。 | 
| - Quantity | Long | 1 | 数量。 | 
示例
正常返回示例
JSON格式
{
  "RequestId": "6DEA36EF-C97D-5658-A4AC-4F5DB08D1A89",
  "Resources": {
    "NewEip": {
      "Type": "ALIYUN::VPC::EIP",
      "Success": true,
      "Result": {
        "Order": {
          "TaxAmount": 0,
          "Currency": "CNY",
          "RuleIds": [
            "102204102264****"
          ],
          "TradeAmount": 87.5,
          "OriginalAmount": 125,
          "DiscountAmount": 37.5
        },
        "OrderSupplement": {
          "ChargeType": "PrePaid",
          "Period": 1,
          "Quantity": 1,
          "PriceType": "Total",
          "PeriodUnit": "Month"
        },
        "InquiryType": "Buy",
        "Rules": {
          "Rule": [
            {
              "RuleDescId": "102204102264****",
              "Name": "合同优惠_整单_7.0折"
            }
          ]
        }
      }
    }
  }
}错误码
访问错误中心查看更多错误码。
变更历史
| 变更时间 | 变更内容概要 | 操作 | 
|---|---|---|
| 2023-06-21 | API 内部配置变更,不影响调用 | 查看变更详情 | 
| 2023-05-18 | OpenAPI 入参发生变更 | 查看变更详情 | 
| HttpCode | 错误码 | 错误信息 | 描述 | 
|---|---|---|---|
| 400 | CircularDependency | Circular Dependency Found: {reason}. | 模板包含循环引用。reason 为具体原因。 | 
| 400 | InvalidSchema | {reason}. | 模板格式不正确。reason 为具体原因。 | 
| 400 | InvalidTemplateAttribute | The Referenced Attribute ({resource} {name}) is incorrect. | 模板包含不正确的资源属性(输出)引用。resource 为资源名,name 为属性名。 | 
| 400 | InvalidTemplatePropertyType | The specified value type of ({resource} {section}) is incorrect. | 模板资源定义中的字段类型不正确。resource 为资源名,section 为字段名。 | 
| 400 | InvalidTemplateReference | The specified reference "{name}" (in {referencer}) is incorrect. | 模板包含不正确的引用。name 为引用名,referencer 为引用者。 | 
| 400 | InvalidTemplateSection | The template section is invalid: {section}. | 模板包含无效的字段。section 为字段名。 | 
| 400 | InvalidTemplateVersion | The template version is invalid: {reason}. | 模板版本不正确。reason 为具体原因。 | 
| 400 | StackValidationFailed | {reason}. | 资源栈校验失败。reason 为具体原因。 | 
| 400 | UnknownUserParameter | The Parameter ({name}) was not defined in template. | 传递的参数在模板中未定义。name 为参数名。 | 
| 400 | UserParameterMissing | The Parameter {name} was not provided. | 参数在模板中已定义,但未传递值。name 为参数名。 | 
| 404 | TemplateNotFound | The Template ({ ID }) could not be found. | 模板不存在。ID 为模板 ID。 | 
| 404 | TemplateNotFound | The Template { ID } with version { version } could not be found. | 模板或指定版本不存在。ID 为模板 ID,version 为模板版本。 | 
