Serverless在编程教育中的实践( 三 )
文章插图
Python编程语言示例下面以运行Python代码为例来看看如何用FC实现Python在线编程Demo 。
创建服务和函数
打开函数计算(FC)控制台 , 选择对应的Region , 选择左侧服务/函数 , 然后新建服务:
文章插图
输出服务名称 , 创建服务 。
文章插图
进入新创建的服务 , 然后创建函数 , 选择HTTP函数 , 即可配置HTTP触发器的函数:
文章插图
设置函数的各个参数:
文章插图
几个需要的注意的参数这里做以说明:
运行环境:这个很好理解 , 这里选择Python3函数实例类型:这里有弹性实例和性能实例两种 , 前者最大支持2C3G规格的实例 , 后者支持更大的规格 , 最大到8C16G 。 函数入口:详细参见文档HTTP触发器认证方式:anonymous为不需要鉴权 , function是需要鉴权的 。
代码解析
函数创建好 , 进入函数 , 可以看到概述、代码执行、触发器、日志查询等页签 , 我们先看触发器 , 会看到这个函数自动创建了一个HTTP触发器 , 有调用该函数对应的HTTP路径:
文章插图
然后我们选择代码执行 , 直接在线写入我们的代码:
文章插图
具体代码如下:
-- coding: utf-8 --import loggingimport urllib.parseimport timeimport subprocess
def handler(environ, start_response):
context = environ['fc.context']request_uri = environ['fc.request_uri']for k, v in environ.items():if k.startswith('HTTP_'):passtry:request_body_size = int(environ.get('CONTENT_LENGTH', 0))except (ValueError):request_body_size = 0# 获取用户传入的coderequest_body = environ['wsgi.input'].read(request_body_size)codeStr = urllib.parse.unquote(request_body.decode("GBK"))# 因为body里的对象里有code和input两个属性 , 这里分别获取用户code和用户输入codeArr = codeStr.split(' --tt-darkmode-color: #6A737D;">从前端传入代码片段 , 格式是字符串 。
前端代码前端我使用VUE写了简单的页面 , 这里解析两个简单的方法:
文章插图
页面加载时初始化HTTP请求对象 , 调用的HTTP路径就是方才函数的HTTP触发器的路径 。
文章插图
这个方法就是调用FC中的PythonRuntime函数 , 将前端页面的代码片段传给该函数 。 这里处理input交互的思路是 , 扫描整个代码片段 , 以包含input代码为标识将整个代码段分成多段 。 没有包含input代码的直接送给FC函数执行 , 包含input代码的 , 请求用户的输入 , 然后代码片段带着用户输入的信息一起送给FC函数执行 。
文章插图
演示如下:
文章插图
结束语这篇文章给大家介绍了Serverless , 阿里云的Serverless产品函数计算(FC)以及基于函数计算(FC)实现的在线编程系统的Demo 。 大家应该有所体感 , 基于函数计算(FC)实现在线编程系统时 , 研发同学只需要专注在如何执行由前端传入的代码即可 , 整个Server端的各个环节都不需要研发同学和运维同学去关心 , 基本体现了Serverless的精髓 。
本文为阿里云原创内容 , 未经允许不得转载 。
- 麒麟|荣耀新款,麒麟810+4800万超清像素,你还在犹豫什么呢?
- 智能手机市场|华为再拿第一!27%的份额领跑全行业,苹果8%排在第四名!
- 行业|现在行业内客服托管费用是怎么算的
- 零部件|马瑞利发力电动产品,全球第七大零部件供应商在转型
- 通气会|12月4~6日,2020中国信息通信大会将在成都举行
- 俄罗斯手机市场|被三星、小米击败,华为手机在俄罗斯排名跌至第三!
- 体验|闭上眼睛点外卖是什么感觉?时隔一年再次体验,进步令人欣慰
- 当初|这是我的第一部华为手机,当初花6799元买的,现在“一文不值”?
- 出海|出海日报丨短视频生产服务商小影科技完成近4亿元 C 轮融资;华为成为俄罗斯在线出售智能手机的第一品牌
- 看过明年的iPhone之后,现在下手的都哭了