Hey arafay, Sorry for the delay. I plan to post a deployment recipe soon. There are a lot of little gotchas I've had to work through. I was able to do it successfully with Zappa (https://github.com/Miserlou/Zappa)
I'm working on doing it for another app and should be able to post my steps in the near future. On Saturday, October 6, 2018 at 1:17:09 PM UTC-5, arafay...@gmail.com wrote: > > Hi there, > Can you please tell me the procedure of migrating the web2py app in AWS > Lamda or provide me a link that you are following ?? > > On Saturday, September 8, 2018 at 12:30:28 PM UTC+5, appj...@gmail.com > wrote: >> >> I am trying to migrate my Web2Py app from Heroku to AWS Lambda, using >> Zappa. I can get it to start running, but I'm running into errors because >> web2py is trying to write to the filesystem: >> >> >> [Errno 30] Read-only file system: '/var/task/deposit': OSError >> Traceback (most recent call last): >> File "/var/task/handler.py", line 574, in lambda_handler >> return LambdaHandler.lambda_handler(event, context) >> File "/var/task/handler.py", line 244, in lambda_handler >> handler = cls() >> File "/var/task/handler.py", line 150, in __init__ >> import gluon.main >> File "/var/task/gluon/main.py", line 64, in <module> >> create_missing_folders() >> File "C:\web2py\gluon\admin.py", line 460, in create_missing_folders >> File "C:\web2py\gluon\admin.py", line 454, in try_mkdir >> OSError: [Errno 30] Read-only file system: '/var/task/deposit'. >> >> So I commented out the following functions from gluon/main.py >> >> create_missing_app_folders() >> and >> create_missing_folders() >> >> >> However, now I'm getting stuck with the DB trying to create tables: >> >> >> [ERROR] 2018-09-08T07:05:35.270Z 905ef1e6-b335-11e8-816d-07b31200db80 >> Traceback (most recent call last): >> File "/var/task/gluon/restricted.py", line 219, in restricted >> exec(ccode, environment) >> File "/var/task/applications/ads/models/db.py", line 72, in <module> >> session.connect(request, response, db=db) >> File "C:\web2py\gluon\globals.py", line 946, in connect >> File "/var/task/gluon/packages/dal/pydal/base.py", line 587, in >> define_table >> table = self.lazy_define_table(tablename, *fields, **args) >> File "/var/task/gluon/packages/dal/pydal/base.py", line 621, in >> lazy_define_table >> polymodel=polymodel) >> File "/var/task/gluon/packages/dal/pydal/adapters/base.py", line 797, in >> create_table >> return self.migrator.create_table(*args, **kwargs) >> File "/var/task/gluon/packages/dal/pydal/migrator.py", line 275, in >> create_table >> query), table) >> File "/var/task/gluon/packages/dal/pydal/migrator.py", line 483, in log >> logfile = self.file_open(table._loggername, 'ab') >> File "/var/task/gluon/packages/dal/pydal/migrator.py", line 491, in >> file_open >> fileobj = portalocker.LockedFile(filename, mode) >> File "C:\web2py\gluon\packages\dal\pydal\contrib\portalocker.py", line >> 185, in __init__ >> File "C:\web2py\gluon\packages\dal\pydal\contrib\portalocker.py", line >> 170, in open_file >> IOError: [Errno 2] No such file or directory: >> '/var/task/applications/ads/databases/sql.log' >> >> >> Is this a never-ending rabbit hole or is there a way to tell web2py that >> it cannot write to the filesystem. I tried >> global_setttings.web2py_runtime_gae=True >> >> but that causes a bunch of other problems because GAE resources are not >> present. >> >> I'd love to get this on AWS Lambda because my application can have >> temporary 1000x spikes in traffic and Serverless lets me handle this >> without ops and without paying for idle server time in the evenings. >> >> If I can get this working I will post a deployment recipe. >> >> Thanks, >> -Mike >> >> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.