阿里云资源编排服务 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();
    } 
}

完整的工程代码见附件。

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
目录
相关文章
|
2月前
|
Java Maven Windows
使用Java创建集成JACOB的HTTP服务
本文介绍了如何在Java中创建一个集成JACOB的HTTP服务,使Java应用能够调用Windows的COM组件。文章详细讲解了环境配置、动态加载JACOB DLL、创建HTTP服务器、实现IP白名单及处理HTTP请求的具体步骤,帮助读者实现Java应用与Windows系统的交互。作者拥有23年编程经验,文章来源于稀土掘金。著作权归作者所有,商业转载需授权。
使用Java创建集成JACOB的HTTP服务
|
1月前
|
前端开发 Java API
JAVA Web 服务及底层框架原理
【10月更文挑战第1天】Java Web 服务是基于 Java 编程语言用于开发分布式网络应用程序的一种技术。它通常运行在 Web 服务器上,并通过 HTTP 协议与客户端进行通信。
23 1
|
1月前
|
Java 关系型数据库 MySQL
java控制Windows进程,服务管理器项目
本文介绍了如何使用Java的`Runtime`和`Process`类来控制Windows进程,包括执行命令、读取进程输出和错误流以及等待进程完成,并提供了一个简单的服务管理器项目示例。
33 1
|
2月前
|
Kubernetes API 开发工具
【Azure Developer】通过SDK(for python)获取Azure服务生命周期信息
需要通过Python SDK获取Azure服务的一些通知信息,如:K8S版本需要更新到指定的版本,Azure服务的维护通知,服务处于不健康状态时的通知,及相关的操作建议等内容。
46 18
|
1月前
|
Java 数据库
基于java的汽车服务管理系统(Car Service Management System)
基于java的汽车服务管理系统(Car Service Management System)
18 0
|
2月前
|
JSON Java 数据格式
java调用服务报错400
java调用服务报错400
59 2
|
2月前
|
JSON Java 数据格式
java调用服务报错415 Content type ‘application/octet-stream‘ not supported
java调用服务报错415 Content type ‘application/octet-stream‘ not supported
87 1
|
2月前
|
Java 数据库连接 数据库
Java服务提供接口(SPI)的设计与应用剖析
Java SPI提供了一种优雅的服务扩展和动态加载机制,使得Java应用程序可以轻松地扩展功能和替换组件。通过合理的设计与应用,SPI可以大大增强Java应用的灵活性和可扩展性。
70 18
|
2月前
|
存储 SQL 分布式计算
Java连接阿里云MaxCompute例
要使用Java连接阿里云MaxCompute数据库,首先需在项目中添加MaxCompute JDBC驱动依赖,推荐通过Maven管理。避免在代码中直接写入AccessKey,应使用环境变量或配置文件安全存储。示例代码展示了如何注册驱动、建立连接及执行SQL查询。建议使用RAM用户提升安全性,并根据需要配置时区和公网访问权限。具体步骤和注意事项请参考阿里云官方文档。
|
3月前
|
开发者 C# 自然语言处理
WPF开发者必读:掌握多语言应用程序开发秘籍,带你玩转WPF国际化支持!
【8月更文挑战第31天】随着全球化的加速,开发多语言应用程序成为趋势。WPF作为一种强大的图形界面技术,提供了优秀的国际化支持,包括资源文件存储、本地化处理及用户界面元素本地化。本文将介绍WPF国际化的实现方法,通过示例代码展示如何创建和绑定资源文件,并设置应用程序语言环境,帮助开发者轻松实现多语言应用开发,满足不同地区用户的需求。
69 0

热门文章

最新文章