本地函数定义是非法的_函数计算搬站新利器---Custom Runtime演示

功能介绍

今天在函数计算上实现一个Web站点是比较简单的,比如: 部署基于 python wsgi web 框架的工程到函数计算 介绍的用WSGI框架结合函数计算部署Python的Web App。最近函数计算发布了一个新功能,使得搬站进一步简化了。

之前可能有同学有个困惑,我有一个网站,想用Serverless减成本,但是也不想改现有的代码,这个之前没办法直接跑在函数计算上。而利用Custom Runtime,我们真正可以做到不改一行代码搬站。

什么是Custom Runtime,顾名思义就是自定义Runtime,也就是说它不限制用户代码使何种语言或者何种框架,只要它能运行在Debian 9下即可。它和之前的Java, Python等runtime显著的不同就是用户的自主权更大了。在http 触发器场景下,只要你的WebApp监听在9000端口,你就可以把整个站点运行在函数计算中。下面我们介绍如何用CustomRuntime来运行一个wagtail CMS系统 (基于Django http://wagtail.io)。

准备包含wagtail的代码包

由于对用户代码有极大的灵活性,CustomRuntime 要求在官方提供的fun 工具里的custom runtime image里编译用户代码,确保其线上运行环境和本地编译环境是一致的,这样最大程度减少系统差异带来的bug。

因此我们第一步就是用fun工具启动custom runtime image

  1. 在本地启动函数计算Custom Runtime的docker image,并将一个本地目录/local_directory映射到image的/code,如下所示
cd /local_directory/fun install sbox --runtime custom --interactive
  1. cd /code
  2. pip install wagtail -t .
  3. ./bin/wagtail start mysite
  4. cd mysite
  5. pip install -r requirements.txt
  6. python manage.py migrate
  7. python manage.py createsuperuser
  8. 设定管理员密码
  9. python manage.py runserver 0.0.0.0:9000
  10. 用浏览器访问127.0.0.1:9000,你就可以得到如下界面
3aae8162b6715e383d263a12d24499d7.png

OK,至此我们在本地能够运行一个最简单的wagtail站点。

说明: 可以用docker ps列出当前运行的image,然后手动启动custom image,将本地9000端口和docker的9000绑定,如下所示。

run -v /local_directory:/code -ti -p 9000:9000 --entrypoint sh aliyunfc/runtime-custom:build-1.6.0

退出docker,在本地进行下列操作。

10.接下来我们需要修改wagtail的配置文件,使其能运行在函数计算线上环境中,

在mysite/settings/base.py中修改database path, 并将本地的db.sqlite3文件copy到对应的NAS目录中(/mnt/disk为您函数计算服务中设置的NAS挂在点)

# Database# https://docs.djangoproject.com/en/2.2/ref/settings/#databasesDATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join("/mnt/disk
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值