【问题标题】:GCP: Bucket Creation in GoGCP:Go 中的存储桶创建
【发布时间】:2020-12-05 01:06:33
【问题描述】:

我正在尝试使用 Go 在 GCP 中创建一个存储桶,我尝试了这个 create 方法,它在 Go 中创建了一个存储桶。这是相同的go playground。当我尝试运行它时,它只是说 timeout running go buildGo Build Failed。我知道它正在尝试下载一些软件包,但不确定为什么在下载软件包时它会超时? 我是 Go 新手,想测试一下桶创建在 Go 中的工作方式。我错过了什么吗?

【问题讨论】:

  • 请显示您为构建程序而运行的命令。为什么要使用 Kubernetes 客户端?
  • @Marc 我使用 Kubernetes 客户端的原因是因为我将在部署在 GCP 上的 Kubernetes 集群中创建一个存储桶。
  • @Marc 但现在,我更关心为什么这段代码根本不起作用?它应该抛出一个错误,做一些事情,它只是说超时,因为没有下载包。你能在本地尝试一次吗?将此保存为 go 文件并使用 go run ?. 运行

标签: go google-cloud-platform bucket kubernetes-go-client


【解决方案1】:

登录:

gcloud auth application-default login

创建此create-bucket.go 文件并将项目 ID 替换为您的项目 ID:

// Sample storage-quickstart creates a Google Cloud Storage bucket.
package main

import (
    "context"
    "fmt"
    "log"
    "time"

    "cloud.google.com/go/storage"
)

func main() {
    ctx := context.Background()

    // Sets your Google Cloud Platform project ID.
    projectID := "<YOUR-PROJECT-ID>"

    // Creates a client.
    client, err := storage.NewClient(ctx)
    if err != nil {
        log.Fatalf("Failed to create client: %v", err)
    }

    // Sets the name for the new bucket.
    bucketName := "go-new-bucket"

    // Creates a Bucket instance.
    bucket := client.Bucket(bucketName)

    // Creates the new bucket.
    ctx, cancel := context.WithTimeout(ctx, time.Second*10)
    defer cancel()
    if err := bucket.Create(ctx, projectID, nil); err != nil {
        log.Fatalf("Failed to create bucket: %v", err)
    }

    fmt.Printf("Bucket %v created.\n", bucketName)
}

运行您在上一步中创建的 go 文件:

go run create-bucket.go

您会在GCP storage menu 下找到go-new-bucket

【讨论】:

  • 谢谢,Neo,有什么方法可以在不安装/设置gcloud CLI 的情况下做到这一点?我在浏览器中打开了我的 gcloud 控制台。
  • 不客气。 gcloud 控制台 是什么意思?如果您想从浏览器执行此操作,可以使用 Google Cloud Shell。如果 GCP 网络门户,右上角有一个图标 Activate Cloud Shell。 gcloud CLI 默认安装在那里
  • 我的意思是我的console.cloud.google.com已经在浏览器中打开了,而不是先设置gcloud CLI并从CLI登录然后运行go代码,有什么办法可以直接在没有 gcloud CLI 的情况下运行这个 go 代码?或者如果没有 gcloud CLI 就根本不可能?
  • 你能定义一下你对GCP集群real-time的理解吗?
  • Kubernetes 集群与您创建的存储桶无关。您甚至可以在本地计算机上运行该 go 文件。
猜你喜欢
  • 2020-10-31
  • 2019-12-27
  • 1970-01-01
  • 2018-08-28
  • 2019-05-31
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
相关资源
最近更新 更多