目前支持的 Python 开发语言包括如下版本:
Python 函数形态一般如下所示:
import json
def main_handler(event, context):
print("Received event: " + json.dumps(event, indent = 2))
print("Received context: " + str(context))
return("Hello World")
在创建 SCF 云函数时,均需要指定执行方法。使用 Python 开发语言时,执行方法类似 index.main_handler
,此处 index
表示执行的入口文件为 index.py
,main_handler
表示执行的入口函数为 main_handler
函数。在使用 本地 zip 文件上传、COS 上传等方法提交代码 zip 包时,请确认 zip 包的根目录下包含有指定的入口文件,文件内有定义指定的入口函数,文件名和函数名和执行方法处填写的能够对应,避免因为无法查找到入口文件和入口函数导致的执行失败。
Python 环境下的入参包括 event 和 context,两者均为 Python dict 类型。
您的处理程序可以使用 return
来返回值,根据调用函数时的调用类型不同,返回值会有不同的处理方式。
同时,无论同步调用还是异步调用,返回值均会在函数日志中 ret_msg
位置显示。
您可以在函数内使用 raise Exception
的方式抛出异常。抛出的异常会在函数运行环境中被捕捉到并在日志中以 Traceback
的形式展示。
您可以在程序中使用 print
或使用 logging
模块来完成日志输出。例如,如下函数:
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def main_handler(event, context):
logger.info('got event{}'.format(event))
print("got event{}".format(event))
return 'Hello World!'
输出内容您可以在函数日志中的 log
位置查看。
请参考 依赖安装。
云函数的运行环境内已包含 COS 的 Python SDK,具体版本为 cos_sdk_v5
(推荐)和 cos_sdk_v4
。
可在代码内通过如下方式引入 COS SDK 并使用:
对于 cos_sdk_v5
版本:
import qcloud_cos_v5
from qcloud_cos_v5 import CosConfig
from qcloud_cos_v5 import CosS3Client
对于 cos_sdk_v4
版本:
import qcloud_cos
from qcloud_cos_v4 import CosClient
from qcloud_cos_v4 import DownloadFileRequest
from qcloud_cos_v4 import UploadFileRequest
更详细的 COS SDK 使用说明见 COS Python SDK 说明。
您可以在函数创建时,通过选择运行环境中的 Python 2.7
或 Python 3.6
选择您所期望使用的运行环境。
您可以在 这里 查看 Python 官方对 Python 2 或 Python 3 语言选择的建议。
Python 3 云端运行时已支持的库如下表:
说明:若您需要使用表中尚未支持的库,请在本地安装并打包上传后使用。详情请参见 安装依赖库。
库名称 | 版本 |
---|---|
absl-py | 0.2.2 |
asn1crypto | 0.24.0 |
astor | 0.7.1 |
bleach | 1.5.0 |
certifi | 2019.3.9 |
cffi | 1.12.2 |
chardet | 3.0.4 |
cos-python-sdk-v5 | 1.6.6 |
cryptography | 2.6.1 |
dicttoxml | 1.7.4 |
gast | 0.2.0 |
grpcio | 1.13.0 |
html5lib | 0.9999999 |
idna | 2.8 |
iniparse | 0.4 |
Markdown | 2.6.11 |
mysqlclient | 1.3.13 |
numpy | 1.15.0 |
Pillow | 6.0.0 |
pip | 9.0.1 |
protobuf | 3.6.0 |
psycopg2-binary | 2.8.2 |
pycparser | 2.19 |
pycurl | 7.43.0 |
PyMySQL | 0.9.3 |
pytz | 2019.1 |
qcloud-image | 1.0.0 |
qcloudsms-py | 0.1.3 |
requests | 2.21.0 |
serverless-db-sdk | 0.0.1 |
setuptools | 28.8.0 |
six | 1.12.0 |
tencentcloud-sdk-python | 3.0.65 |
tencentserverless | 0.1.4 |
tensorboard | 1.9.0 |
tensorflow | 1.9.0 |
tensorflow-serving-api | 1.9.0 |
termcolor | 1.1.0 |
urllib3 | 1.24.2 |
Werkzeug | 0.14.1 |
wheel | 0.31.1 |
Python 2 云端运行时已支持的库如下表:
库名称 | 版本 |
---|---|
absl-py | 0.2.2 |
asn1crypto | 0.24.0 |
astor | 0.7.1 |
backports.ssl-match-hostname | 3.4.0.2 |
backports.weakref | 1.0.post1 |
bleach | 1.5.0 |
cassdk | 1.0.2 |
certifi | 2017.11.5 |
cffi | 1.12.2 |
chardet | 3.0.4 |
cos-python-sdk-v5 | 1.6.6 |
cryptography | 2.6.1 |
dicttoxml | 1.7.4 |
enum34 | 1.1.6 |
funcsigs | 1.0.2 |
futures | 3.2.0 |
gast | 0.2.0 |
grpcio | 1.13.0 |
html5lib | 0.9999999 |
idna | 2.6 |
iniparse | 0.4 |
ipaddress | 1.0.22 |
Markdown | 2.6.11 |
mock | 2.0.0 |
mysqlclient | 1.3.13 |
nose | 1.3.7 |
numpy | 1.14.5 |
ordereddict | 1.1 |
pbr | 4.1.0 |
Pillow | 6.0.0 |
pip | 18 |
protobuf | 3.6.0 |
psycopg2-binary | 2.8.2 |
pyaml | 2019.4.1 |
pycparser | 2.19 |
pycurl | 7.43.0.1 |
pygpgme | 0.3 |
PyMySQL | 0.9.3 |
pytz | 2019.1 |
PyYAML | 5.1 |
qcloud-image | 1.0.0 |
qcloudsms-py | 0.1.3 |
requests | 2.18.4 |
serverless-db-sdk | 0.0.1 |
setuptools | 39.1.0 |
six | 1.11.0 |
tencentcloud-sdk-python | 3.0.65 |
tencentserverless | 0.1.4 |
tensorboard | 1.9.0 |
tensorflow | 1.9.0 |
tensorflow-serving-api | 1.9.0 |
termcolor | 1.1.0 |
urlgrabber | 3.10.2 |
urllib3 | 1.22 |
Werkzeug | 0.14.1 |
wheel | 0.31.1 |
您可参考以下文档,使用相关功能:
11月18日,中国社会科学院中国产业与企业竞争力研究中心与社会科学文献出版社联...
背景 有需求了解一下Opentsdb的源码,然后想着能在本地run起来,打些断点和日志...
作为一名前端工程师, 需要对css技巧有充分的研究和了解, 接下来笔者将会带大家一...
这是一场 Elasticsearch 开发者的百人赴会,也是开源技术界的大规模协作活动。 ...
Kubernetes每天可以生成数百万个新指标。监控集群运行状况很具挑战性的方面之一...
背景介绍 JindoFS 作为阿里云基于 OSS 的一揽子数据湖存储优化方案,完全兼容 Ha...
本文介绍如何通过控制台、Funcraft工具及SDK配置PreFreeze和PreStop函数。 背景...
本章节将介绍如何授权或者停止授权访问私有OBS桶、数据库、大数据以及数据安全总...
一、日志服务概述 日志服务为用户提供云服务日志采集、搜索、转储、监控、告警等...
图片来自 Pexels 自从 2015 阿里巴巴提出中台概念和战略,中台这个技术术语逐渐...