阿里云的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)



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

相关推荐
feasibility.4 小时前
用OpenClaw做qq ai办公机器人(支持群聊关键词触发+自定义域名发送任意邮件)
人工智能·科技·阿里云·机器人·agi·qq·openclaw
悠闲蜗牛�4 小时前
从零构建Serverless应用:Spring Cloud Function与阿里云函数计算实战指南
spring cloud·阿里云·serverless
500佰18 小时前
Hive常见故障多案例FAQ宝典 --项目总结(宝典一)
大数据·linux·数据仓库·hive·hadoop·云计算·运维开发
峰顶听歌的鲸鱼2 天前
Kubernetes-Pod
linux·运维·云原生·容器·kubernetes·云计算
IvanCodes2 天前
十、Linux Shell脚本:流程控制语句
linux·云计算
qq_316837752 天前
caddy 使用阿里云的域名通过dns验证申请ssl证书
阿里云·云计算·ssl
IvanCodes2 天前
七、Linux Shell 与脚本基础
linux·云计算
hhzz2 天前
阿里云基础网络的创建、业务隔离及多网之间的互联互通
网络·阿里云·网络架构
久绊A2 天前
阿里云 ECS 与 VPC 配置实操
阿里云·云平台