Documentation ¶
Overview ¶
Package client provides a lightweight set of methods which clients could use to make authenticated calls to services running on Google Cloud Run
It was inspired by the example: Send gRPC requests with authentication as per the Cloud Run endpoints documentation at https://cloud.google.com/run/docs/samples/cloudrun-grpc-request-auth
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewConn ¶
func NewConn(ctx context.Context, host string, insecure bool, opts ...grpc.DialOption) (*grpc.ClientConn, error)
NewConn creates a new gRPC connection.
- host should be of the form domain:port, for example: `your-app-on-cloudrun-abcdef-ew.a.run.app:443`
- set insecure to `true` when testing your gRPC server locally.
This approach was inspired by the example provided on the following URL: https://cloud.google.com/run/docs/samples/cloudrun-grpc-request-auth.
However, instead of manually adding the Authorization header to each gRPC request, this method implements a TokenSource pattern. By configuring the gRPC connection once, tokens are automatically injected with each subsequent gRPC request.
Tokens generally have a one-hour expiration time, and the TokenSource logic caches and automatically refreshes the token upon expiration. This greatly simplifies token recycling within your service.
Example ¶
package main import ( "context" "go.alis.build/client" "log" ) func main() { ctx := context.Background() conn, err := client.NewConn(ctx, "cloudrun-service.app:443", false) if err != nil { log.Println(err) } // Use the connection auto generated client packages, using the example at: // https://grpc.io/docs/languages/go/basics/#client, we will instantiate a client as follows: // routeGuideClient := pb.NewRouteGuideClient(conn) _ = conn }
Output:
func NewConnWithRetry ¶ added in v0.0.7
func NewConnWithRetry(ctx context.Context, host string, insecure bool, opts ...grpc.DialOption) (*grpc.ClientConn, error)
Does the same as NewConn, but retries on temporary TCP connection resets, which is common when connecting to Cloud Run services.
Types ¶
This section is empty.