AwsEcsUtils.java 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package com.fdkankan.mqcontroller.utils;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.aliyun.ess20220222.Client;
  4. import com.aliyun.ess20220222.models.ExecuteScalingRuleRequest;
  5. import com.aliyun.ess20220222.models.ExecuteScalingRuleResponse;
  6. import com.aliyun.ess20220222.models.RemoveInstancesRequest;
  7. import com.aliyun.ess20220222.models.RemoveInstancesResponse;
  8. import com.aliyun.tea.TeaException;
  9. import com.aliyun.teaopenapi.models.Config;
  10. import lombok.extern.slf4j.Slf4j;
  11. import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
  12. import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
  13. import software.amazon.awssdk.http.SdkHttpResponse;
  14. import software.amazon.awssdk.regions.Region;
  15. import software.amazon.awssdk.services.autoscaling.AutoScalingClient;
  16. import software.amazon.awssdk.services.autoscaling.model.*;
  17. import java.util.Arrays;
  18. import java.util.UUID;
  19. @Slf4j
  20. public class AwsEcsUtils {
  21. public static Boolean setCapacity(String autoScalingGroupName,String accesskey,String secretkey,Integer desiredCapacity) {
  22. AwsBasicCredentials awsCreds = AwsBasicCredentials.create(accesskey, secretkey);
  23. AutoScalingClient autoScalingClient = AutoScalingClient.builder()
  24. .region(Region.EU_CENTRAL_1)
  25. .credentialsProvider(StaticCredentialsProvider.create(awsCreds))
  26. .build();
  27. autoScalingClient.describeAutoScalingGroups();
  28. try {
  29. SetDesiredCapacityRequest request = SetDesiredCapacityRequest.builder()
  30. .autoScalingGroupName(autoScalingGroupName)
  31. .desiredCapacity(desiredCapacity)
  32. .build();
  33. SetDesiredCapacityResponse setDesiredCapacityResponse = autoScalingClient.setDesiredCapacity(request);
  34. SdkHttpResponse sdkHttpResponse = setDesiredCapacityResponse.sdkHttpResponse();
  35. //log.info("resp:{}",sdkHttpResponse);
  36. return sdkHttpResponse.isSuccessful();
  37. } catch (AutoScalingException e) {
  38. log.info(e.awsErrorDetails().errorMessage());
  39. return false;
  40. } finally {
  41. autoScalingClient.close();
  42. }
  43. }
  44. public static Boolean stopEcs(String accesskey,String secretkey,String instanceId){
  45. boolean shouldDecrementDesiredCapacity = false;
  46. AwsBasicCredentials awsCreds = AwsBasicCredentials.create(accesskey, secretkey);
  47. AutoScalingClient autoScalingClient = AutoScalingClient.builder()
  48. .region(Region.EU_CENTRAL_1)
  49. .credentialsProvider(StaticCredentialsProvider.create(awsCreds))
  50. .build();
  51. try {
  52. TerminateInstanceInAutoScalingGroupRequest request = TerminateInstanceInAutoScalingGroupRequest.builder()
  53. .instanceId(instanceId)
  54. .shouldDecrementDesiredCapacity(shouldDecrementDesiredCapacity)
  55. .build();
  56. TerminateInstanceInAutoScalingGroupResponse terminateInstanceInAutoScalingGroupResponse = autoScalingClient.terminateInstanceInAutoScalingGroup(request);
  57. log.info("resp:{}",terminateInstanceInAutoScalingGroupResponse);
  58. } catch (AutoScalingException e) {
  59. log.info(e.awsErrorDetails().errorMessage());
  60. return false;
  61. } finally {
  62. autoScalingClient.close();
  63. }
  64. return true;
  65. }
  66. public static void main(String[] args) {
  67. String APPKEY = "AKIAWCV5QFZ3WTRVTJW7";
  68. String APPSECRET = "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";
  69. String AUTOSCALINGGROUPNAME = "test";
  70. //stopEcs(APPKEY,APPSECRET,"i-01849da64bd3919d6");
  71. System.out.println( setCapacity(AUTOSCALINGGROUPNAME,APPKEY,APPSECRET,0));
  72. }
  73. }