How to rig eyelid to follow non-spherical eyeball
Shapekeys and lattice would probably not give satisfying results, so you could use a system of bones and create a series of poses to open and close your eyes. Giving the curve of your eyes, 3 poses should be necessary and enough. You'll probably need to scale one or two bones so that it sticks to the eye and don't emerge out of the face. Also, you may need more bones if you want to be more precise (like 3 horizontal rows of 2 bones instead of 3x1).

The method: create 3 bones within your character armature and parent them to the head bone. Here there is one bone for each row of faces (I've simplified your mesh). Give them names like eyelid1_L, etc... Parent the mesh to the armature With Empty Groups, then assign each faces row to the vertex group it is supposed to be part of, i.e. the group with the name of the bone that is supposed to control it. Now when you'll move a bone, the corresponding part of the mesh will follow.