首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >gcloud Admin API -创建云运行容器

gcloud Admin API -创建云运行容器
EN

Stack Overflow用户
提问于 2020-10-21 03:52:07
回答 1查看 63关注 0票数 0

我正在尝试使用go api for gcloud来创建一个容器。

我已经建立了一个项目:

代码语言:javascript
运行
复制
$ gcloud projects list
PROJECT_ID          NAME         PROJECT_NUMBER
sql-manager-293118  sql-manager  789332021319

此外,还配置了我的应用程序默认凭据。

下面的代码运行良好,但在调用创建服务时,我得到了以下错误:

代码语言:javascript
运行
复制
<p>The requested URL <code>/v1alpha1/projects/sql-manager-293118/services?alt=json&amp;prettyPrint=false</code> was not found on this server.  <ins>That’s all we know.</ins>

我还使用api运行过更简单的请求(例如,列出此给定服务的所有可用位置),并且能够毫无问题地返回数据。

任何指导都是值得感谢的。

代码语言:javascript
运行
复制
package main

import (
    "context"
    "fmt"
    // "sort"

    "google.golang.org/api/option"
    "google.golang.org/api/run/v1alpha1"
)

const (
    createDefaultClientFlag = true
    scopes = run.CloudPlatformScope
    // List the Cloud Run services in this location
    serviceName = "test"
    locationsId = "us-central1"
    projectId = "sql-manager-293118"
    imageName = "gcr.io/cloudrun/hello"
)

func createDefaultClient(ctx context.Context) (*run.APIService, error) {
    return run.NewService(ctx)
}

func main() {
    // https://godoc.org/google.golang.org/api/run/v1#NewService
    var err error = nil
    var runService *run.APIService = nil

    ctx := context.Background()
    runService, err = createDefaultClient(ctx)

    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    projectsLocationsService := *run.NewProjectsLocationsService(runService)

    // Define the service to deploy
    tmpservice := &run.Service{
        ApiVersion: "serving.knative.dev/v1alpha1",
        Kind:       "Service",
        Metadata: &run.ObjectMeta{
            Name:      serviceName,
            Namespace: projectId,
        },
        Spec: &run.ServiceSpec{
            RunLatest: &run.ServiceSpecRunLatest{
                Configuration: &run.ConfigurationSpec{
                    RevisionTemplate: &run.RevisionTemplate{
                        Metadata: &run.ObjectMeta{
                            DeletionGracePeriodSeconds: 0,
                        },
                        Spec: &run.RevisionSpec{
                            Container: &run.Container{
                                Image: imageName,
                                Resources: &run.ResourceRequirements{
                                    Limits: map[string]string{"memory": "256Mi"},
                                },
                                Stdin:     false,
                                StdinOnce: false,
                                Tty:       false,
                            },
                            ContainerConcurrency: 80,
                            TimeoutSeconds:       300,
                        },
                    },
                },
            },
        },
    }

    createCall := projectsLocationsService.Services.Create("projects/" + projectId, tmpservice)
    service, err := createCall.Do()
    fmt.Println(service, err)
    if err != nil {
        fmt.Printf("Error creating new locationservice: %s", err)
    }

    fmt.Printf("%#v", service.Spec)
}
EN

Stack Overflow用户

发布于 2020-10-22 19:01:45

DazWilkin是正确的,我应该使用/projects/${PROJECT}/locations/us-central1/

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64452397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档