tencent cloud

文档反馈

Python SDK

最后更新时间: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 信息
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持