Consulta os preços estimados dos recursos em um modelo.
Descrição
Para obter mais informações sobre os recursos que aceitam consulta de preço em modelos do Resource Orchestration Service (ROS), consulte a seção "Resource types that support price inquiry" do tópico Estimar preços de recursos.
Para saber mais sobre os recursos compatíveis com consulta de preço em modelos do Terraform, veja a seção "ROS resources supported by Terraform" no tópico Recursos e funcionalidades do ROS suportados pelo Terraform.
Este tópico apresenta um exemplo de consulta do preço estimado de um elastic IP address (EIP) a ser criado por meio de um modelo. Neste exemplo, o corpo do modelo é {"ROSTemplateFormatVersion": "2015-09-01", "Parameters": {"Isp": {"Type": "String"}, "Name": {"Type": "String"},"Netmode": {"Type": "String"}, "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": 5}}}}.
Depuração
Parâmetros da solicitação
| Parâmetro | Tipo | Obrigatório | Exemplo | Descrição |
| Action | String | Sim | GetTemplateEstimateCost | A operação a ser executada. Defina o valor como GetTemplateEstimateCost. |
| TemplateURL | String | Não | oss://ros-template/demo | URL do arquivo que contém o corpo do modelo. A URL deve apontar para um modelo localizado em um servidor web HTTP ou HTTPS, ou em um bucket do Alibaba Cloud Object Storage Service (OSS), como oss://ros/stack-policy/demo ou oss://ros/stack-policy/demo?RegionId=cn-hangzhou. O corpo do modelo pode ter até 524.288 bytes. Caso o ID da região do bucket OSS não seja especificado, o sistema usará o valor do parâmetro RegionId. Nota Especifique apenas um dos seguintes parâmetros: TemplateBody, TemplateURL, TemplateId e TemplateScratchId. |
| RegionId | String | Sim | cn-hangzhou | ID da região da pilha. Chame a operação DescribeRegions para consultar a lista de regiões mais recente. |
| TemplateBody | String | Não | {"ROSTemplateFormatVersion": "2015-09-01", "Parameters": {"Isp": {"Type": "String"}, "Name": {"Type": "String"},"Netmode": {"Type": "String"}, "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": 5}}}} | Estrutura que contém o corpo do modelo. O tamanho deve variar de 1 a 524.288 bytes. Se o corpo do modelo exceder esse limite, adicione parâmetros ao corpo da solicitação HTTP POST para evitar falhas causadas por URLs excessivamente longas. Nota Especifique apenas um dos seguintes parâmetros: TemplateBody, TemplateURL, TemplateId e TemplateScratchId. |
| ClientToken | String | Não | 123e4567-e89b-12d3-a456-42665544**** | Token de cliente usado para garantir a idempotência da solicitação. Gere o valor no cliente, mas garanta que seja único entre diferentes solicitações. O token pode ter até 64 caracteres e conter letras, dígitos, hifens (-) e sublinhados (_). Para obter mais informações, consulte Garantir idempotência. |
| TemplateId | String | Não | 5ecd1e10-b0e9-4389-a565-e4c15efc**** | ID do modelo. Este parâmetro aplica-se a modelos compartilhados e privados. Nota Especifique apenas um dos seguintes parâmetros: TemplateBody, TemplateURL, TemplateId e TemplateScratchId. |
| TemplateVersion | String | Não | v1 | Versão do modelo. Este parâmetro entra em vigor somente quando TemplateId for especificado. |
| Parameters.N.ParameterKey | String | Sim | Name | Nome do parâmetro N. Caso o nome e o valor de um parâmetro não sejam especificados, o ROS usará os valores padrão definidos no modelo. Valor máximo de N: 200. Exemplos:
Nota O parâmetro Parameters é opcional. Para especificá-lo, defina tanto Parameters.N.ParameterKey quanto Parameters.N.ParameterValue. |
| Parameters.N.ParameterValue | String | Sim | DemoEip | Valor do parâmetro N. Valor máximo de N: 200. Exemplos:
Nota O parâmetro Parameters é opcional. Para especificá-lo, defina tanto Parameters.N.ParameterKey quanto Parameters.N.ParameterValue. |
| TemplateScratchId | String | Não | ts-aa9c62feab844a6b**** | ID do cenário. Para saber como consultar os IDs dos cenários, veja ListTemplateScratches. Nota Especifique apenas um dos seguintes parâmetros: TemplateBody, TemplateURL, TemplateId e TemplateScratchId. |
| TemplateScratchRegionId | String | Não | cn-hangzhou | ID da região do cenário. O valor padrão corresponde ao do parâmetro RegionId. Chame a operação DescribeRegions para consultar a lista de regiões mais recente. |
Para obter mais informações sobre parâmetros comuns de solicitação, consulte Parâmetros comuns.
Parâmetros de resposta
|
Parâmetro |
Tipo |
Exemplo |
Descrição |
|
RequestId |
String |
6DEA36EF-C97D-5658-A4AC-4F5DB08D1A89 |
ID da solicitação. |
|
Resources |
Map |
Detalhes do recurso. |
A tabela a seguir descreve os parâmetros contidos em Resources.
Parâmetro | Tipo | Exemplo | Descrição |
Order | Informações sobre o pedido. | ||
TaxAmount | Long | 0 | Valor do imposto. |
OptionalPromotions | Array | [] | Promoções disponíveis. |
Currency | String | CNY | Unidade monetária. Valores válidos: CNY: Disponível apenas no site da China (aliyun.com). USD: Disponível apenas no site Internacional (alibabacloud.com). |
RuleIds | Array | [102204102264****] | IDs das regras de promoção. |
TradeAmount | Long | 109.37 | Preço final da transação do pedido. Equivale ao preço original menos o desconto. |
OptionalMixPromotions | Array | [] | Promoções mistas disponíveis. |
OriginalAmount | Long | 125 | Preço original. |
DiscountAmount | Long | 15.63 | Valor do desconto aplicado. |
Rules | Detalhes das regras de promoção. | ||
Name | String | Contract discount_order discount_8.750 discount | Nome da regra de promoção. |
RuleDescId | Long | 102204102264**** | ID da regra de promoção. |
OrderSupplement | Informações complementares sobre o pedido. | ||
ChargeType | String | PrePaid | Método de faturamento. |
Period | Long | 1 | Duração da assinatura. |
Quantity | Long | 1 | Quantidade. |
PriceType | String | Total | Tipo de preço. |
PeriodUnit | String | Month | Unidade de tempo da duração da assinatura. |
OrderDetails | Detalhes do pedido. | ||
ModuleCode | String | bandwidth | Código do módulo. |
ModuleName | String | Bandwidth | Nome do módulo. |
Currency | String | CNY | Tipo de moeda. |
TradeAmount | Long | 109.37 | Preço final da transação do pedido. |
OriginalAmount | Long | 125 | Preço original do pedido. |
DiscountAmount | Long | 15.63 | Valor do desconto do pedido. |
Exemplos
Exemplos de solicitações
http(s)://ros.aliyuncs.com/?Action=GetTemplateEstimateCost
&RegionId=cn-hangzhou
&TemplateBody={"ROSTemplateFormatVersion": "2015-09-01", "Parameters": {"Isp": {"Type": "String"}, "Name": {"Type": "String"},"Netmode": {"Type": "String"}, "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": 5}}}}
&Parameters=[{"ParameterKey":"Name","ParameterValue":"DemoEip"}]
&<Common request parameters>
Exemplos de respostas de sucesso
Formato XML
HTTP/1.1 200 OK
Content-Type:application/xml
<GetTemplateEstimateCostResponse>
<RequestId>6DEA36EF-C97D-5658-A4AC-4F5DB08D1A89</RequestId>
<Resources>
<NewEip>
<Type>ALIYUN::VPC::EIP</Type>
<Success>true</Success>
<Result>
<Order>
<TaxAmount>0</TaxAmount>
<TradeCycleAmount>0</TradeCycleAmount>
<RiCycleAmount>0</RiCycleAmount>
<Currency>CNY</Currency>
<TotalCostAmount>109.37</TotalCostAmount>
<RuleIds>102204102264****</RuleIds>
<TradeAmount>109.37</TradeAmount>
<DiscountCycleAmount>0</DiscountCycleAmount>
<OriginalAmount>125</OriginalAmount>
<DiscountAmount>15.63</DiscountAmount>
</Order>
<OrderSupplement>
<ChargeType>PrePaid</ChargeType>
<Period>1</Period>
<Quantity>1</Quantity>
<PriceType>Total</PriceType>
<PeriodUnit>Month</PeriodUnit>
</OrderSupplement>
<OrderDetails>
<ModuleCode>bandwidth</ModuleCode>
<ModuleName>Bandwidth</ModuleName>
<Currency>CNY</Currency>
<TradeAmount>109.37</TradeAmount>
<OriginalAmount>125</OriginalAmount>
<DiscountAmount>15.63</DiscountAmount>
</OrderDetails>
<Rules>
<Rule>
<RuleDescId>102204102264****</RuleDescId>
<Name>Contract discount_order discount_8.750 discount</Name>
</Rule>
</Rules>
</Result>
</NewEip>
</Resources>
</GetTemplateEstimateCostResponse>
Formato JSON
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "6DEA36EF-C97D-5658-A4AC-4F5DB08D1A89",
"Resources" : {
"NewEip" : {
"Type" : "ALIYUN::VPC::EIP",
"Success" : true,
"Result" : {
"Order" : {
"TaxAmount" : 0,
"OptionalPromotions" : [ ],
"TradeCycleAmount" : 0,
"RiCycleAmount" : 0,
"Currency" : "CNY",
"TotalCostAmount" : 109.37,
"RuleIds" : [ "102204102264****" ],
"TradeAmount" : 109.37,
"DiscountCycleAmount" : 0,
"OriginalAmount" : 125,
"OptionalMixPromotions" : [ ],
"DiscountAmount" : 15.63
},
"OrderSupplement" : {
"ChargeType" : "PrePaid",
"Period" : 1,
"Quantity" : 1,
"PriceType" : "Total",
"PeriodUnit" : "Month"
},
"OrderDetails" : [ {
"ModuleCode" : "bandwidth",
"ModuleName" : "Bandwidth",
"Currency" : "CNY",
"TradeAmount" : 109.37,
"OriginalAmount" : 125,
"DiscountAmount" : 15.63
} ],
"Rules" : {
"Rule" : [ {
"RuleDescId" : "102204102264****",
"Name" : "Contract discount_order discount_8.750 discount"
} ]
}
}
}
}
}
Códigos de erro
Para obter uma lista de códigos de erro, consulte Códigos de erro do serviço.
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Descrição |
|
400 |
CircularDependency |
Circular Dependency Found: {reason}. |
Mensagem retornada porque o modelo contém uma dependência circular. reason indica a causa do erro. |
|
400 |
InvalidSchema |
{reason}. |
Mensagem retornada porque o formato do modelo é inválido. reason indica a causa do erro. |
|
400 |
InvalidTemplateAttribute |
The Referenced Attribute ({resource} {name}) is incorrect. |
Mensagem retornada porque o modelo contém uma referência inválida à propriedade do recurso na seção Outputs. resource indica o nome do recurso. name indica o nome da propriedade. |
|
400 |
InvalidTemplatePropertyType |
The specified value type of ({resource} {section}) is incorrect. |
Mensagem retornada porque o tipo da propriedade do recurso definido em uma seção do modelo é inválido. resource indica o nome do recurso. section indica o nome da seção. |
|
400 |
InvalidTemplateReference |
The specified reference "{name}" (in {referencer}) is incorrect. |
Mensagem retornada porque o modelo contém uma referência inválida. name indica o nome da referência. referencer indica o nome do referenciador. |
|
400 |
InvalidTemplateSection |
The template section is invalid: {section}. |
Mensagem retornada porque o modelo contém uma seção inválida. section indica o nome da seção. |
|
400 |
InvalidTemplateVersion |
The template version is invalid: {reason}. |
Mensagem retornada porque a versão do modelo é inválida. reason indica a causa do erro. |
|
400 |
StackValidationFailed |
{reason}. |
Mensagem retornada porque a validação da pilha falhou. reason indica a causa do erro. |
|
400 |
UnknownUserParameter |
The Parameter ({name}) was not defined in template. |
Mensagem retornada porque o parâmetro especificado não está definido no modelo. name indica o nome do parâmetro. |
|
400 |
UserParameterMissing |
The Parameter {name} was not provided. |
Mensagem retornada porque nenhum valor foi especificado para o parâmetro definido no modelo. name indica o nome do parâmetro. |
|
404 |
TemplateNotFound |
The Template ({ ID }) could not be found. |
Mensagem retornada porque o modelo não existe. ID indica o ID do modelo. |
|
404 |
TemplateNotFound |
The Template { ID } with version { version } could not be found. |
Mensagem retornada porque o modelo ou a versão do modelo especificada não existe. ID indica o ID do modelo. version indica a versão do modelo. |