From 27479e2b49fe01006b225243e39de088a7574ebe Mon Sep 17 00:00:00 2001 From: ywt <3471515127@qq.com> Date: Tue, 8 Oct 2024 10:43:19 +0800 Subject: [PATCH] =?UTF-8?q?feat():=20=E9=87=8D=E6=9E=84=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E4=BB=A3=E7=A0=81=E4=BB=A5=E5=8F=8A=E5=88=A0?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/redis/service/RedisService.java | 2 + .../cloud-modules-vehicle-gateway/pom.xml | 4 + .../gateway/VehicleGatewayApplication.java | 5 +- .../vehicle/gateway/aliyun/AliYunConfig.java | 36 ++++ .../gateway/aliyun/ecs/DelInstance.java | 135 ------------ .../gateway/aliyun/ecs/DeleteSample.java | 30 +++ .../gateway/aliyun/ecs/QueryInstance.java | 59 ------ .../vehicle/gateway/aliyun/ecs/Sample.java | 123 +++-------- .../gateway/aliyun/ecs/StartInstance.java | 56 ----- .../mapper/VehicleConnectionMapper.java | 10 - .../aliyun/service/AliYunEcsService.java | 194 ++++++++++++++++++ .../vehicle/gateway/config/AliProperties.java | 51 +++++ .../vehicle/gateway/config/RedisConfig.java | 28 --- .../gateway/config/RestTemplateConfig.java | 43 ---- .../VehicleConnectionController.java | 6 +- .../{aliyun => }/domain/AliInstance.java | 2 +- .../{aliyun => }/domain/AliServerConfig.java | 2 +- .../{aliyun => }/domain/ConnectWeight.java | 2 +- .../{aliyun => }/domain/HttpStatus.java | 2 +- .../gateway/{aliyun => }/domain/Instance.java | 2 +- .../{aliyun => }/domain/ServerConfig.java | 2 +- .../domain/VehicleConnection.java | 2 +- .../gateway/{aliyun => }/domain/VinIp.java | 2 +- .../domain/req/VehicleConnectionReq.java | 2 +- .../mapper/VehicleConnectionMapper.java | 9 + .../service/VehicleConnectionService.java | 4 +- .../impl/VehicleConnectionServiceImpl.java | 10 +- .../vehicle/gateway/utils/DelInstance.java | 130 ++++++++++++ .../cloud/vehicle/gateway/utils/Sample.java | 109 ++++++++++ .../src/main/resources/bootstrap.yml | 12 +- .../mapper/VehicleConnectionMapper.xml | 2 +- 31 files changed, 633 insertions(+), 443 deletions(-) create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/AliYunConfig.java delete mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/DelInstance.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/DeleteSample.java delete mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/QueryInstance.java delete mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/StartInstance.java delete mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/mapper/VehicleConnectionMapper.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/service/AliYunEcsService.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/config/AliProperties.java delete mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/config/RedisConfig.java delete mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/config/RestTemplateConfig.java rename cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/{aliyun => }/controller/VehicleConnectionController.java (83%) rename cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/{aliyun => }/domain/AliInstance.java (86%) rename cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/{aliyun => }/domain/AliServerConfig.java (91%) rename cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/{aliyun => }/domain/ConnectWeight.java (86%) rename cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/{aliyun => }/domain/HttpStatus.java (96%) rename cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/{aliyun => }/domain/Instance.java (82%) rename cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/{aliyun => }/domain/ServerConfig.java (94%) rename cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/{aliyun => }/domain/VehicleConnection.java (90%) rename cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/{aliyun => }/domain/VinIp.java (83%) rename cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/{aliyun => }/domain/req/VehicleConnectionReq.java (89%) create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/mapper/VehicleConnectionMapper.java rename cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/{aliyun => }/service/VehicleConnectionService.java (58%) rename cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/{aliyun => }/service/impl/VehicleConnectionServiceImpl.java (76%) create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/utils/DelInstance.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/utils/Sample.java diff --git a/cloud-common/cloud-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java b/cloud-common/cloud-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java index db90c1e..e7f6c53 100644 --- a/cloud-common/cloud-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java +++ b/cloud-common/cloud-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java @@ -6,6 +6,7 @@ import org.springframework.data.redis.core.HashOperations; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; import java.util.*; import java.util.concurrent.TimeUnit; @@ -17,6 +18,7 @@ import java.util.concurrent.TimeUnit; **/ @SuppressWarnings(value = {"unchecked", "rawtypes"}) @Component +//@Service public class RedisService { @Autowired public RedisTemplate redisTemplate; diff --git a/cloud-modules/cloud-modules-vehicle-gateway/pom.xml b/cloud-modules/cloud-modules-vehicle-gateway/pom.xml index d5eef32..2e10df2 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/pom.xml +++ b/cloud-modules/cloud-modules-vehicle-gateway/pom.xml @@ -83,6 +83,10 @@ com.muyu cloud-common-xxl + + + + com.muyu diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/VehicleGatewayApplication.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/VehicleGatewayApplication.java index 2221cdf..8472dbf 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/VehicleGatewayApplication.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/VehicleGatewayApplication.java @@ -4,13 +4,16 @@ import com.muyu.common.security.annotation.EnableCustomConfig; import com.muyu.common.security.annotation.EnableMyFeignClients; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.ComponentScan; /** * 车辆网关负载中心 */ @EnableCustomConfig -@EnableMyFeignClients +@EnableFeignClients @SpringBootApplication +//@ComponentScan(basePackages = "com.muyu") public class VehicleGatewayApplication { public static void main(String[] args) { SpringApplication.run(VehicleGatewayApplication.class, args); diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/AliYunConfig.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/AliYunConfig.java new file mode 100644 index 0000000..fbd24f3 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/AliYunConfig.java @@ -0,0 +1,36 @@ +package com.muyu.cloud.vehicle.gateway.aliyun; + +import com.aliyun.ecs20140526.Client; +import com.aliyun.teaopenapi.models.Config; +import com.muyu.cloud.vehicle.gateway.config.AliProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * :Ali客户端 + */ +@Configuration +public class AliYunConfig { + + @Autowired + private AliProperties aliProperties; + + @Bean + public Client createClient() { + // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 + Config config = new Config() + // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 + .setAccessKeyId(aliProperties.getAccessKeyId()) + // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 + .setAccessKeySecret(aliProperties.getAccessKeySecret()); + // Endpoint 请参考 https://api.aliyun.com/product/Ecs + config.endpoint = aliProperties.getEndpoint(); + try { + return new Client(config); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/DelInstance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/DelInstance.java deleted file mode 100644 index 1b40738..0000000 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/DelInstance.java +++ /dev/null @@ -1,135 +0,0 @@ -// This file is auto-generated, don't edit it. Thanks. -package com.muyu.cloud.vehicle.gateway.aliyun.ecs; - -import com.aliyun.ecs20140526.Client; -import com.aliyun.ecs20140526.models.DeleteInstancesRequest; -import com.aliyun.ecs20140526.models.DescribeInstancesRequest; -import com.aliyun.ecs20140526.models.DescribeInstancesResponse; -import com.aliyun.ecs20140526.models.DescribeInstancesResponseBody; -import com.aliyun.tea.*; -import com.aliyun.teaopenapi.models.Config; -import com.aliyun.teautil.Common; -import com.aliyun.teautil.models.RuntimeOptions; -import lombok.extern.log4j.Log4j2; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationListener; -import org.springframework.context.event.ContextClosedEvent; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.List; - -/** - * 删除实例 - */ -@Log4j2 -@Component -public class DelInstance implements ApplicationListener { - - @Autowired - private StringRedisTemplate redisTemplate; - - - /** - * description : - *

使用AK&SK初始化账号Client

- * @return Client - * - * @throws Exception - */ - public static Client createClient() throws Exception { - // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 - // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html。 - Config config = new Config() - // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 - .setAccessKeyId("LTAI5t7Fnx2QLTYLSu9357wP") - // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 - .setAccessKeySecret("3LOnydNZ25ytsTGczuSygElx0HJ6nN"); - // Endpoint 请参考 https://api.aliyun.com/product/Ecs - config.endpoint = "ecs.cn-shanghai.aliyuncs.com"; - return new Client(config); - } - - - - public void delInstance() throws Exception{ - //创建ECS客户端对象,用于后续调用ECS相关API - Client client = DelInstance.createClient(); - - List list = redisTemplate.opsForList().range("instanceIds",0,-1); - -// DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest() -// .setRegionId("cn-shanghai"); - -// //创建运行时选择对象,用于配置运行时的选项参数 -// RuntimeOptions runtimeOptions = new RuntimeOptions(); -// -// //获取实例列表 -// DescribeInstancesResponse describeInstancesResponse = client.describeInstancesWithOptions(describeInstancesRequest, runtimeOptions); -// -// //提取实例ID集合 -// ArrayList list = new ArrayList<>(); -// DescribeInstancesResponseBody body = describeInstancesResponse.getBody(); -// -// for (DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstancesInstance instance : body.getInstances().getInstance()) { -// list.add(instance.getInstanceId()); -// } -// -// System.out.println("Instance IDs"+list); - - // 创建删除实例请求对象,并设置请求参数 - DeleteInstancesRequest deleteInstancesRequest = new DeleteInstancesRequest() - // 设置地域ID,指定要删除的实例所属的地域ID。 - .setRegionId("cn-shanghai") - //设置DryRun为True,用于验证请求是否可以成功,但不实际执行删除操作 - .setDryRun(false) - // 设置Force为true,表示即使实例有正在运行的任务,也强制删除实例 - .setForce(true) - // 设置TerminateSubscription为true,表示删除按订阅付费的实例时终止订阅 - .setTerminateSubscription(true) - // 设置实例ID列表,使用参数名称 instanceId,参数类型为数组。 - .setInstanceId(list); - // 创建运行时选项对象,用于配置运行时的选项参数 - RuntimeOptions runtime = new RuntimeOptions(); - try{ - //复制代码运行请自行打印 API 的返回值 - client.deleteInstancesWithOptions(deleteInstancesRequest,runtime); - } catch (TeaException error) { - // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 - // 错误 message - log.error(error.getMessage()); - // 诊断地址 - log.error(error.getData().get("Recommend")); - Common.assertAsString(error.message); - } catch (Exception _error){ - TeaException error = new TeaException(_error.getMessage(), _error); - // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 - // 错误 message - log.error(error.getMessage()); - // 诊断地址 - log.error(error.getData().get("Recommend")); - Common.assertAsString(error.message); - } - } - - -// @Override -// public void destroy() throws Exception { -// log.info("===============>开始执行删除实例方法"); -// delInstance(); -// } - - @Override - public void onApplicationEvent(ContextClosedEvent event) { - try{ - log.info("=======>删除实例"); - delInstance(); -// redisTemplate.delete("instanceIds"); -// redisTemplate.delete("instanceList"); - } catch (Exception e) { - throw new RuntimeException(e); - } - } -} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/DeleteSample.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/DeleteSample.java new file mode 100644 index 0000000..49b9e68 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/DeleteSample.java @@ -0,0 +1,30 @@ +package com.muyu.cloud.vehicle.gateway.aliyun.ecs; + +import com.muyu.cloud.vehicle.gateway.aliyun.service.AliYunEcsService; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + *删除实例方法 + */ +@Log4j2 +@Component +public class DeleteSample implements DisposableBean { + + @Autowired + private AliYunEcsService aliYunEcsService; + @Override + public void destroy() throws Exception { + try{ + log.info("==========开始执行删除实例方法"); + Thread.sleep(10000); + aliYunEcsService.deleteInstance(); + } catch (Exception e) { + log.info("删除实例失败"); + throw new RuntimeException(e); + } + log.info("删除实例成功"); + } +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/QueryInstance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/QueryInstance.java deleted file mode 100644 index de0e9d5..0000000 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/QueryInstance.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.muyu.cloud.vehicle.gateway.aliyun.ecs; - -import com.aliyun.ecs20140526.Client; -import com.aliyun.ecs20140526.models.DescribeInstancesRequest; -import com.aliyun.ecs20140526.models.DescribeInstancesResponse; -import com.aliyun.teaopenapi.models.Config; -import com.aliyun.darabonba.env.EnvClient; -import com.aliyun.teautil.Common; -import com.aliyun.teautil.models.RuntimeOptions; - -import java.util.Arrays; -import java.util.List; - -/** - * 查询一台或多台实例的详细信息 - */ -public class QueryInstance { - - /** - * description : - *

使用AK&SK初始化账号Client

- * @return Client - * - * @throws Exception - */ - public static Client createClient(String alibabaCloudAccessKeyId, String alibabaCloudAccessKeySecret) throws Exception{ - Config config = new Config() - .setAccessKeyId("LTAI5t7Fnx2QLTYLSu9357wP") - .setAccessKeySecret("3LOnydNZ25ytsTGczuSygElx0HJ6nN"); - config.endpoint = "ecs-cn-hangzhou.aliyuncs.com"; - return new Client(config); - } - - public static Client createClientWithSTS() throws Exception { - Config config = new Config() - .setAccessKeyId("LTAI5t7Fnx2QLTYLSu9357wP") - .setAccessKeySecret("3LOnydNZ25ytsTGczuSygElx0HJ6nN") - .setSecurityToken("token") - .setType("sts"); - config.endpoint = "ecs-cn-hangzhou.aliyuncs.com"; - return new Client(config); - } - - public static void main(String[] args_) throws Exception{ - List list = Arrays.asList(args_); - - Client client = QueryInstance.createClient(EnvClient.getEnv("LTAI5t7Fnx2QLTYLSu9357wP"), EnvClient.getEnv("3LOnydNZ25ytsTGczuSygElx0HJ6nN")); - DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest() - .setRegionId("cn-shanghai") - .setInternetChargeType("PayByTraffic") - .setInstanceChargeType("PostPaid"); - RuntimeOptions runtime = new RuntimeOptions(); - DescribeInstancesResponse resp = client.describeInstancesWithOptions(describeInstancesRequest, runtime); - com.aliyun.teaconsole.Client.log(Common.toJSONString(resp)); - - } - - -} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/Sample.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/Sample.java index 50c547e..f15b318 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/Sample.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/Sample.java @@ -1,114 +1,57 @@ package com.muyu.cloud.vehicle.gateway.aliyun.ecs; -import com.aliyun.ecs20140526.Client; -import com.aliyun.ecs20140526.models.*; -import com.aliyun.tea.*; -import com.aliyun.teaopenapi.models.Config; -import com.aliyun.teautil.models.RuntimeOptions; -import com.muyu.cloud.vehicle.gateway.aliyun.domain.Instance; +import com.muyu.cloud.vehicle.gateway.aliyun.service.AliYunEcsService; +import com.muyu.cloud.vehicle.gateway.config.AliProperties; +import com.muyu.cloud.vehicle.gateway.domain.AliInstance; +import com.muyu.common.redis.service.RedisService; import lombok.extern.log4j.Log4j2; -import org.apache.logging.log4j.CloseableThreadContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; -import org.springframework.data.redis.core.ListOperations; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Arrays; import java.util.List; /** - * 批量创建ECS实例 + * 创建实例 */ + @Log4j2 @Component -public class Sample implements ApplicationRunner { +public class Sample implements ApplicationRunner{ + @Autowired + private AliYunEcsService aliYunEcsService; + @Autowired + private AliProperties aliProperties; - /** - * description : - *

使用AK&SK初始化账号Client

- * @return Client - * - * @throws Exception - */ - public static Client createClient() throws Exception { - // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 - Config config = new Config() - // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 - .setAccessKeyId("LTAI5t7Fnx2QLTYLSu9357wP") - // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 - .setAccessKeySecret("3LOnydNZ25ytsTGczuSygElx0HJ6nN"); - // Endpoint 请参考 https://api.aliyun.com/product/Ecs - config.endpoint = "ecs-cn-hangzhou.aliyuncs.com"; - return new Client(config); - } - - public void creatInstance() throws Exception { - - // 将命令行参数转换为字符串列表 - List args = Arrays.asList(); - // 创建阿里云ECS客户端 - Client client = Sample.createClient(); - // 配置系统盘参数 - RunInstancesRequest.RunInstancesRequestSystemDisk systemDisk = new RunInstancesRequest.RunInstancesRequestSystemDisk() - .setSize("20")// 设置系统盘大小为40GB - .setCategory("cloud_essd");// 设置系统盘类型为cloud_essd - // 创建创建实例请求对象并设置参数 - RunInstancesRequest runInstancesRequest = new RunInstancesRequest() - .setRegionId("cn-shanghai") // 设置地域ID - .setImageId("m-uf66taa8r57ky0pg3e7s")// 设置镜像ID - .setInstanceType("ecs.e-c1m1.large")// 设置实例类型 - .setSecurityGroupId("sg-uf6hyictocodexptlgiv")// 设置安全组ID - .setVSwitchId("vsw-uf6ags5luz17qd6ckn2tb")// 设置虚拟交换机ID - .setInstanceName("launch-advisor-20240929")// 设置实例名称 - .setInstanceChargeType("PostPaid")// 设置实例付费类型为后付费按量付费 - .setSystemDisk(systemDisk)// 设置系统盘配置 - .setHostName("root")// 设置主机名 - .setPassword("@ywt021900")// 设置实例密码 - .setAmount(1)// 设置创建实例的数量 - .setInternetChargeType("PayByTraffic")// 设置互联网计费类型为按流量计费 - .setInternetMaxBandwidthOut(1);// 设置互联网最大出带宽为1 Mbps - RuntimeOptions runtime = new RuntimeOptions(); - try { - // 复制代码运行请自行打印 API 的返回值 - RunInstancesResponse runInstancesResponse = client.runInstancesWithOptions(runInstancesRequest, runtime); - RunInstancesResponseBody body = runInstancesResponse.getBody(); - ArrayList list = new ArrayList<>(body.getInstanceIdSets().getInstanceIdSet()); - log.info("实例ID:{}", list); - - } catch (TeaException error) { - // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 - // 错误 message - System.out.println(error.getMessage()); - // 诊断地址 - System.out.println(error.getData().get("Recommend")); - com.aliyun.teautil.Common.assertAsString(error.message); - } catch (Exception _error) { - TeaException error = new TeaException(_error.getMessage(), _error); - // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 - // 错误 message - System.out.println(error.getMessage()); - // 诊断地址 - System.out.println(error.getData().get("Recommend")); - com.aliyun.teautil.Common.assertAsString(error.message); - } - } - -// private static DescribeInstancesResponse queryInstanceDetails(Client client) { -// -// //创建查询实例请求对象并设置参数 -// DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest(); -// return null; -// } +// @Autowired +// private RedisService redisService; @Override public void run(ApplicationArguments args) throws Exception { - log.info("===============>开始批量创建实例"); - creatInstance(); + List list; + try{ + log.info("开始创建实例"); + list =aliYunEcsService.generateInstance(aliProperties.getAmount()); + } catch (Exception e) { + log.info("创建实例失败"); + throw new RuntimeException(e); + } + log.info("创建实例成功"); +// redisService.setCacheList("instanceIds",list); + try{ + Thread.sleep(6000); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + List aliInstances = aliYunEcsService.selectInstance(list); + log.info("查询实例信息成功:{}",aliInstances); + //将查询到的实例信息列表存储到redis中 +// redisService.setCacheList("instanceList",aliInstances); + log.info("redis存储成功:{}",aliInstances); } } diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/StartInstance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/StartInstance.java deleted file mode 100644 index c3019bf..0000000 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/StartInstance.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.muyu.cloud.vehicle.gateway.aliyun.ecs;//// This file is auto-generated, don't edit it. Thanks. -//package com.muyu.cloud.vehicle.gateway.aliyun.ecs; -// -//import com.aliyun.tea.*; -// -///** -// * 启动一台实例 -// */ -//public class StartInstance { -// -// /** -// * description : -// *

使用AK&SK初始化账号Client

-// * @return Client -// * -// * @throws Exception -// */ -// public static com.aliyun.ecs20140526.Client createClient() throws Exception { -// // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 -// // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html。 -// com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config() -// // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 -// .setAccessKeyId("LTAI5t7Fnx2QLTYLSu9357wP") -// // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 -// .setAccessKeySecret("3LOnydNZ25ytsTGczuSygElx0HJ6nN"); -// // Endpoint 请参考 https://api.aliyun.com/product/Ecs -// config.endpoint = "ecs.cn-shanghai.aliyuncs.com"; -// return new com.aliyun.ecs20140526.Client(config); -// } -// -// public static void main(String[] args_) throws Exception { -// java.util.List args = java.util.Arrays.asList(args_); -// com.aliyun.ecs20140526.Client client = StartInstance.createClient(); -// com.aliyun.ecs20140526.models.StartInstanceRequest startInstanceRequest = new com.aliyun.ecs20140526.models.StartInstanceRequest(); -// com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); -// try { -// // 复制代码运行请自行打印 API 的返回值 -// client.startInstanceWithOptions(startInstanceRequest, runtime); -// } catch (TeaException error) { -// // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 -// // 错误 message -// System.out.println(error.getMessage()); -// // 诊断地址 -// System.out.println(error.getData().get("Recommend")); -// com.aliyun.teautil.Common.assertAsString(error.message); -// } catch (Exception _error) { -// TeaException error = new TeaException(_error.getMessage(), _error); -// // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 -// // 错误 message -// System.out.println(error.getMessage()); -// // 诊断地址 -// System.out.println(error.getData().get("Recommend")); -// com.aliyun.teautil.Common.assertAsString(error.message); -// } -// } -//} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/mapper/VehicleConnectionMapper.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/mapper/VehicleConnectionMapper.java deleted file mode 100644 index b573aa1..0000000 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/mapper/VehicleConnectionMapper.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.muyu.cloud.vehicle.gateway.aliyun.mapper; - -import com.muyu.cloud.vehicle.gateway.aliyun.domain.VehicleConnection; -import com.muyu.cloud.vehicle.gateway.aliyun.domain.req.VehicleConnectionReq; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface VehicleConnectionMapper { - void addConnect(VehicleConnection vehicleConnection); -} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/service/AliYunEcsService.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/service/AliYunEcsService.java new file mode 100644 index 0000000..8fbd658 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/service/AliYunEcsService.java @@ -0,0 +1,194 @@ +package com.muyu.cloud.vehicle.gateway.aliyun.service; + +import com.aliyun.ecs20140526.Client; +import com.aliyun.ecs20140526.models.*; +import com.aliyun.tea.TeaException; +import com.aliyun.teautil.models.RuntimeOptions; +import com.muyu.cloud.vehicle.gateway.config.AliProperties; +import com.muyu.cloud.vehicle.gateway.domain.AliInstance; +import com.muyu.common.core.exception.ServiceException; +import com.muyu.common.redis.service.RedisService; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + *ali业务层 + */ +@Log4j2 +@Service +public class AliYunEcsService { + /** + * 阿里云配置 + */ + @Autowired + private AliProperties aliProperties; + /** + * 阿里云客户端 + */ + @Autowired + private Client client; + /** + * redis缓存 + */ +// @Autowired +// private RedisService redisService; + + /** + * 生成实例 + * + * @param amount 生成数量 + * @return 实例id集合 + */ + public List generateInstance(Integer amount) { +// redisService.deleteObject("instanceIds"); +// redisService.deleteObject("instanceList"); + // 检查生成实例的数量是否有效 + if (amount == null || amount <= 0) { + throw new ServiceException("生成数量不能小于1"); + } + +// 初始化系统盘配置 + RunInstancesRequest.RunInstancesRequestSystemDisk systemDisk = new RunInstancesRequest.RunInstancesRequestSystemDisk(); + systemDisk.setSize("20"); + systemDisk.setCategory("cloud_essd"); + +// 创建创建实例请求对象并设置参数 + RunInstancesRequest runInstancesRequest = new RunInstancesRequest() + // 设置地域ID + .setRegionId(aliProperties.getRegionId()) + // 设置镜像ID + .setImageId(aliProperties.getImageId()) + // 设置实例规格类型 + .setInstanceType(aliProperties.getInstanceType()) + // 设置安全组ID + .setSecurityGroupId(aliProperties.getSecurityGroupId()) + // 设置虚拟交换机ID + .setVSwitchId(aliProperties.getSwitchId()) + // 设置实例名称 + .setInstanceName("server-mqtt") + // 设置付费类型 按量付费 + .setInstanceChargeType("PostPaid") + // 设置系统盘配置 + .setSystemDisk(systemDisk) + // 设置用户名 + .setHostName("root") + // 设置密码 + .setPassword("@ywt0219") + // 设置要创建的实例数量 + .setAmount(amount) + .setInternetChargeType("PayByTraffic") + .setInternetMaxBandwidthOut(1); + + // 创建运行时选项对象 + RuntimeOptions runtimeOptions = new RuntimeOptions(); + + // 尝试执行创建实例请求 + try { + // 复制代码运行请自行打印 API 的返回值 + RunInstancesResponse runInstancesResponse = client.runInstancesWithOptions(runInstancesRequest, runtimeOptions); + if (runInstancesResponse.getStatusCode() != 200) { + throw new ServiceException("查询实例状态失败"); + } + log.info("实例创建成功: {}", runInstancesResponse.getBody().getInstanceIdSets().instanceIdSet); + RunInstancesResponseBody body = runInstancesResponse.getBody(); + RunInstancesResponseBody.RunInstancesResponseBodyInstanceIdSets instanceIdSets = body.getInstanceIdSets(); + return new ArrayList<>(instanceIdSets.instanceIdSet); + } catch (Exception error) { + log.error("创建阿里云实例报错:[{}]", error.getMessage()); + throw new ServiceException(error.getMessage()); + } + } + + /** + * 根据实例id查询实例信息 + * + * @param instanceIds 实例id集合 + */ + public List selectInstance(List instanceIds) throws Exception { + // 检查实例ID列表是否为空,如果为空则抛出异常 + if (instanceIds == null || instanceIds.isEmpty()) { + throw new ServiceException("实例id不能为空"); + } + // 创建查询实例的请求对象 + DescribeInstancesRequest request = new DescribeInstancesRequest() + .setRegionId(aliProperties.getRegionId()); + + // 创建运行时选项对象,用于配置请求的额外参数 + RuntimeOptions runtimeOptions = new RuntimeOptions(); + List aliInstances = new ArrayList<>(); + try { + // 发送请求并获取响应对象 + DescribeInstancesResponse describeInstancesResponse = client.describeInstancesWithOptions(request, runtimeOptions); + // 检查响应状态码,如果为200则表示查询失败,抛出异常 + if (describeInstancesResponse.getStatusCode() != 200) { + throw new ServiceException("查询实例状态失败"); + } + List instance = describeInstancesResponse.getBody().getInstances().getInstance(); + for (DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstancesInstance bodyInstance : instance) { + // 实例id + String instanceId = bodyInstance.getInstanceId(); + log.info("实例id为:{}", instanceId); + // ip地址 + String ipAddress = bodyInstance.getPublicIpAddress().getIpAddress().get(0); + log.info("实例ip为:{}", ipAddress); + // 实例状态 + String status = bodyInstance.getStatus(); + log.info("实例状态为:{}", status); + AliInstance aliInstance = new AliInstance(instanceId, ipAddress, status); + aliInstances.add(aliInstance); + } + log.info("查询成功"); + } catch (Exception e) { + log.error("查询服务器实例错误:[{}]", e.getMessage(), e); + throw new RuntimeException(e); + } + return aliInstances; + } + + /** + * 删除实例 + */ + public void deleteInstance() throws Exception { + DescribeInstancesRequest attributeRequest = new DescribeInstancesRequest(); + attributeRequest.setRegionId(aliProperties.getRegionId()); + + RuntimeOptions runtimeOptions = new RuntimeOptions(); + + DescribeInstancesResponse instancesWithOptions = client.describeInstancesWithOptions(attributeRequest, runtimeOptions); + ArrayList list = new ArrayList<>(); + DescribeInstancesResponseBody body = instancesWithOptions.getBody(); + for (DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstancesInstance instance : body.instances.instance) { + list.add(instance.getInstanceId()); + } + log.info("list:" + list); + DeleteInstancesRequest deleteInstancesRequest = new DeleteInstancesRequest(); + deleteInstancesRequest.setRegionId(aliProperties.getRegionId()) + .setDryRun(false) + .setForce(true) + .setTerminateSubscription(true) + .setInstanceId(list); + RuntimeOptions runtime = new RuntimeOptions(); + try { + client.deleteInstancesWithOptions(deleteInstancesRequest, runtime); + } catch (TeaException error) { + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + com.aliyun.teautil.Common.assertAsString(error.message); + } catch (Exception _error) { + TeaException error = new TeaException(_error.getMessage(), _error); + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + com.aliyun.teautil.Common.assertAsString(error.message); + } + } +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/config/AliProperties.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/config/AliProperties.java new file mode 100644 index 0000000..32e192a --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/config/AliProperties.java @@ -0,0 +1,51 @@ +package com.muyu.cloud.vehicle.gateway.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +/** + * 阿里云配置 + */ +@Data +@Configuration +@ConfigurationProperties(prefix = "aliyun") +public class AliProperties { + + /** + * Key + */ + private String accessKeyId; + /** + * Secret + */ + private String accessKeySecret; + /** + * 地域 + */ + private String endpoint; + /** + * 地域ID + */ + private String regionId; + /** + * 镜像ID + */ + private String imageId; + /** + * 实例规格类型 + */ + private String instanceType; + /** + * 安全组ID + */ + private String securityGroupId; + /** + * 虚拟交换机ID + */ + private String switchId; + /** + * 实例数量 + */ + private Integer amount; +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/config/RedisConfig.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/config/RedisConfig.java deleted file mode 100644 index 5531036..0000000 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/config/RedisConfig.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.muyu.cloud.vehicle.gateway.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; -import org.springframework.data.redis.serializer.StringRedisSerializer; - -/** - * Redis配置类 - */ -@Configuration -public class RedisConfig { - - @Bean - public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){ - RedisTemplate redisTemplate = new RedisTemplate<>(); - redisTemplate.setConnectionFactory(redisConnectionFactory); - - redisTemplate.setKeySerializer(new StringRedisSerializer()); - redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer(Object.class)); - - redisTemplate.setHashKeySerializer(new StringRedisSerializer()); - redisTemplate.setHashValueSerializer(new StringRedisSerializer()); - return redisTemplate; - } -} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/config/RestTemplateConfig.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/config/RestTemplateConfig.java deleted file mode 100644 index 1d89c16..0000000 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/config/RestTemplateConfig.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.muyu.cloud.vehicle.gateway.config; - -import lombok.extern.log4j.Log4j2; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.client.ClientHttpRequestFactory; -import org.springframework.http.client.SimpleClientHttpRequestFactory; -import org.springframework.web.client.RestTemplate; - -/** - * rest配置类 - */ -@Log4j2 -@Configuration -public class RestTemplateConfig { - @Bean - public RestTemplate restTemplate(ClientHttpRequestFactory factory){ - return new RestTemplate(factory); - } - - /** - * 创建并配置客户端HTTP请求工厂实例。 - * 注意:这里设置了连接和读取数据的超时时间,分别设为15秒和5秒。 - * 这些值可以根据实际网络状况和应用需求进行调整。 - * - * @return 配置好的客户端请求工厂对象 - */ - @Bean - public ClientHttpRequestFactory simpleClientHttpRequestFactory(){ - try{ - SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); - //设置读取超时时间为5秒 - factory.setReadTimeout(5000); - //设置连接超时时间为15秒 - factory.setConnectTimeout(15000); - return factory; - } catch (Exception e) { - //处理创建工厂或设置超时时间可能出现的异常 - log.info("创建工厂失败:" + e.getMessage()); - throw new RuntimeException("初始化HTTP请求失败",e); - } - } -} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/controller/VehicleConnectionController.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/controller/VehicleConnectionController.java similarity index 83% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/controller/VehicleConnectionController.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/controller/VehicleConnectionController.java index 54e828b..d3602bf 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/controller/VehicleConnectionController.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/controller/VehicleConnectionController.java @@ -1,9 +1,9 @@ -package com.muyu.cloud.vehicle.gateway.aliyun.controller; +package com.muyu.cloud.vehicle.gateway.controller; import com.alibaba.nacos.api.model.v2.Result; -import com.muyu.cloud.vehicle.gateway.aliyun.domain.req.VehicleConnectionReq; -import com.muyu.cloud.vehicle.gateway.aliyun.service.VehicleConnectionService; +import com.muyu.cloud.vehicle.gateway.domain.req.VehicleConnectionReq; +import com.muyu.cloud.vehicle.gateway.service.VehicleConnectionService; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/AliInstance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/AliInstance.java similarity index 86% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/AliInstance.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/AliInstance.java index 10ebe57..d91b832 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/AliInstance.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/AliInstance.java @@ -1,4 +1,4 @@ -package com.muyu.cloud.vehicle.gateway.aliyun.domain; +package com.muyu.cloud.vehicle.gateway.domain; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/AliServerConfig.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/AliServerConfig.java similarity index 91% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/AliServerConfig.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/AliServerConfig.java index e337c9a..4e386f0 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/AliServerConfig.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/AliServerConfig.java @@ -1,4 +1,4 @@ -package com.muyu.cloud.vehicle.gateway.aliyun.domain; +package com.muyu.cloud.vehicle.gateway.domain; import lombok.AllArgsConstructor; diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/ConnectWeight.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/ConnectWeight.java similarity index 86% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/ConnectWeight.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/ConnectWeight.java index 32710bd..bd2f71e 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/ConnectWeight.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/ConnectWeight.java @@ -1,4 +1,4 @@ -package com.muyu.cloud.vehicle.gateway.aliyun.domain; +package com.muyu.cloud.vehicle.gateway.domain; import lombok.AllArgsConstructor; diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/HttpStatus.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/HttpStatus.java similarity index 96% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/HttpStatus.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/HttpStatus.java index 748ed18..6d5b1bd 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/HttpStatus.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/HttpStatus.java @@ -1,4 +1,4 @@ -package com.muyu.cloud.vehicle.gateway.aliyun.domain; +package com.muyu.cloud.vehicle.gateway.domain; /** * 返回状态码 diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/Instance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/Instance.java similarity index 82% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/Instance.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/Instance.java index e2af4fc..f425f1e 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/Instance.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/Instance.java @@ -1,4 +1,4 @@ -package com.muyu.cloud.vehicle.gateway.aliyun.domain; +package com.muyu.cloud.vehicle.gateway.domain; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/ServerConfig.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/ServerConfig.java similarity index 94% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/ServerConfig.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/ServerConfig.java index 0235433..1876cff 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/ServerConfig.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/ServerConfig.java @@ -1,4 +1,4 @@ -package com.muyu.cloud.vehicle.gateway.aliyun.domain; +package com.muyu.cloud.vehicle.gateway.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/VehicleConnection.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/VehicleConnection.java similarity index 90% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/VehicleConnection.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/VehicleConnection.java index ca6d48a..2527116 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/VehicleConnection.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/VehicleConnection.java @@ -1,4 +1,4 @@ -package com.muyu.cloud.vehicle.gateway.aliyun.domain; +package com.muyu.cloud.vehicle.gateway.domain; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/VinIp.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/VinIp.java similarity index 83% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/VinIp.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/VinIp.java index 2960f8e..7b09caa 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/VinIp.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/VinIp.java @@ -1,4 +1,4 @@ -package com.muyu.cloud.vehicle.gateway.aliyun.domain; +package com.muyu.cloud.vehicle.gateway.domain; import lombok.AllArgsConstructor; diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/req/VehicleConnectionReq.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/req/VehicleConnectionReq.java similarity index 89% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/req/VehicleConnectionReq.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/req/VehicleConnectionReq.java index cdcaf65..56154e4 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/req/VehicleConnectionReq.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/domain/req/VehicleConnectionReq.java @@ -1,4 +1,4 @@ -package com.muyu.cloud.vehicle.gateway.aliyun.domain.req; +package com.muyu.cloud.vehicle.gateway.domain.req; import lombok.AllArgsConstructor; diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/mapper/VehicleConnectionMapper.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/mapper/VehicleConnectionMapper.java new file mode 100644 index 0000000..7f7bb94 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/mapper/VehicleConnectionMapper.java @@ -0,0 +1,9 @@ +package com.muyu.cloud.vehicle.gateway.mapper; + +import com.muyu.cloud.vehicle.gateway.domain.VehicleConnection; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface VehicleConnectionMapper { + void addConnect(VehicleConnection vehicleConnection); +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/service/VehicleConnectionService.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/service/VehicleConnectionService.java similarity index 58% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/service/VehicleConnectionService.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/service/VehicleConnectionService.java index dfbf7cb..b75af93 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/service/VehicleConnectionService.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/service/VehicleConnectionService.java @@ -1,6 +1,6 @@ -package com.muyu.cloud.vehicle.gateway.aliyun.service; +package com.muyu.cloud.vehicle.gateway.service; -import com.muyu.cloud.vehicle.gateway.aliyun.domain.req.VehicleConnectionReq; +import com.muyu.cloud.vehicle.gateway.domain.req.VehicleConnectionReq; public interface VehicleConnectionService { /** diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/service/impl/VehicleConnectionServiceImpl.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/service/impl/VehicleConnectionServiceImpl.java similarity index 76% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/service/impl/VehicleConnectionServiceImpl.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/service/impl/VehicleConnectionServiceImpl.java index 71cca36..6259560 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/service/impl/VehicleConnectionServiceImpl.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/service/impl/VehicleConnectionServiceImpl.java @@ -1,9 +1,9 @@ -package com.muyu.cloud.vehicle.gateway.aliyun.service.impl; +package com.muyu.cloud.vehicle.gateway.service.impl; -import com.muyu.cloud.vehicle.gateway.aliyun.domain.VehicleConnection; -import com.muyu.cloud.vehicle.gateway.aliyun.domain.req.VehicleConnectionReq; -import com.muyu.cloud.vehicle.gateway.aliyun.mapper.VehicleConnectionMapper; -import com.muyu.cloud.vehicle.gateway.aliyun.service.VehicleConnectionService; +import com.muyu.cloud.vehicle.gateway.domain.VehicleConnection; +import com.muyu.cloud.vehicle.gateway.domain.req.VehicleConnectionReq; +import com.muyu.cloud.vehicle.gateway.mapper.VehicleConnectionMapper; +import com.muyu.cloud.vehicle.gateway.service.VehicleConnectionService; import lombok.extern.log4j.Log4j2; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/utils/DelInstance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/utils/DelInstance.java new file mode 100644 index 0000000..3c492c8 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/utils/DelInstance.java @@ -0,0 +1,130 @@ +//// This file is auto-generated, don't edit it. Thanks. +//package com.muyu.cloud.vehicle.gateway.utils; +// +//import com.aliyun.ecs20140526.Client; +//import com.aliyun.ecs20140526.models.DeleteInstancesRequest; +//import com.aliyun.tea.*; +//import com.aliyun.teaopenapi.models.Config; +//import com.aliyun.teautil.Common; +//import com.aliyun.teautil.models.RuntimeOptions; +//import lombok.extern.log4j.Log4j2; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.context.ApplicationListener; +//import org.springframework.context.event.ContextClosedEvent; +//import org.springframework.data.redis.core.StringRedisTemplate; +//import org.springframework.stereotype.Component; +// +//import java.util.List; +// +///** +// * 删除实例 +// */ +//@Log4j2 +//@Component +//public class DelInstance{ +// +// @Autowired +// private StringRedisTemplate redisTemplate; +// +// +// /** +// * description : +// *

使用AK&SK初始化账号Client

+// * @return Client +// * +// * @throws Exception +// */ +// public static Client createClient() throws Exception { +// // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 +// // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html。 +// Config config = new Config() +// // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 +// .setAccessKeyId("LTAI5t7Fnx2QLTYLSu9357wP") +// // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 +// .setAccessKeySecret("3LOnydNZ25ytsTGczuSygElx0HJ6nN"); +// // Endpoint 请参考 https://api.aliyun.com/product/Ecs +// config.endpoint = "ecs.cn-shanghai.aliyuncs.com"; +// return new Client(config); +// } +// +// +// +// public void delInstance() throws Exception{ +// //创建ECS客户端对象,用于后续调用ECS相关API +// Client client = DelInstance.createClient(); +// +// List list = redisTemplate.opsForList().range("instanceIds",0,-1); +// +//// DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest() +//// .setRegionId("cn-shanghai"); +// +//// //创建运行时选择对象,用于配置运行时的选项参数 +//// RuntimeOptions runtimeOptions = new RuntimeOptions(); +//// +//// //获取实例列表 +//// DescribeInstancesResponse describeInstancesResponse = client.describeInstancesWithOptions(describeInstancesRequest, runtimeOptions); +//// +//// //提取实例ID集合 +//// ArrayList list = new ArrayList<>(); +//// DescribeInstancesResponseBody body = describeInstancesResponse.getBody(); +//// +//// for (DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstancesInstance instance : body.getInstances().getInstance()) { +//// list.add(instance.getInstanceId()); +//// } +//// +//// System.out.println("Instance IDs"+list); +// +// // 创建删除实例请求对象,并设置请求参数 +// DeleteInstancesRequest deleteInstancesRequest = new DeleteInstancesRequest() +// // 设置地域ID,指定要删除的实例所属的地域ID。 +// .setRegionId("cn-shanghai") +// //设置DryRun为True,用于验证请求是否可以成功,但不实际执行删除操作 +// .setDryRun(false) +// // 设置Force为true,表示即使实例有正在运行的任务,也强制删除实例 +// .setForce(true) +// // 设置TerminateSubscription为true,表示删除按订阅付费的实例时终止订阅 +// .setTerminateSubscription(true) +// // 设置实例ID列表,使用参数名称 instanceId,参数类型为数组。 +// .setInstanceId(list); +// // 创建运行时选项对象,用于配置运行时的选项参数 +// RuntimeOptions runtime = new RuntimeOptions(); +// try{ +// //复制代码运行请自行打印 API 的返回值 +// client.deleteInstancesWithOptions(deleteInstancesRequest,runtime); +// } catch (TeaException error) { +// // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 +// // 错误 message +// log.error(error.getMessage()); +// // 诊断地址 +// log.error(error.getData().get("Recommend")); +// Common.assertAsString(error.message); +// } catch (Exception _error){ +// TeaException error = new TeaException(_error.getMessage(), _error); +// // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 +// // 错误 message +// log.error(error.getMessage()); +// // 诊断地址 +// log.error(error.getData().get("Recommend")); +// Common.assertAsString(error.message); +// } +// } +// +// +//// @Override +//// public void destroy() throws Exception { +//// log.info("===============>开始执行删除实例方法"); +//// delInstance(); +//// } +// +//// @Override +//// public void onApplicationEvent(ContextClosedEvent event) { +//// try{ +//// log.info("=======>删除实例"); +//// delInstance(); +////// redisTemplate.delete("instanceIds"); +////// redisTemplate.delete("instanceList"); +//// } catch (Exception e) { +//// throw new RuntimeException(e); +//// } +//// } +//} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/utils/Sample.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/utils/Sample.java new file mode 100644 index 0000000..ea6a40b --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/utils/Sample.java @@ -0,0 +1,109 @@ +//package com.muyu.cloud.vehicle.gateway.utils; +// +// +//import com.aliyun.ecs20140526.Client; +//import com.aliyun.ecs20140526.models.*; +//import com.aliyun.tea.*; +//import com.aliyun.teaopenapi.models.Config; +//import com.aliyun.teautil.models.RuntimeOptions; +//import lombok.extern.log4j.Log4j2; +//import org.springframework.boot.ApplicationArguments; +//import org.springframework.boot.ApplicationRunner; +//import org.springframework.stereotype.Component; +// +//import java.util.ArrayList; +//import java.util.Arrays; +//import java.util.List; +// +///** +// * 批量创建ECS实例 +// */ +//@Log4j2 +//@Component +//public class Sample { +// +// +// +// /** +// * description : +// *

使用AK&SK初始化账号Client

+// * @return Client +// * +// * @throws Exception +// */ +// public static Client createClient() throws Exception { +// // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 +// Config config = new Config() +// // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 +// .setAccessKeyId("LTAI5t7Fnx2QLTYLSu9357wP") +// // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 +// .setAccessKeySecret("3LOnydNZ25ytsTGczuSygElx0HJ6nN"); +// // Endpoint 请参考 https://api.aliyun.com/product/Ecs +// config.endpoint = "ecs-cn-hangzhou.aliyuncs.com"; +// return new Client(config); +// } +// +// public void creatInstance() throws Exception { +// +// // 将命令行参数转换为字符串列表 +// List args = Arrays.asList(); +// // 创建阿里云ECS客户端 +// Client client = Sample.createClient(); +// // 配置系统盘参数 +// RunInstancesRequest.RunInstancesRequestSystemDisk systemDisk = new RunInstancesRequest.RunInstancesRequestSystemDisk() +// .setSize("20")// 设置系统盘大小为40GB +// .setCategory("cloud_essd");// 设置系统盘类型为cloud_essd +// // 创建创建实例请求对象并设置参数 +// RunInstancesRequest runInstancesRequest = new RunInstancesRequest() +// .setRegionId("cn-shanghai") // 设置地域ID +// .setImageId("m-uf66taa8r57ky0pg3e7s")// 设置镜像ID +// .setInstanceType("ecs.e-c1m1.large")// 设置实例类型 +// .setSecurityGroupId("sg-uf6hyictocodexptlgiv")// 设置安全组ID +// .setVSwitchId("vsw-uf6ags5luz17qd6ckn2tb")// 设置虚拟交换机ID +// .setInstanceName("launch-advisor-20240929")// 设置实例名称 +// .setInstanceChargeType("PostPaid")// 设置实例付费类型为后付费按量付费 +// .setSystemDisk(systemDisk)// 设置系统盘配置 +// .setHostName("root")// 设置主机名 +// .setPassword("@ywt021900")// 设置实例密码 +// .setAmount(1)// 设置创建实例的数量 +// .setInternetChargeType("PayByTraffic")// 设置互联网计费类型为按流量计费 +// .setInternetMaxBandwidthOut(1);// 设置互联网最大出带宽为1 Mbps +// RuntimeOptions runtime = new RuntimeOptions(); +// try { +// // 复制代码运行请自行打印 API 的返回值 +// RunInstancesResponse runInstancesResponse = client.runInstancesWithOptions(runInstancesRequest, runtime); +// RunInstancesResponseBody body = runInstancesResponse.getBody(); +// ArrayList list = new ArrayList<>(body.getInstanceIdSets().getInstanceIdSet()); +// log.info("实例ID:{}", list); +// +// } catch (TeaException error) { +// // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 +// // 错误 message +// System.out.println(error.getMessage()); +// // 诊断地址 +// System.out.println(error.getData().get("Recommend")); +// com.aliyun.teautil.Common.assertAsString(error.message); +// } catch (Exception _error) { +// TeaException error = new TeaException(_error.getMessage(), _error); +// // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 +// // 错误 message +// System.out.println(error.getMessage()); +// // 诊断地址 +// System.out.println(error.getData().get("Recommend")); +// com.aliyun.teautil.Common.assertAsString(error.message); +// } +// } +// +//// private static DescribeInstancesResponse queryInstanceDetails(Client client) { +//// +//// //创建查询实例请求对象并设置参数 +//// DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest(); +//// return null; +//// } +//// +//// @Override +//// public void run(ApplicationArguments args) throws Exception { +//// log.info("===============>开始批量创建实例"); +//// creatInstance(); +//// } +//} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/bootstrap.yml index 303ca8a..96bbaaa 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 47.101.49.53:8848 user-name: nacos password: nacos - namespace: seven + namespace: warn # SPRING_AMQP_DESERIALIZATION_TRUST_ALL=true spring.amqp.deserialization.trust.all # Spring spring: @@ -58,3 +58,13 @@ spring: logging: level: com.muyu.system.mapper: DEBUG +aliyun: + access-key-id: LTAI5t7Fnx2QLTYLSu9357wP + access-key-secret: 3LOnydNZ25ytsTGczuSygElx0HJ6nN + endpoint: ecs-cn-hangzhou.aliyuncs.com + region-id: cn-shanghai + image-id: m-uf66taa8r57ky0pg3e7s + instance-type: ecs.t6-c1m1.large + security-group-id: sg-uf6hyictocodexptlgiv + switch-id: vsw-uf6ags5luz17qd6ckn2tb + amount: 1 diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/mapper/VehicleConnectionMapper.xml b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/mapper/VehicleConnectionMapper.xml index 8ca5630..5eb25ac 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/mapper/VehicleConnectionMapper.xml +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/mapper/VehicleConnectionMapper.xml @@ -2,7 +2,7 @@ - +