使用阿里云API快速部署ECI

本文最后更新于$day天前,文中所描述的信息可能已发生改变。

0、前序

前几篇文章都是在说如何在Lunix里面安装Docker和STF,阿里云最近推出了ECI弹性容器服务。可以理解为一个Docker容器,按秒计费,如果一直开着,费用不低,还不如组一台ECS服务器。如果每次使用时才激活,这样子又可以省钱,又可以快速部署。但是阿里云的创建ECI页面可算是复杂,要输入的东西非常多,这样不利于快速部署。于是我们需要使用API来创建服务于。

1、准备工作

ECI需要交换机、EIP、安全组、镜像,我们除了EIP之外,其他都要先建好,因为通常不用修改,没必要在API创建。

然后进入 OpenAPI Explorer => https://open.aliyun.com/apis 浏览文档。

接着,我们需要新建一个 AccessKey 。方法在控制台的右上角找到菜单,如下图:

创建完毕后,记录下 AccessKey 及 Access Key Secret

2、开始编码

创建项目.Net项目,NuGet 安装aliyun-net-sdk-core及Newtonsoft.Json

阿里云SDK基本上操作很简单,可以在OpenAPI上查询并且实时调试。

主要思路是先创建一个 Profile 再 创建一个 DefaultAcsClient,再创建一个CommonRequest

往CommonRequest扔入需要执行的操作,等待 GetCommonResponse 基本就完成。和HTTP请求类似。

其中,创建EIP需要用到 AllocateEipAddress 申请EIP DescribeEipAddresses 查看EIP ,ReleaseEipAddress 释放 EIP 参数还是很简单的,略微测试一下即可。

而新建ECI需要先调试 DescribeContainerGroups 参数,获取 以下几个参数

1
2
3
4
5
SecurityGroupId   =>安全组
VSwitchId =>交换机ID
Container.1.Image =>你需要部署镜像
Container.1.Cpu => CPU
Container.1.Memory =>内存

需要用到的API有 CreateContainerGroup 创建EIP ,DescribeContainerGroups 显示 所有ECI 、DeleteContainerGroup 删除ECI

3、最后GUI修饰

我的逻辑是,先创建EIP,然后创建ECI,最后将EIP提交到DNSPod,完成整个创建流程。可以方便我一键搭建需要服务,也免去每次登陆阿里云的烦恼!~但是删除的时候,需要先删除ECI,要过大约一分钟EIP才能释放,所以还是需要人手操作一下。后续也可以根据代码自己写一下。