日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/8/23 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 10分钟上线 - API网关 + 函数计算实现图片处理服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘要: 阿里云函數計算服務(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网关 + 函数计算实现图片处理服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。