1package main 2 3import ( 4 "encoding/json" 5 "fmt" 6 "os" 7 8 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" 9 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors" 10 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" 11 cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312" 12) 13 14func main() { 15 credential := common.NewCredential( 16 os.Getenv("TENCENTCLOUD_SECRET_ID"), 17 os.Getenv("TENCENTCLOUD_SECRET_KEY"), 18 ) 19 20 cpf := profile.NewClientProfile() 21 cpf.HttpProfile.ReqMethod = "POST" 22 cpf.HttpProfile.ReqTimeout = 5 23 //cpf.HttpProfile.Endpoint = "cvm.ap-guangzhou.tencentcloudapi.com" 24 cpf.SignMethod = "HmacSHA1" 25 26 client, _ := cvm.NewClient(credential, "ap-guangzhou", cpf) 27 request := cvm.NewRunInstancesRequest() 28 request.ImageId = common.StringPtr("img-8toqc6s3") 29 request.Placement = &cvm.Placement{ 30 Zone: common.StringPtr("ap-guangzhou-3"), 31 } 32 request.InstanceChargeType = common.StringPtr("POSTPAID_BY_HOUR") 33 request.InstanceCount = common.Int64Ptr(1) 34 request.InstanceName = common.StringPtr("API-SDK-GO") 35 request.InstanceType = common.StringPtr("S2.SMALL1") 36 request.InternetAccessible = &cvm.InternetAccessible{ 37 InternetChargeType: common.StringPtr("BANDWIDTH_POSTPAID_BY_HOUR"), 38 InternetMaxBandwidthOut: common.Int64Ptr(10), 39 PublicIpAssigned: common.BoolPtr(true), 40 } 41 request.LoginSettings = &cvm.LoginSettings{ 42 Password: common.StringPtr("passw0rdExample"), 43 } 44 request.SecurityGroupIds = common.StringPtrs([]string{"sg-icy671l9"}) 45 request.SystemDisk = &cvm.SystemDisk{ 46 DiskSize: common.Int64Ptr(50), 47 DiskType: common.StringPtr("CLOUD_BASIC"), 48 } 49 request.VirtualPrivateCloud = &cvm.VirtualPrivateCloud{ 50 SubnetId: common.StringPtr("subnet-b1wk8b10"), 51 VpcId: common.StringPtr("vpc-8ek64x3d"), 52 } 53 54 // get response structure 55 response, err := client.RunInstances(request) 56 // API errors 57 if _, ok := err.(*errors.TencentCloudSDKError); ok { 58 fmt.Printf("An API error has returned: %s", err) 59 return 60 } 61 // unexpected errors 62 if err != nil { 63 panic(err) 64 } 65 b, _ := json.Marshal(response.Response) 66 fmt.Printf("%s", b) 67} 68