本文介绍如何使用Python请求处理程序响应接收到的事件并执行相应的业务逻辑。
请求处理程序
请求处理程序是您提供的一个方法。当您的函数被调用时,函数计算会运行该方法处理请求。
您可以通过函数计算控制台页面配置请求处理程序,对于Python语言的函数,请求处理程序需配置为 [文件名].[方法名]
。例如,您的文件名为index.py,方法名为handler,则请求处理程序可配置为 index.handler
。
事件请求处理程序的方法签名定义如下:
def handler(event, context):
return 'Hello Python!'
- 方法名
您可以自定义方法名称。 - event入参
您调用函数时传入的参数。 - context入参
context参数中包含一些函数的运行时信息(例如RequestId、临时AccessKey等)。
HTTP请求处理程序的方法签名定义如下:
# -*- coding: utf-8 -*-
HELLO_WORLD = b'Hello world!\n'
def handler(environ, start_response):
status = '200 OK'
response_headers = [('Content-type', 'text/plain')]
start_response(status, response_headers)
return [HELLO_WORLD]
- 方法名
您可以自定义方法名称。 - environ入参
用于存放所有HTTP请求的信息。 - start_response入参
发送 HTTP 响应的函数,包含两个参数:HTTP状态码、一组Python list对象组成的HTTP Headers。
示例:获取JSON中的字段
# -*- coding: utf-8 -*-
import json
def handler(event, context):
person = json.loads(event)
name = person["name"]
address = person["address"]
return f"Input name is: {name}, address is: {address}"
示例二:使用HTTP触发器调用函数
关于HTTP触发调用的请求负载格式和响应负载格式,请参见 HTTP触发器调用函数 章节。
# -*- coding: utf-8 -*-
def handler(environ, start_response):
msg = ""
if environ['PATH_INFO'].startswith('/getPerson'):
msg = b'Get person success'
elif environ['PATH_INFO'].startswith('/deletePerson'):
msg = b'Delete person success'
else:
msg = b'Operation not supported'
status = '200 OK'
response_headers = [('Content-type', 'text/plain')]
start_response(status, response_headers)
return [msg]