阿里云知识

阿里云函数计算Python函数开发指南

目前支持的Python开发语言包括如下版本: Python2.7 Python3.6 函数代码 一个简单的Python函数代码如下所示: # -*- coding: utf-8 -*-def handler(event, context): return Hello World 执行函数 在创建阿里云函数计算云函数时,需要指定执行方法。 普通方式

目前支持的Python开发语言包括如下版本:

  • Python2.7
  • Python3.6
阿里云函数计算开通地址 https://www.aliyun.com/product/fc
阿里云函数计算官方开发指南 https://help.aliyun.com/document_detail/158208.html
阿里云函数计算函数代码

一个简单的Python函数代码如下所示:

# -*- coding: utf-8 -*-def handler(event, context): return "Hello World"

执行函数

在创建阿里云函数计算云函数时,需要指定执行方法。

  • 普通方式: 使用Python开发语言时,执行方法格式形如您函数中 "filename.handler-method" 的值,例如:填写 "index.handler",调用入口文件 index.py 中定义的 handler 方法。
  • ZIP包上传: 当使用本地上传.ZIP包或从上传.ZIP等方法提交代码ZIP包时,ZIP包的根目录下需要包含指定的入口文件,入口文件中定义入口函数,且文件名和函数名要与执行入口函数名保持一致,否则会无法找到入口文件和入口函数而报错。

输入
  • event: 阿里云函数计算使用此参数将触发事件数据传递到处理函数,此参数形式通常为Python dict类型。
  • context: 阿里云函数计算使用此参数向处理函数提供运行时信息,此参数形式通常为Python dict类型。

输出

在处理函数中您可以使用return来返回值,函数不同调用方式,对返回值的处理方式不同。

  • 同步调用(RequestResponse): 使用同步调用时,结果会以序列化的JSON格式返回, 调用方可以根据返回值进行后续处理。
  • 异步调用(Event): 异步调用时,调用方法触发函数后立即返回,所以,函数返回值会被丢弃。

异常处理

如果用户函数引发异常,则阿里云函数计算会将异常信息序列化为JSON格式并返回。 如下所示:

# -*- coding: utf-8 -*-def handler(event, context): time.Sleep(5*time.Second) print("value1=" + event['key1'] ) return event

在调用此函数时,会引发异常,且返回如下错误信息:

{ "stackTrace": [ " File "/var/task/index.py", line 4, in handler time.Sleep(5*time.Second) " ], "errorType": "NameError", "errorMessage": "global name 'time' is not defined"}

获取错误信息的方式取决于函数调用方式:

  • 同步调用(RequestResponse): 则会将错误信息直接返回。
    如在控制台调用(同步调用),错误信息会直接在执行结果中显示,:

 

并且在函数监控页面也可以看到调用错误结果,:

 

如果配置了日志存储路径,则可以在日志流详情中查看错误信息,:

  • 异步调用(Event): 则阿里云函数计算不会返回任何信息,如果配置了日志存储路径,则错误信息会被记录到日志中,您可以在相应的日志文件中查看错误信息。

日志

您可以在程序中使用print或logging模块完成日志输出。如下代码所示:

# -*- coding: utf-8 -*-import logginglogging.basicConfig()logger = logging.getLogger()logger.setLevel(logging.INFO)def handler(event, context): logger.info('event: %s', event) print(event) return "Hello World"

输出内容您可以在函数日志中查看。


依赖的第三方库

使用阿里云函数计算 Python开发语言创建函数时,云端支持的库如下所示:

Python3.6运行时支持的第三方库列表如下所示:

库名称版本baidu-aip2.2.8.0certifi2019.9.11chardet3.0.4idna2.8pip9.0.1requests2.22.0setuptools36.6.0six1.11.0urllib31.25.7websocket-client0.44.0wheel0.30.0

Python2.7运行时支持的第三方库列表如下所示:

库名称版本baidu-aip2.2.8.0certifi2019.9.11chardet3.0.4idna2.8pip9.0.1pycrypto2.6.1requests2.22.0setuptools36.6.0six1.11.0urllib31.25.7websocket-client0.44.0wheel0.30.0

上一篇:阿里云函数计算C#函数开发指南 下一篇:阿里云函数计算Lua函数开发指南

精彩导读