• 【Golang星辰图】Go语言云计算SDK全攻略:深入Go云存储SDK实践


    Go语言云计算和存储SDK全面指南

    前言

    在当今数字化时代,云计算和存储服务扮演着至关重要的角色,为应用程序提供高效、可靠的基础设施支持。本文将介绍几种流行的Go语言SDK,帮助开发者与AWS、Google Cloud、Azure、MinIO、 阿里云和腾讯云等各大云服务提供商的平台进行交互。

    欢迎订阅专栏:Golang星辰图

    1. aws-sdk-go

    1.1 提供与AWS云服务交互的功能

    AWS SDK for Go是一个用于构建应用程序,可以无缝访问Amazon Web Services (AWS) 的工具包。它提供了访问 AWS 服务所需的 API 操作、数据结构和错误处理。

    package main
    
    import (
        "github.com/aws/aws-sdk-go/aws"
        "github.com/aws/aws-sdk-go/aws/session"
        "github.com/aws/aws-sdk-go/service/s3"
        "fmt"
    )
    
    func main() {
        // 创建 AWS session
        sess := session.Must(session.NewSession(&aws.Config{
            Region: aws.String("us-west-2"),
        }))
    
        // 创建 S3 服务 client
        svc := s3.New(sess)
    
        // 示例:列出 S3 存储桶
        result, err := svc.ListBuckets(nil)
        if err != nil {
            fmt.Println("Error listing buckets", err)
            return
        }
    
        fmt.Println("Buckets:")
        for _, bucket := range result.Buckets {
            fmt.Printf("* %s created on %s\n",
                aws.StringValue(bucket.Name), aws.TimeValue(bucket.CreationDate))
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    1.2 支持管理和操作AWS的各种服务

    AWS SDK for Go 提供了大量服务的 API 操作,例如 EC2、S3、DynamoDB、Lambda 等。开发者可以使用这些操作来管理和操作不同的 AWS 服务。

    1.3 数据传输服务

    除了基本存储服务外,AWS SDK for Go还支持数据传输服务,如AWS Transfer Family,可以轻松实现文件传输。

    package main
    
    import (
        "github.com/aws/aws-sdk-go/aws"
        "github.com/aws/aws-sdk-go/aws/session"
        "github.com/aws/aws-sdk-go/service/transfer"
        "fmt"
    )
    
    func main() {
        // 创建 AWS session
        sess := session.Must(session.NewSession(&aws.Config{
            Region: aws.String("us-east-1"),
        }))
    
        // 创建 Transfer 服务 client
        svc := transfer.New(sess)
    
        // 示例:创建SFTP服务器
        input := &transfer.CreateServerInput{
            IdentityProviderType: aws.String("SERVICE_MANAGED"),
            EndpointDetails: &transfer.EndpointDetails{
                VpcEndpointId: aws.String("vpc-123456"),
            },
            EndpointType: aws.String("PUBLIC"),
        }
    
        result, err := svc.CreateServer(input)
        if err != nil {
            fmt.Println("Error creating server", err)
            return
        }
    
        fmt.Println("Created server ID:", *result.ServerId)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    1.4 虚拟私有云(VPC)管理

    AWS SDK for Go也支持虚拟私有云(VPC)的管理,包括子网、路由表和安全组等资源的操作。

    package main
    
    import (
        "github.com/aws/aws-sdk-go/aws"
        "github.com/aws/aws-sdk-go/aws/session"
        "github.com/aws/aws-sdk-go/service/ec2"
        "fmt"
    )
    
    func main() {
        // 创建 AWS session
        sess := session.Must(session.NewSession(&aws.Config{
            Region: aws.String("us-west-2"),
        }))
    
        // 创建 EC2 服务 client
        svc := ec2.New(sess)
    
        // 示例:列出所有 VPC
        input := &ec2.DescribeVpcsInput{}
    
        result, err := svc.DescribeVpcs(input)
        if err != nil {
            fmt.Println("Error describing VPCs", err)
            return
        }
    
        fmt.Println("VPCs:")
        for _, vpc := range result.Vpcs {
            fmt.Printf("* VPC ID: %s\n", aws.StringValue(vpc.VpcId))
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    1.5 身份和访问管理(IAM)

    AWS SDK for Go也可用于管理身份和访问控制策略,如创建新用户、分配权限等操作。

    package main
    
    import (
        "github.com/aws/aws-sdk-go/aws"
        "github.com/aws/aws-sdk-go/aws/session"
        "github.com/aws/aws-sdk-go/service/iam"
        "fmt"
    )
    
    func main() {
        // 创建 AWS session
        sess := session.Must(session.NewSession(&aws.Config{
            Region: aws.String("us-east-1"),
        }))
    
        // 创建 IAM 服务 client
        svc := iam.New(sess)
    
        // 示例:列出 IAM 用户
        input := &iam.ListUsersInput{}
    
        result, err := svc.ListUsers(input)
        if err != nil {
            fmt.Println("Error listing IAM users", err)
            return
        }
    
        fmt.Println("IAM Users:")
        for _, user := range result.Users {
            fmt.Printf("* Username: %s\n", aws.StringValue(user.UserName))
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    2. google-cloud-go

    2.1 提供与Google Cloud服务交互的功能

    Google Cloud SDK for Go 是 Google Cloud 官方提供的 Go 语言开发库,可用于与 Google Cloud 平台上的各种服务进行交互。

    package main
    
    import (
        "context"
        "fmt"
        "cloud.google.com/go/storage"
    )
    
    func main() {
        ctx := context.Background()
    
        // 创建 Storage 客户端
        client, err := storage.NewClient(ctx)
        if err != nil {
            fmt.Println("Failed to create client:", err)
            return
        }
        defer client.Close()
        
        // 列出存储桶
        buckets, err := client.Buckets(ctx, "your-project-id")
        if err != nil {
            fmt.Println("Failed to list buckets:", err)
            return
        }
        
        fmt.Println("Buckets:")
        for _, bucket := range buckets {
            fmt.Println(bucket.Name)
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    2.2 支持管理和操作Google Cloud的各种服务

    Google Cloud SDK for Go 支持管理和操作 Google Cloud 平台上的各种服务,如云存储、云函数、云数据库等。

    2.3 云函数部署

    除了存储服务外,Google Cloud SDK for Go 还支持云函数的部署和管理,使开发者能够轻松构建和运行无服务器函数。

    package main
    
    import (
        "context"
        "fmt"
        "cloud.google.com/go/functions/metadata"
    )
    
    // ExamplePubSub function processes Pub/Sub messages.
    func ExamplePubSub(ctx context.Context, m metadata.Message) error {
        fmt.Printf("Processing message: %s\n", string(m.Data))
        return nil
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    2.4 数据库访问

    Google Cloud SDK for Go还支持访问和操作Google Cloud平台上的数据库服务,如Cloud SQL、Firestore等。通过SDK,开发者可以执行数据库查询、写入操作等。

    2.5 云监控和日志管理

    Google Cloud SDK for Go提供了用于监控和日志管理的功能,可以帮助开发者实时监控应用程序、收集和分析日志数据。

    package main
    
    import (
        "context"
        "fmt"
        "cloud.google.com/go/logging"
    )
    
    func main() {
        ctx := context.Background()
    
        // 创建 Logging 客户端
        client, err := logging.NewClient(ctx, "your-project-id")
        if err != nil {
            fmt.Println("Failed to create client:", err)
            return
        }
        defer client.Close()
        
        logger := client.Logger("my-log")
    
        // 写入日志消息
        logger.Log(logging.Entry{Payload: "Log message"})
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    2.6 人工智能和机器学习

    Google Cloud SDK for Go还支持与Google Cloud平台上的人工智能和机器学习服务集成,包括Vision API、Translate API等,可以轻松处理图像识别、自然语言处理等任务。

    package main
    
    import (
        "context"
        "fmt"
        "cloud.google.com/go/translate"
    )
    
    func main() {
        ctx := context.Background()
    
        // 创建 Translate 客户端
        client, err := translate.NewClient(ctx)
        if err != nil {
            fmt.Println("Failed to create client:", err)
            return
        }
        defer client.Close()
        
        // 翻译文本
        translation, err := client.Translate(ctx, []string{"Hello, World!"}, "fr", nil)
        if err != nil {
            fmt.Println("Translation error:", err)
            return
        }
        
        fmt.Println("Translated text:", translation[0].Text)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    通过以上示例代码,您可以更全面地了解Google Cloud SDK for Go在不同领域的应用。在下一节中,我们将继续探讨更多有关Google Cloud SDK for Go的内容。

    3. azure-sdk-for-go

    3.1 提供与Azure云服务交互的功能

    Azure SDK for Go 是 Microsoft Azure 官方提供的 Go 语言开发库,用于与 Azure 云服务进行交互。

    package main
    
    import (
        "context"
        "fmt"
        "github.com/Azure/azure-sdk-for-go/storage"
    )
    
    func main() {
        accountName := "your-account-name"
        accountKey := "your-account-key"
    
        client, err := storage.NewBasicClient(accountName, accountKey)
        if err != nil {
            fmt.Println("Failed to create client:", err)
            return
        }
    
        service := client.GetBlobService()
    
        // 列出容器
        containers, err := service.ListContainers(context.Background(), nil)
        if err != nil {
            fmt.Println("Failed to list containers:", err)
            return
        }
    
        fmt.Println("Containers:")
        for _, container := range containers {
            fmt.Println(*container.Name)
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    3.2 支持管理和操作Azure的各种服务

    Azure SDK for Go 允许您管理和操作 Azure 平台上的各种服务,如 Blob 存储、表存储、虚拟机等。

    3.3 虚拟机管理

    Azure SDK for Go 还支持对 Azure 平台上的虚拟机进行创建、启动、停止等操作,以满足不同场景下的需求。

    package main
    
    import (
        "context"
        "fmt"
        "github.com/Azure/azure-sdk-for-go/profiles/latest/compute/mgmt/compute"
        "github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-03-01/compute"
    )
    
    func main() {
        vmClient := compute.NewVirtualMachinesClient(subscriptionID)
        authorizer, err := auth.NewAuthorizerFromCLI()
        if err != nil {
            fmt.Println("Failed to get authorization:", err)
            return
        }
        vmClient.Authorizer = authorizer
    
        // 示例:列出虚拟机
        vms, err := vmClient.List(context.Background())
        if err != nil {
            fmt.Println("Failed to list virtual machines:", err)
            return
        }
    
        fmt.Println("Virtual Machines:")
        for _, vm := range vms.Values() {
            fmt.Printf("* Name: %s\n", *vm.Name)
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    3.4 容器服务管理

    Azure SDK for Go 提供了对 Azure 容器服务的管理功能,包括容器实例、容器注册表等资源的操作。

    package main
    
    import (
        "context"
        "fmt"
        "github.com/Azure/azure-sdk-for-go/profiles/latest/containerinstance/mgmt/containerinstance"
    )
    
    func main() {
        containerClient := containerinstance.NewContainerGroupsClient(subscriptionID)
        authorizer, err := auth.NewAuthorizerFromCLI()
        if err != nil {
            fmt.Println("Failed to get authorization:", err)
            return
        }
        containerClient.Authorizer = authorizer
    
        // 示例:列出容器实例
        containers, err := containerClient.List(context.Background())
        if err != nil {
            fmt.Println("Failed to list container instances:", err)
            return
        }
    
        fmt.Println("Container Instances:")
        for _, container := range containers.Values() {
            fmt.Printf("* Name: %s\n", *container.Name)
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    3.5 凭据和安全管理

    Azure SDK for Go 还支持管理凭据、密钥和安全相关的操作,以确保在 Azure 平台上的服务和资源中的安全性。

    package main
    
    import (
        "context"
        "fmt"
        "github.com/Azure/azure-sdk-for-go/services/keyvault/v7.0/keyvault"
    )
    
    func main() {
        keyVaultClient := keyvault.New()
        
        // 设置凭据
        _, err := keyVaultClient.SetSecret(context.Background(), vaultBaseURL, secretName, secretValue, nil)
        if err != nil {
            fmt.Println("Failed to set secret:", err)
            return
        }
    
        // 获取凭据
        secretBundle, err := keyVaultClient.GetSecret(context.Background(), vaultBaseURL, secretName, "")
        if err != nil {
            fmt.Println("Failed to get secret:", err)
            return
        }
    
        fmt.Println("Secret Value:", *secretBundle.Value)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    4. minio-go

    4.1 提供与MinIO对象存储交互的功能

    MinIO Go SDK 是 MinIO 对象存储服务的 Go 语言开发库,用于在 Go 应用程序中与 MinIO 服务器进行交互。

    package main
    
    import (
        "fmt"
        "github.com/minio/minio-go/v7"
        "context"
    )
    
    func main() {
        endpoint := "play.min.io"
        accessKeyID := "YOUR-ACCESSKEYID"
        secretAccessKey := "YOUR-SECRETACCESSKEY"
    
        // 初始化MinIO客户端对象
        minioClient, err := minio.New(endpoint, &minio.Options{
            Creds:  credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
        })
        if err != nil {
            fmt.Println(err)
            return
        }
    
        // 列出存储桶
        buckets, err := minioClient.ListBuckets(context.Background())
        if err != nil {
            fmt.Println("Failed to list buckets:", err)
            return
        }
        
        fmt.Println("Buckets:")
        for _, bucket := range buckets {
            fmt.Println(bucket.Name)
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    4.2 支持上传、下载和管理存储在MinIO中的对象数据

    MinIO Go SDK 提供了丰富的函数来支持上传、下载和管理存储在 MinIO 对象存储中的对象数据。您可以使用这些函数来处理对象存储的各种操作。

    4.3 使用Presigned URL进行文件上传

    MinIO Go SDK 还支持生成预签名URL,用于安全地上传和下载对象,无需暴露访问凭据,增加了数据传输的安全性。

    package main
    
    import (
        "fmt"
        "github.com/minio/minio-go/v7"
        "context"
    )
    
    func main() {
        // 创建MinIO客户端对象(假设已初始化)
        presignedURL, err := minioClient.PresignedPutObject(context.Background(), "mybucket", "object.jpg", expiresIn, nil)
        if err != nil {
            fmt.Println("Failed to generate presigned URL:", err)
            return
        }
    
        fmt.Println("Presigned URL for upload:", presignedURL)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    5. aliyun-sdk-go

    5.1 提供与阿里云服务交互的功能

    Aliyun SDK for Go 是阿里云官方提供的 Go 语言开发库,用于与阿里云平台上的各种服务进行交互。

    package main
    
    import (
    	"fmt"
    	"github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
    	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
    	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
    )
    
    func main() {
    	client, err := ecs.NewClientWithAccessKey("your-region-id", "your-access-key-id", "your-access-key-secret")
    	if err != nil {
    		fmt.Println("Failed to create client:", err)
    		return
    	}
    
    	request := ecs.CreateDescribeInstancesRequest()
    	response, err := client.DescribeInstances(request)
    	if err != nil {
    		fmt.Println("Failed to describe instances:", err)
    		return
    	}
    
    	fmt.Println(response)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    5.2 支持管理和操作阿里云的各种服务

    Aliyun SDK for Go 支持管理和操作阿里云平台上的各种服务,如 ECS、RDS、OSS 等。

    5.3 弹性计算(ECS)实例管理

    除了上述示例代码中展示的描述实例的操作外,Aliyun SDK for Go 还支持创建、启动、停止、重启 ECS 实例等一系列操作。

    package main
    
    import (
    	"fmt"
    	"github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
    	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
    )
    
    func main() {
    	client, err := ecs.NewClientWithAccessKey("your-region-id", "your-access-key-id", "your-access-key-secret")
    	if err != nil {
    		fmt.Println("Failed to create client:", err)
    		return
    	}
    
    	// 创建ECS实例
    	createRequest := ecs.CreateCreateInstanceRequest()
    	createRequest.InstanceType = "ecs.t5-lc2m1.nano" // 示例值
    	createRequest.ImageId = "ubuntu_18_04_64_20G_alibase_20190624.vhd" // 示例值
    	createResponse, err := client.CreateInstance(createRequest)
    	if err != nil {
    		fmt.Println("Failed to create instance:", err)
    		return
    	}
    
    	fmt.Println(createResponse)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    6. tencentcloud-sdk-go

    6.1 提供与腾讯云服务交互的功能

    Tencent Cloud SDK for Go 是腾讯云官方提供的 Go 语言开发库,用于与腾讯云平台上的各种服务进行交互。

    package main
    
    import (
    	"context"
    	"fmt"
    	"github.com/TencentCloud/tencentcloud-sdk-go/tencentcloud/common"
    	"github.com/TencentCloud/tencentcloud-sdk-go/tencentcloud/common/profile"
    	cvm "github.com/TencentCloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312"
    )
    
    func main() {
    	credential := common.NewCredential("your-secret-id", "your-secret-key")
    	cpf := profile.NewClientProfile()
    	client, _ := cvm.NewClient(credential, "ap-guangzhou", cpf)
    
    	request := cvm.NewDescribeInstancesRequest()
    
    	response, err := client.DescribeInstances(request)
    	if _, ok := err.(*common.APIError); ok {
    		fmt.Printf("An API error has returned: %s", err)
    		return
    	}
    	if err != nil {
    		fmt.Println(err)
    		return
    	}
    
    	fmt.Println(response.ToJsonString())
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    6.2 支持管理和操作腾讯云的各种服务

    Tencent Cloud SDK for Go 允许您管理和操作腾讯云平台上的诸多服务,如云服务器、COS、CDN 等。

    6.3 云服务器(CVM)实例管理

    除了上述示例代码中展示的描述实例的操作外,Tencent Cloud SDK for Go 还支持创建、启动、停止、查询 CVM 实例等一系列操作。

    package main
    
    import (
    	"context"
    	"fmt"
    	"github.com/TencentCloud/tencentcloud-sdk-go/tencentcloud/common"
    	"github.com/TencentCloud/tencentcloud-sdk-go/tencentcloud/common/profile"
    	cvm "github.com/TencentCloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312"
    )
    
    func main() {
    	credential := common.NewCredential("your-secret-id", "your-secret-key")
    	cpf := profile.NewClientProfile()
    	client, _ := cvm.NewClient(credential, "ap-guangzhou", cpf)
    
    	createRequest := cvm.NewRunInstancesRequest()
    	createRequest.InstanceChargeType = common.StringPtr("POSTPAID_BY_HOUR")
    	createRequest.Placement = &cvm.Placement{
    		Zone: common.StringPtr("ap-guangzhou-2"),
    	}
    	createRequest.InstanceType = common.StringPtr("S5.LARGE8")
    
    	response, err := client.RunInstances(createRequest)
    	if err != nil {
    		fmt.Println("Failed to create instance:", err)
    		return
    	}
    
    	fmt.Println(response.ToJsonString())
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    总结

    借助这些强大的Go语言SDK,开发者能够轻松构建应用程序,与各大云服务提供商的平台进行无缝交互,实现任务调度、数据存储、计算处理等功能。这些SDK不仅简化了开发流程,还提供了丰富的API操作,使得开发者能够更便捷地利用云计算和存储服务。

  • 相关阅读:
    反沙箱方法
    可见光通信(毕业设计)
    人工智能|机器学习——K-means系列聚类算法k-means/ k-modes/ k-prototypes/ ......(划分聚类)
    java-php-python-ssm亿互游在线平台网站计算机毕业设计
    用html写一个雨的特效
    [matconvnet]matconvnet-1.0-beta-25在cuda11.1以上编译问题总结
    编程题:寻找无限循环小数的循环节及长度
    C语言 操作符
    Mybatis-Plus知识点总结(下)
    客户端负载均衡_负载均衡策略
  • 原文地址:https://blog.csdn.net/qq_42531954/article/details/136638323