我的应用程序很小:
import (
"context"
"fmt"
"log"
"google.golang.org/api/compute/v1"
)
func main() {
ctx := context.Background()
computeService, err := compute.NewService(ctx)
urlMapCall := computeService.UrlMaps.List("my-prj")
urlMaps, err := urlMapCall.Do()
if err != nil {
log.Println(err)
return
}
for _, mp := range urlMaps.Items {
fmt.Println(mp.Name)
}
}
我得到错误:
googleapi: Error 403: Required 'compute.urlMaps.list' permission for 'projects/my-prj', forbidden
我设置了环境变量GOOGLE_APPLICATION_CREDENTIALS=$HOME/.gcp/my-prj-aef233we.json
。此 JSON 表示的服务帐户具有项目编辑者和计算管理员角色。
当我这样做时gcloud compute url-maps list
,它可以正常工作。
我究竟做错了什么?