阿里云资源编排服务 Java SDK使用入门

阿里云资源编排服务 Java SDK使用入门

安装依赖

添加Maven库

<repositories>
    <repository>
        <id>sonatype-nexus-staging</id>
        <name>Sonatype Nexus Staging</name>
        <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

在项目中包含依赖

创建一个新的maven项目,或者在您已有的项目中通过maven引入依赖:

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>3.2.4</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-ros</artifactId>
    <version>2.2.6</version>
</dependency>

ROS JAVA SDK 与服务器通过 HTTP 的方式交互,HTTP Request 和 Response 的内容为 json 格式的字符串,请在代码中引入合适的 json 包,如:

import org.json.JSONObject;

示例中使用的版本为:

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20170516</version>
</dependency>

初始化客户端

在您准备调用SDKjava类中引入相关的包:

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;

配置您的客户端对象:

private static String REGION_ID = "YOUR REGION";
private static String ACCESS_ID = "YOUR ID";
private static String ACCESS_KEY = "YOUR KEY";

IClientProfile profile = DefaultProfile.getProfile(REGION_ID, ACCESS_ID, ACCESS_KEY);
IAcsClient client = new DefaultAcsClient(profile);
  • 其中AccessKeyIdAccessKeySecure是用户访问阿里云Open API时的认证信息,可以登陆阿里云官方站后获得。
  • 第三个参数是用户访问的资源所在的默认region-id,参照区域列表。

使用SDK

基本流程

  • 根据应用场景选择要调用的方法,申明其请求对象

    CreateStacksRequest describe = new CreateStacksRequest();
    
  • 按照参数设置要求设置请求的参数,具体的参数设置要求参见 API文档
    // header
    describe.putHeaderParameter("x-acs-region-id", "cn-beijing"); 
    
    // url, sdk request会有对应的方法
    describe.setName("Name") 
    
    // Content
    describe.setContent(content.getBytes("utf-8"), "utf-8", FormatType.JSON);
    
  • 获取结果,为json字符串,之后您可以根据您的需要进行处理
    HttpResponse response = client.doAction(describe);
    String stringContent = ParseContent(response);
    System.out.println(stringContent);
    

这里我们列举四个示例,示例中用到的其余函数参见附件中的代码:

List Region

/*
 * List regions
 */
public static void ListRegions(IAcsClient client) {
    DescribeRegionsRequest describe = new DescribeRegionsRequest();

    try {
        HttpResponse response = client.doAction(describe);
        String stringContent = ParseContent(response);
        System.out.println(stringContent);

    }catch (ServerException e) {
        e.printStackTrace();
    }
    catch (ClientException e) {
        e.printStackTrace();
    }
}

示例输出:

{"Regions": [{"LocalName": "\u534e\u5317 1", "RegionId": "cn-qingdao"}, {"LocalName": "\u534e\u5317 2", "RegionId": "cn-beijing"}, {"LocalName": "\u534e\u5317 3", "RegionId": "cn-zhangjiakou"}, {"LocalName": "\u534e\u4e1c 1", "RegionId": "cn-hangzhou"}, {"LocalName": "\u534e\u4e1c 2", "RegionId": "cn-shanghai"}, {"LocalName": "\u534e\u5357 1", "RegionId": "cn-shenzhen"}, {"LocalName": "\u9999\u6e2f", "RegionId": "cn-hongkong"}, {"LocalName": "\u4e9a\u592a\u4e1c\u5317 1 (\u4e1c\u4eac)", "RegionId": "ap-northeast-1"}, {"LocalName": "\u4e9a\u592a\u4e1c\u5357 1 (\u65b0\u52a0\u5761)", "RegionId": "ap-southeast-1"}, {"LocalName": "\u4e9a\u592a\u4e1c\u5357 2 (\u6089\u5c3c)", "RegionId": "ap-southeast-2"}, {"LocalName": "\u7f8e\u56fd\u4e1c\u90e8 1 (\u5f17\u5409\u5c3c\u4e9a)", "RegionId": "us-east-1"}, {"LocalName": "\u7f8e\u56fd\u897f\u90e8 1 (\u7845\u8c37)", "RegionId": "us-west-1"}, {"LocalName": "\u4e2d\u4e1c\u4e1c\u90e8 1 (\u8fea\u62dc)", "RegionId": "me-east-1"}, {"LocalName": "\u6b27\u6d32\u4e2d\u90e8 1 (\u6cd5\u5170\u514b\u798f)", "RegionId": "eu-central-1"}]}

List Stacks

/*
 * List stacks
 */
public static void ListStacks(IAcsClient client) {
    DescribeStacksRequest describe = new DescribeStacksRequest();

    // example for set parameters in header
    describe.putHeaderParameter("x-acs-region-id", "cn-beijing"); 

    // example for set parameters in url
    describe.setName("liyi_test_170615"); // if not set, list all stacks

    try {
        HttpResponse response = client.doAction(describe);
        String stringContent = ParseContent(response);
        System.out.println(stringContent);

    }catch (ServerException e) {
        e.printStackTrace();
    }
    catch (ClientException e) {
        e.printStackTrace();
    }
}

Validate Template

/*
 * Validate a template
 * Succeed: return template
 * Fail: return error infomation
 */
public static void ValidateTemplate(IAcsClient client) {
    ValidateTemplateRequest describe = new ValidateTemplateRequest();

    // example for set parameters in content
    String content = "{\"Template\":" + readToString("C:\\Users\\quming.ly\\Desktop\\nodejs.json") + "}";
    try {
        describe.setContent(content.getBytes("utf-8"), "utf-8", FormatType.JSON);
    } catch (UnsupportedEncodingException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    try {
        HttpResponse response = client.doAction(describe);
        String stringContent = ParseContent(response);
        System.out.println(stringContent);

    }catch (ServerException e) {
        e.printStackTrace();
    }
    catch (ClientException e) {
        e.printStackTrace();
    }
}

Create Stack

/*
 * Create a template
 * Succeed: return stack name and id
 * Fail: return error infomation
 */
public static void CreateStack(IAcsClient client) {
    CreateStacksRequest describe = new CreateStacksRequest();

    // example for set parameters in header
    describe.putHeaderParameter("x-acs-region-id", "cn-beijing"); 

    // example for set parameters in content
    JSONObject object = new JSONObject();
    object.put("TimeoutMins", 60);
    object.put("Name", "JAVA_SDK_DEMO");
    object.put("Template",readToString("C:\\Users\\quming.ly\\Desktop\\template.json"));

    // The follow parameters are depend on your template
    JSONObject parameters = new JSONObject();
    parameters.put("DBUser", "Demo");
    parameters.put("DBPassword", "Demo123456");
    parameters.put("DBRootPassword", "Demo123456");
    parameters.put("InstancePassword", "Demo123456");

    object.put("Parameters", parameters);

    try {
        describe.setContent(object.toString().getBytes("utf-8"), "utf-8", FormatType.JSON);
    } catch (UnsupportedEncodingException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    try {
        HttpResponse response = client.doAction(describe);
        String stringContent = ParseContent(response);
        System.out.println(stringContent);

    }catch (ServerException e) {
        e.printStackTrace();
    }
    catch (ClientException e) {
        e.printStackTrace();
    }
}

完整的工程代码见附件。

时间: 2017-06-29

阿里云资源编排服务 Java SDK使用入门的相关文章

阿里云资源编排服务Python SDK使用入门

阿里云资源编排服务(ROS)为我们维护云计算资源提供了一个低成本.可靠.标准化的方案.基于ROS提供的能力,我们只要编写和维护资源模板文件,就可以达到维护云计算资源的目的,而不再需要花费很多的时间通过控制台来人肉配置.ROS为一些场景下的资源维护提供了不同的思路和可能性,比如很多需要大量临时计算资源的场景,使用ROS将使整个资源申请.应用构建.资源释放过程非常简单. ROS同时提供RESTful API和SDK,这使得我们可以很容易的把ROS对于资源的操作能力集成到我们的应用中.下面我们通过示例

通过命令行工具使用阿里云资源编排服务

资源编排ROS 是一种简单易用的云计算资源管理和自动化运维服务.用户通过模板描述多个云计算资源的依赖关系.配置等,并自动完成所有资源的创建和配置,以达到自动化部署.运维等目的. 了解更多 通过命令行工具使用阿里云资源编排服务 资源编排服务(ROS)支持用户通过模板文件定义所需的云资源,描述资源间的依赖关系和配置详情,并自动完成资源的创建和配置,以达到自动化部署.运维等目的. 作为一种自动化运维工具,阿里云ROS屏蔽了底层资源操作的复杂性,使得对基础设施资源的管理通过简单的代码就可以实现. 命令行

阿里云资源编排服务正式商业化 基础设施迎来自动化运维时代

近日,阿里云资源编排ROS(Resource Orchestration)服务正式商业化,阿里云产品家族再添管理利器. 资源编排服务(以下简称ROS)支持用户通过模板文件定义所需的云资源,描述资源间的依赖关系和配置详情,并自动完成资源的创建和配置,以达到自动化部署.运维等目的. 作为一种自动化运维工具,阿里云ROS屏蔽了底层资源操作的复杂性,使得对基础设施资源的管理通过简单的代码就可以实现. 告别手工运维 DevOps加速普及 云服务的一大优势是能够按需获取IT资源,所以越来越多的用户把应用系统

轻松使用阿里云资源编排,方便你的API管理

11月初,阿里云ROS正式发布API 网关(API Gateway)资源,为云计算用户提供高性能.高可用的 API 托管服务,帮助用户对外开放其部署在 ECS.容器服务等阿里云产品上的应用,提供完整的 API 发布.管理.维护生命周期管理.用户只需进行简单的操作,即可快速.低成本.低风险地开放数据或服务. 用户只需要按照自己的需求,根据ROS的模板规范,定义自己的API管理模板,就可以轻轻松松实现API组的创建/更新,API的创建/更新,API的发布或者版本切换,以及API授权,签名,流控等等的

告别繁荣缛节,阿里云资源编排支持API网关

阿里云ROS的API 网关资源11月初正式上线,资源编排(ROS) 支持在模板中定义API 网关资源,助力用户快速.便捷管理发布自己的API.目前,阿里云ROS 产品免费提供给广大用户. 资源编排服务 (Resource Orchestration Service 简称 ROS) 是一款帮助阿里云用户简化云计算资源管理和自动化运维的服务.用户遵循 ROS 定义的模板规范,编写模板文件,在模板中定义所需云计算资源的集合及资源间的依赖关系.资源配置细节等,ROS 通过编排引擎自动完成所有资源的创建和

使用阿里云开放搜索服务快速搭建资源搜索网站

大家好,我又来了,答应云栖论坛一周一篇文章, 由于工作太忙已中断1个多月实在抱歉,这一次写点轻松有趣的东西-快速的做个资源搜索站 依稀记得十来年前,带宽还只有2M的时候,受各个论坛启发,做了可以搜索嘿嘿嘿资源的搜索站 一晃这么多年过去,嘿嘿嘿的东西依然喜欢,但世间却变化万千 资源种类已不仅仅是X片,高清电影.纪录片.无损音乐.美剧.大型软件等等,似乎更加吸引 资源呈现方式也百花齐放,从最早的BT文件.电驴地址,到现在的磁链地址.各种云盘等等 而传统的P2P下载方式也变得格格不入,因为硬盘容量已经

如何接入阿里云短信服务 (完整指南)

目录 一.注册并实名认证 二.开通短信服务 三.获取AccessKey 四.设置短信内容 五.配置短信接口 六.发送短信 七.常见问题FAQ 一.注册并实名认证 使用阿里云短信服务,用户需要先在阿里云注册,并完成个人/企业实名认证. 注意:要发送营销短信的用户,必须完成企业实名认证 1.1 注册阿里云:点此注册  1.2 实名认证:点此认证  1.3 绑定企业支付宝: 点击绑定企业支付宝   二.开通短信服务 2.1.开通短信服务:点击开通短信服务 2.2 子账号页面:点击查看子账号页面 2.3

Docker监控技术原理和阿里云容器监控服务实践

在组织的云栖计算之旅第2期-Docker在云平台上的最佳实践专场中,阿里云晨末做了题为Docker监控原理和阿里云容器监控服务实践的分享.在本次分享中,他谈到了监控的重要性并且针对于Docker容器的监控技术进行了精彩分享.   本次分享的内容看起来非常高大上,但其实原理却非常简单.本次主要将分享两个部分,一部分将会分享Docker相关的监控原理,另外一部分就是介绍一下阿里云容器服务.在国内而言,阿里云的Docker产品是比较先进的,因为我们进行了大量的用户调研,所以很多用户想将业务迁移到Doc

容器监控—阿里云&amp;容器内部服务监控

目前Docker的使用越来越离不开对容器的监控,阿里云最近上线了容器服务,不但提供了核心的容器和宿主机监控能力,而且支持集成 Cloud Insight 监控,下面会介绍如何集成. 首先介绍一下阿里云的容器监控.阿里云容器服务在用户创建集群的时候就默认开启了几个容器服务,其中就包括一个容器监控服务,其监控大概就是使用这个服务来采集数据的. 容器监控的对象就是各个正在跑的容器本身的运行状况,而如果你想要监控在容器里面运行的服务的状况呢?这时候Cloud Insight 就可以帮到你了. 那么我们先