阿里云函数计算服务是一个事件驱动的全托管计算服务,自 4 月份发布以来,受到了很多开发者的关注。通过函数计算,开发者只需要编写函数代码,就能够快速地开发出弹性伸缩地 Serverless 应用。
今天函数计算北京区域(华北 2)正式上线,同时推出了对 Python 语言的支持,开发者可以使用 Python 来编写函数。一个最简单的函数代码如下:
def my_handler(event, context): return 'hello world'
my_handler
需要与创建函数时的"Handler"字段相对应:例如创建函数时指定的 Handler 为main.my_handler
,那么函数计算会去加载main.py
中定义的my_handler
函数str
FCContext
,具体结构和使用在下面的使用 context介绍更详细的介绍请参考Python 编程指南
结合API 网关,开发者可以方便地将自己的函数以 HTTP 的方式提供给别人使用。
下面是一个简单的图片拼接和旋转的例子:
代码如下:
import base64 import logging import random import oss2 from wand.image import Image TEMPLATE = open('/code/index.html').read() def my_handler(event, context): logger = logging.getLogger() logger.info('event: %s', event) creds = context.credentials auth = oss2.StsAuth(creds.accessKeyId, creds.accessKeySecret, creds.securityToken) bucket = oss2.Bucket(auth, 'oss-cn-shanghai-internal.aliyuncs.com', 'rockuw-sh-2') fc_obj = bucket.get_object('fc.png') py_obj = bucket.get_object('python.png') with Image(file=fc_obj) as fc_img: with Image(file=py_obj) as py_img: img = Image() img.blank(fc_img.width + py_img.width + 20, py_img.height) img.composite(image=fc_img, left=0, top=0) img.composite(image=py_img, left=fc_img.width+20, top=0) img.rotate(random.randint(0, 360)) img_enc = base64.b64encode(img.make_blob(format='png')) resp = { 'isBase64Encoded': False, 'statusCode': 200, 'body': TEMPLATE.replace('{fc-py}', img_enc) } return resp
欢迎各位 Python 大拿来玩!
参考:
![]() | 1 ech0x 2017-07-06 21:23:51 +08:00 via iPad 看上去好酷。 只支持计算服务吗?网络部分的计费是怎样的?库的支持呢? |
2 rockuw OP @ech0x 目前是公测阶段不收费。我们内置了一些库,可以直接使用。你也可以把依赖的库跟代码一起打包进去就能使用。 |
![]() | 3 zuolan 2017-07-06 23:33:09 +08:00 FaaS ( Function as a Service ),多年以前,我完全没想到还有这种操作。。。。 |
![]() | 5 wzw 2017-07-07 07:16:29 +08:00 华南 1 什么时候有 |
![]() | 6 jy02201949 2017-07-07 09:12:48 +08:00 还是 2.7 啊,不习惯不习惯 |
7 coolcoffee 2017-07-07 09:36:57 +08:00 via iPhone 征集 |
![]() | 8 janxin 2017-07-07 10:14:13 +08:00 via iPhone @jy02201949 阿里云基本上都是 2 的吧… sdk 都只支持 2 |
![]() | 9 v166ex 2017-07-07 10:18:14 +08:00 请支持 3.4+ |
10 rockuw OP @jy02201949 @binfengxy python3.6 我们后面会支持 |
11 rockuw OP @wzw 其他区域会陆续上线,欢迎加入我们的用户群来交流: https://help.aliyun.com/document_detail/53087.html |
![]() | 12 aiqinxuancai 2017-07-08 11:14:33 +08:00 函数能不能定时器触发... |
13 interlu1990 2017-07-08 11:51:02 +08:00 @rockuw Hi,您好,我试了一下函数计算。我在本地打包了 Pillow 的 4.2.1,但是上传不能用,import 会出错。 |
14 rockuw OP @aiqinxuancai 定时器触发后面会支持的 @interlu1990 参考 `https://help.aliyun.com/document_detail/56316.html?#adding-modules` 来添加依赖模块 如果还有疑问,欢迎加入我们的用户群来交流: `https://help.aliyun.com/document_detail/53087.html` |