阿里云函数计算支持 Python 运行环境

阿里云函数计算服务是一个事件驱动的全托管计算服务,自 4 月份发布以来,受到了很多开发者的关注。通过函数计算,开发者只需要编写函数代码,就能够快速地开发出弹性伸缩地 Serverless 应用。

今天函数计算北京区域(华北 2)正式上线,同时推出了对 Python 语言的支持,开发者可以使用 Python 来编写函数。一个最简单的函数代码如下:

def my_handler(event, context):
    return 'hello world'
  1. 函数名

    • my_handler需要与创建函数时的"Handler"字段相对应:例如创建函数时指定的 Handler 为main.my_handler,那么函数计算会去加载main.py中定义的my_handler函数
  2. event 参数
    • event 参数是用户调用函数时传入的数据,其类型是str
  3. context 参数
    • context 参数中包含一些函数的运行时信息(例如 request id/临时 AK 等)。其类型是FCContext,具体结构和使用在下面的使用 context介绍
  4. 返回值
    • 函数的返回值会作为调用函数的结果返回给用户,它可以是任意类型:对于简单类型会函数计算会把它转换成 str 返回,对于复杂类型会把它转换成 JSON 字符串返回

更详细的介绍请参考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 大拿来玩!

参考:

https://www.v2ex.com/t/360304
https://www.v2ex.com/t/368118

时间: 2024-10-30 10:35:12

阿里云函数计算支持 Python 运行环境的相关文章

仅为代码实际运行资源付费 解构阿里云函数计算

4月26日,在云栖大会・南京峰会上,阿里云宣布函数计算(Function Compute)启动邀测.这是一个事件驱动的无服务器计算平台.用户按需调用.按需付费,无需管理服务器等基础设施,特别适用于应用场景中有明显波峰波谷的企业. 通过函数计算,用户无需再管理服务器等基础设施,只需编写代码并上传.函数计算会为用户准备好计算资源,以弹性.可靠的方式运行代码,并提供日志查询,性能监控,报警等功能.借助于函数计算,可以快速构建任何类型的应用和服务,无需管理和运维.更棒的是,只需要为代码实际运行消耗的资源

阿里云函数计算 - 事件驱动的serverless计算平台

从2006年AWS发布的第一个云服务S3开始,存储,计算等IT基础设施的能力纷纷被以服务的方式提供给用户.过去十年,云服务深刻的改变了社会获取和使用计算能力的方式,云服务自身也以极快的速度演进,新的服务形态不断涌现,无服务器计算(serverless computing)就是其中之一.阿里云函数计算,是一种事件驱动的无服务器计算服务.用户只需要编写并上传代码,阿里云函数计算会以可靠的方式执行代码,并随访问压力平滑伸缩.用户可以将代码关联多种事件源,由事件触发,也可通过http请求的方式直接调用.

粘合多款产品的微服务架构 阿里云函数计算再次升级

今年"2017杭州·云栖大会"上,阿里云函数计算再次升级:函数计算打通多个重要云产品线,能够直接对接表格存储.对接API网关.对接日志服务等.用户仅仅需要简单配置就可以灵活方便的组合多种商业场景. 过去十年,云服务深刻的改变了社会获取和使用计算能力的方式,云服务自身也以极快的速度演进,新的服务形态不断涌现,无服务器计算就是其中之一.阿里云函数计算,是一种事件驱动的无服务器计算服务.用户只需要编写并上传代码,函数计算会以可靠.安全的的方式执行代码,并随着访问量增大系统能平滑伸缩,函数计算

一分钟了解阿里云产品:浅谈阿里云批量计算

阿里云发布批量计算备受关注,今天就让我来浅谈下批量计算吧.   阿里云批量计算服务是一种适用于大规模并行批处理作业的分布式云服务,适用于渲染.生物基因分析.多媒体转码.科学计算.金融保险分析等多个行业领域,解决大规模并行批处理作业问题的通用PAAS服务.自阿里云正式对外开放以来,批量计算服务就在背后默默地支撑着渲染云服务,完成了昆塔动画等超1千万核小时的标杆性渲染业务.现在,批量计算服务正式对外开放,适用于多个通用行业领域.   阿里云批量计算服务可支持十万核级别并发规模,系统按照作业需求动态分

Windows中配置Python运行环境,只有700KB

之前还没有编译过Windows上的Python,打包发布一般使用py2exe和pyinstaller,生成的文件至少有3MB.而且Python只有VS的Project文件,也就是说,如果自己要用GCC来编译,就需要自己编写或者修改Makefile了.我是在Debian上安装了Mingw32之后,修改默认的Makefile来让它支持编译成Windows版本,而且源代码有大幅度改动,所以这里就不把过程写出来了,我也忘了做了多少修改.编译方法可以参考我的上一篇博文.建议有VS的同学还是选择VS编译比较

使用SAE部署Python运行环境的教程

  这篇文章主要介绍了使用SAE部署Python运行环境的教程,SAE作为新浪的在线软件部署平台,在国内拥有一定的性价比,需要的朋友可以参考下 因为 GAE 在国内访问不便,所以平时有一些小应用,我都会放在 SAE 上面, 虽然 SAE 还有很多缺陷,但算是上手比较容易的一个了,最起码文档写的不错. 开发 SAE 上的应用,我一般都用 Flask,SAE 预装了 Flask,所以你可以直接用, 但我们难免会用一些没有预装的库. 如果是在以前,可能需要自己将 package 挨个 copy 到应用

阿里云的计算设计探索

云栖TechDay39期,阿里云高级视觉设计师刘宝明带来阿里云的计算设计探索的演讲.本文主要从阿里云的三代视觉语言设计谈起,着重分享了怎样可以更好的去诠释云计算的业务,打造阿里云的品牌属性,每一步的设计思考.体验与历程.分享了不同的设计侧重.赋能全链路,最后对未来做了展望.   设计师是对设计事物的人的一种泛称,宝明以视觉传达的方式来表现自己的工作.随着新技术的不断涌现,设计师学习和实践的不仅仅是设计技能,还有运营技能.产品技能,更要有发现.分析和解决问题的能力,接下来我们一起来了解下~   首

阿里云弹性计算安全

阿里云弹性计算安全 --魏兴国 •基础架构安全 •业务安全 阿里云弹性计算安全

[文档]阿里云弹性计算平台

阿里云弹性计算平台 temp_12052308147722.zip