本文为您介绍如何通过阿里云CLI(3.0.25及以上版本)调用模板相关的API。
CreateTemplate
创建自定义模板。
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
--TemplateName | String | 是 | MyTemplate | 模板名称。必须以数字或字母开头,可以包含数字、字母(区分大小写)、连字符、下划线,长度不超过255个字符。 |
--Description | String | 否 | It is a demo. | 模板描述。最大长度为256个字符。 |
--TemplateBody | String | 否 | {"ROSTemplateFormatVersion": "2015-09-01"} | 包含模板主体的结构。长度为1~51200个字节。您必须指定TemplateBody或TemplateURL参数,但不能同时指定两者。 |
--TemplateURL | String | 否 | oss://ros/template/demo | 包含模板主体的文件的位置。URL必须指向位于http Web服务器(http、https),或指向与资源栈在同一地域的OSS存储空间(例如oss:// ros/template/demo)中的模板(最大大小为524288字节)。您必须指定TemplateBody或TemplateURL参数,但不能同时指定两者。 |
请求示例
aliyun ros CreateTemplate --TemplateName MyTemplate --TemplateBody "{"ROSTemplateFormatVersion": "2015-09-01"}"
正常返回示例
{
"RequestId": "24C1BF0F-F65A-45CA-9612-53D0C11BC539",
"TemplateId": "4237d4b9-31cc-45aa-9c11-6836b2fd****"
}
GetTemplate
查询资源栈、更改集、自定义模板的模板详情。
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
--RegionId | String | 是 | cn-hangzhou | 模板所属资源栈的地域ID。您可以调用DescribeRegions查看最新的阿里云地域列表。 |
--StackId | String | 否 | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** | 资源栈ID。 |
--ChangeSetId | String | 否 | 1f6521a4-05af-4975-afe9-bc4b45ad**** | 更改集ID。 |
请求示例
aliyun ros GetTemplate --RegionId cn-beijing --StackId bd98e636-68e9-4632-82df-ce2aba56****
正常返回示例
{
"TemplateBody": "{\"ROSTemplateFormatVersion\": \"2015-09-01\", \"Resources\": {\"MyVPC\": {\"Type\": \"ALIYUN::ECS::VPC\", \"Properties\": {\"VpcName\": \"vpc-test\", \"CidrBlock\": \"172.16.0.0/12\"}}}}",
"RequestId": "3F5F5059-C8C3-473F-ABD3-9647D5384A18"
}
UpdateTemplate
更新模板。
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
--TemplateId | String | 是 | 4237d4b9-31cc-45aa-9c11-6836b2fd**** | 模板ID。 |
--Description | String | 否 | It is a demo. | 模板描述。最大长度为256个字符。 |
--TemplateName | String | 否 | MyTemplate | 模板名称。必须以数字或字母开头,可以包含数字、字母(区分大小写)、连字符、下划线,长度不超过255个字符。 |
--TemplateBody | String | 否 | {"ROSTemplateFormatVersion": "2015-09-01"} | 包含模板主体的结构。长度为1~51200个字节。您必须指定TemplateBody或TemplateURL参数,但不能同时指定两者。 |
--TemplateURL | String | 否 | oss://ros/template/demo | 包含模板主体的文件的位置。URL必须指向位于http Web服务器(http、https),或指向与资源栈在同一地域的OSS存储空间(例如oss:// ros/template/demo)中的模板(最大大小为524288字节)。您必须指定TemplateBody或TemplateURL参数,但不能同时指定两者。 |
请求示例
aliyun ros UpdateTemplate --TemplateId 4237d4b9-31cc-45aa-9c11-6836b2fd**** --Description "Add Description"
正常返回示例
{
"RequestId": "72FA566A-CFCB-49C8-B409-9B2A0C6A2FF4",
"TemplateId": "4237d4b9-31cc-45aa-9c11-6836b2fd****"
}
ListTemplates
查询模板列表。
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
--PageNumber | Long | 否 | 10 | 模板列表的页码,起始值:1。默认值:1。 |
--PageSize | Long | 否 | 1 | 分页查询时设置的每页行数。取值范围:1~50。默认值:10。 |
--TemplateName | String | 否 | MyTemplate | 模板名称。必须以数字或字母开头,可以包含数字、字母(区分大小写)、连字符、下划线,长度不超过255个字符。 |
请求示例
aliyun ros ListTemplates --TemplateName "MyTemplate"
正常返回示例
{
"PageNumber": 1,
"HttpStatusCode": 200,
"TotalCount": 1,
"PageSize": 10,
"RequestId": "C8A71A8C-5E15-4B94-8BCC-8023C9B8C236",
"Templates": [
{
"TemplateName": "MyTemplate",
"Description": "Add Description",
"CreateTime": "2019-10-24T02:29:09.000000",
"UpdateTime": "2019-10-24T02:43:35.000000",
"TemplateId": "4237d4b9-31cc-45aa-9c11-6836b2fd****"
}
],
"Success": true
}
DeleteTemplate
删除模板。
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
--TemplateId | String | 是 | 4237d4b9-31cc-45aa-9c11-6836b2fd**** | 模板ID。 |
请求示例
aliyun ros DeleteTemplate --TemplateId "4237d4b9-31cc-45aa-9c11-6836b2fd****"
正常返回示例
{
"RequestId": "56F950C5-966B-4CFB-B350-1E08D770B5CE"
}
GetTemplateEstimateCost
查询模板中要创建的资源的预估价格。
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
--RegionId | String | 是 | cn-beijing | 资源栈所属的地域ID。您可以调用DescribeRegions查看最新的阿里云地域列表。 |
--Parameters.N.ParameterKey | String | 否 | InstanceId | 参数的名称。如果未指定特定参数的名称和值,则ROS将使用模板中指定的默认值。N的最大值为200。 |
--Parameters.N.ParameterValue | String | 否 | i-xxxxxx | 参数的值。N的最大值为200。 |
--TemplateURL | String | 否 | oss://ros-template/demo | 包含模板主体的文件的位置。URL必须指向位于http Web服务器(http、https),或阿里云OSS存储桶(例如oss://ros/template/demo、oss://ros/template/demo?RegionId=cn-hangzhou。OSS地域如未指定,默认与接口参数RegionId相同)中的模板(最大长度:524288字节)。您必须指定TemplateBody或TemplateURL参数,但不能同时指定两者。 |
--TemplateBody | String | 否 | { "ROSTemplateFormatVersion": "2015-09-01" } | 包含模板体的结构,长度为1~51200个字节。您必须指定TemplateBody或TemplateURL参数,但不能同时指定两者。 |
--ClientToken | String | 否 | 123e4567-e89b-12d3-a456-42665544**** | 保证请求的幂等性。该值由客户端生成,并且必须是全局唯一的。仅允许使用字母(区分大小写)、数字、连字符和下划线。最多可包含64个字符。详情请参见如何保证幂等性。 |
请求示例
aliyun ros GetTemplateEstimateCost --TemplateBody "{'ROSTemplateFormatVersion': '2015-09-01', 'Resources': {'Database': {'Type': 'ALIYUN::RDS::DBInstance', 'Properties': {'Engine':'MySQL', 'EngineVersion':'5.6', 'DBInstanceClass':'rds.mysql.t1.small', 'DBInstanceStorage':'10', 'DBInstanceNetType':'Intranet', 'SecurityIPList': '10.23.XX.XX/XX', 'MasterUsername': 'hope', 'MasterUserPassword': 'lvpd3****', 'DBMappings':[{'DBName': 'hope', 'CharacterSetName': 'utf8'}]}}}}"
正常返回示例
{
"RequestId": "900BDC31-631E-5243-8170-9554375F3C92",
"Resources": {
"Database": {
"Type": "ALIYUN::RDS::DBInstance",
"Success": true,
"Result": {
"Order": {
"Currency": "CNY",
"RuleIds": {
"RuleId": [
"102204102264****"
]
},
"TradeAmount": 0.064,
"OriginalAmount": 0.205,
"Coupons": {
"Coupon": []
},
"DiscountAmount": 0.141
},
"OrderSupplement": {
"PriceUnit": "/Hour",
"ChargeType": "PostPaid",
"Quantity": 1,
"PriceType": "Total"
},
"RequestId": "50BEC4FA-F605-502E-AE15-915A49076D66",
"Rules": {
"Rule": [
{
"RuleDescId": "1022041022646162",
"Name": "合同优惠_整单_3.1250折"
}
]
}
}
}
}
}
ValidateTemplate
验证将要创建资源栈的模板。
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
--RegionId | String | 否 | cn-hangzhou | 资源栈模板所属的地域ID。您可以调用DescribeRegions查看最新的阿里云地域列表。 |
--TemplateBody | String | 否 | {"ROSTemplateFormatVersion":"2015-09-01"} | 包含模板体的结构。长度为1~51200个字节。您必须指定TemplateBody或TemplateURL参数,但不能同时指定两者。 |
--TemplateURL | String | 否 | oss://ros/template/demo | 包含模板主体的文件的位置。URL必须指向位于http Web服务器(http,https),或阿里云OSS存储桶(例如oss://ros/template/demo、oss://ros/template/demo?RegionId=cn-hangzhou。OSS地域如未指定,默认与接口参数RegionId相同)中的模板(最大长度:524288字节)。您必须指定TemplateBody或TemplateURL参数,但不能同时指定两者。 |
请求示例
aliyun ros ValidateTemplate --TemplateBody "{"ROSTemplateFormatVersion": "2015-09-01", "Parameters": {"username": {"Type": "String", "Label": "CLI", "Default": "CLITest"}}}"
正常返回示例
{
"Parameters": [
{
"Default": "CLITest",
"NoEcho": "false",
"Description": "",
"Type": "String",
"Label": "CLI",
"ParameterKey": "username"
}
],
"Description": "No description",
"RequestId": "30FA40B9-82DE-4849-A95C-7D19F308FD20"
}