You need to enable JavaScript to run this app.
导航

开发方法

最近更新时间2024.02.18 17:07:38

首次发布时间2022.04.15 14:52:34

对于 Python 函数,veFaaS 使用您提供的index.py文件中定义的 handler 入口函数启动函数服务进程,对请求事件进行处理。Python 函数同时支持控制台在线编辑和上传代码包。在使用本地 Zip 文件上传、TOS 上传方法提交代码 Zip 包时,请确认 Zip 包的根目录下包含名为index.py的 Python 源码文件,文件内包含名为handler的入口函数,避免因无法查找到入口文件和入口函数导致的执行失败。
Python 函数代码示例如下所示。

import json

def handler(event, context):
    # 函数业务逻辑 
    return {
        "statusCode": 200,
        "headers": {
            "Content-Type": "application/json"
        },
        "body": json.dumps({
            "info": "hello veFaaS!"
        })
    }

入口函数 handler

handler 是函数请求处理逻辑的入口。handler 包含了您的核心业务逻辑,用于处理事件请求,并最终返回一个可选返回值。handler 函数的签名如下所示。

def handler(event, context):
    # 函数业务逻辑 
    return some_value # 可选返回值

当 veFaaS 触发您的 handler 函数时,Python 运行时会向您的 handler 函数传递两个入参eventcontext

event 参数

event 参数用于向您的 handler 函数传递触发事件数据。event 参数的类型为dict
event 参数的具体内容根据不同触发事件类型而变化,具体请参考 触发器事件消息结构

context 参数

context 参数用于向您的 handler 函数传递运行时信息。context 参数的类型为object

  • 字段说明
    context 参数包含以下字段:
    字段说明
    request_id系统自动生成的 request uuid,请从 handler 函数里传入的 context 中获取。
  • 使用示例
    def handler(event, context):
    print("Request ID:", context.request_id)
    

返回值

函数 handler 可返回一个dict类型的可选返回值。返回值中,只有statusCodeheadersbody三个键值对最终会返回给请求方。
如果您选择不返回任何值,veFaaS 会默认返回 200 的接口返回码。
函数 handler 的返回值示例代码如下所示。

{
  "statusCode": 200,  # 返回码,语义同 http 状态码。默认值为 200。
  "headers": {        # 可选值, http 触发器返回的请求 header 。
    "Content-Type": "application/json"
  },
  "body": json.dumps({ # 可选值, http 触发器返回的 body,
    "message": 'hello world'
  })
}

参数说明

参数是否必填说明

statusCode

可选

接口返回码,语义与通用的 HTTP status code 相同。
若不填参数值,默认返回码为 200。

headers可选返回消息头。包括如下二级参数:Content-Type:消息体类型,推荐使用默认值 application/json。
body可选返回消息体。包括如下二级参数:message:返回消息内容。

使用环境变量

对于 veFaaS 函数,您可以在控制台配置函数运行时所需的环境变量,并在代码中读取对应的环境变量,用于函数处理逻辑。对于所配置的环境变量,veFaaS 会将其注入到函数运行所在的容器中,程序可以通过语言的内置库进行读取。
例如:您函数配置中环境变量的键(key)为ENV_KEY,运行环境读取该环境变量的代码示例如下。

import os

env_value = os.environ.get('ENV_KEY')