本章节以CreateSnapshot为例,为您演示如何通过阿里云CLI、OpenAPI开发者门户和阿里云SDK等开发者工具调用ECS API。
背景信息
调用API时,您可以根据API文档了解使用说明,并查询必选的请求参数。发送请求后报错时,您可以在相应API文档中获取错误码说明。
调用方式
- 阿里云CLI示例:适用于常使用命令行工具的场景。请确保您已经为ECS实例安装了阿里云CLI,在不同操作系统中安装CLI的方式请参见:
- OpenAPI开发者门户示例:适用于习惯交互式操作界面的场景,或者初次使用阿里云产品的开发者用户。您可以在OpenAPI开发者门户中调试和获取SDK请求示例。更多有关OpenAPI开发者门户的详情,请参见OpenAPI开发者门户。
- Java SDK示例:适用于SDK编码或DevOps等场景。要求您已提前安装了ECS Java SDK,安装方式请参见安装Java SDK。
阿里云CLI示例
OpenAPI开发者门户示例
Java SDK示例
示例代码中的下列参数需要您根据实际情况自行填写。
- <AccessKey>:您的AccessKeyId。获取方式请参见创建AccessKey。
- <AccessSecret>:您的AccessKeySecret。
- <RegionId>:ECS实例所在的地域ID。取值请参见地域和可用区或DescribeRegions。
- <DiskId>:云盘ID。取值请参见DescribeDisks。
import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.ecs.model.v20140526.CreateSnapshotRequest; import com.aliyuncs.ecs.model.v20140526.CreateSnapshotResponse; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.profile.DefaultProfile; /* pom.xml <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>3.0.9</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-ecs</artifactId> <version>4.10.1</version> </dependency> */ public class CreateSnapshotExample { private String accessKeyId = "<AccessKey>"; private String accessSecret = "<AccessSecret>"; /** * 云盘所在的地域ID */ private String regionId = "<RegionId>"; /** * 要创建快照的云盘ID */ private String diskId = "<DiskId>"; public void createSnapshot() { DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessSecret); IAcsClient client = new DefaultAcsClient(profile); CreateSnapshotRequest request = new CreateSnapshotRequest(); request.setRegionId(regionId); request.setDiskId(diskId); try { CreateSnapshotResponse response = client.getAcsResponse(request); logInfo(response.getSnapshotId()); } catch (ServerException e) { logInfo(String.format("Fail. Something with your connection with Aliyun go incorrect. ErrorCode: %s", e.getErrCode())); } catch (ClientException e) { logInfo(String.format("Fail. Business error. ErrorCode: %s, RequestId: %s", e.getErrCode(), e.getRequestId())); } } private static void logInfo(String message) { System.out.println(message); } public static void main(String[] args) { new CreateSnapshotExample().createSnapshot(); } }