cloud.google.com/goのリクエストをX-Rayでトレースしたい
が、思いがけずハマったので調査・workaroundを見つけたメモ。
2020/6/7 大きいライブラリで根が深そうなのでまだissueはあげていない。 なぜ今動かないのか
対策
code:code.go
import (
"context"
"net/http"
"golang.org/x/oauth2"
"golang.org/x/oauth2/google"
)
func newClientWithToken(ctx context.Context, httpClient *http.Client, cred *google.Credentials) (*http.Client, error) {
if httpClient == nil {
httpClient = http.DefaultClient
}
token, err := cred.TokenSource.Token()
if err != nil {
return nil, err
}
staticSource := oauth2.StaticTokenSource(token)
client := oauth2.NewClient(ctx, staticSource)
client.CheckRedirect = httpClient.CheckRedirect
client.Jar = httpClient.Jar
client.Timeout = httpClient.Timeout
return client, nil
}
メモ