tencent cloud

云函数

动态与公告
产品动态
产品公告
新手指引
产品简介
产品概述
相关概念
工作原理
产品优势
应用场景
相关产品
购买指南
计费概述
计费方式
计费项与计费方式
函数算力支持
免费额度
产品定价
计费示例
欠费与停服说明
快速入门
使用控制台创建一个事件函数
操作指南
配额管理
函数管理
Web 函数管理
日志管理
并发管理
触发器管理
函数 URL
自定义域名
版本管理
别名管理
权限管理
运行实例管理
插件管理
监控与告警管理
网络配置
层管理
执行配置
扩展存储管理
DNS 缓存配置
资源托管模式管理
近离线资源托管模式
工作流
触发器
触发器概述
触发器事件消息结构汇总
API 网关触发器
COS 触发器
CLS 触发器
定时触发器
CKafka 触发器
Apache Kafka 触发器
MQTT 触发器
触发器配置描述
MPS 触发器
CLB 触发器说明
云 API 触发器
开发指南
基本概念
测试云函数
环境变量
依赖安装
使用容器镜像
使用 Docker 安装依赖
错误类型与重试策略
死信队列
云函数接入数据库
自动化部署
云函数状态码
常见错误码解决方法
开发者工具
Serverless Web IDE
函数间调用 SDK
第三方工具
代码开发
Python
Node.js
Golang
PHP
Java
Custom Runtime
使用镜像部署函数
Web 框架部署
通过命令行完成框架部署
快速部署 Egg 框架
快速部署 Express 框架
快速部署 Flask 框架
快速部署 Koa 框架
快速部署 Laravel 框架
快速部署 Nestjs 框架
快速部署 Nextjs 框架
快速部署 Nuxtjs 框架
快速部署 Django 框架
实践教程
最佳实践概述
云产品联合解决方案
业务开发相关实践
实时音视频 TRTC
对象存储 COS
消息队列 CKafka
日志服务CLS
负载均衡 CLB
视频处理 MPS
内容分发网络 CDN
云数据仓库 PostgreSQL
云点播 VOD
短信 SMS
Elasticsearch Service
定时任务
视频处理
客户案例
腾讯在线教育
在线教育行业案例
游戏聊天系统
腾讯互娱国际(IEGG)
API 文档
History
Introduction
API Category
Making API Requests
Other APIs
Namespace APIs
Layer Management APIs
Async Event Management APIs
Trigger APIs
Function APIs
函数和层的状态说明
Data Types
Error Codes
SDK文档
常见问题
通用问题
Web 函数相关问题
计费相关问题
网络相关问题
日志相关问题
SCF 工具相关问题
事件处理相关问题
API 网关触发器相关问题
相关协议
Service Level Agreement
联系我们
词汇表

Python SDK

PDF
聚焦模式
字号
最后更新时间: 2024-04-22 17:54:01

Tencentserverless SDK 简介

Tencentserverless 是腾讯云云函数 SDK,集成云函数业务流接口,简化云函数的调用方法。在使用该 SDK 的情况下,用户可以方便的从本地、云服务器(CVM)、容器、以及云端函数里快速调用某一个云函数,无需再进行公有云 API 的接口封装。

功能特性

Tencentserverless SDK 的功能特性可分为以下几点:
高性能,低时延的进行函数调用。
填写必须的参数后,即可快速进行函数间的调用(SDK 会默认获取环境变量中的参数,例如 region,SecretId 等)。
支持内网域名的访问。
支持 keepalive 能力。
支持跨地域函数调用。
支持 Python 原生调用方式。
说明:
函数间调用 SDK 仅适用于事件函数,Web 函数可通过在函数代码中请求 Web 函数对应路径的方式发起调用。

快速开始

云端函数互调

示例

注意:
不同地域下的函数互调,须指定地域,命名规则参见 地域列表
如果不指定地域,默认为同地域下函数互调。
命名空间不指定,默认为 default。
1. 在云端创建一个被调用的 Python 云函数,地域为广州,命名为 “FuncInvoked”。函数内容如下:
# -*- coding: utf8 -*-

def main_handler(event, context):
if 'key1' in event.keys():
print("value1 = " + event['key1'])
if 'key2' in event.keys():
print("value2 = " + event['key2'])
return "Hello World from the function being invoked" #return

2. 在云端创建调用的 Python 云函数,地域为成都,命名为 “PythonInvokeTest”。可通过以下两种方式,结合您的实际情况编辑 PythonInvokeTest 函数。
方式 1:如果您不需要频繁的调用函数,可使用如下示例代码:
from tencentserverless import scf
from tencentserverless.scf import Client
from tencentserverless.exception import TencentServerlessSDKException
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException

def main_handler(event, context):
print("prepare to invoke a function!")
try:
data = scf.invoke('FuncInvoked',region="ap-guangzhou",data={"a": "b"})
print (data)
except TencentServerlessSDKException as e:
print (e)
except TencentCloudSDKException as e:
print (e)
except Exception as e:
print (e)
return "Already invoked a function!" # return


输出结果如下:
"Already invoked a function!"
方式 2:如果您需要频繁调用函数,可选择通过 Client 的方式连接并触发。可使用如下示例代码:
# -*- coding: utf8 -*-

from tencentserverless import scf
from tencentserverless.scf import Client
from tencentserverless.exception import TencentServerlessSDKException
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException

def main_handler(event, context):
#scf = Client(region="ap-guangzhou") # 使用该方法进行 Client 连接,请在函数配置中启用“运行角色”功能,并选择具有调用函数权限的运行角色。
scf = Client(secret_id="AKIxxxxxxxxxxxxxxxxxxxxxxggB4Sa",secret_key="3vZzxxxxxxxxxxxaeTC",region="ap-guangzhou",token=" ")# 使用该方法进行 Client 连接,请将 secret_id 和 secret_key 替换为您的 secret_id 和 secret_key,该组密钥需要包含调用函数的权限。
print("prepare to invoke a function!")
try:
data = scf.invoke('FuncInvoked',data={"a": "b"})
# data = scf.FuncInvoked(data={"a": "b"}) #使用Python原生调用方式,需要首先通过Client进行初始化
print (data)
except TencentServerlessSDKException as e:
print (e)
except TencentCloudSDKException as e:
print (e)
except Exception as e:
print (e)
return "Already invoked a function!" # return

输出结果如下:
"Already invoked a function!"
注意:
secret_id 及 secret_key:指云 API 的密钥 ID 和密钥 Key。您可以通过登录 访问管理控制台,选择云 API 密钥 > API 密钥管理,获取相关密钥或创建相关密钥。

本地调用云端函数

开发准备

开发环境 已安装 Python2.7 或者 Python3.6。
运行环境 已安装 tencentserverless SDK,支持 Windows、Linux 和 Mac 操作系统。
说明:
本地调用云端函数须进行以上开发准备,推荐函数在本地开发完成后上传到云端,使用云端函数互调进行调试。

通过 pip 安装(推荐)

执行以下命令,安装 tencentserverless Python SDK。
pip install tencentserverless

通过源码包安装

前往 Github 代码托管地址下载最新源码包,待源码包解压后依次执行以下命令进行安装。
cd tencent-serverless-python-master
python setup.py install

配置 tencentserverless Python SDK

执行以下命令,升级 tencentserverless Python SDK。
pip install tencentserverless -U
执行以下命令,查看 tencentserverless Python SDK 信息。
pip show tencentserverless

示例

1. 在云端创建一个被调用的 Python 云函数,地域为广州,命名为 “FuncInvoked”。函数内容如下:
# -*- coding: utf8 -*-

def main_handler(event, context):
if 'key1' in event.keys():
print("value1 = " + event['key1'])
if 'key2' in event.keys():
print("value2 = " + event['key2'])
return "Hello World from the function being invoked" #return
2. 创建完毕后,在本地创建一个名为 PythonInvokeTest.py 的文件。内容如下:
# -*- coding: utf8 -*-

from tencentserverless import scf
from tencentserverless.scf import Client
from tencentserverless.exception import TencentServerlessSDKException
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException

def main_handler(event, context):
print("prepare to invoke a function!")
scf = Client(secret_id="AKIxxxxxxxxxxxxxxxxxxxxxxggB4Sa",secret_key="3vZzxxxxxxxxxxxaeTC",region="ap-guangzhou",token=" ")# 替换为您的 secret_id 和 secret_key
try:
data = scf.invoke('FuncInvoked',data={"a":"b"})
# data = scf.FuncInvoked(data={"a":"b"})
print (data)
except TencentServerlessSDKException as e:
print (e)
except TencentCloudSDKException as e:
print (e)
except Exception as e:
print (e)
return "Already invoked a function!" # return

main_handler("","")


进入 PythonInvokeTest.py 所在文件目录,执行以下命令,查看结果。
python PythonInvokeTest.py
输出结果如下:
prepare to invoke a function!"Hello World form the function being invoked"

接口列表

API Reference

Client(类)
invoke (方法)

Client

方法:
__init__
参数信息:
参数名
是否必填
类型
描述
region
String
地域信息,默认与调用接口的函数所属地域相同,本地调用默认是广州。
secret_id
String
用户 SecretId, 默认是从云函数环境变量中获取,本地调试必填
secret_key
String
用户 SecretKey, 默认是从云函数环境变量中获取,本地调试必填
token
String
用户 token,默认是从云函数环境变量中获取

invoke
参数信息:
参数名
是否必填
类型
描述
function_name
String
函数名称。
qualifier
String
函数版本,默认为 $LATEST。
data
Object
函数运行入参,必须可以被 json.dumps 的对象。
namespace
String
命名空间,默认为 default。


invoke

调用函数,暂时只支持同步调用。
参数信息:
参数名
是否必填
类型
描述
region
String
地域信息,默认与调用接口的函数所属地域相同,本地调用默认是广州。
secret_id
String
用户 SecretId, 默认是从云函数环境变量中获取,本地调试必填
secret_key
String
用户 SecretKey, 默认是从云函数环境变量中获取,本地调试必填
token
String
用户 token,默认从云函数环境变量中获取。
function_name
String
函数名称。
qualifier
String
函数版本,默认为 $LATEST。
data
String
函数运行入参,必须可以被 json.dumps 的对象。
namespace
String
命名空间,默认为 default。


TencentserverlessSDKException

属性:
[code]
[message]
[request_id]
[response]
[stack_trace]
方法及描述:
方法名
描述
get_code
返回错误码信息
get_message
返回错误信息
get_request_id
返回 RequestId 信息
get_response
返回 response 信息
get_stack_trace
返回 stack_trace 信息

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈