huaweicloud-create-prepaid-publicip-java:使用Java SDK创建华为云包周期弹性公网IP示例

新增创建包年包月EIP高频接口示例

Branch3Tags0

1、功能介绍

华为云提供了弹性公网IP服务端SDK,您可以直接集成服务端SDK来调用弹性公网IP的相关API,从而实现对弹性公网IP的快速操作。该示例展示了如何通过Java版SDK创建包周期弹性公网IP。什么是弹性公网IP请参见弹性公网IP简介。

2、前置条件

  • 注册 华为云, 并完成 实名认证
  • 已获取华为云开发工具包(SDK),您也可以查看安装JAVA SDK。
  • 已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK)。请在华为云控制台“我的凭证 > 访问密钥”页面上创建和查看您的AK/SK。具体请参见 访问密钥
  • 已具备开发环境 ,支持Java JDK 1.8及其以上版本。

3、SDK获取和安装

具体的SDK版本号请参见 SDK开发中心 (产品类别:弹性公网IP)

4、关键代码片段

使用如下代码创建包年包月的EIP,调用前请根据实际情况替换如下变量:{YOUR AK},{YOUR SK},{REGION_ID},{EIP TYPE},{BANDWIDTH_NAME},{BANDWIDTH_SIZE}

package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.eip.v2.EipClient;
import com.huaweicloud.sdk.eip.v2.model.CreatePrePaidPublicipExtendParamOption;
import com.huaweicloud.sdk.eip.v2.model.CreatePrePaidPublicipOption;
import com.huaweicloud.sdk.eip.v2.model.CreatePrePaidPublicipRequest;
import com.huaweicloud.sdk.eip.v2.model.CreatePrePaidPublicipRequestBody;
import com.huaweicloud.sdk.eip.v2.model.CreatePrePaidPublicipResponse;
import com.huaweicloud.sdk.eip.v2.model.CreatePublicipBandwidthOption;
import com.huaweicloud.sdk.eip.v2.model.ShowPublicipRequest;
import com.huaweicloud.sdk.eip.v2.model.ShowPublicipResponse;
import com.huaweicloud.sdk.eip.v2.region.EipRegion;

public class CreatePrePaidPublicipDemo {

    public static void main(String[] args) {
        // 输入华为云账号的AK、SK
        String ak = "{YOUR AK}";
        String sk = "{YOUR SK}";

        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);

        // v2接口的EipClient,REGION_ID处填写应用区域的id,如北京四填写cn-north-4
        EipClient client = EipClient.newBuilder()
                .withCredential(auth)
                .withRegion(EipRegion.valueOf("{REGION_ID}"))
                .build();
        CreatePrePaidPublicipRequest request = new CreatePrePaidPublicipRequest();
        CreatePrePaidPublicipRequestBody body = new CreatePrePaidPublicipRequestBody();
        CreatePrePaidPublicipOption publicipBody = new CreatePrePaidPublicipOption();
        // 创建的EIP类型,有5_bgp(全动态BGP),5_sbgp(静态BGP),5_youxuanbgp(优选BGP)这几种类型
        publicipBody.withType("{EIP TYPE}");
        CreatePublicipBandwidthOption bandwidthBody = new CreatePublicipBandwidthOption();
        // BANDWIDTH_NAME为宽带的名称,宽带的大小通过BANDWIDTH_SIZE参数传入
        bandwidthBody.withName("{BANDWIDTH_NAME}")
                .withShareType(CreatePublicipBandwidthOption.ShareTypeEnum.fromValue("PER"))
                .withSize("{BANDWIDTH_SIZE}");
        CreatePrePaidPublicipExtendParamOption extendParamBody = new CreatePrePaidPublicipExtendParamOption();
        // 构造扩展参数,下面5个参数含义为:预付费、周期单位为月、订购周期数为1、不自动续费、自动支付
        extendParamBody.withChargeMode(CreatePrePaidPublicipExtendParamOption.ChargeModeEnum.PREPAID)
                .withPeriodType(CreatePrePaidPublicipExtendParamOption.PeriodTypeEnum.MONTH)
                .withPeriodNum(1)
                .withIsAutoRenew(Boolean.FALSE)
                .withIsAutoPay(Boolean.TRUE);
        body.withPublicip(publicipBody);
        body.withBandwidth(bandwidthBody);
        body.withExtendParam(extendParamBody);
        request.withBody(body);
        try {
            CreatePrePaidPublicipResponse response = client.createPrePaidPublicip(request);
            // 构造查询请求类
            ShowPublicipRequest showRequest = new ShowPublicipRequest().withPublicipId(response.getPublicipId());
            // 查询EIP详情,可以查看EIP是否创建成功
            ShowPublicipResponse publicipInfo = client.showPublicip(showRequest);
            System.out.println(response.toString());
            System.out.println(publicipInfo.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

您可以在 API Explorer 中直接运行调试该接口。

5、运行结果

响应成功示例

{
  "order_id": "CS2307271951EQHOC",
  "publicip_id": "4d942e7a-14fe-4c24-98a8-a5a18985d006"
}

6、参考

7、修订记录

发布日期 文档版本 修订说明
2023-08-10 1.0 文档首次发布

Introduction

新增创建包年包月EIP高频接口示例

Customize my domain