阿里云函数计算服务是一个事件驱动的全托管计算服务,自 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
binfengxy 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` |