Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Service ¶
type Service struct { // service properties AppName string ConfigFileName string CustomConfigPath string // web server config WebServerConfig *WebServerConfig // register one or more service handlers // example: type AnswerServiceImpl struct { // testpb.UnimplementedAnswerServiceServer // } // // RegisterServiceHandlers: func(grpcServer *grpc.Server) { // testpb.RegisterAnswerServiceServer(grpcServer, &AnswerServiceImpl{}) // }, RegisterServiceHandlers func(grpcServer *grpc.Server) // setup optional health check handlers DefaultHealthCheckHandler func(ctx context.Context) grpc_health_v1.HealthCheckResponse_ServingStatus ServiceHealthCheckHandlers map[string]func(ctx context.Context) grpc_health_v1.HealthCheckResponse_ServingStatus // setup optional rate limit server interceptor RateLimit ratelimiter.RateLimiterIFace // one or more unary server interceptors for handling wrapping actions UnaryServerInterceptors []grpc.UnaryServerInterceptor // one or more stream server interceptors for handling wrapping actions StreamServerInterceptors []grpc.StreamServerInterceptor // typically wrapper action to handle monitoring StatsHandler stats.Handler // handler for unknown requests rather than sending back an error UnknownStreamHandler grpc.StreamHandler // handler to invoke before gRPC server is to start BeforeServerStart func(svc *Service) // handler to invoke after gRPC server started AfterServerStart func(svc *Service) // handler to invoke before gRPC server is to shutdown BeforeServerShutdown func(svc *Service) // handler to invoke after gRPC server has shutdown AfterServerShutdown func(svc *Service) // contains filtered or unexported fields }
Service represents a gRPC server's service definition and entry point
AppName = (required) name of this service ConfigFileName = (required) config file name without .yaml extension CustomConfigPath = (optional) if not specified, . is assumed RegisterServiceHandlers = (required) func to register grpc service handlers
When calling RPC services, To pass in parent xray segment id and trace id, set the metadata keys with:
x-amzn-seg-id = parent xray segment id, assign value to this key via metadata.MD x-amzn-tr-id = parent xray trace id, assign value to this key via metadata.MD
How to set metadata at client side?
ctx := context.Background() md := metadata.Pairs("x-amzn-seg-id", "abc", "x-amzn-tr-id", "def") ctx = metadata.NewOutgoingContext(ctx, md)
func NewService ¶
func NewService(appName string, configFileName string, customConfigPath string, registerServiceHandlers func(grpcServer *grpc.Server)) *Service
create service
func (*Service) CurrentlyServing ¶
CurrentlyServing indicates if this service health status indicates currently serving mode or not
func (*Service) GracefulStop ¶
func (s *Service) GracefulStop()
GracefulStop allows existing actions be completed before shutting down gRPC server
func (*Service) ImmediateStop ¶
func (s *Service) ImmediateStop()
ImmediateStop will forcefully shutdown gRPC server regardless of pending actions being processed
func (*Service) LocalAddress ¶
LocalAddress returns the service server's address and port
type WebServerConfig ¶ added in v1.0.6
type WebServerConfig struct { AppName string ConfigFileName string CustomConfigPath string // define web server router info WebServerRoutes map[string]*ginw.RouteDefinition // getter only WebServerLocalAddress string // clean up func CleanUp func() }
note: WebServerLocalAddress = read only getter
note: WebServerRoutes = map[string]*ginw.RouteDefinition{ "base": { Routes: []*ginw.Route{ { Method: ginhttpmethod.GET, RelativePath: "/", Handler: func(c *gin.Context, bindingInputPtr interface{}) { c.String(200, "Connector Service Http Host Up") }, }, }, }, }
func (*WebServerConfig) GetWebServerLocalAddress ¶ added in v1.0.7
func (w *WebServerConfig) GetWebServerLocalAddress() string
GetWebServerLocalAddress returns FQDN url to the local web server