使用ROS CDK进行资源编排
1. 安装CDK CLI
阿里云ROS CDK(Cloud Development Toolkit)是资源编排(ROS)提供的一种命令行工具,帮助您使用多种编程语言定义云资源。您无需使用繁琐的JSON或YAML模板语法,即可使用ROS CDK完成资源的创建和配置,实现自动化部署及运维。
💡 执行如下操作前,请选“确认开启实验”。
如何使用ROS CDK?有两种方法可使用ROS CDK工具:
1)您可以直接使用Cloud Shell(直接点击即可)。
💡首次进入Cloud Shell,可能会提醒“挂载存储空间”,这里我们不需要挂载,直接点击“暂不创建”即可。
Cloud Shell内置了ROS CDK工具包,目前我们在使用前需要升级下node版本到14,可在Cloud Shell里输入如下命令进行升级:
a)安装volta,volta可方便管理多版本的node:
curl https://get.volta.sh | bash
因为网络原因这一步可能稍久,请耐心等待,如果失败可多次尝试。
b)安装完成后需要重新加载下profile,更新当前系统PATH,否则无法找到volta命令:
. ~/.profile
b)通过volta安装node 14:
volta install node@14
✅ 至此可以进入下一小节
2)自行安装ROS CDK工具
您也可以在自己的云服务或本地安装ROS CDK工具,安装方法可参考官方文档安装ROS CDK。
2. 查看CDK功能
当ROS CDK安装完成后,执行以下命令,查看ROS CDK功能列表。更多ROS CDK命令的含义及使用方法,详情请参见ROS CDK功能列表。
ros-cdk
返回结果如下,您查看到ROS CDK功能列表。
3. 使用CDK创建VPC
本文以TypeScript语言为例,为您介绍如何使用ROS CDK为资源栈创建VPC。
1)初始化工程。
每个ROS CDK应用都要求创建在一个独立的工程目录下,且该应用需要使用独立工程目录中模块的依赖项。所以在创建应用之前,需要先创建一个工程目录并进行初始化。
执行以下命令,创建工程目录并初始化工程。
mkdir demo cd demo ros-cdk init --language=typescript --generate-only=true
返回结果如下,表示您已成功创建工程目录并初始化工程。
2)配置阿里云凭证信息。
2.1)执行以下命令,配置阿里云凭证信息。
ros-cdk config
2.2)根据界面提示,输入endpoint、defaultRegionId、accessKeyId和accessKeySecret配置信息。
💡注意:这里我们需要用到AccessKey的AK/SK,同时这个AK需要有创建VPC的权限,这里我们采用这里创建的主AK。
配置内容说明:
endpoint:ROS服务地址。默认值为https://ros.aliyuncs.com。
defaultRegionId:ROS资源栈部署的地域。默认值为cn-hangzhou。
Authenticate mode:鉴权方式。本示例的鉴权方式为AccessKey,您需要输入accessKeyId和accessKeySecret。
ros-cdk config endpoint(optional, default:https://ros.aliyuncs.com): defaultRegionId(optional, default:cn-hangzhou): [1] AK [2] StsToken [3] RamRoleArn [4] EcsRamRole [0] CANCEL Authenticate mode [1...4 / 0]: 1 accessKeyId:************************ accessKeySecret:****************************** ✅ Your cdk configuration has been saved successfully!
3)安装依赖
3.1)修改package.json文件,添加ECS依赖包。
{ "name": "demo", "version": "0.1.0", "bin": { "demo": "bin/demo.js" }, "scripts": { "build": "tsc", "test": "jest" }, "devDependencies": { "@types/jest": "^25.2.1", "@types/node": "10.17.5", "typescript": "^3.9.7", "jest": "^25.5.0", "ts-jest": "^25.3.1", "ts-node": "^8.1.0", "babel-jest": "^26.6.3", "@babel/core": "^7.12.9", "@babel/preset-env": "7.12.7", "@babel/preset-typescript": "^7.12.7", "@alicloud/ros-cdk-assert": "^1.0.0" }, "dependencies": { "@alicloud/ros-cdk-core": "^1.0.10", "@alicloud/ros-cdk-ecs": "^1.0.8" } }
3.2)执行以下命令,安装依赖。
npm install
返回结果如下,表示依赖安装成功。
4)创建资源栈
4.1)修改lib/demo-stack.ts文件,添加VPC。
import * as ros from '@alicloud/ros-cdk-core'; import * as ecs from '@alicloud/ros-cdk-ecs'; export class DemoStack extends ros.Stack { constructor(scope: ros.Construct, id: string, props?: ros.StackProps) { super(scope, id, props); new ros.RosInfo(this, ros.RosInfo.description, "This is the simple ros cdk app example."); // The code that defines your stack goes here new ecs.Vpc(this, 'vpc-from-ros-cdk', { vpcName: 'test-ros-cdk', cidrBlock: '10.0.0.0/8', description: 'This is ros cdk test' }); } }
4.2)执行以下命令,生成模板文件。
ros-cdk synth --json
返回结果如下,表示成功生成模板文件。
4.3)执行以下命令,创建资源栈。
ros-cdk deploy --sync
返回结果如下,表示成功创建资源栈。
4.4)执行以下命令,查询资源栈。
ros-cdk list-stacks
返回结果如下,您可查看到资源栈相关信息。
5)删除资源栈。
5.1)执行以下命令,删除资源栈。
ros-cdk destroy --sync
5.2)根据界面提示, 输入Y选项并执行命令,确认删除。
返回结果如下,表示成功删除资源栈。
实验链接:https://developer.aliyun.com/adc/scenario/68ca3cf56fa6491d84571e837606d4d6