Interroge les prix estimés des ressources définies dans un modèle.
Description
Pour plus d'informations sur les ressources compatibles avec l'estimation des coûts dans les modèles Resource Orchestration Service (ROS), consultez la section « Resource types that support price inquiry » de la rubrique Estimate resource prices.
Pour plus d'informations sur les ressources compatibles avec l'estimation des coûts dans les modèles Terraform, consultez la section « ROS resources supported by Terraform » de la rubrique ROS features and resources supported by Terraform.
Cette rubrique présente un exemple d'interrogation du prix estimé d'une adresse IP élastique (EIP) à créer via un modèle. Dans cet exemple, le corps du modèle est le suivant : {"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}}}}.
Débogage
Paramètres de requête
| Paramètre | Type | Obligatoire | Exemple | Description |
| Action | String | Oui | GetTemplateEstimateCost | Opération à effectuer. Définissez la valeur sur GetTemplateEstimateCost. |
| TemplateURL | String | Non | oss://ros-template/demo | URL du fichier contenant le corps du modèle. L'URL doit pointer vers un modèle hébergé sur un serveur web HTTP ou HTTPS, ou dans un compartiment Alibaba Cloud Object Storage Service (OSS), par exemple oss://ros/stack-policy/demo ou oss://ros/stack-policy/demo?RegionId=cn-hangzhou. La taille du corps du modèle ne doit pas dépasser 524 288 octets. Si vous n'indiquez pas l'ID de région du compartiment OSS, la valeur du paramètre RegionId est utilisée. Remarque Spécifiez un seul des paramètres suivants : TemplateBody, TemplateURL, TemplateId ou TemplateScratchId. |
| RegionId | String | Oui | cn-hangzhou | ID de région de la pile. Appelez l'opération DescribeRegions pour obtenir la liste des régions la plus récente. |
| TemplateBody | String | Non | {"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}}}} | Structure contenant le corps du modèle. La taille du corps du modèle doit être comprise entre 1 et 524 288 octets. Si cette limite est dépassée, nous vous recommandons d'ajouter les paramètres au corps de la requête HTTP POST pour éviter les échecs liés à une URL trop longue. Remarque Spécifiez un seul des paramètres suivants : TemplateBody, TemplateURL, TemplateId ou TemplateScratchId. |
| ClientToken | String | Non | 123e4567-e89b-12d3-a456-42665544**** | Jeton client garantissant l'idempotence de la requête. Générez la valeur via le client, en veillant à son unicité pour chaque requête. Le jeton peut contenir jusqu'à 64 caractères : lettres, chiffres, traits d'union (-) et traits de soulignement (_). Pour plus d'informations, consultez Ensure idempotence. |
| TemplateId | String | Non | 5ecd1e10-b0e9-4389-a565-e4c15efc**** | ID du modèle. Ce paramètre s'applique aux modèles partagés et privés. Remarque Spécifiez un seul des paramètres suivants : TemplateBody, TemplateURL, TemplateId ou TemplateScratchId. |
| TemplateVersion | String | Non | v1 | Version du modèle. Ce paramètre n'est pris en compte que si TemplateId est spécifié. |
| Parameters.N.ParameterKey | String | Oui | Name | Nom du paramètre N. Si le nom et la valeur d'un paramètre ne sont pas spécifiés, ROS utilise les valeurs par défaut définies dans le modèle. Valeur maximale de N : 200. Exemples :
Remarque Le paramètre Parameters est facultatif. Si vous le spécifiez, vous devez indiquer à la fois Parameters.N.ParameterKey et Parameters.N.ParameterValue. |
| Parameters.N.ParameterValue | String | Oui | DemoEip | Valeur du paramètre N. Valeur maximale de N : 200. Exemples :
Remarque Le paramètre Parameters est facultatif. Si vous le spécifiez, vous devez indiquer à la fois Parameters.N.ParameterKey et Parameters.N.ParameterValue. |
| TemplateScratchId | String | Non | ts-aa9c62feab844a6b**** | ID du scénario. Pour savoir comment interroger les ID des scénarios, consultez ListTemplateScratches. Remarque Spécifiez un seul des paramètres suivants : TemplateBody, TemplateURL, TemplateId ou TemplateScratchId. |
| TemplateScratchRegionId | String | Non | cn-hangzhou | ID de région du scénario. La valeur par défaut correspond à celle du paramètre RegionId. Appelez l'opération DescribeRegions pour obtenir la liste des régions la plus récente. |
Pour plus d'informations sur les paramètres de requête communs, consultez Common parameters.
Paramètres de réponse
| Paramètre | Type | Exemple | Description |
| RequestId | String | 6DEA36EF-C97D-5658-A4AC-4F5DB08D1A89 |
ID de la requête.
|
| Resources | Map | |
Détails de la ressource.
|
Le tableau suivant décrit les paramètres contenus dans le paramètre Resources.
Paramètre | Type | Exemple | Description |
Order | Informations relatives à la commande. | ||
TaxAmount | Long | 0 | Montant de la taxe. |
OptionalPromotions | Array | [] | Promotions disponibles. |
Currency | String | CNY | Unité de devise. Valeurs possibles : CNY : disponible uniquement sur le site Chine (aliyun.com). USD : disponible uniquement sur le site International (alibabacloud.com). |
RuleIds | Array | [102204102264****] | ID des règles de promotion. |
TradeAmount | Long | 109.37 | Prix de transaction de la commande, égal au prix initial moins la remise. |
OptionalMixPromotions | Array | [] | Promotions mixtes disponibles. |
OriginalAmount | Long | 125 | Prix initial. |
DiscountAmount | Long | 15.63 | Montant de la remise. |
Rules | Détails des règles de promotion. | ||
Name | String | Contract discount_order discount_8.750 discount | Nom de la règle de promotion. |
RuleDescId | Long | 102204102264**** | ID de la règle de promotion. |
OrderSupplement | Informations complémentaires relatives à la commande. | ||
ChargeType | String | PrePaid | Méthode de facturation. |
Period | Long | 1 | Durée de l'abonnement. |
Quantity | Long | 1 | Quantité. |
PriceType | String | Total | Type de prix. |
PeriodUnit | String | Month | Unité de durée de l'abonnement. |
OrderDetails | Détails de la commande. | ||
ModuleCode | String | bandwidth | Code du module. |
ModuleName | String | Bandwidth | Nom du module. |
Currency | String | CNY | Type de devise. |
TradeAmount | Long | 109.37 | Prix de transaction de la commande. |
OriginalAmount | Long | 125 | Prix initial de la commande. |
DiscountAmount | Long | 15.63 | Montant de la remise de la commande. |
Exemples
Exemples de requêtes
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>
Exemples de réponses réussies
Format 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>
Format 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"
} ]
}
}
}
}
}
Codes d'erreur
Pour obtenir la liste des codes d'erreur, consultez Service error codes.
| Code d'état HTTP | Code d'erreur | Message d'erreur | Description |
|
400
|
CircularDependency
|
Circular Dependency Found: {reason}.
|
Le modèle contient une dépendance circulaire. reason indique la cause de l'erreur.
|
|
400
|
InvalidSchema
|
{reason}.
|
Le format du modèle n'est pas valide. reason indique la cause de l'erreur.
|
|
400
|
InvalidTemplateAttribute
|
The Referenced Attribute ({resource} {name}) is incorrect.
|
Le modèle contient une référence non valide à la propriété de ressource dans la section Outputs. resource indique le nom de la ressource. name indique le nom de la propriété.
|
|
400
|
InvalidTemplatePropertyType
|
The specified value type of ({resource} {section}) is incorrect.
|
Le type de la propriété de ressource définie dans une section du modèle n'est pas valide. resource indique le nom de la ressource. section indique le nom de la section.
|
|
400
|
InvalidTemplateReference
|
The specified reference "{name}" (in {referencer}) is incorrect.
|
Le modèle contient une référence non valide. name indique le nom de la référence. referencer indique le nom du référent.
|
|
400
|
InvalidTemplateSection
|
The template section is invalid: {section}.
|
Le modèle contient une section non valide. section indique le nom de la section.
|
|
400
|
InvalidTemplateVersion
|
The template version is invalid: {reason}.
|
La version du modèle n'est pas valide. reason indique la cause de l'erreur.
|
|
400
|
StackValidationFailed
|
{reason}.
|
La validation de la pile a échoué. reason indique la cause de l'erreur.
|
|
400
|
UnknownUserParameter
|
The Parameter ({name}) was not defined in template.
|
Le paramètre spécifié n'est pas défini dans le modèle. name indique le nom du paramètre.
|
|
400
|
UserParameterMissing
|
The Parameter {name} was not provided.
|
Aucune valeur n'est spécifiée pour le paramètre défini dans le modèle. name indique le nom du paramètre.
|
|
404
|
TemplateNotFound
|
The Template ({ ID }) could not be found.
|
Le modèle n'existe pas. ID indique l'ID du modèle.
|
|
404
|
TemplateNotFound
|
The Template { ID } with version { version } could not be found.
|
Le modèle ou la version du modèle spécifié n'existe pas. ID indique l'ID du modèle. version indique la version du modèle.
|