You need to enable JavaScript to run this app.
导航
云管平台集成方案
最近更新时间:2024.08.08 11:59:48首次发布时间:2024.08.08 11:59:48
项目背景介绍

大型集团公司的IT管理,通常是通过内部云管理平台实现的统一管理。该平台实现了火山引擎的计算、网络、数据库、存储、中间件等常用的云资源的全生命周期管理。
采用云管平台可帮助企业简化多云环境下的IT管理工作,实现云资源全生命周期管理和精细化运维,提升资源使用率,降低成本和运维管理风险。云管平台的集成,依赖完善和高质量的OpenAPI、SDK和配套工具。

面临挑战
  • 对业务需要使用的云产品,如何方便和快捷的找到资源增删改查所需的OpenAPI,并且使用统一的规范进行接入。

  • 如何能够快速找到API的使用文档和SDK,降低接入门槛。

  • 云管平台不同身份的访问权限可设置,操作记录可追溯,保障业务的安全合规。

火山引擎的解决方案

方案介绍

  • 火山引擎的API网关,统一所有云产品的OpenAPI设计规范,包括:API调用的入参、出参、错误码和示例,确保各云产品规范和风格统一。

  • 官网OpenAPI中心支持快速查找到所需云产品的OpenAPI,通过SDK或者在线调试工具、Demo示例等,确保顺利集成云服务。

  • 所有OpenAPI均纳入IAM权限管理,并且由云审计对API操作进行参数级别的日志记录,用于事后追溯。

以下以通过火山引擎SDK调用接口退订实例为例,介绍云管平台集成和使用SDK的过程:
第一步:明确开发语言
根据项目工程所使用的开发语言选择火山引擎的SDK,火山引擎目前支持主流的Java、Go、Python、PHP、Nodejs,所有SDK/Demo源码均已通过github开源。
第二步:安装SDK

以Java语言为例,更多可参考:火山引擎SDK中心。

步骤一: 集成服务仓库

  1. 新建一个Maven项目,在项目目录下的pom.xml中,添加如下设置,引入当前产品的SDK依赖。引入依赖后,Maven项目管理工具会自动下载相关jar包。
<dependencies>
  <dependency>
    <groupId>com.volcengine</groupId>
    <artifactId>volcengine-java-sdk-billing</artifactId>
   <version>0.1.82</version>
  </dependency>
</dependencies>
  1. 如果需要引入火山引擎已支持的全部云产品SDK,可以通过bom方式引入。如下文所示,引入volcengine-java-sdk-bom后,即可引入所有支持的服务:
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.volcengine</groupId>
            <artifactId>volcengine-java-sdk-bom</artifactId>
            <version>0.1.82</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

步骤二: Credentials 配置
通过环境变量导入:

export VOLCENGINE_ACCESS_KEY=your ak
export VOLCENGINE_SECRET_KEY=your sk
#如果使用token
export VOLCENGINE_SESSION_TOKEN=token

第三步:发起API调用,完成实例退订。
可通过API Explorer在线调试API,也可以输入参数,动态生成调用API的SDK示例。

/**
* Example Code generated by Beijing Volcanoengine Technology.
*/
package com.volcengine.sdk.example;

import com.volcengine.ApiClient;
import com.volcengine.ApiException;
import com.volcengine.sign.Credentials;

import com.volcengine.billing.BillingApi;
import com.volcengine.billing.model.*;


public class TestUnsubscribeInstance {
    public static void main(String[] args) throws Exception {
        // 注意示例代码安全,代码泄漏会导致AK/SK泄漏,有极大的安全风险。
        String ak = "Your AK";
        String sk = "Your SK";
        String region = "cn-beijing";

        ApiClient apiClient = new ApiClient()
                .setCredentials(Credentials.getCredentials(ak, sk))
                .setRegion(region);

        BillingApi api = new BillingApi(apiClient);
        
        UnsubscribeInstanceRequest unsubscribeInstanceRequest = new UnsubscribeInstanceRequest();
        unsubscribeInstanceRequest.setInstanceID("vol-924610****");
        unsubscribeInstanceRequest.setProduct("volume");
        unsubscribeInstanceRequest.setUnsubscribeRelatedInstance(true);
        
        try {
            // 复制代码运行示例,请自行打印API返回值。
            api.unsubscribeInstance(unsubscribeInstanceRequest);
        } catch (ApiException e) {
            // 复制代码运行示例,请自行打印API错误信息。
            // System.out.println(e.getResponseBody());
        }
    }
}

方案优势

  • OpenAPI作为对资源的原子化操作,可以基于任意的业务场景和诉求灵活定制,实现云管平台自动化、统一管理云资源。

  • SDK屏蔽了调用API繁琐的签名过程,只需要关注跟业务逻辑相关的参数,更便于集成云服务。API Explorer、SDK示例等降低了集成过程中的开发和调试成本。

  • IAM灵活的权限控制,可以针对用户、角色及组织架构的授权模型可对运维人员进行精细化权限管理。结合云审计的操作日志可清晰记录运维人员对云资源的操作轨迹。