本文为您介绍如何通过阿里云CLI(3.0.25以下版本)调用模板相关的API。

DescribeTemplate

查询资源栈模板信息。

命令 功能 备注
--StackName 指定资源栈的名称 必选
--StackId 指定资源栈的ID 必选

调用示例

aliyun ros GET /stacks/[StackName]/[StackId]/template

获取成功后,输出资源栈模板,否则输出错误信息。

成功示例

$ aliyun ros GET /stacks/ros_test_cli_stack_name/***-**-**-**-***/template

{
    "ROSTemplateFormatVersion": "2015-09-01",
    "Resources": {
        "Eip": {
            "Type": "ALIYUN::VPC::EIP",
            "Properties": {
                "InternetChargeType": "PayByTraffic",
                "Bandwidth": 200
            }
        }
    },
    "Outputs": {
        "EipAddress": {
            "Value": {
                "Fn::GetAtt": [
                    "Eip",
                    "EipAddress"
                ]
            }
        },
        "AllocationId": {
            "Value": {
                "Fn::GetAtt": [
                    "Eip",
                    "AllocationId"
                ]
            }
        }
    }
}

失败示例

$ aliyun ros GET /stacks/ros_test_cli_stack_name/***-**-**-**-***/template

ERROR: SDK.ServerError
ErrorCode:
Recommend:
RequestId:
Message: {"message": "The Stack (ros_test_cli_stack_name) could not be found.", "code": "StackNotFound"}

ValidateTemplate

验证模板信息。

调用示例

aliyun ros POST /validate --body '{
  "Template": "[Template]",
  "Name": "[StackName]",
  "TimeoutMins": 10
}'

获取成功后,输出模板参数相关信息,否则输出错误信息。

成功示例

$ aliyun ros POST /validate --body '{
  "Template": {
    "ROSTemplateFormatVersion": "2015-09-01"
  },
  "Name": "ros_test_cli_stack_name",
  "TimeoutMins": 10
}'

{
    "Description": "No description",
    "Parameters": {}
}

失败示例

$ aliyun ros POST /validate --body '{
  "Template": {
    "ROSTemplateFormatVersion": "2015-09-02"
  },
  "Name": "ros_test_cli_stack_name",
  "TimeoutMins": 10
}'

ERROR: SDK.ServerError
ErrorCode: InvalidTemplateVersion
Recommend:
RequestId:
Message: The template version is invalid: "ROSTemplateFormatVersion: 2015-09-02". "ROSTemplateFormatVersion" should be: 2015-09-01