开发python事件函数-j9九游会登录
python的事件函数开发,支持本地开发后上传代码文件,也支持直接在functiongraph控制台创建函数在线编辑python函数代码。
关于python函数的接口定义以及sdk接口说明请参考python函数开发概述。
约束与限制
- 函数仅支持返回如下几种类型的值:
- none:函数返回的http响应body为空。
- string:函数返回的http响应body内容为该字符串内容。
- 其他:当函数返回值的类型不为none和string时,函数会将返回值作为对象进行json编码,并将编码后的内容作为http响应的body,同时设置响应的“content-type”头为“application/json”。
- 通过apig服务调用函数服务时,isbase64encoded的值默认为true,表示apig传递给functiongraph的请求体body已经进行base64编码,需要先对body内容base64解码后再处理。
函数必须按以下结构返回字符串。
{ "isbase64encoded": true|false, "statuscode": httpstatuscode, "headers": {"headername":"headervalue",...}, "body": "..." } - 用python运行时语言编写代码时,自行创建的包名不能与python标准库同名,否则会提示module加载失败。例如“json”、“lib”、“os”等。
步骤一:创建python函数工程
- 编写打印helloworld的代码。
打开文本编辑器,编写helloworld函数,代码如下,文件命名为helloworld.py,保存文件。
def print hello(): print('hello world!') - 定义functiongraph函数。
打开文本编辑器,如下所示编写函数代码,文件命名为index.py,保存文件(与helloworld.py保存在同一文件夹下)。
# -*- coding:utf-8 -*- import json import helloworld def handler (event, context): output =json.dumps(event) helloworld.printhello() return output - 工程打包。
函数工程创建以后,可以得到以下目录,选中工程所有文件,打包命名为“fss_examples_python3.zip”,如图1所示。打包时请确保解压后,入口函数所在的文件位于根目录。
您也可以直接下载打包好的python函数样例工程包使用。
图1 打包
步骤二:创建functiongraph函数
- 登录,右上角单击“创建函数”。
- 如图2所示,创建一个空白的python事件函数,单击“立即创建”进入函数详情页。
图2 创建python函数
- 如图3所示,在“代码”页签上传步骤一:创建python函数工程打包的zip文件。
上传的代码将在函数工作流控制台自动部署,如修改代码,请再次单击“部署代码”。
图3 上传zip文件
修改函数执行入口:
在functiongraph控制台左侧导航栏选择“函数 > 函数列表”,单击需要设置的“函数名称”进入函数详情页,选择“设置 > 常规设置”,配置“函数执行入口”参数,如图4所示。图4 函数执行入口
- 函数执行入口中的index:与步骤一:创建python函数工程中定义functiongraph函数的文件名保持一致,通过该名称找到functiongraph函数所在文件。
- 函数执行入口中的handler:为函数代码中的执行函数名,通过该名称找到函数的执行入口。
函数执行过程为:上传fss_examples_python3.zip保存在obs中,触发函数后,解压缩zip文件,通过index匹配到functiongraph函数所在文件,通过handler匹配到index.py文件中定义的functiongraph函数,找到执行入口,执行函数。
步骤三:测试函数
函数执行结果
执行结果由3部分组成:函数返回、执行摘要和日志。
|
参数项 |
执行成功 |
执行失败 |
|---|---|---|
|
函数返回 |
返回函数中定义的返回信息。 |
返回包含错误信息、错误类型和堆栈异常报错信息的json文件。格式如下: {
"errormessage": "",
"errortype": "",
"stacktrace": []
}
errormessage:runtime返回的错误信息 errortype:错误类型 stacktrace:runtime返回的堆栈异常报错信息 |
|
执行摘要 |
显示请求id、配置内存、执行时长、实际使用内存和收费时长。 |
显示请求id、配置内存、执行时长、实际使用内存和收费时长。 |
|
日志 |
打印函数日志,最多显示4kb的日志。 |
打印报错信息,最多显示4kb的日志。 |
相关文档
- 制作python运行时的函数依赖包,可参考为python函数制作依赖包。
- 关于函数开发的更多说明,如函数支持的运行时、函数支持的触发事件、函数工程打包规范以及如何在函数中引入动态链接库,请参见函数开发概述。
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

