From add31c49fa2592c0130fd4a30ba6c9c32d8cbd39 Mon Sep 17 00:00:00 2001 From: liuyibo <14460729+liuyibo12345@user.noreply.gitee.com> Date: Mon, 30 Sep 2024 09:22:25 +0800 Subject: [PATCH] =?UTF-8?q?feat():=E7=A8=8B=E5=BA=8F=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E6=97=B6=E5=8F=AF=E4=BB=A5=E9=80=9A=E8=BF=87=E6=96=B0=E5=88=9B?= =?UTF-8?q?=E7=9A=84=E6=9C=8D=E5=8A=A1=E5=99=A8id=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=88=B0ip=E5=92=8C=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cloud-modules-vehicle-gateway/pom.xml | 11 ++++ .../instance/AcquireInstance.java | 21 ++++++++ .../instance/GenerateInstance.java | 51 ++++++++++++++++++- .../src/main/resources/logback/dev.xml | 2 +- .../src/main/resources/logback/prod.xml | 2 +- .../src/main/resources/logback/test.xml | 2 +- 6 files changed, 84 insertions(+), 5 deletions(-) create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/AcquireInstance.java diff --git a/cloud-modules/cloud-modules-vehicle-gateway/pom.xml b/cloud-modules/cloud-modules-vehicle-gateway/pom.xml index 3f4f80f..ced9de2 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/pom.xml +++ b/cloud-modules/cloud-modules-vehicle-gateway/pom.xml @@ -84,16 +84,19 @@ ecs20140526 5.1.8 + com.aliyun tea-openapi 0.3.2 + com.aliyun tea-console 0.0.1 + com.aliyun tea-util @@ -107,6 +110,14 @@ + + + aliyun-repo + https://maven.aliyun.com/repository/public + + + + ${project.artifactId} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/AcquireInstance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/AcquireInstance.java new file mode 100644 index 0000000..282bd06 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/AcquireInstance.java @@ -0,0 +1,21 @@ +package com.muyu.vehiclegateway.instance; + +import com.aliyun.cloudapi20160714.models.DescribeInstancesRequest; +import com.aliyun.cloudapi20160714.models.DescribeInstancesResponse; +import com.aliyun.ecs20140526.Client; +import org.springframework.stereotype.Component; + +/** + * @ClassName acquireInstance + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/29 17:24 + */ +@Component +public class AcquireInstance { + + + + + +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/GenerateInstance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/GenerateInstance.java index 729271b..627810b 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/GenerateInstance.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/GenerateInstance.java @@ -1,16 +1,25 @@ package com.muyu.vehiclegateway.instance; import com.aliyun.ecs20140526.Client; +import com.aliyun.ecs20140526.models.DescribeInstancesRequest; +import com.aliyun.ecs20140526.models.DescribeInstancesResponse; +import com.aliyun.ecs20140526.models.DescribeInstancesResponseBody; import com.aliyun.ecs20140526.models.RunInstancesRequest; import com.aliyun.tea.TeaException; import com.aliyun.teautil.Common; import com.aliyun.teautil.models.RuntimeOptions; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; +import java.util.ArrayList; +import java.util.List; + /** * @ClassName GenerateInstance * @Description 描述 @@ -22,11 +31,14 @@ import org.springframework.stereotype.Component; @Tag(name = "程序启动创建ECS服务器实例") public class GenerateInstance implements ApplicationRunner { + @Autowired + private static StringRedisTemplate redisTemplate; + /** * 启动自动创建实例 * @throws Exception */ - public static void generateInstance() throws Exception { + public static List generateInstance() throws Exception { // 创建ECS客户端对象,用于后续调用ECS相关API Client client = CreateClient.createClient(); @@ -58,7 +70,7 @@ public class GenerateInstance implements ApplicationRunner { // 设置实例密码 .setPassword("Six@211206") // 设置创建实例的数量 - .setAmount(1); + .setAmount(2); RuntimeOptions runtime = new RuntimeOptions(); try { @@ -80,8 +92,43 @@ public class GenerateInstance implements ApplicationRunner { System.out.println(error.getData().get("Recommend")); Common.assertAsString(error.message); } + + 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()); + list.add(instance.getPublicIpAddress().ipAddress.get(0)); + list.add(instance.getStatus()); + + log.info("实例id为:"+instance.getInstanceId()); + log.info("实例ip为:"+instance.getPublicIpAddress().ipAddress.get(0)); + log.info("实例状态为:"+instance.getStatus()); + } + +// redisTemplate.opsForList().rightPushAll("shili",list.toString()); +// +// List shili = redisTemplate.opsForList().range("shili", 0, -1); +// for (String string : shili) { +// log.info("redis实例:"+string); +// } + + return list; + } + @Override public void run(ApplicationArguments args) throws Exception { generateInstance(); diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/dev.xml b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/dev.xml index 03a6f37..99dd7b7 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/dev.xml +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/dev.xml @@ -1,7 +1,7 @@ - + diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/prod.xml b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/prod.xml index 0d5066f..f9cfee4 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/prod.xml +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/prod.xml @@ -1,7 +1,7 @@ - + diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/test.xml index 0d5066f..f9cfee4 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/test.xml +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/test.xml @@ -1,7 +1,7 @@ - +