摘要: 阿里云函数计算服务(FunctionCompute,FC)是一个事件驱动的全托管计算服务。通过函数计算与云端各个服务的广泛集成,开发者只需要编写函数代码,就能够快速地开发出弹性高可用的后端系统。接下来我们利用 API网关 + FC,来快速实现一个图片转换服务。
点此查看原文:http://click.aliyun.com/m/43686/
阿里云函数计算服务(FunctionCompute,FC)是一个事件驱动的全托管计算服务。通过函数计算与云端各个服务的广泛集成,开发者只需要编写函数代码,就能够快速地开发出弹性高可用的后端系统。接下来我们利用 API网关 + FC,来快速实现一个图片转换服务。
我们先从最简单的 hello word 开始,函数代码如下:
def my_handler(event, context):
return 'hello world'
函数名
my_handler需要与创建函数时的”Handler”字段相对应:例如创建函数时指定的 Handler 为main.my_handler,那么函数计算会去加载main.py中定义的my_handler函数
event 参数
event 参数是用户调用函数时传入的数据,其类型是str
context 参数
context 参数中包含一些函数的运行时信息(例如 request id/临时 AK 等)。其类型是FCContext,具体结构和使用在下面的使用 context介绍
返回值
函数的返回值会作为调用函数的结果返回给用户,它可以是任意类型:对于简单类型会函数计算会把它转换成 str 返回,对于复杂类型会把它转换成 JSON 字符串返回
结合API 网关,开发者可以方便地将自己的函数以 HTTP 的方式提供给别人使用。关于 API 网关和 FC 的交互协议细节,可参考这篇文章。下图是图片拼接和选择服务的效果和代码示例。当body内容为二进制时,需在函数计算中对body内容进行Base64编码,同时设置isBase64Encoded=true。如果body无需Base64编码,isBase64Encoded可以设置为false。API网关会对isBase64Encoded=true的body内容进行Base64解码后再透出给客户端。
图片描述
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
识别以下二维码,阅读更多干货
图片描述
分享到:
相关推荐
WK系列开发框架-V6至V8 Java微服务+API网关+Vue3 Element-Plus 前后端分离.zip
HXAPIGate基于Netty+Shiro开发的一款高性能API网关,对基于REST服务的细粒度API资源的权限管理平台,支持http,dubbo等多协议微服务接口代理。目前多数授权管理平台都只单单对api路径资源本身授权,而不能做到更细...
VX-API-Gateway是基于Vert.x(java)开发的API网关,是一个全异步,高性能,可扩展,轻量级的API网关
我们从百亿流量交易系统 API 网关(API Gateway)的现状和面临问题出发,阐述微服务架构与 API 网关的关系,理顺流量网关与业务网关的脉络,带来最全面的 API 网关知识与经验。内容涉及: 百亿流量交易系统 API ...
阿里云API网关服务-API手册-D.docx
雪球-API服务网关.key
阿里云API网关服务-API快速入门-D.docx
以Java进行开发的可扩展高性能响应式API网关+路由监控+支持集群部署
gateway-service作为服务网关工程,负责请求的转发,同时它也作为链路追踪客户端,负责产生数据,并上传给zipkin-service;user-service为一个应用服务,对外暴露API接口,同时它也作为链路追踪客户端,负责产生数据...
PAAS-TA-API-网关服务发布 PaaS-TA API网关服务配置 api-gateway-server :: N台机器 api-gateway-service-broker :: 1台机器 mariadb :: 1台机器 创建PaaS-TA API网关服务版本 下载最新的API网关版本 $ git clone ...
CA认证解决方案-CA-Server+网关.doc
orange源代码,可以自己组建军API网关,主要是架设在nginx这一层
最小的API网关
阿里云API网关服务-API手册.pdf
行业资料-电子功用-基于IEC+61850和OPC的异构电能质量监测设备集成方法和网关
工业通讯网关的操作手册,支持profinet通讯的西门子S7-1200PLC 与支持EtherCAT的伺服驱动器直接的通讯连接。
阿里云API网关服务-API快速入门.pdf
OPC XML-DA 网关的设计与实现。
---gateway---网关