阿里云的OpenAPI来操作云资源

⚡⚡⚡ 新年新文⚡⚡⚡


文章目录


1,OpenAPI介绍

OpenAPI使用Http风格的接口,只要能发送网络请求的编程语言,甚至使用我们电脑或者手机中的浏览器都可以使用OpenAPI。除此之外针对我们常用的一些编程语言例如C++、JAVA、Python、Go、PHP、Node.js、.NET等阿里云都提供了对应的SDK,通过阿里云SDK调用OpenAPI会更加的容易。

OpenAPI Explorer 登录地址:https://next.api.aliyun.com

OpenAPI门户的访问方式:

2,OpenAPI的调用

2.1,OpenAPI的调用方式

  • 通过网页调用API
  • 通过命令行调用API
  • SDK调用示例
  • Webhook订阅API变更消息

OpenAPI入门调用操作流程图

2.2,使用SDK调用OpenAPI

  • 阿里云SDK支持C++,JAVA,PHP等开发语言
  • 阿里云SDK现在有两个版本,V2.0和V1.0版本,官方推荐使用V2.0版本
  • V2.0版本的SDK又有两种调用方式,分别是CommonRequest方式和标准SDK方式
  • 使用CommonRequest方式的时候,我们只需要调用一个通用的函数,但是在调用的时候需要提供参数的名称和参数值
  • 使用标准SDK方式的时候,使用每个功能都需要调用这个功能特定的函数。但是在调用的时候只需要提供参数值
  • 使用CommonRequest方式的好处是兼容性好,即使是阿里云组件功能升级也不需要更新SDK。但是参数冗长
  • 使用SDK的好处是,函数参数简单易读。但是版本兼容性不好,如果阿里云组件功能升级需要更新SDK

3,阿里云SDK的知识点

调用OpenAPI的代码分析:

java 复制代码
package com.aliyun.sample;

import com.aliyun.tea.*;

public class Sample {

    public static com.aliyun.vpc20160428.Client createClient(String accessKeyId, String accessKeySecret)
            throws Exception {
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // 必填,您的 AccessKey ID
                .setAccessKeyId(accessKeyId)
                // 必填,您的 AccessKey Secret
                .setAccessKeySecret(accessKeySecret);
        // 访问的域名
        config.endpoint = "vpc.aliyuncs.com";
        return new com.aliyun.vpc20160428.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        // 请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID 和
        // ALIBABA_CLOUD_ACCESS_KEY_SECRET。
        // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的 STS
        // 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html
        com.aliyun.vpc20160428.Client client = Sample.createClient(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
                System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        com.aliyun.vpc20160428.models.CreateVpcRequest createVpcRequest = new com.aliyun.vpc20160428.models.CreateVpcRequest()
                .setVpcName("abc")
                .setCidrBlock("172.16.0.0/12")
                .setRegionId("cn-hangzhou");
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();

        try {
            com.aliyun.vpc20160428.models.CreateVpcResponse resp = client.createVpcWithOptions(createVpcRequest,
                    runtime);
            com.aliyun.teaconsole.Client.log(com.aliyun.teautil.Common.toJSONString(resp));
        } catch (TeaException error) {
            // 如有需要,请打印 error
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // 如有需要,请打印 error
            com.aliyun.teautil.Common.assertAsString(error.message);
        }
    }
}
  • SDK的package名称中包含了云成品+版本号
  • main()函数中主要包括了三部分内容: a. 创建客户端client,b. 创建request,c. 执行request
  • 在创建客户端client时需要使用config进行配置
  • 在Config中设置了三个参数:a. AccessKeyId,b. AccessKeySecret,c. endpoint
  • Config中的AccessKeyId和AccessKeySecret是通过System.getenv()函数从环境变量中读取来的
  • 特定的Request类主要用于存放请求参数,参数使用set方法进行设置
  • 在发起请求的时候,需要调用Client中的指定函数,例如client.createVpcWithOptions()
  • 调用指定函数时,除了需要传入Request之外,还需要传入一个runtime参数
  • 使用特定的Response类来保存函数运行结果
  • 代码运行了错误时会返回TeaException异常

4,OpenAPI代码解析

5,代码迁移到IDE上

RAM用户在本地运行代码

  1. 配置本地运行
    项目是用Maven进行管理的。
    配置JAVA开发环境的步骤,开始按照下面的步骤配置环境
  2. 安装Open JDK17以上版本,并配置环境变量
  3. 通过java -version验证JDK安装正常
  4. 下载Maven3的最新版本的压缩包,解压安装包,并配置环境变量
  5. 通过mvn -version验证Maven安装正常
  6. 下载并安装VS Code
  7. 安装以下这些VS Code插件:Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code,Language Support for Java™ by Red Hat(Red Hat),Project Manager for Java(Microsoft),Debugger for Java(Microsoft),Extension Pack for Java(Microsoft),Maven for Java(Microsoft)



感谢阅读,下期更精彩 👋👋👋

相关推荐
zhaodezhu168812 分钟前
软件SaaS信息技术云计算GEO优化公司行业百科
云计算·信息技术·geo优化·软件saas·公司行业
云老大-阿里云国际站代理商10 小时前
华为云国际站服务代理商:NAT网关怎么配?多台ECS共用公网IP要注意什么
服务器·华为云·云计算
闲云自留地14 小时前
告别命令恐惧症,openEuler 基础操作 + 文本 + 网络管理实战
linux·运维·云计算
我爱吃土豆121 小时前
从零给个人项目搭一套 CI/CD
阿里云·部署·cicd
逐流人1 天前
Containerd容器管理实战:从架构原理到nerdctlcrictl工具链
linux·运维·云原生·容器·云计算·containerd
yi碗汤园1 天前
OSS对象存储服务
网络·阿里云
事界见闻1 天前
多电平变换器实时仿真怎么选?微秒级解算与多机拓展下的技术评估与方案分析
云计算
闲云野鹤在人间2 天前
docker 入门 | 第7章 容器监控 和 第8章 容器日志 详解
运维·docker·容器·架构·云计算
云边云科技_云网融合2 天前
从一盘散棋到一张蓝图:某连锁集团的云上重构
网络·科技·云计算
小葱运维2 天前
日志规范(K8s 结构化日志)
运维·开源·云计算