摘要: 阿里云函数计算服务(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
识别以下二维码,阅读更多干货
图片描述
分享到:
相关推荐
Flask-Zappa是一个用于Python Flask应用程序的工具,它允许开发者在Amazon Web Services (AWS) 的Lambda函数和API Gateway上部署和管理全功能的Web服务,实现无服务器架构。这种架构模式能够减少基础设施管理的工作...
- 常见的媒体格式处理,如图片处理、视频转码、文档格式转换等,都可以借助函数计算实现。 - 提供了如Image Resizer这样的应用模板,通过Funcraft和Docker等工具简化部署过程。 6. **转换工具优势** - 函数计算...
- 定义:预先定义好的函数集合,用于封装应用程序的服务能力,并通过API网关对外开放给用户调用。 - 组成:基本信息、前端后端请求路径与参数、请求协议等。 2. **数据源** - 描述:指数据库的连接信息。数据API...
**Flask** 是一个轻量级的Python Web服务器网关接口(WSGI)微框架,它允许开发者用Python代码定义路由和视图函数,以创建动态网页。在这个项目中,Flask提供了基础的Web服务架构。 **Flask-RESTful** 是Flask的一...
6. **API网关**:API网关帮助企业快速构建、管理和维护API,实现前后端分离,促进微服务架构的实施,提高系统的集成和扩展性。 7. **消息队列MQ**:阿里云的消息队列服务支持多种协议,如RocketMQ、Kafka等,提供高...
快钱人民币支付网关开发包是一款专为商家和开发者设计的工具,用于集成快钱支付系统,以便在自己的产品或服务中实现便捷的在线支付功能。这个开发包提供了丰富的接口和文档,帮助开发者快速理解和接入快钱的支付服务...
2. **部署与更新**:通过简单的命令行操作,可以将代码一键部署到阿里云的函数计算(Function Compute)、API网关(API Gateway)等服务上,并实现无缝更新。 3. **服务监控**:集成阿里云的日志服务(Log Service)...
10. **售后服务和技术支持**:快钱通常会提供技术支持和售后服务,解答开发者在集成过程中遇到的问题,确保开发者能够顺利地将快钱支付网关整合到自己的产品中。 通过深入学习和实践快钱自动付款网关开发包,开发者...
3. **云开发**:在支付宝小程序的开发过程中,云开发提供了一站式的后端服务,包括数据库、存储、函数计算等,开发者可以通过简单的API调用实现数据的存取和业务逻辑处理。这种方式减少了对传统服务器的依赖,简化了...
在Serverless架构中,API网关还可以触发Serverless函数的执行。 ### 结合示例进行说明 从文件提供的部分内容...
3. 调用`IOT_Linkkit_Report`函数:最后,网关向云端报告子设备已上线,表示子设备已准备好接收和发送数据。 批量添加子设备通常用于一次性处理多个设备的场景,简化了逐个添加的繁琐过程。批量添加通常涉及对上述...
Flask是一个轻量级的Web服务器网关接口(WSGI)Web应用框架,非常适合快速构建简单的、但功能强大的应用程序或API。 在机器学习项目中,开发出的模型需要经过部署才能在实际环境中应用。Flask因其简洁的结构和易于...
5. **丰富的事件源**:FaaS与云端服务深度集成,能够从对象存储、表格存储、定时器、CDN、API网关、日志服务等多个事件源触发函数执行,简化了系统架构,降低了编程复杂性。 6. **高可用与安全性**:FaaS架构通常...
使用云开发的API网关服务,可以方便地管理和控制接口访问权限,同时提供安全的签名机制防止非法请求。 7. **性能优化** 为了提高小程序的性能,可以对图片进行压缩,利用懒加载策略减少初次加载时间。同时,合理...
各大云服务商如阿里云的函数计算、AWS的Lambda以及Azure Functions提供了丰富的语言支持和触发器选项,如阿里云函数计算支持OSS、API网关等触发器,AWS Lambda支持DynamoDB、SNS等,Azure Functions则支持Event Grid...
4. API网关:云API网关提供了对外暴露服务的能力,可以将云函数包装成HTTP接口供外部调用。 三、项目结构 根据提供的压缩包文件名称,我们可以推测项目的结构: 1. product.csv:可能包含各种垃圾类型的产品数据,...
5. API网关:快速构建API接口,支持多种协议,方便前后端分离开发。 四、小程序·云开发的优势 1. 快速迭代:云开发可以快速响应业务变化,实现快速上线和迭代更新。 2. 安全可靠:腾讯云提供强大的安全防护机制...
Envoy 是一个强大的、高性能的边缘服务代理,而 Gloo 则将其功能进一步扩展,提供了更高级别的抽象和自动化,使得在云原生环境中管理 API 和函数变得更为简单。 Gloo 作为 API 网关,主要负责以下几方面的功能: 1...
每个服务都独立部署,并通过API网关进行通信,这样不仅可以简化开发和测试工作,还能有效地隔离故障,避免单点失败带来的风险。 #### 2.3 分布式数据库 考虑到大数据量下的高效存储与检索需求,项目中使用了分布式...
- **函数即服务(FaaS)**:如AWS的Lambda、阿里云的函数计算等,用于实现Serverless架构。 - **无服务器框架**:如Serverless Framework、OpenFaaS等,帮助开发者更便捷地构建和部署Serverless应用。 - **微前端框架*...