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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

十分钟上线 - 函数计算构建支付宝小程序的后端

發布時間:2024/8/23 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 十分钟上线 - 函数计算构建支付宝小程序的后端 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

阿里云函數計算服務(FunctionCompute,FC)是一個事件驅動的全托管計算服務。通過函數計算與云端各個服務的廣泛集成,開發者只需要編寫函數代碼,就能夠快速地開發出彈性高可用的后端系統。接下來我們使用FC,來快速實現一個圖片轉換服務, 并把這個圖片轉換服務作為支付寶小程序的后端。

支付寶小程序demo前端效果圖:

資源下載及準備工作

示例代碼附件?【必須】

支付寶小程序開發工具下載?【非必須】

函數計算FC 快捷入口
對象存儲OSS 快捷入口
日志服務Log Service 快捷入口

簡明架構圖

函數入口

普通函數入口

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 字符串返回

HTTP 觸發器的函數入口

HELLO_WORLD = b"Hello world!\n" def handler(environ, start_response):context = environ['fc.context']status = '200 OK'response_headers = [('Content-type', 'text/plain')]start_response(status, response_headers)return [HELLO_WORLD]
  • environ : environ 參數是一個 python 字典,里面存放了所有和客戶端相關的信息,具體詳情參考?environ 參數,函數計算增加了兩個自定義的 key,分別是?fc.context?和?fc.request_uri

    • fc.context : 和普通函數入口的?context?意義一樣
    • fc.request_uri : string 類型,request 的 url

需要注意的點:environ 中的?HTTP_Variables?,里面包含 request 中 header, 比如某個請求的 header 的為?'x-Custom-key':'value'?, 在 environ 中會表現為:environ['HTTP_X_CUSTOM_KEY']='value', 可以理解為,對于 request header 中的 key,WSGI 做如下處理:key = "HTTP_" + k.upper().replace("-","_")

  • start_response : start_response 參數是一個可調用者(callable), 具體參考?the-start-response-callable?, 這個是 FC runtime 提供的,它接受兩個必要的位置參數和一個可選參數。

更多詳細介紹請參考函數入口和python runtime

具體操作步驟

假定這次實驗所有操作在華東2 上海region 完成,所有實驗相關的資源請從附件中下載

這里介紹兩種部署函數的方法:

  • 利用fun 工具進行自動化部署
  • 利用控制臺進行可視化部署
  • 準備工作

    • 準備存儲圖片的 oss bucket
      比如在華東2創建了一個名叫xcx-demo的bucket

    利用fun工具進行自動部署

    Fun?是用于在阿里云上定義 serverless 應用的模型。
    Serverless 應用是由事件觸發功能組成的應用。一個典型的 serverless 應用由一個或多個由諸如向 阿里云 OSS 上傳對象,在 阿里云 OTS 上執行數據操作以及 API 操作等事件觸發的阿里云函數計算組成。這些函數可以獨立使用。也可以利用其它資源,例如阿里云 OTS 的表和 OSS 的 buckets。最基本的 serverless 應用可以只有一個函數。

    比如對于這個案例,定義的yaml文件如下:

    ROSTemplateFormatVersion: '2015-09-01' Transform: 'Aliyun::Serverless-2018-04-03' Resources:sh-pro:Type: 'Aliyun::Serverless::Log'Properties:Description: 'image process log pro'fc-log:Type: 'Aliyun::Serverless::Log::Logstore'Properties:TTL: 362ShardCount: 1 pydemo:Type: 'Aliyun::Serverless::Service'Properties:Description: 'fc xiaochengxu demo'Policies:- AliyunOSSFullAccessLogConfig:Project: 'sh-pro'Logstore: 'fc-log'upload:Type: 'Aliyun::Serverless::Function'Properties:Handler: upload.handlerCodeUri: './'Description: 'http function for upload image'Runtime: python2.7Timeout: 60MemorySize: 256Events:http-trigger:Type: HTTPProperties:AuthType: ANONYMOUSMethods: ['POST']proc:Type: 'Aliyun::Serverless::Function'Properties:Handler: proc.handlerCodeUri: './'Description: 'http function for process image'Runtime: python2.7Timeout: 60MemorySize: 256Events:http-trigger:Type: HTTPProperties:AuthType: ANONYMOUSMethods: ['GET']

    上面的定義的yaml文件要做以下幾件事情:

  • 創建日志資源:logproject:?sh-pro, logstore:?fc-log
  • 創建service:xcxdemo?以及function:?upload?和?proc, 函數添加了一個類型為HTTP,名叫http-trigger的trigger
  • 配置service role以及logconfig, 其中role的權限為AliyunOSSFullAccess和函數執行日志寫到fc-log的權限
  • 具體操作

    • 安裝nodejs
    • 安裝fun
    npm install @alicloud/fun -g
    • 修改template.yml中的logproject的名字和.env中的相關配置,執行命令fun deploy

    執行成功后,應該可以看到如下資源被創建, 截圖:

    控制臺setup

    創建函數,并且配置http trigger

    • 在 上海 region 先創建好日志資源,用于函數計算的日志收集

    • 新建service,配置service一個具有訪問oss權限的role

      • 點擊授權
    • 點擊確定
    • 創建一個函數,并設置Http trigger, 使用的代碼包為附件中 server 目錄下的?code.zip

    測試函數

    curl https://1186202104331798.cn-shanghai.fc.aliyuncs.com/2016-08-15/proxy/pydemo/upload/ -F "lena.png=@/Users/songluo/work/shworkshop/wp/lena.png" -vcurl https://1186202104331798.cn-shanghai.fc.aliyuncs.com/2016-08-15/proxy/pydemo/proc/rotate/10/lena.png >> 1.png

    將函數作為支付寶小程序的后端

    • 下載安裝支付寶小程序?IDE
    • 打開代碼包中的client, 將代碼中的 url 替換成自己函數的 url

    然后打開 調試器 和 模擬器

    總結

    函數計算有如下優勢:

    • 無需采購和管理服務器等基礎設施
    • 專注業務邏輯的開發
    • 提供日志查詢、性能監控、報警等功能快速排查故障
    • 以事件驅動的方式觸發應用響應用戶請求
    • 毫秒級別彈性伸縮,快速實現底層擴容以應對峰值壓力
    • 按需付費。只需為實際使用的計算資源付費,適合有明顯波峰波谷的用戶訪問場景


    原文鏈接
    本文為云棲社區原創內容,未經允許不得轉載。

    總結

    以上是生活随笔為你收集整理的十分钟上线 - 函数计算构建支付宝小程序的后端的全部內容,希望文章能夠幫你解決所遇到的問題。

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