通过CLI使用ROS

阿里云CLI(Command Line Interface)是一种命令行工具,允许用户在终端或命令行界面调用阿里云API,来创建、配置、管理阿里云云资源。本文主要介绍如何使用阿里云CLI调用ROS API来管理ROS。

说明

关于阿里云CLI的详细信息,请参见什么是阿里云CLI

CLI使用方式

安装和配置CLI

  1. 安装阿里云CLI。

    阿里云CLI提供了Windows、Linux和macOS三种操作系统下的安装服务,请根据您使用设备的操作系统选择:

  2. 配置阿里云CLI。

    配置调用ROS资源所需的凭证信息、地域、语言等信息。具体配置,请参见身份凭证类型

    重要

    为保证账号安全,建议您创建专用于API访问的RAM用户并创建对应的AccessKey,请参见身份管理

通过CLI调用ROS API

安装配置好CLI后,您可以在终端按照以下命令结构,调用ROS API。

关于命令结构说明,请参见命令结构

aliyun ros <API Name> --<参数1 取值1> --<参数2 取值2> ...

您可以通过OpenAPI自动生成API对应的CLI代码

  1. 登录资源编排API调试列表

  2. 选择您需要使用的API,并填写参数。

  3. 单击右侧的CLI示例页签即可生成携带参数的命令示例。

    aliyun ros CreateStack --region cn-hangzhou --RegionId 'cn-hangzhou' --StackName stack_name

    image

CLI调用示例

以下示例为您展示使用阿里云CLI调用资源编排ROS API。

重要
  • 以下请求仅为示例,具体请求命令请根据实际需求修改。

  • 示例仅为部分API,更多ROS API信息,请参见API概览

创建自定义模板

调用CreateTemplate - 创建自定义模板,创建一个名称为MyTemplate的自定义模板,模板内容为创建一个VPC。

参数

示例取值

TemplateName

模板名称:MyTemplate

TemplateBody

模板内容:创建VPC

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  VPC:
    Type: ALIYUN::ECS::VPC
    Properties:
      VpcName: myvpc
      CidrBlock: 192.168.0.0/16
  • 请求示例。

    aliyun ros CreateTemplate --TemplateName MyTemplate --TemplateBody "ROSTemplateFormatVersion: '2015-09-01' Resources: VPC: Type: ALIYUN::ECS::VPC Properties: VpcName: myvpc CidrBlock: 192.168.0.0/16"
  • 返回示例。

    {
            "RequestId": "24C1BF0F-F65A-45CA-9612-53D0C11BC539",
            "TemplateId": "4237d4b9-31cc-45aa-9c11-6836b2fd****"
    }

查询资源类型

调用GetResourceType - 查询资源类型的详细信息,查询资源类型为ALIYUN::ECS::VPC的详细信息。

参数

示例取值

ResourceType

资源类型:ALIYUN::ECS::VPC

  • 请求示例。

    aliyun ros GetResourceType --ResourceType ALIYUN::ECS::VPC
  • 返回示例。

    {
            "Attributes": {
                    "RouteTableId": {
                            "Description": "The router table id of created VPC."
                    },
                    "VRouterId": {
                            "Description": "Router id of created VPC."
                    },
                    "VpcId": {
                            "Description": "Id of created VPC."
                    }
            },
            "ResourceType": "ALIYUN::ECS::VPC",
            "RequestId": "8A897F64-6A61-446A-A913-30CA572EE181",
            "Properties": {
                    "CidrBlock": {
                            "Required": false,
                            "Description": "The IP address range of the VPC in the CIDR block form. You can use the following IP address ranges and their subnets:\n10.0.0.0/8\n172.16.0.0/12 (Default)\n192.168.0.0/16",
                            "Immutable": true,
                            "Type": "string",
                            "Constraints": [
                                    {
                                            "CustomConstraint": "vpc.cidr"
                                    }
                            ],
                            "UpdateAllowed": false
                    },
                    "VpcName": {
                            "Required": false,
                            "Description": "Display name of the vpc instance, [2, 128] English or Chinese characters, must start with a letter or Chinese in size, can contain numbers, '_' or '.', '-'",
                            "Immutable": false,
                            "Type": "string",
                            "Constraints": [
                                    {
                                            "CustomConstraint": "ecs.name"
                                    }
                            ],
                            "UpdateAllowed": false
                    },
                    "Description": {
                            "Required": false,
                            "Description": "Description of the vpc, [2, 256] characters. Do not fill or empty, the default is empty.",
                            "Immutable": false,
                            "Type": "string",
                            "Constraints": [
                                    {
                                            "CustomConstraint": "ecs.description"
                                    }
                            ],
                            "UpdateAllowed": false
                    },
                    "ResourceGroupId": {
                            "Description": "Resource group id.",
                            "Required": false,
                            "Immutable": false,
                            "Type": "string",
                            "UpdateAllowed": false
                    }
            }
    }

创建资源栈

调用CreateStack - 创建资源栈,在杭州地域下,根据已有模板创建一个名称为MyStack的资源栈,并将创建资源栈的超时时间设置为10分钟。

参数

示例取值

RegionId

地域:cn-hangzhou

StackName

资源栈名称:MyStack

TimeoutInMinutes

创建资源栈的超时时间:10

TemplateURL

已有模板的路径:oss://ros-template/demo

  • 调用示例。

     aliyun ros CreateStack --RegionId cn-hangzhou --StackName MyStack --TimeoutInMinutes 10 --TemplateURL oss://ros-template/demo
  • 返回示例。

    {
            "StackId": "c18d62d8-51ce-4e8e-b8f6-e00be431****",
            "RequestId": "53C2DB3A-8374-4464-9466-952614EEC159"
    }

查询更改集信息

调用GetChangeSet - 查询更改集信息,查询杭州地域下ID为1f6521a4-05af-4975-afe9-bc4b45ad****的更改集信息并获取模板内容信息。

参数

示例取值

RegionId

地域:cn-hangzhou

ChangeSetId

更改集ID:1f6521a4-05af-4975-afe9-bc4b45ad****

ShowTemplate

是否获取模板:true

  • 请求示例。

    aliyun ros GetChangeSet --RegionId cn-hangzhou --ChangeSetId 1f6521a4-05af-4975-afe9-bc4b45ad**** --ShowTemplate true
  • 返回示例。

    {
        "ExecutionStatus": "AVAILABLE",
        "Parameters": [{
                "ParameterValue": "342546988786****",
                "ParameterKey": "ALIYUN::AccountId"
            },
            {
                "ParameterValue": "None",
                "ParameterKey": "ALIYUN::NoValue"
            },
            {
                "ParameterValue": "cn-beijing",
                "ParameterKey": "ALIYUN::Region"
            },
            {
                "ParameterValue": "c18d62d8-51ce-4e8e-b8f6-e00be431****",
                "ParameterKey": "ALIYUN::StackId"
            },
            {
                "ParameterValue": "MyStack",
                "ParameterKey": "ALIYUN::StackName"
            },
            {
                "ParameterValue": "sg-bfwb3h3eosga1tj5****",
                "ParameterKey": "SecurityGroupId"
            }
        ],
        "Changes": [{
            "Type": "Resource",
            "ResourceChange": {
                "LogicalResourceId": "WebServer",
                "ResourceType": "ALIYUN::ECS::Instance",
                "Action": "Add",
                "Details": [],
                "Scope": []
            }
        }],
        "Description": "It is a demo.",
        "TimeoutInMinutes": 12,
        "ChangeSetId": "1f6521a4-05af-4975-afe9-bc4b45ad****",
        "StackId": "c18d62d8-51ce-4e8e-b8f6-e00be431****",
        "DisableRollback": false,
        "ChangeSetName": "MyChangeSet",
        "ChangeSetType": "CREATE",
        "StackName": "MyStack",
        "Status": "CREATE_COMPLETE",
        "TemplateBody": "{\"ROSTemplateFormatVersion\":\"2015-09-01\",\"Parameters\":{\"SecurityGroupId\":{\"Type\":\"String\"}},\"Resources\":{\"WebServer\":{\"Type\":\"ALIYUN::ECS::Instance\",\"Properties\":{\"ImageId\":\"centos_7\",\"InstanceType\":\"ecs.c6.large\",\"SecurityGroupId\":{\"Ref\":\"SecurityGroupId\"}}}},\"Outputs\":{\"InstanceId\":{\"Value\":{\"Fn:GetAtt\":[\"WebServer\",\"InstanceId\"]}},\"PublicIp\":{\"Value\":{\"Fn:GetAtt\":[\"WebServer\",\"PublicIp\"]}}}}",
        "RequestId": "A46D85A6-9C8E-4603-9989-1FF3F91512F6",
        "RegionId": "cn-beijing",
        "CreateTime": "2019-09-05T14:39:31"
    }

相关文档

在阿里云CLI中,您可根据需要使用命令行选项,用来修改命令的默认行为或为命令提供额外功能,请参见API命令可用选项