# huaweicloud-dc-virtualgateway-samples-java **Repository Path**: HuaweiCloudDeveloper/huaweicloud-dc-virtualgateway-samples-java ## Basic Information - **Project Name**: huaweicloud-dc-virtualgateway-samples-java - **Description**: 云专线相关SDK 虚拟网关使用示例 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master-dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-12-16 - **Last Updated**: 2025-06-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 版本说明 本示例配套的SDK版本为:3.1.11及以上版本 ### 示例简介 本示例展示如何使用云专线(DirectConnection)相关SDK ### 功能介绍 云专线虚拟网关增、删、改、查功能 ### 前置条件 1.已 [注册](https://id1.cloud.huawei.com/UnifiedIDMPortal/portal/userRegister/regbyphone.html?themeName=red&access_type=offline&clientID=103493351&loginChannel=88000000&loginUrl=https%3A%2F%2Fauth.huaweicloud.com%2Fauthui%2Flogin.html%23&service=https%3A%2F%2Fauth.huaweicloud.com%2Fauthui%2FcasLogin&countryCode=cn&scope=https%3A%2F%2Fwww.huawei.com%2Fauth%2Faccount%2Funified.profile+https%3A%2F%2Fwww.huawei.com%2Fauth%2Faccount%2Frisk.idstate&reqClientType=88&state=cf496c0cb6c7414894276bebbfe1068c&lang=zh-cn) 华为云,并完成 [实名认证](https://account.huaweicloud.com/usercenter/?region=cn-north-4#/accountindex/realNameAuth) 2.获取华为云开发工具包(SDK),您也可以查看安装JAVA SDK。 3.已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK)。请在华为云控制台“我的凭证 > 访问密钥”页面上创建和查看您的AK/SK。具体请参见 [访问密钥](https://support.huaweicloud.com/usermanual-ca/zh-cn_topic_0046606340.html) 。 4.已具备开发环境 ,支持Java JDK 1.8及其以上版本。 5.创建虚拟网关使用的VPC资源已创建完毕。 ### SDK获取和安装 您可以通过Maven配置所依赖的云专线服务SDK 具体的SDK版本号请参见 [SDK开发中心](https://sdkcenter.developer.huaweicloud.com?language=java) (产品类别:云专线) ### 代码示例 以下代码展示如何使用云专线(DirectConnection)相关SDK ``` java import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ClientRequestException; import com.huaweicloud.sdk.core.exception.ServerResponseException; import com.huaweicloud.sdk.dc.v3.DcClient; import com.huaweicloud.sdk.dc.v3.model.CreateVirtualGateway; import com.huaweicloud.sdk.dc.v3.model.CreateVirtualGatewayRequest; import com.huaweicloud.sdk.dc.v3.model.CreateVirtualGatewayRequestBody; import com.huaweicloud.sdk.dc.v3.model.CreateVirtualGatewayResponse; import com.huaweicloud.sdk.dc.v3.model.DeleteVirtualGatewayRequest; import com.huaweicloud.sdk.dc.v3.model.DeleteVirtualGatewayResponse; import com.huaweicloud.sdk.dc.v3.model.ListVirtualGatewaysRequest; import com.huaweicloud.sdk.dc.v3.model.ListVirtualGatewaysResponse; import com.huaweicloud.sdk.dc.v3.model.ShowVirtualGatewayRequest; import com.huaweicloud.sdk.dc.v3.model.ShowVirtualGatewayResponse; import com.huaweicloud.sdk.dc.v3.model.UpdateVirtualGateway; import com.huaweicloud.sdk.dc.v3.model.UpdateVirtualGatewayRequest; import com.huaweicloud.sdk.dc.v3.model.UpdateVirtualGatewayRequestBody; import com.huaweicloud.sdk.dc.v3.model.UpdateVirtualGatewayResponse; import com.huaweicloud.sdk.dc.v3.region.DcRegion; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.Arrays; public class VirtualGatewayDemo { private static final Logger logger = LoggerFactory.getLogger(VirtualGatewayDemo.class); // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份认证为例,运行示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 private static final String AK = System.getenv("HUAWEICLOUD_SDK_AK"); private static final String SK = System.getenv("HUAWEICLOUD_SDK_SK"); private static final String PROJECT_ID = ""; private static DcClient client = getDcClient(); /* 获取DC请求客户端 */ public static DcClient getDcClient() { return DcClient.newBuilder() .withCredential(new BasicCredentials() .withAk(AK) .withSk(SK) .withProjectId(PROJECT_ID) ).withRegion(DcRegion.CN_NORTH_4) .build(); } public static void main(String[] args) { // 1,创建虚拟网关 CreateVirtualGatewayResponse response = createVirtualGateway(); // 2,查询虚拟网关详情 showVirtualGateway(response.getVirtualGateway().getId()); // 3,修改虚拟网关 updateVirtualGateway(response.getVirtualGateway().getId()); // 4,查询虚拟网关列表 listVirtualGateways(response.getVirtualGateway().getId()); // 5,删除虚拟网关 deleteVirtualGateway(response.getVirtualGateway().getId()); } private static CreateVirtualGatewayResponse createVirtualGateway() { CreateVirtualGateway createVirtualGateway = new CreateVirtualGateway() .withVpcId("") .withName("") .withLocalEpGroup(Arrays.asList("")) .withDescription(""); CreateVirtualGatewayRequest request = new CreateVirtualGatewayRequest() .withBody(new CreateVirtualGatewayRequestBody().withVirtualGateway(createVirtualGateway)); CreateVirtualGatewayResponse response = null; try { response = client.createVirtualGateway(request); logger.info(response.toString()); } catch (ClientRequestException e) { logger.error(String.valueOf(e.getHttpStatusCode())); logger.error(e.toString()); } catch (ServerResponseException e) { logger.error(String.valueOf(e.getHttpStatusCode())); logger.error(e.getMessage()); } return response; } private static void showVirtualGateway(String virtualGatewayId) { ShowVirtualGatewayRequest request = new ShowVirtualGatewayRequest().withVirtualGatewayId(virtualGatewayId); try { ShowVirtualGatewayResponse response = client.showVirtualGateway(request); logger.info(response.toString()); } catch (ClientRequestException e) { logger.error(String.valueOf(e.getHttpStatusCode())); logger.error(e.toString()); } catch (ServerResponseException e) { logger.error(String.valueOf(e.getHttpStatusCode())); logger.error(e.getMessage()); } } private static void updateVirtualGateway(String virtualGatewayId) { UpdateVirtualGatewayRequest request = new UpdateVirtualGatewayRequest() .withVirtualGatewayId(virtualGatewayId) .withBody(new UpdateVirtualGatewayRequestBody().withVirtualGateway(new UpdateVirtualGateway() .withName("") .withDescription(""))); try { UpdateVirtualGatewayResponse response = client.updateVirtualGateway(request); logger.info(response.toString()); } catch (ClientRequestException e) { logger.error(String.valueOf(e.getHttpStatusCode())); logger.error(e.toString()); } catch (ServerResponseException e) { logger.error(String.valueOf(e.getHttpStatusCode())); logger.error(e.getMessage()); } } private static void listVirtualGateways(String virtualGatewayId) { ListVirtualGatewaysRequest request = new ListVirtualGatewaysRequest().withId(Arrays.asList(virtualGatewayId)); try { ListVirtualGatewaysResponse response = client.listVirtualGateways(request); logger.info(response.toString()); } catch (ClientRequestException e) { logger.error(String.valueOf(e.getHttpStatusCode())); logger.error(e.toString()); } catch (ServerResponseException e) { logger.error(String.valueOf(e.getHttpStatusCode())); logger.error(e.getMessage()); } } private static void deleteVirtualGateway(String virtualGatewayId) { DeleteVirtualGatewayRequest request = new DeleteVirtualGatewayRequest().withVirtualGatewayId(virtualGatewayId); try { DeleteVirtualGatewayResponse response = client.deleteVirtualGateway(request); logger.info(response.toString()); } catch (ClientRequestException e) { logger.error(String.valueOf(e.getHttpStatusCode())); logger.error(e.toString()); } catch (ServerResponseException e) { logger.error(String.valueOf(e.getHttpStatusCode())); logger.error(e.getMessage()); } } } ``` 您可以在 [云专线DC服务文档](https://support.huaweicloud.com/dc/index.html) 和[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=DC&api=CreateVirtualGateway) 查看具体信息。 ### 修订记录 发布日期 | 文档版本 | 修订说明 :----: | :-----: | :------: 2022/12/12 |1.0 | 文档首次发布