本文为您介绍如何通过阿里云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"
}