使用云API管理你的云服务器

今年来业务上云成为了主流,越来越的业务选择了,将自己的服务部署到了云上,而云上运维则成了必不可少的东西,比如我的机器突然卡死了,然后我没有办法即时去到控制面板去操作,如何快速的重启,部署成了关键,当然扩容也是一样,如果不想使用平台的服务去扩容,我们也可以通过云API去完成操作。

目前主流的云服务厂商都有提供API操作接口,各家地址如下:

https://cloud.tencent.com/document/api 腾讯云API

https://next.api.aliyun.com/document 阿里云API

本次教程将以如何操作云服务器为基础来进行。

选择对应的API进入界面,你可以看到所有的可以使用API来操作的页面接口,几乎覆盖了所有的云有关的业务。

云服务器管理规程 云服务操作管理_阿里云

我们选择自己需要的,进入相关的界面,这里我以查询实例列表为例。

云服务器管理规程 云服务操作管理_阿里云_02

点击调试可以进入相关调试页面。同时下方兼顾了接口描述和参数描述。

云服务器管理规程 云服务操作管理_服务器_03

进入之后可以看到如下参数,region为必填,instance,filter这些都是选择性的填写,一般只有涉及到搜索的时候才会填写。整个界面的左边就是代码,代码会根据你的选项实时生成。

云服务器管理规程 云服务操作管理_服务器_04

选择完Intance之后会出现如下代码,这里我们直接拿到idea里面跑起来即可,这里这里的AKSK需要使用自己的。

package main

import (
        "fmt"

        "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
        "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
        "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile"
        cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312"
)

func main() {
        // 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密
        // 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取
        credential := common.NewCredential(
                "SecretId",
                "SecretKey",
        )
        // 实例化一个client选项,可选的,没有特殊需求可以跳过
        cpf := profile.NewClientProfile()
        cpf.HttpProfile.Endpoint = "cvm.tencentcloudapi.com"
        // 实例化要请求产品的client对象,clientProfile是可选的
        client, _ := cvm.NewClient(credential, "ap-chongqing", cpf)

        // 实例化一个请求对象,每个接口都会对应一个request对象
        request := cvm.NewDescribeInstancesRequest()
        


        // 返回的resp是一个DescribeInstancesResponse的实例,与请求对象对应
        response, err := client.DescribeInstances(request)
        if _, ok := err.(*errors.TencentCloudSDKError); ok {
                fmt.Printf("An API error has returned: %s", err)
                return
        }
        if err != nil {
                panic(err)
        }
        // 输出json格式的字符串回包
        fmt.Printf("%s", response.ToJsonString())
}