In my experience running func azure functionapp publish
will create the zip deploy on the fly during runtime and build the package.
You won’t need to zip anything prior to running this, just leave the directory as it is and run from within the root directory. This will send all files and folders to the function - is this the case, are you able to run and confirm if this is different to what you’ve been doing?
Additionally, how are you determining that the Function doesn’t include your folders? If you go the Storage Account the function is linked to, under the file shares you should see your Function and the deployment files including your folders after you’ve done the publish.
Usually in the function app itself when you click on the app files you don’t typically see the folder structure (in my experience) just the root files for the function, in case the confusion here may be around this and actually your folders are there within the storage file share location for you to verify.
If this solves your issue please feel free to mark as the accepted answer.