登录
首页 >  Golang >  Go问答

gcloud Admin API - 部署 Cloud Run 服务

来源:stackoverflow

时间:2024-03-11 18:48:28 362浏览 收藏

Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《gcloud Admin API - 部署 Cloud Run 服务》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!


问题内容

我正在尝试使用 gcloud 的 go api 创建容器。

我已经设置了一个项目:

$ gcloud projects list
project_id          name         project_number
sql-manager-293118  sql-manager  789332021319

我的应用程序默认凭据也已配置。

下面的代码运行正常,但在调用创建服务时出现以下错误:

the requested url /v1alpha1/projects/sql-manager-293118/services?alt=json&prettyprint=false was not found on this server. that’s all we know.

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

感谢任何指导。

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)
}

解决方案


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

今天关于《gcloud Admin API - 部署 Cloud Run 服务》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>