def serve()

in step3/src/server/server.py [0:0]


def serve():
    # start trace exporter
    trace.set_tracer_provider(TracerProvider())
    trace.get_tracer_provider().add_span_processor(
        SimpleSpanProcessor(CloudTraceSpanExporter())
    )
    propagate.set_global_textmap(CloudTraceFormatPropagator())

    # Add gRPC services to server
    server = grpc.server(futures.ThreadPoolExecutor(max_workers=4))
    service = ShakesappService()
    shakesapp_pb2_grpc.add_ShakespeareServiceServicer_to_server(service, server)
    health_pb2_grpc.add_HealthServicer_to_server(service, server)

    # Start gRCP server
    port = os.environ.get("PORT", "5050")
    addr = f"0.0.0.0:{port}"
    logger.info(f"starting server: {addr}")
    server.add_insecure_port(addr)
    server.start()
    server.wait_for_termination()