GCP - 获取项目 NAT GW

我们在 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.mukewang.com/637dd4700001e74106580476.jpg

阿波罗的战车
浏览 67回答 1
1回答

慕桂英4014372

VPN 网关与 NAT 网关不同。使用此代码列出路由器。在路由器列表中,是 NAT 网关import "google.golang.org/api/compute/v1"// Replace with valid values for your projectproject := "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)}
打开App,查看更多内容
随时随地看视频慕课网APP