开发者社区> 资源编排(ROS)> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 资源编排 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();
    } 
}

完整的工程代码见附件。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

附件下载:https://developer.aliyun.com/topic/download?id=419

相关文章
java网络编程(3)UDP协议编程(单播多播广播)
这一篇文章开始着重讲解UDP编程。这块的知识也算是非常重要的,而且现在的编程都离不开网络。花了一些时间整理了一下。
40 0
java调用阿里云日志SDK 查询日志
java调用阿里云日志SDK 查询日志
155 0
阿里云智能视觉生产图像处理通用分割Java SDK使用说明
通用分割是对输入图中主体进行分割,输出对应的png透明图,支持包括人体、动物、物品等。本文介绍如何使用阿里云智能视觉生产图像处理通用分割Java SDK,包括SDK的安装方法及SDK代码示例。
60 0
阿里云智能视觉生产图像处理人像分割Java SDK使用说明
人像分割用于识别输入图像中的人体轮廓,与背景进行分离,返回分割后的前景人像图(4通道),适用于单人、多人、复杂背景、各类人体姿态等场景。本文介绍如何使用阿里云智能视觉生产图像处理人体分割Java SDK,包括SDK的安装方法及SDK代码示例。
2429 0
java使用阿里云短信服务发送短信验证码
java使用阿里云短信服务发送短信验证码
248 0
【Java】阿里云智能编码插件助力你高效开发
阿里云智能编码插件(Alibaba Cloud AI Coding Assistant)是一款AI开发插件,其强大的代码智能补全、代码示例搜索等功能,能让你的开发工作沉浸在IDE中,行云流水般编码,事半功倍地完成开发工作。
193 0
阿里云资源编排之函数计算
资源编排服务(Resource Orchestration Service, 简称ROS)是阿里云提供的一项简化云计算资源管理的服务。您可以遵循ROS定义的模板规范编写资源栈模板,在模板中定义所需的云计算资源(例如ECS实例、RDS数据库实例)、资源间的依赖关系等。本文将为您详细介绍阿里云资源编排服务的函数计算相关功能。
724 0
轻松使用阿里云资源编排,方便你的API管理
11月初,阿里云ROS正式发布API 网关(API Gateway)资源,为云计算用户提供高性能、高可用的 API 托管服务,帮助用户对外开放其部署在 ECS、容器服务等阿里云产品上的应用,提供完整的 API 发布、管理、维护生命周期管理。
3121 0
+关注
资源编排(ROS)
资源编排服务(Resource Orchestration Service, 简称ROS)是阿里云提供的一项简化云计算资源管理的服务。您可以遵循ROS定义的模板规范编写资源栈模板,在模板中定义所需的云计算资源(例如ECS实例、RDS数据库实例)、资源间的依赖关系等。ROS的编排引擎将根据模板自动完成
16
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载