日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

事件請求處理程序(Event Handler)

本文介紹Custom Runtime中事件請求處理程序的結構特點、使用示例和常見問題。

背景信息

在Custom Runtime中,函數計算會將Common Headers、Body、POST、/invoke/initialize路徑轉發給您實現的HTTP Server。Common Headers里面的信息可以構造類似官方Runtime中的入參context,而您調用函數的請求體可以構造類似官方Runtime中的入參event

image

Event Handler簽名

當函數是事件請求處理程序時,HTTP Server實現Path為/invoke且Method為POST的對應邏輯即可,函數計算平臺會自動將請求路由到POST /invoke

Path

輸入請求

預期響應

POST /invoke

重要

Content-Typeapplication/octet-stream

響應體:函數Handler的返回值。

示例代碼

本文以Python3.10運行時Flask框架代碼為例。

from flask import Flask
from flask import request
import sys

REQUEST_ID_HEADER = 'x-fc-request-id'

app = Flask(__name__)

@app.route("/invoke", methods = ["POST"])
def hello_world():
        rid = request.headers.get(REQUEST_ID_HEADER)
        print("FC Invoke Start RequestId: " + rid)

        data = request.stream.read()
        print(str(data))
        print("FC Invoke End RequestId: " + rid)
        return "Hello, World!", 200, [()]

if __name__ == '__main__':
        app.run(host='0.0.0.0',port=9000)
            

示例解析如下。

  • @app.route("/invoke", methods = ["POST"]):通過Flask框架,添加請求路徑為/invoke,請求方法為POST的函數hello_world

  • rid = request.headers.get(REQUEST_ID_HEADER):在請求Header中,獲取請求的RequestID。

  • data = request.stream.read():獲取請求體。

  • return "Hello, World!":發送響應體。

重要

事件請求處理程序不能返回響應碼和響應頭。例如,使用Flask框架時,通過代碼return "Hello, World!", 400, [('Author', 'Aliyun-FC')]返回的響應碼和響應頭無效。

更多語言使用示例

使用Serverless Devs工具,您可以將您的應用一鍵遷移至函數計算。以下示例展示如何通過Serverless Devs工具快速部署和調用函數,您可以按需修改示例代碼,實現二次開發。

常見問題