python函数开发概述-j9九游会登录
functiongraph目前支持以下python运行环境。
- python 2.7
- python 3.6
- python 3.9
- python 3.10
- python 3.12
python函数接口定义
python函数的接口定义如下所示。
def handler (event, context)
- 入口函数名(handler):入口函数名称,需和函数执行入口处用户自定义的入口函数名称一致。
- 执行事件(event): 函数执行界面由用户输入的执行事件参数, 格式为json对象。
- 上下文环境(context):runtime提供的函数执行上下文,其接口定义在sdk接口说明。
python函数的函数执行入口参数格式为:[文件名].[函数名],请参考函数执行入口通过functiongraph控制台进行配置。
python的initializer入口介绍
关于函数初始化入口initializer的具体介绍请参考函数初始化入口initializer。
python的initializer入口格式为:[文件名].[initializer名]
示例:实现initializer接口时指定的initializer入口为main.my_initializer,那么functiongraph会去加载main.py中定义的my_initializer函数。
在functiongraph中使用python编写initializer,需要定义一个python函数作为initializer入口,以下为initializer的简单示例(以python 3.12版本为例)。
def my_initializer(context):
print('hello world!')
- 函数名
my_initializer需要与实现initializer接口时的initializer字段相对应,实现initializer接口时指定的initializer入口为main.my_initializer ,那么函数工作流服务会去加载main.py中定义的my_initializer函数。
- context参数
context参数中包含一些函数的运行时信息,例如:request id、临时accesskey、function meta等。
python运行时集成的非标准库
表1所示的python运行时中集成的非标准库,可直接在python函数代码中声明使用。
|
模块 |
功能 |
版本号 |
|---|---|---|
|
dateutil |
日期/时间处理 |
2.6.0 |
|
requests |
http库 |
2.7.0 |
|
httplib2 |
httpclient |
0.10.3 |
|
numpy |
数学计算 |
1.13.1 |
|
redis |
redis客户端 |
2.10.5 |
|
obsclient |
obs客户端 |
- |
|
smnsdk |
访问smn服务 |
1.0.1 |
sdk接口
context类中提供了许多上下文方法供用户使用,其声明和功能如表2所示。
|
方法名 |
方法说明 |
|---|---|
|
getrequestid() |
获取请求id。 |
|
getremainingtimeinmilliseconds () |
获取函数剩余运行时间。 |
|
getaccesskey() |
获取用户委托的accesskey(有效期24小时),使用该方法需要为函数配置委托。 当前函数工作流已停止维护runtime sdk 中getaccesskey接口,您将无法使用getaccesskey获取临时ak。 |
|
getsecretkey() |
获取用户委托的secretkey(有效期24小时),使用该方法需要为函数配置委托。 当前函数工作流已停止维护runtime sdk 中getsecretkey接口,您将无法使用getsecretkey获取临时sk。 |
|
getsecurityaccesskey() |
获取用户委托的securityaccesskey(有效期24小时),缓存时间为10分钟,即10分钟内再次获取的返回内容相同,使用该方法需要为函数配置委托。 |
|
getsecuritysecretkey() |
获取用户委托的securitysecretkey(有效期24小时),缓存时间为10分钟,即10分钟内再次获取返回内容相同,使用该方法需要为函数配置委托。 |
|
getsecuritytoken() |
获取用户委托的securitytoken(有效期24小时),缓存时间为10分钟,即10分钟内再次获取的返回内容相同,使用该方法需要为函数配置委托。 |
|
getuserdata(string key) |
通过key获取用户通过环境变量传入的值。 |
|
getfunctionname() |
获取函数名称。 |
|
getrunningtimeinseconds () |
获取函数超时时间。 |
|
getversion() |
获取函数的版本。 |
|
getmemorysize() |
分配的内存。 |
|
getcpunumber() |
获取函数占用的cpu资源。 |
|
getpackage() |
获取函数组。 |
|
gettoken() |
获取用户委托的token(有效期24小时),使用该方法需要为函数配置委托。 |
|
getlogger() |
获取context提供的logger方法,返回一个日志输出类,通过使用其info方法按“时间-请求id-输出内容”的格式输出日志。 如调用info方法输出日志: log = context.getlogger() log.info("test") |
|
getalias() |
获取函数的别名。 |
如图1所示,可在函数工作流控制台代码编辑器中使用context类。
相关文档
- 使用python开发事件函数,请参见开发python事件函数。
- 为python函数制作依赖包,请参见为python函数制作依赖包。
- 关于函数开发的更多说明,如函数支持的运行时、函数支持的触发事件、函数工程打包规范以及如何在函数中引入动态链接库,请参见函数开发概述。
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨