为了账号安全,请及时绑定邮箱和手机立即绑定

GCP - 获取项目 NAT GW

GCP - 获取项目 NAT GW

Go
阿波罗的战车 2022-11-23 16:05:41

我们在 GCP 上有包含有效云 Nat 的帐户,现在我们想通过 GCP sdk 获取这些值,我尝试了以下并得到空响应(也许我使用了错误的 API 而不是ListExternalVpnGatewaysRequest

package main


import (

    "context"

    "fmt"


    compute "cloud.google.com/go/compute/apiv1"

    "google.golang.org/api/iterator"

    computepb "google.golang.org/genproto/googleapis/cloud/compute/v1"

)


func main() {

    ctx := context.Background()

    c, err := compute.NewExternalVpnGatewaysRESTClient(ctx)

    if err != nil {

        fmt.Println(err)

    }

    defer c.Close()

    proj := "dev-proj"


    req := &computepb.ListExternalVpnGatewaysRequest{

        //Filter:               new(string),

        //MaxResults:           new(uint32),

        //OrderBy:              new(string),

        //PageToken:            new(string),

        Project: proj,

        //ReturnPartialSuccess: new(bool),

    }

    it := c.List(ctx, req)

    for {

        resp, err := it.Next()

        if err == iterator.Done {

            break

        }

        if err != nil {

            fmt.Println(err)

        }

        // TODO: Use resp.

        _ = resp

        fmt.Println(resp)

    }

}

我需要使用 GCP GO SDK 获取以下值

http://img2.sycdn.imooc.com/637dd4700001e74106580476.jpg

查看完整描述

1 回答

?
慕桂英4014372

TA贡献1603条经验 获得超13个赞

VPN 网关与 NAT 网关不同。


使用此代码列出路由器。在路由器列表中,是 NAT 网关


import "google.golang.org/api/compute/v1"


// Replace with valid values for your project

project := "my-project"

region := "my-region"


ctx := context.Background()


c, err := google.DefaultClient(ctx, compute.CloudPlatformScope)

if err != nil {

    log.Fatal(err)

}


computeService, err := compute.New(c)

if err != nil {

    log.Fatal(err)

}


req := computeService.Routers.List(project, region)

if err := req.Pages(ctx, func(page *compute.RouterList) error {

    for _, router := range page.Items {

        // process each `router` resource:

        fmt.Printf("%#v\n", router)

        // NAT Gateways are found in router.nats

    }

    return nil

}); err != nil {

    log.Fatal(err)

}


查看完整回答
反对 回复 2022-11-23

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信