123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- // This file is auto-generated, don't edit it. Thanks.
- package albb
- import (
- "encoding/json"
- "fmt"
- openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
- openapiutil "github.com/alibabacloud-go/openapi-util/service"
- util "github.com/alibabacloud-go/tea-utils/v2/service"
- "github.com/alibabacloud-go/tea/tea"
- "strings"
- "time"
- )
- //查询实例的详细信息列表
- func ModifyInstanceAutoReleaseTime (InstanceId,AutoReleaseTime string) (_err error) {
- fmt.Println("ModifyInstanceAutoReleaseTime:",InstanceId,AutoReleaseTime )
- client, _err := CreateClient()
- if _err != nil {
- return _err
- }
- params := &openapi.Params{
- // 接口名称
- Action: tea.String("ModifyInstanceAutoReleaseTime"),
- // 接口版本
- Version: tea.String("2014-05-26"),
- // 接口协议
- Protocol: tea.String("HTTPS"),
- // 接口 HTTP 方法
- Method: tea.String("POST"),
- AuthType: tea.String("AK"),
- Style: tea.String("RPC"),
- // 接口 PATH
- Pathname: tea.String("/"),
- // 接口请求体内容格式
- ReqBodyType: tea.String("json"),
- // 接口响应体内容格式
- BodyType: tea.String("json"),
- }
- println("AutoReleaseTime:",AutoReleaseTime)
- // query params
- queries := map[string]interface{}{}
- queries["RegionId"] = tea.String("cn-hangzhou")
- queries["InstanceId"] = tea.String(InstanceId)
- queries["AutoReleaseTime"] = tea.String(AutoReleaseTime)
- // runtime options
- runtime := &util.RuntimeOptions{}
- request := &openapi.OpenApiRequest{
- Query: openapiutil.Query(queries),
- }
- // 复制代码运行请自行打印 API 的返回值
- // 返回值实际为 Map 类型,可从 Map 中获得三类数据:响应体 body、响应头 headers、HTTP 返回的状态码 statusCode。
- _result, _err := client.CallApi(params, request, runtime)
- if _err != nil {
- return _err
- }
- data, _ := json.Marshal(_result)
- fmt.Println(string(data))
- //fmt.Println("ccc",_result["body"].(map[string]interface{})["Instances"].(map[string]interface{})["Instance"])
- return _err
- }
- //查询实例的详细信息列表
- func DescribeInstances () (_err error) {
- client, _err := CreateClient()
- if _err != nil {
- return _err
- }
- params := &openapi.Params{
- // 接口名称
- Action: tea.String("DescribeInstances"),
- // 接口版本
- Version: tea.String("2014-05-26"),
- // 接口协议
- Protocol: tea.String("HTTPS"),
- // 接口 HTTP 方法
- Method: tea.String("POST"),
- AuthType: tea.String("AK"),
- Style: tea.String("RPC"),
- // 接口 PATH
- Pathname: tea.String("/"),
- // 接口请求体内容格式
- ReqBodyType: tea.String("json"),
- // 接口响应体内容格式
- BodyType: tea.String("json"),
- }
- // query params
- queries := map[string]interface{}{}
- queries["RegionId"] = tea.String("cn-hangzhou")
- // runtime options
- runtime := &util.RuntimeOptions{}
- request := &openapi.OpenApiRequest{
- Query: openapiutil.Query(queries),
- }
- // 复制代码运行请自行打印 API 的返回值
- // 返回值实际为 Map 类型,可从 Map 中获得三类数据:响应体 body、响应头 headers、HTTP 返回的状态码 statusCode。
- _result, _err := client.CallApi(params, request, runtime)
- if _err != nil {
- return _err
- }
- data, _ := json.Marshal(_result)
- fmt.Println(string(data))
- //fmt.Println("ccc",_result["body"].(map[string]interface{})["Instances"].(map[string]interface{})["Instance"])
- fmt.Println("len",len(_result["body"].(map[string]interface{})["Instances"].(map[string]interface{})["Instance"].([]interface {})))
- find_ecs := false
- for _,v := range _result["body"].(map[string]interface{})["Instances"].(map[string]interface{})["Instance"].([]interface {}){
- fmt.Println("InstanceName:",v.(map[string]interface{})["InstanceName"],"InstanceId:",v.(map[string]interface{})["InstanceId"])
- // 使用 strings.Contains 检查字符串是否包含子字符串
- if strings.Contains(v.(map[string]interface{})["InstanceName"].(string), "ecs-verify") {
- find_ecs = true
- now := time.Now()
- oneHourLater := now.Add(time.Minute * 58)
- //oneHourLater = oneHourLater.Add(-time.Hour * 8)
- AutoReleaseTime := oneHourLater.Format(time.RFC3339)
- fmt.Println("延期:", v.(map[string]interface{})["InstanceName"].(string),v.(map[string]interface{})["InstanceId"].(string),AutoReleaseTime)
- ModifyInstanceAutoReleaseTime(v.(map[string]interface{})["InstanceId"].(string),AutoReleaseTime)
- }
- }
- // 判断是否要创建
- if !find_ecs {
- err := RunInstances()
- if err != nil {
- panic(any(err))
- }
- }
- return _err
- }
- /*
- {
- "body": {
- "Instances": {
- "Instance": [{
- "AdditionalInfo": {},
- "AutoReleaseTime": "",
- "ClusterId": "",
- "Cpu": 2,
- "CpuOptions": {
- "CoreCount": 1,
- "Numa": "ON",
- "ThreadsPerCore": 2
- },
- "CreationTime": "2024-11-23T03:56Z",
- "CreditSpecification": "",
- "DedicatedHostAttribute": {
- "DedicatedHostClusterId": "",
- "DedicatedHostId": "",
- "DedicatedHostName": ""
- },
- "DedicatedInstanceAttribute": {
- "Affinity": "",
- "Tenancy": ""
- },
- "DeletionProtection": false,
- "DeploymentSetId": "",
- "Description": "",
- "DeviceAvailable": true,
- "EcsCapacityReservationAttr": {
- "CapacityReservationId": "",
- "CapacityReservationPreference": ""
- },
- "EipAddress": {
- "AllocationId": "",
- "InternetChargeType": "",
- "IpAddress": ""
- },
- "ExpiredTime": "2025-12-07T16:00Z",
- "GPUAmount": 0,
- "GPUSpec": "",
- "HibernationOptions": {
- "Configured": false
- },
- "HostName": "iZbp1as4p3kp4bip8dgrveZ",
- "ImageId": "centos_7_9_x64_20G_alibase_20240628.vhd",
- "ImageOptions": {},
- "InnerIpAddress": {
- "IpAddress": []
- },
- "InstanceChargeType": "PrePaid",
- "InstanceId": "i-bp1as4p3kp4bip8dgrve",
- "InstanceName": "冷链服务器",
- "InstanceNetworkType": "vpc",
- "InstanceType": "ecs.u1-c1m2.large",
- "InstanceTypeFamily": "ecs.u1",
- "InternetChargeType": "PayByBandwidth",
- "InternetMaxBandwidthIn": 1000,
- "InternetMaxBandwidthOut": 5,
- "IoOptimized": true,
- "Memory": 4096,
- "MetadataOptions": {
- "HttpEndpoint": "",
- "HttpTokens": ""
- },
- "NetworkInterfaces": {
- "NetworkInterface": [{
- "MacAddress": "00:16:3e:01:0f:62",
- "NetworkInterfaceId": "eni-bp156zuduohi3pw9j7th",
- "PrimaryIpAddress": "172.20.11.83",
- "PrivateIpSets": {
- "PrivateIpSet": [{
- "Primary": true,
- "PrivateIpAddress": "172.20.11.83"
- }]
- },
- "Type": "Primary"
- }]
- },
- "OSName": "CentOS 7.9 64位",
- "OSNameEn": "CentOS 7.9 64 bit",
- "OSType": "linux",
- "OperationLocks": {
- "LockReason": []
- },
- "PrivateDnsNameOptions": {},
- "PublicIpAddress": {
- "IpAddress": ["47.97.103.163"]
- },
- "Recyclable": false,
- "RegionId": "cn-hangzhou",
- "ResourceGroupId": "",
- "SaleCycle": "",
- "SecurityGroupIds": {
- "SecurityGroupId": ["sg-bp156zuduohi3pw66zbm"]
- },
- "SerialNumber": "7c66d46a-ddef-451d-b542-c518b819d54e",
- "SpotPriceLimit": 0.0,
- "SpotStrategy": "NoSpot",
- "StartTime": "2024-12-22T11:47Z",
- "Status": "Running",
- "StoppedMode": "Not-applicable",
- "VlanId": "",
- "VpcAttributes": {
- "NatIpAddress": "",
- "PrivateIpAddress": {
- "IpAddress": ["172.20.11.83"]
- },
- "VSwitchId": "vsw-bp11bjxe8djsv3c254bur",
- "VpcId": "vpc-bp14wz0vpzqhssnuezw1j"
- },
- "ZoneId": "cn-hangzhou-h"
- }]
- },
- "NextToken": "",
- "PageNumber": 1,
- "PageSize": 10,
- "RequestId": "A3F8B366-6F44-59BD-AE01-805090689456",
- "TotalCount": 1
- },
- "headers": {
- "access-control-allow-origin": "*",
- "access-control-expose-headers": "*",
- "connection": "keep-alive",
- "content-type": "application/json;charset=utf-8",
- "date": "Thu, 20 Feb 2025 01:04:22 GMT",
- "keep-alive": "timeout=25",
- "vary": "Accept-Encoding",
- "x-acs-request-id": "A3F8B366-6F44-59BD-AE01-805090689456",
- "x-acs-trace-id": "c3aef4e6346f739c859a7d7a93723893"
- },
- "statusCode": 200
- }
- */
|