摘要: 阿里云函数计算服务(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 randomimport oss2
from wand.image import ImageTEMPLATE = open('/code/index.html').read()def my_handler(event, context):logger = logging.getLogger()logger.info('event: %s', event)creds = context.credentialsauth = 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

识别以下二维码,干货

10分钟上线 - API网关 + 函数计算实现图片处理服务相关推荐

  1. 苹果和虫子c语言编程题,虫子吃苹果:每天10分钟,锻炼少儿编程计算思维

    原标题:虫子吃苹果:每天10分钟,锻炼少儿编程计算思维 我们会不断的将一些优质的少儿编程资源分享给各位家长,请大家关注坚果学院少儿编程(公众号:坚果编程),有时间可以给孩子学习下,锻炼计算思维和编程思 ...

  2. 二元函数对xy同时求导_更新丨10分钟掌握高等数学上册函数极限求解问题(考研、期末复习均可以用)...

    学过高数的都知道,极限在高数的应用频率是非常高的,而且是很多高数知识的基础,求导.变限积分求极限.多重积分求极限等等均会用到 虽然是基础,但是很多人在刚学习的时候就会直接被理论弄懵圈,因此就无法继续再 ...

  3. 阿里云 EMAS HTTPDNS 联合函数计算重磅推出 SDNS 服务,三大能力获得突破

    阿里云 EMAS HTTPDNS 联合函数计算重磅推出 SDNS 服务,三大能力获得突破 1. 什么是 HTTPDNS ? 传统的 DNS(Domain Name System)使开发者常面临着域名劫 ...

  4. 10分钟上线 - 利用函数计算构建微信小程序的Server端

    摘要: 阿里云函数计算是一个事件驱动的全托管计算服务.通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传.微信小程序是一种不需要下载安装即可使用的应用,它可以在微信内被便捷地获取和传播. 当 ...

  5. 1分钟构建API网关日志解决方案

    访问日志(Acccess Log)是由web服务生成的日志,每一次api请求都对应一条访问记录,内容包括调用者IP.请求的URL.响应延迟.返回状态码.请求和响应字节数等重要信息. 阿里云API网关提 ...

  6. 三分钟学会如何在函数计算中使用 puppeteer

    摘要: 使用 puppeteer 结合函数计算,可以快速的构建弹性的服务完成各种功能,包括:生成网页截图或者 PDF.高级爬虫,可以爬取大量异步渲染内容的网页.模拟键盘输入.表单自动提交.登录网页等, ...

  7. 异步请求积压可视化|如何 1 分钟内快速定位函数计算积压问题

    作者 | 千风 本文分为三个部分:概述中引入了积压问题,并介绍了函数计算异步调用基本链路:并在指标介绍部分详细介绍了指标查看方式,分类解读了不同的指标含义:最后以一个常见的异步请求积压场景为例,介绍如 ...

  8. 产品发布 | 全程托管、化繁为简,京东云上线API网关服务

    导语 京东云推出了互联网中间件产品API网关(API Gateway),并免费开放公测.京东云API 网关是API托管服务,它提供了API的全生命周期管理.流控策略.访问授权.后端签名和API调用情况 ...

  9. 函数计算如何粘合云服务,提供端到端解决方案

    作者 | 西流  阿里云技术专家 导读:阿里云 Serverless 产品函数计算可以作为粘合剂,串联其他云服务提供端到端解决方案,从而简化编程模型,快速实现最上层的业务目标. 传统单体应用的拆解 首 ...

最新文章

  1. Java调优之jvm和线程的内存分析
  2. Postman导入和导出接口
  3. Python 字典的操作
  4. 算法训练营 重编码_编码训练营后如何找到工作
  5. getopt和getopt_long函数
  6. Flink运行时架构
  7. php调用selenium,通过PHP exec()执行Selenium webdriver
  8. c++输出重定向 linux,C++ stderr/stdout 重定向到文件
  9. thoughtworks笔试整理【转载】
  10. 武义机器人_喜报!武义县壶山小学获评浙江省中小学新型教学空间优秀案例
  11. Vue指令之v-if
  12. 用c语言解三角函数公式大全初中,初中三角函数公式大全
  13. MATLAB 粒子群算法,例题与常用模版
  14. 2021年石景山区景贤计划人才认定申报要求及流程
  15. OpenGL ES 2.0 for Android教程(三):编译着色器并绘制到屏幕
  16. 关于汇编语言中的转移指令原理——offset
  17. 帝国cms登陆表单的制作与变量说明
  18. 计算机考研和就业pk,考研PK就业:提高自身竞争力比文凭更重要
  19. 星软员工为四川地震遇难同胞默哀
  20. Code 39码与Code 128码区别

热门文章

  1. python 并发执行命令_python: 多线程实现的两种方式及让多条命令并发执行
  2. 表格c1等于a1加b1_中国最牛驾照,C1、B1、B2、A1、A2随便开,被称为万能的驾照!...
  3. 【LeetCode笔记 - 每日一题】318. 最大单词长度乘积(Java、位运算)
  4. LeetCode笔记】剑指 Offer 35. 复杂链表的复制(Java、哈希表、原地算法)
  5. php 递归格式化数组,利用php递归实现无限分类 格式化数组的详解
  6. newifi mini固件_如何在vmware虚拟机中安装OpenWrt系统,含x86固件编译教程
  7. c语言实现顺序表源程序,C语言实现静态顺序表的实例详解
  8. win10右键一直转圈_Win10总是自动更新?教你如何关掉自动更新
  9. svn mysql认证_SVN基于MySQL认证
  10. wpf 点击按钮弹出选择框_关于WPF的弹出窗口