我使用云函数下提供的此示例向另一个 GCP API 发出 GET 请求:
import (
"context"
"fmt"
"io"
"google.golang.org/api/idtoken"
)
func makeGetRequest(w io.Writer, targetURL string) error {
ctx := context.Background()
client, err := idtoken.NewClient(ctx, targetURL)
if err != nil {
return fmt.Errorf("idtoken.NewClient: %v", err)
}
resp, err := client.Get(targetURL)
if err != nil {
return fmt.Errorf("client.Get: %v", err)
}
defer resp.Body.Close()
if _, err := io.Copy(w, resp.Body); err != nil {
return fmt.Errorf("io.Copy: %v", err)
}
return nil
}
但是当我记录发送的请求时,我没有看到任何授权标头,并且我收到以下错误:
"Request
had invalid authentication credentials. Expected OAuth 2 access token, login cookie
or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.\"
我已将 serviceAccountTokenCreator 和目标 GCP API 管理员权限授予用于创建云功能的服务帐户。
我是否误解了文档的内容?似乎应该自动添加授权标头。
小唯快跑啊
相关分类