详情页标题前

阿里云ECS云服务器通过SDK使用ECS实例-云淘科技

详情页1

如果您是一位开发者,可以通过SDK的方式创建ECS实例。本文介绍如何通过Java SDK创建ECS实例。

准备Java SDK环境

在使用Java SDK创建ECS实例前,您需要配置好Java SDK环境,并在Maven项目的pom.xml文件中,添加阿里云核心库aliyun-java-sdk-core、云服务器aliyun-java-sdk-ecs、专有网络aliyun-java-sdk-vpc和fastjson依赖。详情请参见安装Java SDK。

在pom.xml文件中新增专有网络aliyun-java-sdk-vpc依赖,如下所示。


        
            com.aliyun
            aliyun-java-sdk-core
            4.4.3
        
        
            com.aliyun
            aliyun-java-sdk-ecs
            4.17.1
        
        
            com.alibaba
            fastjson
            1.2.83
        
        
            com.aliyun
            aliyun-java-sdk-vpc
            3.0.9
        
    

获取AccessKey信息

创建AccessKey操作,请参见创建AccessKey。

说明

为避免主账号泄露AccessKey带来的安全风险,建议您创建RAM用户,授予RAM用户云服务器ECS相关的访问权限,再使用RAM用户的AccessKey调用SDK。更多信息,请参见通过RAM用户控制资源访问。

创建ECS实例所需资源

在创建ECS实例前,您需要先创建专有网络VPC和安全组。

说明

如果已经存在专有网络VPC和安全组,您也可以获取交换机ID和安全组ID后,直接购买ECS实例。具体操作,请参见购买ECS实例。

  1. 创建VPC。

    华东1(杭州)创建专有网络VPC,VPC网段为192.168.0.0/16。

    API

    参数

    示例取值

    CreateVpc

    RegionId

    地域:cn-hangzhou

    CidrBlock

    VPC网段:192.168.0.0/16

    以下代码示例表示创建VPC。

    import com.aliyuncs.DefaultAcsClient;
    import com.aliyuncs.IAcsClient;
    import com.aliyuncs.exceptions.ClientException;
    import com.aliyuncs.exceptions.ServerException;
    import com.aliyuncs.profile.DefaultProfile;
    import com.google.gson.Gson;
    import com.aliyuncs.vpc.model.v20160428.*;
    
    public class CreateVpc {
    
        public static void main(String[] args) {
            // 请确保代码运行环境设置了环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
            // 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例使用环境变量获取AccessKey的方式进行调用,建议使用更安全的STS方式。
            DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
            IAcsClient client = new DefaultAcsClient(profile);
    
            CreateVpcRequest request = new CreateVpcRequest();
            request.setRegionId("cn-hangzhou");
            request.setCidrBlock("192.168.0.0/16");
    
            try {
                CreateVpcResponse response = client.getAcsResponse(request);
                System.out.println(new Gson().toJson(response));
            } catch (ServerException e) {
                e.printStackTrace();
            } catch (ClientException e) {
                System.out.println("ErrCode:" + e.getErrCode());
                System.out.println("ErrMsg:" + e.getErrMsg());
                System.out.println("RequestId:" + e.getRequestId());
            }
    
        }
    }

    返回结果如下所示。

    {
        "requestId":"5BE6AEA4-347F-46A9-9808-B429EF02****",
        "vpcId":"vpc-bp1h99qfh290thxml****",
        "vRouterId":"vrt-bp1cbum5ozelljyet****",
        "routeTableId":"vtb-bp1qm6p3yoww2cv10****",
        "resourceGroupId":"rg-acfmzw2jz2z****"
    }
  2. 创建交换机。

    在VPC中创建交换机,交换机网段为192.168.0.0/24。

    API

    参数

    示例取值

    CreateVSwitch

    ZoneId

    可用区:cn-hangzhou-i

    VpcId

    VPC ID:使用步骤1返回的结果。

    示例:vpc-bp1h99qfh290thxml****

    CidrBlock

    交换机网段:192.168.0.0/24

    以下代码示例表示创建交换机。

    import com.aliyuncs.DefaultAcsClient;
    import com.aliyuncs.IAcsClient;
    import com.aliyuncs.exceptions.ClientException;
    import com.aliyuncs.exceptions.ServerException;
    import com.aliyuncs.profile.DefaultProfile;
    import com.google.gson.Gson;
    import java.util.*;
    import com.aliyuncs.vpc.model.v20160428.*;
    
    public class CreateVSwitch {
    
        public static void main(String[] args) {
            // 请确保代码运行环境设置了环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
            // 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例使用环境变量获取AccessKey的方式进行调用,建议使用更安全的STS方式。
            DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
            IAcsClient client = new DefaultAcsClient(profile);
    
            CreateVSwitchRequest request = new CreateVSwitchRequest();
            request.setRegionId("cn-hangzhou");
            request.setCidrBlock("192.168.0.0/24");
            request.setVpcId("vpc-bp1h99qfh290thxml****");
            request.setZoneId("cn-hangzhou-i");
    
            try {
                CreateVSwitchResponse response = client.getAcsResponse(request);
                System.out.println(new Gson().toJson(response));
            } catch (ServerException e) {
                e.printStackTrace();
            } catch (ClientException e) {
                System.out.println("ErrCode:" + e.getErrCode());
                System.out.println("ErrMsg:" + e.getErrMsg());
                System.out.println("RequestId:" + e.getRequestId());
            }
    
        }
    }

    返回结果如下所示。

    {
        "requestId": "BAFBC8C4-3C65-427B-B470-3D257288****",
        "vSwitchId": "vsw-bp1mihse903i05oxn****"
    }
  3. 创建安全组。

    API

    参数

    示例取值

    CreateSecurityGroup

    RegionId

    地域:cn-hangzhou

    VpcId

    VPC ID:使用步骤1返回的结果。

    示例:vpc-bp1h99qfh290thxml****

    以下代码示例表示创建安全组。

    import com.aliyuncs.DefaultAcsClient;
    import com.aliyuncs.IAcsClient;
    import com.aliyuncs.exceptions.ClientException;
    import com.aliyuncs.exceptions.ServerException;
    import com.aliyuncs.profile.DefaultProfile;
    import com.google.gson.Gson;
    import java.util.*;
    import com.aliyuncs.ecs.model.v20140526.*;
    
    public class CreateSecurityGroup {
    
        public static void main(String[] args) {
            // 请确保代码运行环境设置了环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
            // 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例使用环境变量获取AccessKey的方式进行调用,建议使用更安全的STS方式。
            DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
            IAcsClient client = new DefaultAcsClient(profile);
    
            CreateSecurityGroupRequest request = new CreateSecurityGroupRequest();
            request.setRegionId("cn-hangzhou");
            request.setVpcId("vpc-bp1h99qfh290thxml****");
    
            try {
                CreateSecurityGroupResponse response = client.getAcsResponse(request);
                System.out.println(new Gson().toJson(response));
            } catch (ServerException e) {
                e.printStackTrace();
            } catch (ClientException e) {
                System.out.println("ErrCode:" + e.getErrCode());
                System.out.println("ErrMsg:" + e.getErrMsg());
                System.out.println("RequestId:" + e.getRequestId());
            }
    
        }
    }

    返回结果如下所示。

    {
        "requestId": "718D29C6-6183-4196-AD76-A53F6A6E****",
        "securityGroupId": "sg-bp1dve08xy2c8y9g****"
    }
  4. 在安全组中添加入方向放行规则。

    API

    参数

    示例取值

    AuthorizeSecurityGroup

    RegionId

    地域:cn-hangzhou

    SecurityGroupId

    安全组ID:使用步骤3返回的结果。

    示例:sg-bp1dve08xy2c8y9g****

    IpProtocol

    协议:tcp

    SourceCidrIp

    源CIDR:0.0.0.0/0

    PortRange

    端口范围:

    • Linux实例:22/22

    • Windows实例:3389/3389

    以下代码示例表示添加安全组规则。

    import com.aliyuncs.DefaultAcsClient;
    import com.aliyuncs.IAcsClient;
    import com.aliyuncs.exceptions.ClientException;
    import com.aliyuncs.exceptions.ServerException;
    import com.aliyuncs.profile.DefaultProfile;
    import com.google.gson.Gson;
    import java.util.*;
    import com.aliyuncs.ecs.model.v20140526.*;
    
    public class AuthorizeSecurityGroup {
    
        public static void main(String[] args) {
            // 请确保代码运行环境设置了环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
            // 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例使用环境变量获取AccessKey的方式进行调用,建议使用更安全的STS方式。
            DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
            IAcsClient client = new DefaultAcsClient(profile);
    
            AuthorizeSecurityGroupRequest request = new AuthorizeSecurityGroupRequest();
            request.setRegionId("cn-hangzhou");
            request.setSecurityGroupId("sg-bp1dve08xy2c8y9g****");
            request.setIpProtocol("tcp");
            request.setPortRange("22/22");
            request.setSourceCidrIp("0.0.0.0/0");
    
            try {
                AuthorizeSecurityGroupResponse response = client.getAcsResponse(request);
                System.out.println(new Gson().toJson(response));
            } catch (ServerException e) {
                e.printStackTrace();
            } catch (ClientException e) {
                System.out.println("ErrCode:" + e.getErrCode());
                System.out.println("ErrMsg:" + e.getErrMsg());
                System.out.println("RequestId:" + e.getRequestId());
            }
    
        }
    }

    返回结果如下所示。

    {
        "requestId": "7052E70F-4678-4400-81CF-E0133CCB****"
    }

购买ECS实例

购买一个包年包月的ECS实例。

API

参数

示例取值

RunInstances

RegionId

地域:cn-hangzhou

ImageId

镜像:推荐使用Alibaba Cloud Linux镜像aliyun_2_1903_x64_20G_alibase_20200324.vhd

InstanceType

实例规格:

  • 个人应用:推荐选择1核2G的实例规格ecs.s6-c1m2.small

  • 中小企业应用:推荐选择2核4G的实例规格ecs.c5.large

SecurityGroupId

安全组ID:使用步骤3返回的结果。

示例:sg-bp1dve08xy2c8y9g****

VSwitchId

交换机ID:使用步骤2返回的结果。

示例:vsw-bp1mihse903i05oxn****

InstanceName

实例名称。

示例:ecs_sdk_demo

InstanceChargeType

付费方式:实例按照包年包月的付费方式PrePaid

说明

您需要确保账号余额能够完成支付。

PeriodUnit

付费周期单位:Month

Period

付费时长:1

InternetMaxBandwidthOut

公网IP带宽:1 Mbps

Password

实例登录密码:

说明

您需要自定义复杂密码以保护ECS实例的安全。

以下代码示例表示创建包年包月的ECS实例。

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import java.util.*;
import com.aliyuncs.ecs.model.v20140526.*;

public class RunInstances {

    public static void main(String[] args) {
        // 请确保代码运行环境设置了环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
        // 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例使用环境变量获取AccessKey的方式进行调用,建议使用更安全的STS方式。
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        IAcsClient client = new DefaultAcsClient(profile);

        RunInstancesRequest request = new RunInstancesRequest();
        request.setRegionId("cn-hangzhou");
        request.setImageId("aliyun_2_1903_x64_20G_alibase_20200324.vhd");
        request.setInstanceType("ecs.s6-c1m2.small");
        request.setSecurityGroupId("sg-bp1dve08xy2c8y9g****");
        request.setVSwitchId("vsw-bp1mihse903i05oxn****");
        request.setInstanceName("ecs_sdk_demo");
        request.setInternetMaxBandwidthOut(1);
        request.setPassword("");
        request.setPeriod(1);
        request.setPeriodUnit("Month");
        request.setInstanceChargeType("PrePaid");

        try {
            RunInstancesResponse response = client.getAcsResponse(request);
            System.out.println(new Gson().toJson(response));
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            System.out.println("ErrCode:" + e.getErrCode());
            System.out.println("ErrMsg:" + e.getErrMsg());
            System.out.println("RequestId:" + e.getRequestId());
        }

    }
}

返回结果如下所示。

{
    "requestId": "9582F9F2-349C-438E-A6A2-3E7B6B56****",
    "tradePrice": ****,
    "instanceIdSets": ["i-bp1hcv43i3glqxbv****"]
}

连接ECS实例

此示例介绍通过Cloud Shell登录Linux实例。如果您安装的是Windows实例,登录方式请参见通过密码认证登录Windows实例。

  1. 查询实例公网IP地址。

    API

    参数

    示例取值

    DescribeInstances

    RegionId

    地域:cn-hangzhou

    InstanceIds

    实例ID:使用购买ECS实例返回的结果。

    示例:‘[“i-bp1hcv43i3glqxbv****”]’

    以下命令示例表示查询实例公网IP。

    aliyun ecs DescribeInstances \
    --RegionId cn-hangzhou \
    --InstanceIds '["i-bp1hcv43i3glqxbv****"]'

    在返回结果中找到以下公网IP信息。

    阿里云ECS云服务器通过SDK使用ECS实例-云淘科技

  2. 通过SSH登录ECS实例。

    阿里云ECS云服务器通过SDK使用ECS实例-云淘科技

释放ECS实例

包年包月实例到期后,您可以手动释放。如果一直未续费,实例也会自动释放。

如果您想要提前释放包年包月实例,请参见退款规则及退款流程。

腾讯云1折,限时活动,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:http://www.yunxiaoer.com/151744.html

(0)
上一篇 2023年12月9日 下午4:48
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云负载均衡配置健康检查

    您可以在配置监听器时开启健康检查功能来判断后端服务的可用性。健康检查详情请参见 健康检查概述。 限制说明 IPv6 版本的负载均衡的 TCP 监听器不支持 HTTP 健康检查和自定义方式健康检查。IPv6 版本的负载均衡的 UDP 监听器不支持自定义方式的健康检查。 前提条件 1. 您已创建负载均衡实例,详情请参见 创建负载均衡实例。2. 您已创建负载均衡监…

    2023年12月9日
  • 腾讯云对象存储将 COS 作为本地磁盘挂载到 Windows 服务器

    操作场景 在 Windows 系统上操作腾讯云对象存储(Cloud Object Storage,COS),目前主要的实现方式还是通过 API、COSBrowser、COSCMD 工具。而对于喜欢使用 Windows 服务器的用户,使用 COSBrowser 工具大多只能当做网盘,对服务器上的直接使用程序或者操作并不友好。本文将介绍如何使存储价格低廉的对象存…

    2023年12月9日
  • 阿里云日志服务SLSPHP SDK概述-云淘科技

    日志服务PHP SDK封装了日志服务的所有API接口。您可以通过日志服务PHP SDK方便地调用日志服务的所有API接口。 版本说明 更多信息,请参见Aliyun Log PHP Release。 示例代码 日志服务PHP SDK提供丰富的示例代码,方便您参考或直接使用。示例代码包括以下内容: GitHub源码 说明 loggerSample.php 写入日…

    阿里云日志服务SLS 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云云函数(SCF)使用博睿数据 APM-云淘科技

    本文将为您介绍云函数如何接入和使用博睿数据 APM。 前提条件 已注册 博睿 Server 账号。已 创建云函数 并开启公网访问。说明博睿探针目前支持 Python 和 Node.js 的多数主流框架,且仅在使用支持的框架时,博睿 smartAgent 才可自动捕获。详情请参见 博睿探针支持列表。 操作步骤 使用云函数控制台接入 您可以使用云函数控制台接入博…

    2023年12月9日
  • 腾讯云对象存储删除存储桶

    简介 本文档提供关于删除存储桶的 API 概览以及 SDK 示例代码。 API 操作名 操作描述 DELETE Bucket 删除存储桶 删除指定账号下的空存储桶 删除存储桶 功能说明 删除指定的存储桶(DELETE Bucket)。注意 删除存储桶前,请确保存储桶内的数据和未完成上传的分块数据已全部清空,否则会无法删除存储桶。 示例代码 方法原型 publ…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。