打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
开发SDK的使用教程【面试+工作】


开发SDK的使用教程【面试+工作】

最近很多人反映工作中SDK不会用,

这个说实话不是个难点,只是你不敢操作。

下面以TFS使用和阿里SDK做教程


TFS SDK使用


一、下载必要的软件

    - Eclipse安装程序 http://www.eclipse.org/ 

    - JDK http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html

二、创建Java项目,并导入TFS SDK

在Java项目中创建目录tfssdk,并将SDK中的文件复制到该目录下;将SDK中的文档做成zip文档,并复制到tfssdk目录下(tfs-sdk-11.0-javadoc.zip)

打开项目属性

添加JAR,并配置库位置和文档位置

三、创建并运行样例代码

添加一个样例代码:创建要求工作项

运行代码,成功


阿里云 SDK使用

一.快速开始

欢迎使用阿里云开发者工具套件(SDK)。阿里云Java SDK让您不用复杂编程即可访问云服务器、云监控等多个阿里云服务。这里向您介绍如何获取阿里云Java SDK并开始调用。

1.环境准备

  1. 要使用阿里云Java SDK,您需要一个RAM账号以及一对AccessKey IDAccessKey Secret。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey,或联系您的系统管理员。

  2. 要使用阿里云SDK访问某个产品的API,您需要事先在阿里云控制台中开通这个产品。

  3. 阿里云Java SDK需要1.6以上的JDK。

2.安装SDK

如果您使用Apache Maven来管理Java项目,只需在项目的pom.xml文件加入相应的依赖项即可。您可以在阿里云SDK频道中下载各云产品的Maven依赖。

无论您要使用哪个产品的开发工具包,都必须安装SDK核心库。比如,对云服务器ECS的SDK调用,您需要安装SDK核心库和云服务器ECS的SDK。

以3.5.0版本的SDK核心库和3.0.0版本的ECS SDK为例,您只需在pom.xml中声明这两个开发工具包,如下所示:

3.使用Java SDK

以下这个代码示例向您展示了调用阿里云Java SDK的3个主要步骤:

  1. 创建DefaultAcsClient实例并初始化。

  2. 创建API请求并设置参数。

  3. 发起请求并处理应答或异常。

二、使用手册


1.使用Java SDK

1.1安装

阿里云Java SDK支持1.6及以上版本的JDK,提供以下两种安装方式:

  • 1.1.1使用Maven(推荐)

    如果您使用了Maven管理依赖,您可以通过向pom.xml中添加以下代码来安装阿里云Java SDK。

  • 1.1.2在集成开发环境(IDE)中导入JAR文件

    注意: 该安装方式会在下个主版本中被废弃,届时将仅支持通过Maven安装SDK。

    无论您使用Eclipse还是IntelliJ作为集成开发环境,都可以通过导入JAR文件的方式安装阿里云Java SDK。您可以在阿里云开发工具包(SDK)中下载各云产品的JAR文件。

    1.1.3Eclipse

    完成以下操作,在Eclipse的项目中安装阿里云Java SDK:

  • 1.1.3.1将下载的aliyun-java-sdk-XXX.jar文件复制到您的项目文件夹中。

  • 1.1.3.2在Eclipse中打开您的项目,右键单击该项目,单击Properties

  • 1.1.3.3在弹出的对话框中,单击Java Build Path > Libraries > Add JARs,添加下载的JAR文件。

    1.1.3.4单击Apply and Close

    1.1.4IntelliJ

    完成以下操作,在IntelliJ的项目中安装阿里云Java SDK:

  • 1.1.4.1将下载的aliyun-java-sdk-XXX.jar文件复制到您的项目文件夹中。

  • 1.1.4.2在IntelliJ中打开您的项目,在菜单栏中单击File > Project Structure

  • 1.1.4.3在弹出的对话框中,单击Modules > Dependencies。在出现的列表中单击add > JARs or directories,选择要添加的JAR文件。

  • 1.1.4.4单击Apply,然后单击OK

1.2设置身份验证凭据

当使用阿里云SDK访问阿里云服务时,您需要提供阿里云账号进行身份验证。

目前,Java SDK支持以下几种身份验证方式:

验证方式说明
AccessKey使用AccessKey ID和AccessKey Secret访问
StsToken使用STS Token访问
RamRoleArn使用RAM子账号的AssumeRole方式访问
EcsRamRole在ECS实例上通过EcsRamRole实现免密验证
RsaKeyPair使用RSA公私钥方式(仅日本站支持)

本文以AccessKey为例说明如何设置凭据。为了保证您的账号安全,建议您使用RAM账号来访问阿里云服务。阿里云账号的AccessKey对拥有的资源有完全的权限。RAM账号由阿里云账号授权创建,仅有对特定资源限定的操作权限。看最下面附录:创建AccessKey获取RAM账号的AccessKey。

使用AccessKey作为访问凭据,需要在初始化Client时设置凭证。

注意:确保包含AccessKey的代码不会泄漏(例如提交到外部公开的GitHub项目),否则将会危害您的阿里云账号的信息安全。

1.3发起调用

本文以ECS为例,介绍如何使用阿里云Java SDK发起请求。

1.3.1新建一个AcsClient。


1.3.2创建请求。

  1. 请求类的命名规范为${apiName}Request,其中

  2. ${apiName}为API名称,例如DescribeInstances。

  3. 在引入多个产品SDK时,有可能存在Request类同名的情况,请注意按照package区分。

  4. 发起调用并处理应答。


  5. 正常情况下,应答中的所有字段,都会被反序列化到response中,您可以直接调用response.getXXX()来获得应答中的字段。


  6. 如果出现了异常,或您需要原始HTTP应答的情况下,您可以通过以使用doAction()来获取原始应答。



2.使用CommonRequest进行调用


2.1CommonRequest调用方式

当您要访问的API没有产品SDK提供时,可以采用泛用型的API调用方式(CommonRequest)。使用CommonRequest调用方式可实现任意OpenAPI接口的调用。

CommonRequest有如下特点:

  1. 轻量:只需Core包即可发起调用,无需下载安装各产品的SDK。

  2. 简便:无需更新SDK即可调用最新发布的API。

  3. 快速迭代。

2.2使用CommonRequest

阿里云产品的API有RPC和RESTful两种风格,不同风格的API的CommonRequest的调用方法也不同。

通常API参数中包含Action参数的是RPC风格,包含PathPattern参数的是RESTful风格。一般情况下,每个产品内,所有API的调用风格是统一的。每个API仅支持特定的一种风格调用,传入错误的标识,可能会调用到其他API,或收到ApiNotFound的错误信息。

发起一次CommonRequest请求,您需要获取以下几个参数的值。您可以在文档中心-https://help.aliyun.com/各产品的API文档中获取以下参数的值。此外,部分产品也可以通过OpenAPI Explorer-https://api.aliyun.com/来获取API的参数信息。

  • 域名(domain):该产品的通用访问域名。

  • API版本(version):该API的版本号,格式为YYYY-MM-DD。

    说明:在”公共参数”内容中,API版本号的信息通常是Version参数的值, 但也有些产品的API版本号为x-acs-version参数的值。

  • 当调用的API为RPC风格时(大部分阿里云产品API为RPC风格)如ECS和RDS,需要获取Action参数,使用request.ApiName = "<Action>"的方式来指定API名称。

    例如RunInstances-https://helpcdn.aliyun.com/document_detail/63440.html接口的Action为RunInstances,在发起CommonRequest请求时,要使用request.ApiName = "RunInstances"来指定API名称。

  • 当调用的API为RESTful风格时如容器服务, 需要获取PathPattern参数,使用request.PathPattern = "<PathPattern>"的方式来指定RESTful路径。

    例如容器服务的查看所有集群实例-https://helpcdn.aliyun.com/document_detail/26053.html的API的PathPattern为/clusters,在发起CommonRequest请求时,要使用request.PathPattern = "/clusters"指定RESTful路径。

2.3代码示例

2.3.1调用RPC风格的API

以下代码展示了如何使用CommonRequest的方式调用ECS的DescribeInstanceStatus-https://helpcdn.aliyun.com/document_detail/25505.html接口:

2.3.2调用RESTful风格的API

以下代码展示了如何使用CommonRequest的方式调用容器服务的查看所有集群实例-https://helpcdn.aliyun.com/document_detail/26053.html接口:


3.使用STS Token作为用户凭据

直接使用阿里云账号的主账号的AccessKey ID和AccessKey Secret进行应用开发会有一定的安全风险,为了提升安全性,除了通过RAM角色控制权限范围外,您还可以使用为RAM角色签发的STS Token来访问阿里云服务。

使用STS Token调用SDK有以下优点:

  • 减少了主账号AccessKey ID和AccessKey Secret泄露的风险,特别是移动设备等场景。

  • 能使用灵活的权限控制,STS Token有一定的时间限制,并且根据RAM角色的灵活设置对ECS、SLB等资源的精细授权。

本文介绍如何使用STS Token来调用SDK访问阿里云服务,更多关于RAM和STS的信息,请参考RAM和STS介绍-https://helpcdn.aliyun.com/document_detail/27360.html。

注意: 在使用STS Token前,确保该产品支持STS Token验证。详情参见支持STS Token的产品-https://helpcdn.aliyun.com/document_detail/28630.html。

3.1方式一:直接使用STS Token

直接使用STS Token时,您需要自行维护STS Token的周期性更新。

其中:

  • region-id是您正在使用的地域(可用区)的ID,详情参见地域列表-https://helpcdn.aliyun.com/document_detail/40654.html。

  • sts-access-key-id sts-access-key-secret sts-session-token 是通过STS的AssumeRole-https://helpcdn.aliyun.com/document_detail/28763.html请求返回的授权信息。

3.2方式二:使用SDK自动管理STS Token的周期

您可以通过指定RAM的角色信息,让SDK帮您自动申请并维护STS Token。

其中:

  • role-arn是角色全局资源描述符,您可以通过访问RAM控制台-https://ram.console.aliyun.com/role/list#/role/list,单击角色名,进入详情页后查询角色名对应的role-arn

  • role-session-name是临时角色名称,您可以通过调用AssumeRole-https://helpcdn.aliyun.com/document_detail/28763.html接口来获取一个扮演该角色的临时身份,创建成功后,便可以使用创建时的RoleSessionName作为本方式的role-session-name参数。


4.配置RamRole实现在ECS实例上的“无AK访问”

为了提高应用部署的安全性的同时提升便利性,阿里云SDK支持通过实例元数据-https://helpcdn.aliyun.com/document_detail/49122.html服务来获取ECS RAM角色的授权信息来访问阿里云资源和服务。使用这种方式,您部署在ECS上的应用程序,无需在SDK上配置授权信息即可访问阿里云API(即不需要配置AccessKey),通过这种方式授权的SDK,可以拥有这个ECS RAM角色的权限。

注意:确保ECS实例已经配置了RAM角色,详情参见借助于实例RAM角色访问其他云产品-https://helpcdn.aliyun.com/document_detail/54579.html。

4.1代码示例

其中:

  • role-name是与ECS实例关联的RAM角色名称。

  • region-id是您正在使用的地域的Region ID,详情参见地域列表-https://helpcdn.aliyun.com/document_detail/40654.html。

注意:示例中的region-id是目标服务(且RAM角色有权访问)的API所在Region,不一定等于这个ECS实例的Region ID。


5.错误处理

在使用阿里云Java SDK时,当服务端或者SDK端出错时,SDK会返回相应的异常信息。这些异常信息中会包含具体的错误信息,例如错误码(Error Code)和错误消息(Error Message)。

一般情况下,您不需要对阿里云Java SDK返回的错误进行处理。您只需要根据服务端的错误提示处理服务端错误即可。

  • ServerException是服务端错误信息。

  • ClientException是SDK端错误信息。

例如,当出现如下错误时,您可以根据具体的错误信息,修改AccessKey的ID即可。

com.aliyuncs.exceptions.ClientException: InvalidAccessKeyId.NotFound : Specified access key is not found.

如果您需要对SDK的错误进行处理,可以参考如下示例编写代码:


附录:

创建AccessKey

访问密钥AccessKey(AK)相当于登录密码,只是使用场景不同。AccessKey用于程序方式调用云服务API,而登录密码用于登录控制台。如果您不需要调用API,那么就不需要创建AccessKey。

您可以使用AccessKey构造一个API请求(或者使用云服务SDK)来操作资源。AccessKey包括AccessKeyId和AccessKeySecret。

  • AccessKeyId用于标识用户。

  • AccessKeySecret是用来验证用户的密钥。AccessKeySecret必须保密。

注意:禁止使用主账号AK,因为主账号AK泄露会威胁您所有资源的安全。请使用子账号AK进行操作,可有效降低AK泄露的风险。

操作步骤

  1. 登录RAM管理控制台。

  2. 在左侧导航栏,单击用户管理

  3. 单击目标用户,进入用户详情页面。

  4. 用户AccessKey区域,单击创建AccessKey

  5. 在弹出的对话框中,展开AccessKey详情查看查看AcessKeyId和AccessKeySecret。然后单击保存AK信息,下载AccessKey信息。

    注意: 请您妥善保存AccessKey,谨防泄露。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
超实用!!!使用IDEA插件AlibabaCloudToolkit工具一键部署本地应用到ECS服务器
阿里云ECS插件for Eclipse
UNRAID添加docker部署阿里云自动解析DDNS功能
thinkphp5详细使用阿里云短信最新版(原大鱼)教程!
SpringBoot整合阿里短信服务
Typora + GitHub = 效率
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服