开发php事件函数-j9九游会登录
php的事件函数开发,支持本地开发后上传代码文件,也支持直接在functiongraph控制台创建函数在线编辑php函数代码。
关于php函数的接口定义以及sdk接口说明请参考php函数开发概述。
约束与限制
- 函数仅支持返回如下几种类型的值。
- null:函数返回的http响应body为空。
- string:函数返回的http响应body内容为该字符串内容。
- 其他:函数会返回值作为对象进行json编码,并将编码后的内容作为http响应的body,同时设置响应的“content-type”头为“text/plain”。
- 当函数的事件源是apig时,相关约束条件请参考base64解码和返回结构体的说明。
- 本例函数工程文件保存在“~/code/”文件夹下,在打包的时候务必进入code文件夹下选中所有工程文件进行打包,这样做的目的:由于定义了functiongraph函数的index.php是程序执行入口,确保fss_examples_php7.3.zip解压后,index.php文件位于根目录。
开发php函数
- 创建函数
- 编写打印helloworld的代码。
打开文本编辑器,编写helloworld函数,代码如下,文件命名为“helloworld.php”,保存文件。
1 2 3 4
function printhello() { echo 'hello world!'; } - 定义functiongraph函数
打开文本编辑,定义函数,代码如下,文件命名为index.php,保存文件(与helloworld.php保存在同一文件夹下)。
1 2 3 4 5 6 7 8
include_once 'helloworld.php'; function handler($event, $context) { $output = json_encode($event); printhello(); return $output; }
- 编写打印helloworld的代码。
- 工程打包
函数工程创建以后,可以得到以下目录,选中工程所有文件,打包命名为“fss_examples_php7.3.zip”,如图1所示。图1 工程打包
- 创建functiongraph函数,上传程序包
登录functiongraph,创建php函数,上传文件。如 图2所示。图2 上传程序包
- 函数执行入口中的index与步骤定义functiongraph函数的文件名保持一致,通过该名称找到functiongraph函数所在文件。
- 函数执行入口中的handler为函数名,与步骤定义functiongraph函数中创建的index.php文件中的函数名保持一致。
函数执行过程为:用户上传fss_examples_php7.3.zip保存在obs中,触发函数后,解压缩zip文件,通过index匹配到functiongraph函数所在文件,通过handler匹配到index.php文件中定义的functiongraph函数,找到程序执行入口,执行函数。
修改函数执行入口:
在functiongraph控制台左侧导航栏选择“函数 > 函数列表”,单击需要设置的“函数名称”进入函数详情页,选择“设置 > 常规设置”,配置“函数执行入口”参数,如图3所示。图3 函数执行入口
- 测试函数
- 创建测试事件。
在函数详情页,单击“配置测试事件”,弹出“配置测试事件”页,输入测试信息如图4所示,单击“创建”。图4 配置测试事件
- 在函数详情页,选择已配置测试事件,单击“测试”。
- 创建测试事件。
- 执行函数
函数执行结果分为三部分,分别为函数返回(由return返回)、执行摘要、日志输出(由echo方法获取的日志方法输出)。
执行结果
执行结果由3部分组成:函数返回、执行摘要和日志。
|
参数项 |
执行成功 |
执行失败 |
|---|---|---|
|
函数返回 |
返回函数中定义的返回信息。 |
返回包含错误信息、错误类型和堆栈异常报错信息的json文件。格式如下: {
"errormessage": "",
"errortype": "",
"stacktrace": {}
}
errormessage:runtime返回的错误信息 errortype:错误类型 stacktrace:runtime返回的堆栈异常报错信息 |
|
执行摘要 |
显示请求id、配置内存、执行时长、实际使用内存和收费时长。 |
显示请求id、配置内存、执行时长、实际使用内存和收费时长。 |
|
日志 |
打印函数日志,最多显示4kb的日志。 |
打印报错信息,最多显示4kb的日志。 |
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨