Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
本页将引导您如何在应用程序中集成并使用 Tencent Cloud SDK for Python
借助 Tencent Cloud SDK for Python,您可以以面向对象编程的方式使用 Tencent Cloud 产品。
目前,Tencent Cloud SDK for Python 支持以同步或异步的编程方式集成到应用程序中使用,异步编程方式可以编写性能更好的应用程序。下面我们将通过多个连续的代码片段逐步向您演示如何在 Python 应用程序中集成并使用 Tencent Cloud SDK for Python。
我们以 Tencent Cloud 产品 无服务器云函数 为例。
假定我们在数据中心 ap-shanghai
拥有一个名为 default
的命名空间,该命名空间中拥有一个名为 hello
的函数。现在我们尝试使用 Tencent Cloud SDK for Python 调用该函数并获得返回值。
首先我们需要导入 Tencent Cloud SDK for Python 的相关软件包和模块:
接着我们需要实例化一个访问凭据,以便于 Tencent Cloud 可以确信您有权访问相关资源并执行操作:
上文示例代码中给定的参数 secret_id
和 secret_key
为演示凭据,您需要转到 Tencent Cloud 控制台 创建并获取适用于您账户的凭据。
然后我们需要实例化一个 无服务器云函数 产品的抽象产品客户端,以便于我们通过面向对象编程的方式与 无服务云函数 产品交互:
参数 credentials_context
要求您提供一个有效的访问凭据,它是可选的。
如果您在 无服务器云函数 产品所创建的函数中使用 Tencent Cloud SDK for Python 且该参数被忽略或设置为 None
,Tencent Cloud SDK for Python 将尝试查找并使用环境凭据。
环境凭据:是指绑定 运行角色 的无服务器云函数被运行时,在运行环境中所临时生成的非持久性访问凭据。
最后我们将尝试调用无服务器云函数并获取返回值:
在以上示例代码中,局部变量 return_value
将拥有无服务器云函数 hello
的实际返回值。
方法 easy_invoke 将尝试推断给定无服务器云函数调用结果中的函数返回数据类型,并将其解析封装为 Python 原生数据类型返回。
请注意,如果给定的无服务器云函数运行时出错,方法 easy_invoke
将引发 InvokeError
异常,该异常类型在 tencent.cloud.serverless.functions.errors
模块中定义。
如果您正在寻找在无服务器云函数间相互调用的方法,使用 Tencent Cloud SDK for Python 提供的托管式产品客户端或许是一个不错的选择:
此时 Tencent Cloud SDK for Python 将代您管理访问凭据和产品客户端,函数 functions.invoke
在内部将调用托管产品客户端实例的 easy_invoke
方法。
请注意,函数 functions.invoke 仅支持已配置 运行角色 的无服务器云函数发起调用。
参阅 Quick-Start 源代码以获取完整的无服务器云函数产品 Python 示例代码。
对于 Tencent Cloud SDK for Python 未提供抽象产品客户端的 Tencent Cloud 产品,依然可以使用通用客户端直接访问 Tencent Cloud API 并获得结果。
我们以 Tencent Cloud 产品 云服务器 为例。假定我们需要检索数据中心 ap-shanghai
目前正在运营的所有可用区 ID 列表:
首先我们需要导入 Tencent Cloud SDK for Python 的相关软件包和模块:
接着我们需要实例化一个访问凭据,以便于 Tencent Cloud 可以确信您有权访问相关资源并执行操作:
上文示例代码中给定的参数 secret_id
和 secret_key
为演示凭据,您需要转到 Tencent Cloud 控制台 创建并获取适用于您账户的凭据。
然后我们需要实例化一个通用客户端,以便于我们使用面向对象编程的方式与 云服务器 产品所提供的 Tencent Cloud API 进行交互:
最后我们尝试使用 云服务器 产品提供的 Tencent Cloud API - DescribeZones 检索数据中心园区正在运营的所有可用区 ID 列表:
请注意,如果给定 Tencent Cloud API 发生错误或对应操作执行失败,方法 action
将引发 ActionError
异常;如果给定 Tencent Cloud API 返回结果不符合预期协定,方法 action
将引发 ActionResultError
异常。这些异常类型在模块 tencent.cloud.core.errors
中定义。
打印数据中心正在运营的所有可用区 ID:
在上文中我们通过多个连续的代码片段逐步向您演示 Tencent Cloud SDK for Python 的基本用法。如果您需要获取相关产品客户端或通用客户端的其他用法,请参阅我们的技术文档。
本页将向您介绍 Tencent Cloud SDK for Python 目前已支持的访问凭据类型
通常情况下,我们会选择最简单、直观的在应用程序源代码中硬编码访问凭据信息,这种方式并不便于访问凭据的管理和定期轮换,也不利于组织复杂的应用程序项目源代码。我们将该方式称之为默认访问凭据类型,其源代码形态通常为:
在下文中我们将向您介绍 Tencent Cloud SDK for Python 中所支持的其他访问凭据类型,您可以根据应用程序需求选择最佳的实践方式。
环境凭据是指在特定应用程序运行环境中由环境变量所存储的访问凭据信息,Tencent Cloud SDK for Python 支持自动查找并使用有效的环境凭据作为客户端的访问凭据。
环境凭据类型由命名空间和模块 tencent.cloud.auth.credentials
中类 EnvironmentalCredentials
代表,该类的签名如下:
继承:tencent.cloud.auth.credentials.Credentials
类
当您选择并使用环境凭据时,Tencent Cloud SDK for Python 将尝试在当前运行环境的环境变量中查找默认名为 TENCENTCLOUD_SECRETID
和 TENCENTCLOUD_SECRETKEY
的环境变量值,对应访问凭据的 Secret ID 和 Secret Key 字段。
在下文中我们将通过 Python 代码片段向您演示如何使用环境凭据实例化无服务器云函数产品客户端:
当您在 Tencent Cloud 无服务器云函数产品所运行的无服务器云函数代码中使用时,您可以为该无服务器云函数配置 运行角色。当无服务器云函数运行时将自动为其分配非持久临时访问凭据,该访问凭据将被 Tencent Cloud SDK for Python 视为环境凭据。
如果运行环境中存储访问凭据的环境变量名称与默认查找的环境变量名称不同,您可以手动指定:
现在 Tencent Cloud SDK for Python 将尝试在当前运行环境的环境变量中查找名为 MY_SECRETID
和 MY_SECRETKEY
的环境变量值。
环境凭据支持隐式使用,这意味着若当前应用程序的运行环境符合环境凭据的所有默认行为,您将无需明确指定使用环境凭据:
请注意,如果当前应用程序运行环境中无法找到符合条件的环境凭据,将引发 EnvironmentError 异常。
没错,Tencent Cloud SDK for Python 不但支持环境凭据,也支持文件凭据。顾名思义,文件凭据是指将有效的访问凭据信息以 JSON 序列化文本的形式存储在文件上,Tencent Cloud SDK for Python 支持自动查找并使用有效的文件凭据作为客户端的访问凭据。
环境凭据类型由命名空间和模块 tencent.cloud.auth.credentials
中类 FileCredentials
代表,该类的签名如下:
继承:tencent.cloud.auth.credentials.Credentials
类
当您选择并使用文件凭据时,Tencent Cloud SDK for Python 将尝试在当前运行目录下查找名为 secret.json
的 JSON 序列化文本文件,其文件内容形态如下:
其中,JSON 属性 secretId
和 secretKey
分别对应访问凭据的 Secret ID 和 Secret Key 字段。
在下文中我们将通过 Python 代码片段向您演示如何使用文件凭据实例化无服务器云函数产品客户端:
请注意,文件凭据类型与环境凭据类型的实例化默认参数值不同,文件凭据类型实例化时必须明确指定包含访问凭据的 JSON 序列化文本文件的路径。
与环境凭据相同,文件凭据也支持隐式使用,这意味着若当前应用程序的文件环境符合文件凭据的所有默认行为,您将无需明确指定使用环境凭据,Tencent Cloud SDK for Python 将尝试在应用程序当前工作目录下查找名为 secret.json
的 JSON 序列化文本文件:
请注意,如果当前应用程序文件环境中无法找到符合条件的文件凭据,将引发 FileNotFoundError 异常;如果文件凭据中缺少必要的属性,将引发 KeyError 异常。
在上文中我们向您介绍了 Tencent Cloud SDK for Python 最新版本目前已支持的访问凭据类型,如果您决定隐式使用访问凭据类型,Tencent Cloud SDK for Python 将自动根据以下优先级查找:
默认凭据
文件凭据
环境凭据
查找规则为若前一项访问凭据类型已找到,则终止其他类型的访问凭据查找。例如当前应用程序运行环境中同时满足文件凭据和环境凭据,根据访问凭据类型优先级,文件凭据将优先被使用。
根据您的应用场景,Tencent Cloud SDK for Python 建议您选择的访问凭据类型如下:
建议您根据应用程序所需要访问的 Tencent Cloud 产品资源分别创建适用于您 Tencent Cloud 账户的最小权限访问凭据。除非必要,否则访问凭据不应具有资源完全访问权限。
借助 Tencent Cloud SDK for Python,您可以以面向对象编程的方式创建和管理无服务器数据库资源。
与传统数据库资源不同,无服务器数据库是一款按需分配资源的数据库产品。无服务器数据库将根据您的请求量、实际存储数据大小来自动分配资源,无需关注底层计算和存储资源,开箱即用,仅需为实际使用的资源量付费。无服务器数据库有哪些优势?
在向下阅读本文之前,您需要确保已阅读 入门篇 并理解一些基本概念。
在本文中我们将向您详细介绍,如何使用 Tencent Cloud SDK for Python 提供的无服务器数据库产品客户端以面向对象编程的方式快速创建并管理一个或多个无服务器数据库实例。
在下文中,我们将通过几个连续的步骤向您演示:
在创建无服务器数据库资源前,我们需要导入 Tencent Cloud SDK for Python 相关命名空间和模块:
请注意,这需要您的运行环境已安装 tencent-cloud-sdk-serverless-database
组件包,通常情况下该组件包包括在最新的 Tencent Cloud SDK 中。
接着,我们需要创建一个无服务器数据库产品客户端,这将允许我们访问无服务器数据库产品:
在上文示例代码中,我们使用 fetch_client
函数获得一个与当前超线程相关的无服务器数据库产品客户端实例。因便捷性和安全性原因,该函数仅支持使用环境凭据和文件凭据:
现在,我们需要在 ap-shanghai-2
数据中心可用区创建一个名为 default
的无服务器数据库实例:
在上文示例代码中,我们创建的无服务器数据库配置如下:
参数 instance_configure
的数据类型为 InstanceConfigure,该数据类型包含所创建的无服务器数据库实例配置信息。
最后,我们打印输出所创建的无服务器数据库实例的唯一标识符:
与无服务器数据库实例名称不同,无服务器数据库实例唯一标识符是不可重复的。
借助 Tencent Cloud SDK for Python 所提供的无服务器数据库产品客户端,我们可以非常方便地列出给定数据中心园区内已创建的无服务器数据库实例的详细信息:
变量 info
的数据类型为 InstanceInfo,其包含一个无服务器数据库实例的详细信息。
有时候我们的业务或工作负载可能因开发调试等原因,需要通过公网访问无服务器数据库实例。默认设置下无服务器数据库实例不允许通过公网访问,但我们可以轻松改变这一设置:
在上文示例代码中,参数 instance_extranet
代表给定无服务器数据库实例是否允许通过公网访问,如果该参数被忽略,默认为 True
。
设置成功后,您需要通过调用实例方法 list_instances
检索公网访问地址。
一个无服务器数据库实例已不再使用?没关系,我们可以利用 Tencent Cloud SDK for Python 所提供的无服务器数据库产品客户端将其快速删除(销毁):
之后,被删除的无服务器数据库实例资源将在短时间内销毁回收。
欢迎您查阅 Tencent Cloud SDK 在线文档。
Tencent Cloud SDK 是面向开发者提供的一套可用于访问 Tencent Cloud API 的 SDK。
借助 Tencent Cloud SDK,您可以以面向对象编程的方式快速、安全地访问 Tencent Cloud API 并将其集成到您的应用程序,而无需关注实现细节。
目前 Tencent Cloud SDK 面向以下语言提供开放源代码实现。
没关系,您仍然可以从 常见问题 页面寻求问题解答。
如果您的问题未在常见问题页面中列出,您可以通过以下即时通讯平台寻求技术支持。
您可以手动检索群组号码 537539545 或导航到 https://jq.qq.com/?_wv=1027&k=57elf7z 加入群组。
您可以导航到 https://t.me/tencent_cloud_serverless 加入群组,这通常适用于非中国大陆用户。
本网站上包含的商标、Tencent Cloud 和腾讯云字样均由 Tencent Cloud. 所有,版权所有者的联系方式是 https://cloud.tencent.com/act/event/connect-service。
本文将向您介绍并演示借助 Tencent Cloud SDK for Python 如何实现本机定时调用无服务器云函数
谈论到定时调用无服务器云函数时,或许我们首先想到的是利用无服务器云函数的定时触发器功能来实现。当我们需要在大量不确定个数的指定时间调用无服务器云函数时定时触发器将不能为我们提供便利,因为无服务器云函数的触发器个数受触发器配额限制。
通过借助 Tencent Cloud SDK for Python 的无服务器云函数定时调用机制,我们可以快速在本机运行环境中实现在在多个指定时间调用指定的无服务器云函数并获得运行结果,这也称之为按时间计划调用。
在下文中我们将通过一个简单的应用场景向您进一步介绍并演示如何利用 Tencent Cloud SDK for Python 实现对指定无服务器云函数的本机定时调用。
假定我们在数据中心 ap-shanghai
的命名空间 default
拥有一个已创建就绪的无服务器云函数 hello
,其无服务器云函数的配置为:
在该场景中我们要求无服务器云函数 hello
实现发起一个 HTTP 请求到 https://libget.com/hello 并获得响应正文(Body)作为无服务器云函数的返回值。
此外,在本地运行环境创建一个 Python 脚本并实现计划在本机时间的 10 秒后、20 秒后和 30 秒后调用无服务器云函数 hello
并获得无服务器云函数的实际返回值。
在下文中,我们将通过几个步骤向您演示编写符合当前场景要求的代码示例:
首先,我们需要根据本场景要求编写无服务器云函数 hello
的源代码。
为便于发起 HTTP GET 请求,我们采用 Python HTTP 库 requests
实现。
接着,我们需要为无服务器云函数 hello
编写入口函数。
在上文示例代码中,我们导入依赖模块 requests
并使用 requests.get 函数向 https://libget.com/hello 发起 HTTP GET 请求并将响应正文(Body)作为无服务器云函数 hello
的返回值。
然后,我们需要根据本场景要求编写一个 Python 脚本并实现计划定时调用无服务器云函数 hello
。
首先我们需要在无服务器云函数 hello
中导入 Tencent Cloud SDK for Python 相关命名空间和模块:
为便于获取计划定时调用的无服务器云函数运行结果,我们需要定义一个调用完成后的回调函数。当指定无服务器云函数在指定时间调用并运行完成后,Tencent Cloud SDK for Python 将调用指定回调函数。
接着,我们需要为 Python 脚本编写入口函数代码。
在上文示例代码中我们首先实例化一个无服务器云函数产品客户端和访问凭据,接着获取当前本机 UNIX 时间戳,然后循环 3 次并分别创建相对于前一步获取的本机 UNIX 时间戳的 10 秒、20 秒和 30 秒定时无服务器云函数调用任务,最后运行已创建的所有定时调用任务并等待完成。
值得注意的是上文中示例代码以同步编程方式使用 Tencent Cloud SDK for Python,对于异步编程方式将无需调用无服务器云函数产品客户端实例的 run_schedule
方法,所有已创建的定时调用任务将被 Tencent Cloud SDK for Python 自动调度运行。
最后,我们运行本场景中所创建并编写的本地 Python 脚本,如果一切正常将打印输出:
本文将向您进一步介绍并演示借助 Tencent Cloud SDK for Python 如何将无服务器云函数绑定到类方法、类实例方法或函数,这是获得关联无服务器云函数的 Python 原生函数的进阶。
这是由 Tencent Cloud SDK for Python 的无服务器云函数产品客户端所提供的高级特性,如果您未曾阅读如何选择一个无服务器云函数并获得与之关联的 Python 原生函数的实践文档,请先阅读:
在上篇实践文档中我们得知 Tencent Cloud SDK for Python 的无服务器云函数产品客户端的实例方法 select_function
可以选择一个无服务器云函数并获得与之相关联的 Python 原生函数,通过对 Python 原生函数的调用即为对关联无服务器云函数的调用,从而屏蔽 RPC 感知。
遗憾的是,我们无法控制所获得与无服务器云函数关联的 Python 原生函数的签名和形态,且不能将其集成为类方法或类实例方法。与此同时,我们或许还需要在全局范围内维护一个 Python 原生函数实例。
不过无需担心,Tencent Cloud SDK for Python 的无服务器云函数产品客户端提供了另一种高级特性用于解决上述问题,我们将其称之为绑定到无服务器云函数。
与关联到无服务器云函数的高级特性不同,绑定到无服务器云函数特性使用 Python 高级特性装饰器实现,这意味着开发者可以以更简洁、美观的代码快速集成该特性。什么是 Python 装饰器?
没有理解?没关系,在下文中我们将通过几个简单的应用场景向您进一步说明如何使用绑定到无服务器云函数特性组成您的应用程序代码逻辑。
在下文中我们将列举几段连续的示例代码并向您介绍 Tencent Cloud SDK for Python 的无服务器云函数产品客户端所提供的绑定到无服务器云函数特性的工作流程,我们仍然以无服务器云函数 addend
为例:
首先我们需要在应用程序中导入所依赖的 Tencent Cloud SDK for Python 相关命名空间和模块:
然后我们需要在应用程序源代码的适合层级实例化一个或多个无服务器云函数产品客户端和访问凭据,在下文中我们将选择 Python 模块全局变量作为适合层级:
在上文示例代码中,我们所实例化的无服务器云函数产品客户端由 Python 模块全局变量 function_client
存储。
Python 原生函数可能是我们将应用程序与无服务器云函数相集成的多数选择。
我们首先为无服务器云函数 addend
编写在 Python 原生函数的投射:
在上文示例代码中,Python 原生函数 addend
将引发 NotImplementedError
异常,该异常指示当前函数逻辑未实现。
接下来我们需要做的是,为无服务器云函数 addend
的 Python 原生投射函数套用一层装饰器:
上文示例代码中是 Python 原生投射函数 addend
套用 Python 装饰器后的形态。
最后,我们尝试调用在上文示例代码中定义的 Python 原生函数 addend
并获得运行结果:
如果一切正常,我们将得到打印输出:
绑定的无服务器云函数 addend
运行事件为:
有时或许我们希望使用 Python 类方法或类实例方法与无服务器云函数相集成。
首先我们需要编写一个可实例化的类以演示如何将类方法或类实例方法绑定到无服务器云函数:
在上文示例代码中,我们定义了符号名为 Addition
的实例类。该类拥有一个实例方法 get_result
用于计算类属性 value1
和 value2
的相加值。
接着,我们需要将实例类 Addition 的实例方法 get_result
绑定到无服务器云函数 addend
以实现加法运算功能。套用装饰器后的实例类形态如下:
在上文示例代码中我们额外使用了一个在绑定 Python 函数时未使用也不受支持的装饰器参数 include_attributes
。该参数允许提供一个列表实例,列表实例的成员为需要从当前所绑定类方法或类实例方法的类实例或静态类中所额外包含的公开属性名称。
被装饰器参数 include_attributes
包含的类公开属性名和值将作为绑定的无服务器云函数运行时事件的字段名称和值,被绑定的类方法或类实例方法的参数也将包括在其中,这与是否使用并设置装饰器参数 include_attributes
的值无关。
请注意,被绑定的类方法的首个参数名称必须为 cls;被绑定的类实例方法的首个参数名称必须为 self,否则行为是未定义的。
最后,我们尝试实例化一个 Addition
类并调用其实例方法 get_result
获得加法运算结果:
如果一切正常,我们将得到打印输出:
绑定的无服务器云函数 addend
运行事件为:
或许您已经注意到,使用 Tencent Cloud SDK for Python 的无服务器云函数产品客户端所提供的绑定到无服务器云函数高级特性时,调用被绑定的函数、类方法或类实例方法支持顺序参数和关键字参数,与 Python 原生函数、类方法或类实例方法的参数传递规则一致。
这是因为 Tencent Cloud SDK for Python 在实现过程中使用 Python 反射(自省)高级特性实现对被绑定可调用对象的参数名称的检查。
本页将向您介绍并演示如何使用 Tencent Cloud SDK for Python 轻松实现无服务器云函数间调用
通常情况下,我们可能需要在一个无服务器云函数中依赖另一个或多个无服务器云函数。通过在无服务器云函数中集成并使用 Tencent Cloud SDK for Python,无服务器云函数间调用将非常易于实现。
在下文中我们将通过一个简单的应用场景向您进一步介绍并演示如何使用 Tencent Cloud SDK for Python 快速实现在无服务器云函数之间相互调用。
假定我们在数据中心 ap-shanghai
的命名空间 default
中拥有 2 个已创建就绪的无服务器云函数,其名称分别是 hello
和 addend
。这些无服务器云函数的配置如下:
在该场景中,我们要求在无服务器云函数 hello
中以友好且可供人类直接阅读的字符串返回一次加法运算的结果,其加法运算过程要求在无服务器云函数 addend
中实现。
在下文中,我们将通过几个步骤向您演示编写符合当前场景要求的代码示例:
addend
函数首先,我们需要先编写无服务器云函数 hello
的依赖函数 addend
的函数源代码:
在无服务器云函数 addend
中,我们尝试获取当前函数调用事件中的字段 value1
和 value2
的值,并将字段 value1
和 value2
的值相加后返回,期望相加值类型为整形。
hello
函数接着,我们需要编写依赖无服务器云函数 addend
的主函数 hello
的函数源代码:
首先我们需要在无服务器云函数 hello
中导入 Tencent Cloud SDK for Python 相关命名空间和模块:
接着我们需要为无服务器云函数 hello
编写入口函数。
在入口函数中我们将尝试使用 Tencent Cloud SDK for Python 所提供的无服务器云函数间调用功能调用无服务器云函数 addend
完成一次加法运算并获取结果:
在无服务器云函数 hello
中,我们尝试使用 Tencent Cloud SDK for Python 函数间调用功能调用无服务器云函数 addend
计算数值 10
和 20
的相加结果并以人类易读的描述性字符串返回。
如果无服务器云函数 addend
运行出错,则返回错误原因的描述性字符串。
请注意,无服务器云函数间调用仅支持已配置 运行角色 的无服务器云函数发起调用。
现在我们尝试运行无服务器云函数 hello
,如果一切正常其运行结果为:
在上文的演示代码中我们导入 Tencent Cloud SDK for Python 的无服务器云函数产品软件包,使用 functions.invoke
函数完成无服务器云函数之间相互调用的工作。
您或许已经注意到,无服务器云函数间调用的方式不需要您维护一个访问凭据和无服务器云函数产品客户端实例,这是因为 Tencent Cloud SDK for Python 的无服务器云函数间调用机制已代您维护一个有效的临时访问凭据和产品客户端实例。
当您初次使用 functions.invoke
或 functions.invoke_async
函数时,Tencent Cloud SDK for Python 会尝试在内部实例化一个无服务器云函数产品客户端并搜寻采用非持久环境凭据。
当无服务器云函数已配置具有有效访问权限的 运行角色 时,其函数在运行代码之前将自动申请并获得一个非持久性的临时访问凭据并将其存储在当前运行环境的环境变量中,这就是环境凭据的由来。
如果当前无服务器云函数已配置 运行角色,实例化通用或产品客户端时允许不提供访问凭据,此时 Tencent Cloud SDK for Python 将自动搜寻并采用环境凭据。
并且,函数 functions.invoke
或 functions.invoke_async
在内部将依赖无服务器云函数产品客户端的 easy_invoke
实例方法,其具有与依赖方法相同的行为和返回值。
请注意,使用无服务器云函数间调用方式调用的目标无服务器云函数必须与当前无服务器云函数所在数据中心相同,且命名空间为 default。
否则,您应该将参数 namespace_name 和 region_id 设置为有效值。
因此,无服务器云函数间调用机制并非真正地脱离无服务器云函数产品客户端,只是 Tencent Cloud SDK for Python 为开发者提供更佳便利的封装调用机制。
本节将引导您进一步了解 Tencent Cloud SDK for Python 所提供的更多功能和高级特性
阅读 Tencent Cloud SDK for Python 技术文档之前,强烈建议您先阅读入门文档。
Tencent Cloud SDK for Python 建立在全异步 API 支持的基础之上,这意味着所有 API 均以异步编程方式编写。不过,我们仍为同步编程方式提供兼容 API 支持,这些适用于同步编程方式的兼容 API 将在内部调用其适用于异步编程方式的 API 版本。
适用于异步编程方式的 API 命名均以 _async
结尾。
例如我们在无服务器云函数产品客户端中使用的方法 easy_invoke,其具有适用于同步和异步编程方式共 2 个 API 版本,其方法符号名分别为:
同步编程方式:easy_invoke
异步编程方式:easy_invoke_async
在 API 文档中我们将以便于理解的同步编程方式向您介绍和演示,其适用于异步编程方式的 API 版本在行为和参数定义上与适用于同步编程方式的 API 版本一致。
请注意,适用于同步编程方式的 API 不支持在异步编程方式中使用,否则行为是未定义的。
Tencent Cloud SDK for Python 面向开发者提供低级 API 和高级 API。除非必要或拥有 API 文档的兼容性承诺,否则您应该始终使用高级 API 编写应用程序。
低级 API 通常是 Tencent Cloud SDK for Python 为面向内部高级 API 实现提供的底层 API 实现,低级 API 签名和行为可能会因 Tencent Cloud SDK for Python 的版本更新而改变甚至废止、删除,这将导致依赖低级 API 的应用程序无法在集成更高版本的 Tencent Cloud SDK for Python 时正确工作。
例如高级 API 方法 tencent.cloud.core.client.UniversalClient.action
在内部调用低级 API 方法 tencent.cloud.core.client.BaseClient._request_action_async
以实现对 Tencent Cloud API 的调用并获得结果。
请注意,如果一个高级 API 未在 API 文档中声明,表明该 API 可能是实验性的并可能会在未来的某一个版本中被废止、删除,应该谨慎在应用程序中使用。
目前 Tencent Cloud SDK for Python 面向以下 Tencent Cloud 产品提供抽象的产品客户端:
您需要集成并使用的 Tencent Cloud 产品未列出?没关系,您仍然可以使用 Tencent Cloud SDK for Python 提供的通用客户端直接快速、安全地访问 Tencent Cloud API 并获得结果,Tencent Cloud SDK for Python 将代您管理 Tencent Cloud API 身份验证和签名、底层互联网通信和请求与响应解析等实现细节:
请注意,目前 Tencent Cloud SDK for Python 所有类型均不是线程安全的。在多线程应用程序模型中,您应该在每一条超线程上下文中实例化一个或多个独立的类型实例。
命名空间和类:tencent.cloud.serverless.functions.Client
调用给定无服务器云函数并获得无服务器云函数的实际返回值。
该方法的参数和参数描述如下:
该方法返回值取决于参数 function_async
的值。如果该参数设置为 False
,该方法返回给定无服务器云函数调用结果中的实际返回值;如果该参数设置为 True
,该方法返回用于标识给定无服务器云函数调用的唯一标识符(Request ID)字符串。
实际返回值:指给定给定无服务器云函数所运行代码的真实返回值。该方法将尝试推断给定无服务器云函数运行结果中返回值的数据类型,例如给定无服务器云函数返回整形数值,该方法将返回使用 Python 原生数据类型解析包装的 Int 值。
请注意,如果以异步编程方式使用该方法,且参数 function_async
被设置为 True
,该方法将返回代表给定无服务器云函数未来实际返回值的 FunctionResultFuture
类实例。
返回的 FunctionResultFuture
实例支持使用 await
关键字等待给定无服务器云函数本次调用的实际返回值。
该方法可能会主动引发以下异常:
参数值或类型不符合预期。
给定无服务器云函数在调用过程中遇到错误,这通常是由于无服务器云函数所运行的代码存在异常。
Tencent Cloud API 错误。例如访问凭据无效、给定无服务器云函数不存在等均会引发该异常。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.1
命名空间和类:tencent.cloud.serverless.functions.Client
调用给定无服务器云函数的指定例程,并获取例程的实际返回值。
该方法的参数和参数描述如下:
该方法返回给定无服务器云函数的指定例程调用的实际返回值。返回值视参数的值不同而异,详情请参阅方法 easy_invoke
的返回值描述。
该方法可能会主动引发以下异常:
参数值或类型不符合预期。
给定无服务器云函数在调用过程中遇到错误,这通常是由于无服务器云函数所运行的代码存在异常。
Tencent Cloud API 错误。例如访问凭据无效、给定无服务器云函数不存在等均会引发该异常。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.5
本文将向您进一步介绍并演示借助 Tencent Cloud SDK for Python 如何为无服务器云函数创建多个例程并调用它们,这是绑定到无服务器云函数的进阶。
这是由 Tencent Cloud SDK for Python 的无服务器云函数产品客户端所提供的高级特性,如果您未曾阅读如何将一个无服务器云函数绑定到 Python 原生同步或异步函数的实践文档,请先阅读:
在上一篇最佳实践中我们得知借助 Tencent Cloud SDK for Python 可以快速实现将一个或多个 Python 原生的同步或异步函数绑定到指定的无服务器云函数,进而以完全 Python 原生调用的形态组织代码以屏蔽或减少开发者对无服务器云函数调用时的 RPC 流程感知。
遗憾的是,该高级特性仅适用于无服务器云函数调用方,而被调用的无服务器云函数依旧需要以传统事件处理的方式组织一个或多个功能的代码实现。当我们在一个无服务器云函数中提供的相关功能较多时,开发者还需要在无服务器云函数执行方法中实现事件解析和派发。
因此,Tencent Cloud SDK for Python 通过提供另外一种高级特性以解决这些问题,我们将其称之为适用于无服务器云函数集成调用的例程派发框架,简称无服务器云函数例程。
与绑定到无服务器云函数的高级特性相同,无服务器云函数例程特性也使用 Python 高级特性装饰器实现,这意味着开发者可以以更简洁、美观的代码快速集成该特性。什么是 Python 装饰器?
没有理解?没关系,在下文中我们将通过几个简单的应用场景向您进一步说明如何使用无服务器云函数例程特性组成您的应用程序代码逻辑。
在下文中我们将列举几段连续的示例代码并向您介绍 Tencent Cloud SDK for Python 所提供的无服务器云函数例程特性的工作流程。
假定我们需要在一个无服务器云函数中实现对加法和减法的算术运算:
首先我们需要创建一个名为 arithmetic
的无服务器云函数:
然后,我们需要为无服务器云函数 arithmetic 编写代码。与以往不同,我们将使用 Tencent Cloud SDK for Python 提供的无服务器云函数例程特性和框架。首先我们需要导入使用的命名空间和模块:
接着我们需要调用 use_routine_dispatcher
函数为当前无服务器云函数启用例程派发器框架:
在上述代码中,我们得到一个被称之为例程派发器类型的实例并由变量 dispatcher
存储。例程派发器实际上是一个可解析无服务器云函数例程调用协议的路由,每一个例程派发器实例将管理一个或多个已注册的无服务器云函数例程。没有理解?没关系,让我们继续向下阅读。
然后我们需要编写 2 个例程,分别是 addend
和 subtract
,分别对应加法和减法的算术运算:
或许您已经注意到,无服务器云函数例程实际上是一个套用例程派发装饰器的一个 Python 原生函数,在上述代码中我们仅需要为 Python 原生函数使用 @dispatcher.routine
装饰器即可将其注册为可调用的无服务器云函数例程。
到此,无服务器云函数 arithmetic
的代码已完成编写。
在上文中我们已经创建名为 arithmetic
的无服务器云函数,并分别实现适用于加法和减法算术运算的无服务器云函数例程,现在让我们在一个本地函数中调用它们:
首先,我们需要导入所依赖的命名空间和模块:
接着,我们需要在本地函数的 Python 模块全局获取一个无服务器云函数产品客户端实例:
然后,我们需要为无服务器云函数的 addend
和 subtract
分别创建 2 个 Python 原生函数,并将他们分别绑定到对应的无服务器云函数例程:
是的,对无服务器云函数例程的绑定与对无服务器云函数的绑定非常相似。
我们仅需要定义 2 个与无服务器云函数例程签名完全一致的 Python 原生函数,然后为其分别套用 @function_client.bind_routine
装饰器即可。现在对 Python 原生函数 addend
和 subtract
的调用等同于对无服务器云函数 arithmetic
的例程 addend
和 subtract
的调用。
值得注意的是,我们将这些与无服务器云函数例程签名相同的 Python 函数称之为 Python 原生扮演函数。
当然,如果您不希望在应用程序中为每一个无服务器云函数例程编写对应的 Python 原生函数,您可以选择由 Tencent Cloud SDK for Python 代您创建一个与指定无服务器云函数例程相关联的 Python 原生函数:
现在,变量 addend
和 subtract
为可调用的 Python 原生函数对象。
最后,我们尝试在本地函数中调用无服务器云函数 arithmetic
的例程 addend
和 subtract
,并打印输出加法和减法算术运算的结果:
请注意,如果您使用方法 seletc_routine
创建无服务器云函数例程的 Python 原生扮演函数,您需要完全使用关键字参数调用,否则 Tencent Cloud SDK for Python 无法确定每个参数对应的位置:
如果您希望在调用无服务器云函数例程时获得 RPC 流程感知,您可以使用方法 routine_invoke
:
如果一切正常,您将会在终端看到如下输出:
命名空间和类:tencent.cloud.serverless.functions.Client
将给定无服务器云函数绑定在另一个 Python 原生函数、类方法或类实例方法上。之后对被绑定可调用对象的调用将被重定向为对给定无服务器云函数的调用。
该方法是一个装饰器,您应该以 Python 装饰器语法使用它,否则行为是未定义的。
该方法的参数和参数描述如下:
该方法返回装饰器处理器函数实例。
被绑定可调用对象被调用时将在内部调用方法 easy_invoke
实现对给定无服务器云函数的调用,其被绑定可调用对象的返回值与方法 easy_invoke
的返回值一致。
该方法预期行为不会主动引发任何异常。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.1
命名空间和类:tencent.cloud.serverless.functions.Client
将给定无服务器云函数的指定例程绑定在另一个 Python 原生同步或异步函数上。之后对被绑定的 Python 原生同步或异步函数的调用将被重定向为对给定无服务器云函数例程的调用。
该方法是一个装饰器,您应该以 Python 装饰器语法使用它,否则行为是未定义的。
该方法的参数和参数描述如下:
该方法返回装饰器处理器函数实例。
被绑定的 Python 原生函数被调用时将在内部调用方法 routine_invoke
实现对给定无服务器云函数的调用,其被绑定的 Python 原生函数的返回值与方法 routine_invoke
的返回值一致。
该方法预期行为不会主动引发任何异常。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.5
命名空间和类:tencent.cloud.serverless.functions.Client
计划在给定本机 UNIX 时间戳调用给定无服务器云函数。
该方法的参数和参数描述如下:
请注意,参数 invoke_timestamp 给定的 UNIX 时间戳必须与本机时间同步,否则实际调用给定无服务器云函数的时间可能与预期不同。
该方法返回代表给定无服务器云函数计划调用任务的 FunctionSchedule
类实例。如果参数 invoked_callback
被设置为有效的函数实例,其函数实例回调时将传入该方法的返回值。
该方法可能会主动引发以下异常:
参数值或类型不符合预期。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.1
命名空间和类:tencent.cloud.serverless.functions.Client
选择一个无服务器云函数并返回给定无服务器云函数的 Python 原生函数实例。对该函数实例的调用等同于对给定无服务器云函数的调用,其关键字参数将作为给定无服务器云函数的事件。
该方法的参数和参数描述如下:
该方法返回给定无服务器云函数的 Python 原生函数实例。
返回的函数实例将在内部调用方法 easy_invoke
实现对给定无服务器云函数的调用,其函数实例的返回值与方法 easy_invoke
的返回值一致。
该方法预期行为不会主动引发任何异常。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.1
命名空间和类:tencent.cloud.serverless.functions.Client
调用给定无服务器云函数并获得无服务器云函数的运行结果。
该方法的参数和参数描述如下:
该方法返回可等待操作对象,这将允许您等待无服务器云函数资源真正地创建完成。
在 Tencent Cloud SDK for Python 0.1.6 或更低版本中,该方法没有返回值。
该方法可能会主动引发以下异常:
参数值或类型不符合预期。
Tencent Cloud API 错误。例如访问凭据无效、给定无服务器云函数不存在等均会引发该异常。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.6
命名空间和类:tencent.cloud.serverless.functions.Client
选择一个给定无服务器云函数的指定例程并返回给定无服务器云函数例程的 Python 原生函数实例。对该函数实例的调用等同于对给定无服务器云函数例程的调用,其关键字参数将作为给定无服务器云函数例程的关键字参数。
该方法的参数和参数描述如下:
该方法返回给定无服务器云函数例程的 Python 原生函数实例。
返回的函数实例将在内部调用方法 routine_invoke
实现对给定无服务器云函数例程的调用,其函数实例的返回值与方法 routine_invoke
的返回值一致。
该方法预期行为不会主动引发任何异常。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.5
命名空间和模块:tencent.cloud.serverless.functions
代表无服务器云函数产品客户端的类。利用该类,您可以以同步或异步面向对象编程的方式快速、安全地与无服务器云函数产品交互。
继承:tencent.cloud.serverless.functions.client.AbstractClient
类
从产品软件包 tencent-cloud-sdk-serverless-functions
的 0.1.3 版本开始,无服务器云函数产品客户端类型将不再继承自 BaseClient
,而是 UniversalClient
。
tencent.cloud.serverless.functions.Client
类
tencent.cloud.serverless.functions.client.AbstractClient
类
tencent.cloud.core.client.UniversalClient
类
tencent.cloud.core.client.BaseClient
类
该类仅支持构造类实例后使用,构造实例方法继承自父类,其构造实例方法签名如下:
构造实例方法参数和参数描述如下:
请注意,对于 Tencent Cloud SDK for Python 0.1.3 或更低版本,参数名称为:
值得注意的是,旧版本除参数名称不同外,与新版本中的参数数据类型和行为是一致的。
该类型的实例包含可被公开访问的属性有:
该类型部分可被公开访问的属性可能需要最新的 Tencent Cloud SDK for Python 版本:
在下文中我们将向您演示如何构造一个无服务器云函数产品客户端类实例:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.3
配置
值
运行环境
Python 3.6
内存上限
64 MBytes
入口函数
index.main
运行角色
QCS_SCFExcuteRole
应用场景类型
建议选择的访问凭据类型
参考级别
单一源文件
优先使用默认凭据,其次考虑使用文件凭据。
不适用
多源文件项目
优先使用文件凭据,其次考虑使用环境凭据。
不适用
无服务器云函数
优先使用文件凭据,其次考虑使用环境凭据。
不适用
开发环境
建议使用环境凭据,降低访问凭据泄漏风险。
高
配置项
值
运行环境
Python 3.6
内存上限
64 MBytes
入口函数
index.main
运行角色
QCS_SCFExcuteRole
参数
类型
必选
描述
region_id
str
是
调用的无服务器云函数所在数据中心的唯一标识符。
namespace_name
str
是
调用的无服务器云函数所在命名空间的名称。
function_name
str
是
调用的无服务器云函数名称。
function_event
dict
否
调用的无服务器云函数事件。
如果该参数被忽略或设置为 None
,默认传递空事件。
function_version
str
否
调用的无服务器云函数版本名称。
如果该参数被忽略或设置为 None
,默认调用最新版本。
function_async
bool
否
调用的无服务器云函数是否以异步的方式运行。
如果该参数被忽略或设置为 None
,默认以同步方式运行。
属性
值
数据中心
ap-shanghai
命名空间
default
函数名称
arithmetic
运行环境
Python 3.6
配置项
成员
值
数据库版本
database.version
10.4
数据库字符集
database.charset
UTF-8
实例私有网络
vpc.id
vpc-f7qfb64q
实例私有网络子网
vpc.subnet_id
subnet-aieh8myj
参数
类型
必选
描述
region_id
str
是
绑定的无服务器云函数所在数据中心的唯一标识符。
namespace_name
str
是
绑定的无服务器云函数所在命名空间的名称。
function_name
str
是
绑定的无服务器云函数名称。
function_version
str
否
绑定的无服务器云函数版本名称。
如果该参数被忽略或设置为 None
,默认为最新版本。
function_async
bool
否
绑定的无服务器云函数是否以异步的方式运行。
如果该参数被忽略或设置为 None
,默认以同步方式运行。
include_attributes
list<str>
否
需要包含当前实例的属性名称列表实例,这些属性将被优先添加到绑定的无服务器云函数调用事件。如果被绑定的可调用对象不是类方法或类实例方法,该参数将被忽略。
参数
类型
必选
描述
region_id
str
是
计划调用的无服务器云函数所在数据中心的唯一标识符。
namespace_name
str
是
计划调用的无服务器云函数所在命名空间的名称。
function_name
str
是
计划调用的无服务器云函数名称。
function_event
dict
否
计划调用的无服务器云函数事件。
如果该参数被忽略或设置为 None
,默认传递空事件。
function_version
str
否
计划调用的无服务器云函数版本名称。
如果该参数被忽略或设置为 None
,默认调用最新版本。
function_async
bool
否
计划调用的无服务器云函数是否以异步的方式运行。
如果该参数被忽略或设置为 None
,默认以同步方式运行。
invoke_timestamp
int
否
计划调用给定无服务器云函数的本机 UNIX 时间戳。
如果该参数被忽略或设置为 None
,默认位于当前本机 UNIX 时间戳 3 秒钟后。
invoked_callback
function
否
计划调用的无服务器云函数调用完成回调函数实例。如果该参数被忽略或设置为 None
,给定无服务器云函数调用结果将被丢弃。
参数
类型
必选
描述
region_id
str
是
选择的无服务器云函数所在数据中心的唯一标识符。
namespace_name
str
是
选择的无服务器云函数所在命名空间的名称。
function_name
str
是
选择的无服务器云函数名称。
function_version
str
否
选择的无服务器云函数版本名称。
如果该参数被忽略或设置为 None
,默认为最新版本。
function_async
bool
否
选择的无服务器云函数是否以异步的方式运行。
如果该参数被忽略或设置为 None
,默认以同步方式运行。
参数
类型
必选
描述
region_id
str
是
创建的无服务器云函数所在数据中心的唯一标识符。
namespace_name
str
是
创建的无服务器云函数所在命名空间的名称。
function_name
str
是
创建的无服务器云函数名称。
function_description
str
否
创建的无服务器云函数描述正文。
function_code
是
创建的无服务器云函数代码实例。
function_runtime
str
否
创建的无服务器云函数运行时名称。如果该参数被忽略,默认运行时为 Python3
。建议使用 FunctionRuntime 枚举器成员。
function_type
str
否
创建的无服务器云函数类型。如果该参数被忽略,默认类型为 Event
。建议使用 FunctionType 枚举器成员。
function_configure
否
创建的无服务器云函数配置。如果该参数被忽略或设置为 None
,被创建的函数将采用默认配置。
参数
类型
必选
描述
access_credentials
Credentials
否
访问凭据类实例。如果该参数被忽略或设置为 None
,默认设置为环境凭据或文件凭据。
access_proxies
否
代理服务器配置类实例。如果该参数被忽略或设置为 None
,默认不使用任何代理服务器。
文档中的参数名
旧的参数名
类型一致
行为一致
access_credentials
credentials_context
是
是
access_proxies
proxies_context
是
是
属性
类型
只读
描述
error_manager
ErrorManager
是
当前无服务云函数产品客户端实例的错误管理器实例。借助错误管理器,您可以自定义对感兴趣地错误的处理方式。
credentials
Credentials
是
当前无服务器云函数产品客户端实例所绑定的访问凭据实例。
proxies
Proxies
是
当前无服务器云函数产品客户端实例所绑定的一个或多个代理服务器配置实例。如果需要修改代理服务器配置,请使用 set_access_proxies
方法。
请注意,如果当前无服务器云函数产品客户端未设置代理服务器配置,该属性默认值为 None
。
属性
软件包
版本要求
error_manager
tencent-cloud-sdk-core
>= 0.1.2
credentials
tencent-cloud-sdk-core
>= 0.1.2
proxies
tencent-cloud-sdk-core
>= 0.1.3
参数
类型
必选
描述
region_id
str
是
调用的无服务器云函数所在数据中心的唯一标识符。
例如:ap-shanghai
namespace_name
str
是
调用的无服务器云函数所在命名空间的名称。
例如:default
function_name
str
是
调用的无服务器云函数名称。
例如:arithmetic
routine_name
str
是
调用的无服务器云函数的例程名称。
例如:addend
routine_parameter
dict
否
调用的无服务器云函数关键字参数。
例如:{ 'value1': 10, 'value2': 20 }
function_version
str
否
调用的无服务器云函数版本名称。
如果该参数被忽略或设置为 None
,默认调用最新版本。
function_async
bool
否
调用的无服务器云函数是否以异步的方式运行。
如果该参数被忽略或设置为 None
,默认以同步方式运行。
参数
类型
必选
描述
region_id
str
是
绑定的无服务器云函数所在数据中心的唯一标识符。
例如:ap-shanghai
namespace_name
str
是
绑定的无服务器云函数所在命名空间的名称。
例如:default
function_name
str
是
绑定的无服务器云函数名称。
例如:arithmetic
function_version
str
否
绑定的无服务器云函数版本名称。
如果该参数被忽略或设置为 None
,默认为最新版本。
function_async
bool
否
绑定的无服务器云函数是否以异步的方式运行。
如果该参数被忽略或设置为 None
,默认以同步方式运行。
routine_name
str
否
绑定的无服务器云函数的例程名称。
如果该参数被忽略或设置为 None,默认为绑定的 Python 原生同步或异步函数的名称。
参数
类型
必选
描述
region_id
str
是
选择的无服务器云函数所在数据中心的唯一标识符。
例如:ap-shanghai
namespace_name
str
是
选择的无服务器云函数所在命名空间的名称。
例如:default
function_name
str
是
选择的无服务器云函数名称。
例如:arithmetic
routine_name
str
是
选择的无服务器云函数的例程的名称。
例如:addend
function_version
str
否
选择的无服务器云函数版本名称。
如果该参数被忽略或设置为 None
,默认为最新版本。
function_async
bool
否
选择的无服务器云函数是否以异步的方式运行。
如果该参数被忽略或设置为 None
,默认以同步方式运行。
本页将引导您如何通过 Python 面向对象编程的方式使用 Tencent Cloud SDK.
Tencent Cloud SDK for Python 是面向 Python 推出的 Tencent Cloud SDK 开放源代码实现。
借助 Tencent Cloud SDK for Python,您可以以面向对象编程的方式快速访问 Tencent Cloud API 并将其集成到您的应用程序,而无需关注实现细节。
请注意,Tencent Cloud SDK for Python 仅面向 Python 3.6 或更高 CPython 运行时版本提供兼容性支持。使用 Python 2 版本的开发者应该尽快升级到 Python 3.6 或更高版本。
Python 软件基金会宣布将于 2020 年停止对 Python 2 的支持。
Features
Tencent Cloud SDK for Python 支持全异步编程方式。
本节将通过实践演示引导您进一步了解如何在应用程序中集成并使用 Tencent Cloud SDK for Python
借助 Tencent Cloud SDK for Python,您可以以同步或异步面向对象编程的方式快速实现与 Tencent Cloud 产品的功能交互。
在本节中我们将通过多个完整的示例向您演示如何在实际应用场景的应用程序中集成 Tencent Cloud SDK for Python 并使用相关高级特性以完成一些操作逻辑。
请注意,在阅读实际应用场景最佳实践篇之前,请确保:
已安装 Python 3.6 或更高版本。
已安装 Tencent Cloud SDK for Python 最新稳定版本。
已阅读并理解 Tencent Cloud SDK for Python 入门篇。
已通过 Tencent Cloud 控制台创建适用于您账户的 Tencent Cloud API 访问凭据。
本页将引导您安装 Tencent Cloud SDK for Python
通常情况下,这是您的首选安装方式。
请注意,如果当前操作系统环境已同时安装 Python 2 和 Python 3 版本,通常情况下 Python 软件包管理器对应的 Shell 命令为 pip3,而不是 pip。
借助 Python 软件包管理器,您可以快速安装 Tencent Cloud SDK for Python:
如果您只想安装并集成所需 Tencent Cloud 产品,可以采用拆分安装的方式获取部分 Tencent Cloud SDK for Python。首先我们需要安装基础软件包,因为大多数 Tencent Cloud 产品软件包依赖它们。
然后安装所需 Tencent Cloud 产品对应的产品软件包。例如 无服务器云函数 的产品软件包:
通常情况下,我们建议您直接选取并安装所需 Tencent Cloud 产品软件包,被安装的产品软件包将自动安装其依赖的其他软件包,这也包括基础软件包。
如果您仅希望在当前项目目录安装 Tencent Cloud SDK for Python:
首先我们需要安装用于构建 Tencent Cloud SDK for Python 软件包的依赖软件包:
然后从 Tencent Cloud SDK for Python 的 GitHub 仓库克隆开放源代码实现:
接着导航到包含 Tencent Cloud SDK for Python 开放源代码实现的基础和产品软件包目录,然后将这些软件包逐一构建并安装:
在以上演示中我们已逐个构建并安装以下基础软件包和产品软件包:
如果您采用完整安装方式获取并安装 Tencent Cloud SDK for Python:
如果您采用拆分安装方式获取并安装 Tencent Cloud SDK for Python,您需要逐个卸载已安装的 Tencent Cloud SDK 产品软件包,例如 无服务器云函数 产品软件包:
最后卸载 Tencent Cloud SDK for Python 的基础软件包:
我们将 Tencent Cloud SDK for Python 的源代码实现托管在 GitHub 开放访问仓库中,您可以前往 https://github.com/nobody-night/tencent-cloud-sdk-python 获取。
命名空间和类:tencent.cloud.serverless.functions.Client
调用给定无服务器云函数并获得无服务器云函数的运行结果。
该方法的参数和参数描述如下:
返回包含给定无服务器云函数运行结果的字典实例,其数据类型为 FunctionResult。
该方法可能会主动引发以下异常:
参数值或类型不符合预期。
给定无服务器云函数在调用过程中遇到错误,这通常是由于无服务器云函数所运行的代码存在异常。
Tencent Cloud API 错误。例如访问凭据无效、给定无服务器云函数不存在等均会引发该异常。
Tencent Cloud API 返回结果是非预期的,该异常通常情况下不会引发。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.1
命名空间和类:tencent.cloud.serverless.functions.Client
命名空间和类:tencent.cloud.serverless.functions.Client
命名空间和类:tencent.cloud.serverless.functions.Client
命名空间和类:tencent.cloud.serverless.functions.Client
命名空间和类:tencent.cloud.serverless.functions.Client
本文将向您介绍并演示借助 Tencent Cloud SDK for Python 如何以 Python 原生函数的形式调用指定无服务器云函数。
当我们谈论到如何使用 Tencent Cloud SDK for Python 调用无服务器云函数时,或许首先想到的是利用无服务器云函数产品客户端所提供的 invoke
、easy_invoke
或 schedule_invoke
等实例方法快速发起对指定无服务器云函数的调用并获得运行结果。
但除此之外,我们还可以借助 Tencent Cloud SDK for Python 的无服务器云函数产品客户端所提供的高级特性以 Python 原生函数的形式调用指定无服务器云函数。
通常情况下我们在当前运行环境中对无服务器云函数的调用过程或许都可以被称之为 RPC(远程过程调用),开发者可以感知到 RPC 过程的存在。例如我们使用无服务器云函数产品客户端所提供的 easy_invoke
实例方法调用指定无服务器云函数时,我们可以感知到这是一次调用请求。
通过利用 Tencent Cloud SDK for Python 的无服务器云函数产品客户端所提供的 Python 原生调用高级特性,我们可以将对无服务器云函数的调用封装为对一个 Python 原生函数的调用。这样当开发者对相关联的 Python 原生函数调用时等同于对指定无服务器云函数的调用,从而屏蔽 RPC 过程感知。
没有理解?没关系,在下文中我们将通过一个简单的场景介绍并演示如何使用该高级特性。
假定我们在数据中心 ap-shanghai
的命名空间 default
拥有一个已创建就绪的无服务器云函数 addend
,其无服务器云函数的配置为:
其无服务器云函数的源代码为:
在该场景中,我们要求在本地 Python 脚本中实现对无服务器云函数 addend
的调用,传入函数事件字段 value1
和 value2
并获得实际返回值。
其调用必须以 Python 原生函数的形式呈现。
在下文中,我们将通过几个步骤向您演示编写符合当前场景要求的代码示例:
首先,我们需要导入依赖的 Tencent Cloud SDK for Python 的命名空间和模块:
接着,我们需要为 Python 脚本编写入口函数,所有代码逻辑将在该函数中实现。
在上文示例代码中,我们首先实例化一个无服务器云函数产品客户端和访问凭据;接着使用无服务器云函数产品客户端的实例方法 select_function
选择一个无服务器云函数并获得与之对应的 Python 原生函数 addend
;最后调用 Python 原生函数 addend
并打印输出无服务器云函数 addend
的实际返回值。
在获得的 Python 原生函数 addend
内部,其将调用与之关联的无服务器云函数产品客户端的实例方法 easy_invoke
实现对指定无服务器云函数的调用。
请注意,对关联无服务器云函数的 Python 原生函数调用时其参数必须完全使用关键字参数传递,参数名即为指定无服务器云函数运行时事件的字段名称,否则行为是未定义的。
在上文示例代码中所涉及的 API 如下:
最后,我们尝试运行本地 Python 脚本,如果一切正常将输出:
或许您已经注意到,使用 Tencent Cloud SDK for Python 的无服务器云函数产品客户端的实例方法 select_function
所获得的关联 Python 原生函数无法使用顺序参数,且无法与类方法、类实例方法相结合并获得 IDE 所提供的引导提示。
如果您希望以类方法、类实例方法或函数的形式以可控的函数或方法签名组成您的代码,或许使用 Tencent Cloud SDK for Python 的无服务器云函数客户端所提供的另一项高级特性更加合适:
命名空间和类:tencent.cloud.serverless.functions.Client
获取给定命名空间内的无服务器云函数基本信息,该方法将尝试检索符合条件的无服务器云函数项。
该方法的参数和参数描述如下:
该方法返回一个用于遍历获取符合过滤条件的无服务器云函数基本信息的生成器实例,生成器实例每次迭代返回包含无服务器云函数基本信息的字典实例,其数据类型为 FunctionInfo。
该方法在内部维护一个缓冲循环,每次使用 Tencent Cloud API 检索并获取 100 条符合条件的无服务器云函数运行结果。
该方法可能会主动引发以下异常:
参数值或类型不符合预期。
Tencent Cloud API 错误。例如访问凭据无效、给定无服务器云函数不存在等均会引发该异常。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.1
命名空间和类:tencent.cloud.serverless.functions.Client
获取给定无服务器云函数的所有版本信息。
该方法的参数和参数描述如下:
该方法返回一个用于遍历获取无服务器云函数版本信息的生成器实例,生成器实例每次迭代返回包含无服务器云函数版本信息的字典实例,其数据类型为 。
由于 Tencent Cloud API 不支持分页游标检索并获取,因此该方法将尝试一次性获取无服务器云函数的所有版本信息。
该方法可能会主动引发以下异常:
参数值或类型不符合预期。
Tencent Cloud API 错误。例如访问凭据无效、给定无服务器云函数不存在等均会引发该异常。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.1
命名空间和类:tencent.cloud.serverless.functions.Client
命名空间和类:tencent.cloud.serverless.functions.Client
获取给定无服务器云函数指定 Request ID 的运行结果。
该方法的参数和参数描述如下:
该方法可能会主动引发以下异常:
参数值或类型不符合预期。
Tencent Cloud API 错误。例如访问凭据无效、给定无服务器云函数不存在等均会引发该异常。
给定无服务器云函数的 Request ID 无效或未找到运行结果。如果 Request ID 有效,则给定无服务器云函数可能还在运行或运行结果仍未完成收集。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.1
命名空间和类:tencent.cloud.serverless.functions.Client
命名空间和类:tencent.cloud.serverless.functions.Client
获取给定无服务器云函数的运行结果,该方法将尝试检索符合条件的所有运行结果记录。
该方法的参数和参数描述如下:
该方法在内部维护一个缓冲循环,每次使用 Tencent Cloud API 检索并获取 100 条符合条件的无服务器云函数运行结果。
该方法可能会主动引发以下异常:
参数值或类型不符合预期。
Tencent Cloud API 错误。例如访问凭据无效、给定无服务器云函数不存在等均会引发该异常。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.1
命名空间和类:tencent.cloud.serverless.functions.Client
命名空间和类:tencent.cloud.serverless.functions.Client
运行所有已创建的定时无服务器云函数调用任务,直到没有仍未调用的定时任务存在时该方法返回。这些任务通常由实例方法 创建。
请注意,该方法仅适用于同步编程方式,异步编程方式无需手动调用该方法。
该实例方法在产品软件包 tencent-cloud-sdk-serverless-functions - 0.1.2 版本中新增。如果产品软件包低于适用版本,应该使用底层级 API 模拟实现:
否则,已创建的定时无服务器云函数调用任务可能永远不会被运行。
该方法没有参数。
该方法没有返回值。
该方法可能会主动引发以下异常:
没有已创建的定时调用任务需要运行或正在运行。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.2
命名空间和类:tencent.cloud.serverless.functions.Client
命名空间和类:tencent.cloud.serverless.functions.Client
创建一个新层或已存在层的新版本。
该方法的参数和参数描述如下:
该方法返回可等待操作对象,这将允许您等待层或层版本资源真正地创建完成。返回的可等待对操作对象包含操作结果,其指示新创建的层或层版本的版本编号。
在 Tencent Cloud SDK for Python 0.1.6 或更低版本中,该方法返回新创建的层或层版本的版本编号。
该方法可能会主动引发以下异常:
参数值或类型不符合预期。
Tencent Cloud API 错误。例如访问凭据无效、给定无服务器云函数不存在等均会引发该异常。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.6
命名空间和类:tencent.cloud.serverless.functions.Client
返回包含给定无服务器云函数基本信息的字典实例,其数据类型为 。
该方法返回给定无服务器云函数指定 Request ID 的运行结果字典实例,其数据类型为 。
该方法返回一个用于遍历获取符合过滤条件的无服务器云函数运行结果的生成器实例,生成器实例每次迭代返回包含无服务器云函数运行结果的字典实例,其数据类型为 。
参数
类型
必选
描述
region_id
str
是
调用的无服务器云函数所在数据中心的唯一标识符。
namespace_name
str
是
调用的无服务器云函数所在命名空间的名称。
function_name
str
是
调用的无服务器云函数名称。
function_event
dict
否
调用的无服务器云函数事件。
如果该参数被忽略或设置为 None
,默认传递空事件。
function_version
str
否
调用的无服务器云函数版本名称。
如果该参数被忽略或设置为 None
,默认调用最新版本。
function_async
bool
否
调用的无服务器云函数是否以异步的方式运行。
如果该参数被忽略或设置为 None
,默认以同步方式运行。
参数
类型
必选
描述
region_id
str
是
更新的无服务器云函数所在数据中心的唯一标识符。
namespace_name
str
是
更新的无服务器云函数所在命名空间的名称。
function_name
str
是
更新的无服务器云函数名称。
function_description
str
否
更新的无服务器云函数描述正文。如果该参数被忽略或设置为 None
,默认不更新描述正文。
function_configure
否
更新的无服务器云函数配置字典实例。如果该参数被忽略或设置为 None
,默认不更新函数配置。
参数
类型
必选
描述
region_id
str
是
删除的无服务器云函数所在数据中心的唯一标识符。
namespace_name
str
是
删除的无服务器云函数所在命名空间的名称。
function_name
str
是
删除的无服务器云函数名称。
参数
类型
必选
描述
region_id
str
是
当前无服务器云函数所在数据中心的唯一标识符。
namespace_name
str
是
当前无服务器云函数所在命名空间的名称。
function_name
str
是
当前无服务器云函数名称。
target_region_id
str
是
目标无服务器云函数所在数据中心的唯一标识符。
target_namespace_name
str
是
目标无服务器云函数所在命名空间的名称。
target_function_name
str
是
目标无服务器云函数名称。
allow_override
bool
否
如果目标无服务器云函数已存在,是否允许将其覆盖。如果该参数被忽略或设置为 None
,默认不允许覆盖。
copy_configure
bool
否
是否将当前无服务器云函数配置拷贝给目标无服务器云函数。如果该参数被忽略或设置为 None
,默认不拷贝当前函数配置。
软件包名称
软件包类型
产品名称
tencent-cloud-sdk-auth
基础软件包
Tencent Cloud SDK for Python - 核心
tencent-cloud-sdk-core
基础软件包
Tencent Cloud SDK for Python - 核心
tencent-cloud-sdk-serverless-functions
产品软件包
Tencent Cloud - 无服务器云函数
参数
类型
必选
描述
region_id
str
是
更新的无服务器云函数所在数据中心的唯一标识符。
namespace_name
str
是
更新的无服务器云函数所在命名空间的名称。
function_name
str
是
更新的无服务器云函数名称。
function_code
是
更新的无服务器云函数代码实例。
function_handler
str
是
更新的无服务器云函数的入口函数符号名。
参数
类型
必选
描述
region_id
str
是
发布的无服务器云函数所在数据中心的唯一标识符。
namespace_name
str
是
发布的无服务器云函数所在命名空间的名称。
function_name
str
是
发布的无服务器云函数名称。
version_description
str
否
发布的无服务器云函数版本的描述正文。
配置
值
运行环境
Python 3.6
内存上限
64 MBytes
入口函数
index.main
运行角色
QCS_SCFExcuteRole
参数
类型
必选
描述
region_id
str
是
获取的无服务器云函数所在数据中心的唯一标识符。
namespace_name
str
是
获取的无服务器云函数所在命名空间的名称。
requirement_context
否
包含检索过滤条件的字典实例。
参数 | 类型 | 必选 | 描述 |
region_id | str | 是 | 获取的无服务器云函数所在数据中心的唯一标识符。 |
namespace_name | str | 是 | 获取的无服务器云函数所在命名空间的名称。 |
function_name | str | 是 | 获取的无服务器云函数名称。 |
参数 | 类型 | 必选 | 描述 |
region_id | str | 是 | 获取的无服务器云函数所在数据中心的唯一标识符。 |
namespace_name | str | 是 | 获取的无服务器云函数所在命名空间的名称。 |
function_name | str | 是 | 获取的无服务器云函数名称。 |
function_version | str | 否 | 获取的无服务器云函数版本名称。 |
参数 | 类型 | 必选 | 描述 |
region_id | str | 是 | 获取的无服务器云函数所在数据中心的唯一标识符。 |
namespace_name | str | 是 | 获取的无服务器云函数所在命名空间的名称。 |
function_name | str | 是 | 获取的无服务器云函数名称。 |
function_request_id | str | 是 | 获取的无服务器云函数 Request ID 字符串。 |
function_version | str | 否 | 获取的无服务器云函数的版本名称。如果该参数被忽略或设置为 None,默认为最新版本。 |
参数 | 类型 | 必选 | 描述 |
region_id | str | 是 | 创建的命名空间所在数据中心的唯一标识符。 |
namespace_name | str | 是 | 创建的命名空间名称。 |
namespace_description | str | 否 | 创建的命名空间描述正文。 |
参数 | 类型 | 必选 | 描述 |
region_id | str | 是 | 更新的命名空间所在数据中心的唯一标识符。 |
namespace_name | str | 是 | 更新的命名空间名称。 |
namespace_description | str | 是 | 更新的命名空间描述正文。 |
参数 | 类型 | 必选 | 描述 |
region_id | str | 是 | 创建触发器的无服务器云函数所在数据中心的唯一标识符。 |
namespace_name | str | 是 | 创建触发器的无服务器云函数所在命名空间的名称。 |
function_name | str | 是 | 创建触发器的无服务器云函数名称。 |
function_trigger | 是 | 代表无服务器云函数触发器配置的 FunctionTrigger 实例。 |
function_version | str | 否 | 创建触发器的无服务器云函数版本名称。 |
参数 | 类型 | 必选 | 描述 |
region_id | str | 是 | 获取的无服务器云函数所在数据中心的唯一标识符。 |
namespace_name | str | 是 | 获取的无服务器云函数所在命名空间的名称。 |
function_name | str | 是 | 获取的无服务器云函数名称。 |
requirement_context | 否 | 过滤符号条件的无服务器云函数运行结果的过滤器上下文字典实例。 |
function_version | str | 否 | 获取的无服务器云函数的版本名称。如果该参数被忽略或设置为 None,默认为最新版本。 |
参数 | 类型 | 必选 | 描述 |
region_id | str | 是 | 删除触发器的无服务器云函数所在数据中心的唯一标识符。 |
namespace_name | str | 是 | 删除触发器的无服务器云函数所在命名空间的名称。 |
function_name | str | 是 | 删除触发器的无服务器云函数名称。 |
function_trigger | 是 | 代表无服务器云函数触发器配置的 FunctionTrigger 实例。 |
function_version | str | 否 | 删除触发器的无服务器云函数版本名称。 |
参数 | 类型 | 必选 | 描述 |
region_id | str | 是 | 创建层的数据中心唯一标识符。 例如: |
layer_name | str | 是 | 创建的层的唯一名称。 例如: |
layer_description | str | 是 | 创建的层的描述正文。 例如: |
layer_content | 是 | 包含创建的层的数据的 LayerContent 实例。 例如: |
layer_runtimes | list | 是 | 包含创建的层兼容的无服务器云函数运行时名称的列表实例。 例如: |
layer_license | str | 否 | 创建的层的许可正文。 例如: |
命名空间和类:tencent.cloud.serverless.functions.Client
命名空间和类:tencent.cloud.serverless.functions.Client
获取已创建就绪的层的所有层版本信息。
该方法的参数和参数描述如下:
该方法返回一个用于遍历获取符合过滤条件的层信息的生成器实例,生成器实例每次迭代返回包含层信息的字典实例,其数据类型为 LayerInfo。
请注意,由于该方法背后的 Tencent Cloud API 不支持分页检索,该方法将试图一次性获取所有符合条件的层信息。
该方法可能会主动引发以下异常:
参数值或类型不符合预期。
Tencent Cloud API 错误。例如访问凭据无效、给定无服务器云函数不存在等均会引发该异常。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.2
命名空间和类:tencent.cloud.serverless.functions.Client
获取一个已创建层的指定层版本的信息。
该方法的参数和参数描述如下:
该方法返回包含层信息的字典实例,其数据类型为 LayerInfo。
该方法可能会主动引发以下异常:
参数值或类型不符合预期。
Tencent Cloud API 错误。例如访问凭据无效、给定无服务器云函数不存在等均会引发该异常。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.2
命名空间和类:tencent.cloud.serverless.functions.Client
获取已创建的所有层的最新层版本信息。
该方法的参数和参数描述如下:
该方法返回一个用于遍历获取符合过滤条件的层信息的生成器实例,生成器实例每次迭代返回包含层信息的字典实例,其数据类型为 LayerInfo。
该方法在内部维护一个缓冲循环,每次使用 Tencent Cloud API 检索并获取 20 条符合条件的层信息。
该方法可能会主动引发以下异常:
参数值或类型不符合预期。
Tencent Cloud API 错误。例如访问凭据无效、给定无服务器云函数不存在等均会引发该异常。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.2
命名空间和类:tencent.cloud.serverless.functions.Client
命名空间和类:tencent.cloud.serverless.functions.Client
获取给定数据中心已创建的命名空间基本信息。
该方法的参数和参数描述如下:
该方法返回一个用于遍历获取命名空间基本信息的生成器实例,生成器实例每次迭代返回包含命名空间基本信息的字典实例,其数据类型为 NamespaceInfo。
该方法在内部维护一个缓冲循环,每次使用 Tencent Cloud API 检索并获取 20 条符合条件的无服务器云函数运行结果。
该方法可能会主动引发以下异常:
参数值或类型不符合预期。
Tencent Cloud API 错误。例如访问凭据无效、给定命名空间不存在等均会引发该异常。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.1
命名空间和类:tencent.cloud.serverless.functions.Client
删除一个已创建就绪的层或层的指定版本。
该方法的参数和参数描述如下:
在 Tencent Cloud SDK for Python 0.1.6 或更低版本中,参数 layer_version
必须提供。
该方法没有返回值。
该方法可能会主动引发以下异常:
参数值或类型不符合预期。
Tencent Cloud API 错误。例如访问凭据无效、给定无服务器云函数不存在等均会引发该异常。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.6
命名空间和模块:tencent.cloud.serverless.functions.client.FunctionCode
命名空间和模块:tencent.cloud.serverless.functions.client.FunctionTrigger
命名空间和模块:tencent.cloud.serverless.functions.client.FunctionTrigger
命名空间和类:tencent.cloud.serverless.functions.Client
获取给定无服务器云函数的源代码 ZIP 档案下载 URL 字符串。
该方法的参数和参数描述如下:
返回给定无服务器云函数的源代码 ZIP 档案下载 URL 字符串。
该方法可能会主动引发以下异常:
参数值或类型不符合预期。
Tencent Cloud API 错误。例如访问凭据无效、给定无服务器云函数不存在等均会引发该异常。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.1
参数
类型
必选
描述
region_id
str
是
无服务器云函数所在数据中心的唯一标识符。
例如:ap-shanghai
namespace_name
str
是
无服务器云函数所在命名空间的唯一名称。
例如:default
function_name
str
是
无服务器云函数的唯一名称。
例如:hello
indicator_name
str
是
上报的自定义指标唯一名称。
例如:number_of_invokes
indicator_value
int
是
上报的自定义指标对应的数据值。
例如:1
function_version
str
否
无服务器云函数版本唯一名称。
例如:$LATEST
参数
类型
必选
描述
region_id
str
是
获取的层的数据中心唯一标识符。
例如:ap-shanghai
layer_name
str
时
获取的层的唯一名称。
requirement_context
dict
否
包含层过滤器上下文的字典实例,其数据类型为 LayerFilter。
参数
类型
必选
描述
region_id
str
是
层的数据中心唯一标识符。
例如:ap-shanghai
layer_name
str
是
层的唯一名称。
例如:default
layer_version
int
是
层的版本编号。
例如:1
参数
类型
必选
描述
region_id
str
是
层的数据中心唯一标识符。
例如:ap-shanghai
requirement_context
dict
否
包含层过滤器上下文的字典实例,其数据类型为 LayerFilter。
参数
类型
必选
描述
region_id
str
是
创建的命名空间所在数据中心的唯一标识符。
namespace_name
str
是
创建的命名空间名称。
参数
类型
必选
描述
region_id
str
是
获取的命名空间所在数据中心的唯一标识符。
参数
类型
必选
描述
region_id
str
是
删除的层的数据中心唯一标识符。
例如:ap-shanghai
layer_name
str
是
删除的层的唯一名称。
例如:default
layer_version
int
否
删除的层的版本编号。
如果该参数被忽略或设置为 None
,默认批量删除所有层版本。
例如:1
参数 | 类型 | 必选 | 描述 |
region_id | str | 是 | 获取的无服务器云函数所在数据中心的唯一标识符。 |
namespace_name | str | 是 | 获取的无服务器云函数所在命名空间的名称。 |
function_name | str | 是 | 获取的无服务器云函数名称。 |
function_version | str | 否 | 获取的无服务器云函数版本名称。 |
命名空间和模块:tencent.cloud.serverless.functions.client
参数 | 类型 | 必选 | 描述 |
timer_name | str | 是 | 定时触发器的唯一名称。 绑定该触发器的无服务器云函数可通过触发事件获得该触发器的唯一名称。 |
timer_cron | str | 是 | 定时触发器触发周期标准 Cron 表达式。 |
属性 | 类型 | 描述 |
is_successful | bool | 该属性指示无服务器云函数是否成功调用、运行。 |
exception | Exception | 该属性指示无服务器云函数调用过程中所引发(如果有)的异常类型。 |
result | dict | 该属性包含无服务器云函数的运行结果,其数据类型为 。 |
return_value | ... | 该属性包含无服务器云函数的实际返回值,请参阅类 Client 的实例方法 的返回值说明。 |
命名空间和类:tencent.cloud.serverless.functions.Client
命名空间和模块:tencent.cloud.serverless.functions
为当前无服务器云函数使用例程派发器框架。
当该函数的参数 override_handler
被忽略或值设置为 True
时,该函数将尝试查找本次函数调用是由哪一个 Python 模块发起,并在来源 Python 模块中创建或覆盖名为 main
的无服务器云函数执行方法。
请注意,请确保当前无服务器云函数的执行方法名为 main,并且仅在包含执行方法定义的 Python 模块中调用一次该函数,否则该函数可能无法正常工作。
如果您的无服务器云函数已确定使用适用于无服务器云函数集成调用的例程派发器框架,您将无需为该无服务器云函数编写名为 main
的执行方法。
该函数拥有的参数、参数类型和参数描述如下:
该函数返回适用于无服务器云函数集成调用的例程派发器 IntegrateDispatch
实例。
该函数可能会主动引发以下异常类型:
参数值或类型不符合预期。
该函数无法确定当前函数调用来自于哪一个 Python 模块。
接下来我们将通过一段 Python 代码片段向您演示如何使用该函数:
现在,Python 原生函数 addend
已向例程派发器注册并对外提供可名为 addend
的可调用例程。
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.5
命名空间和模块:tencent.cloud.serverless.functions
获取适用于当前超线程的内建无服务器云函数产品客户端实例。
如果在当前超线程中从未创建过内建无服务器云函数产品客户端实例,默认创建新的客户端实例并将其设置为适用于当前超线程的内置客户端实例,反之复用已创建的客户端实例。
该函数不允许指定被创建无服务器云函数产品客户端的访问凭据,这意味着您的应用程序只能使用可被自动查找并设置的环境凭据或文件凭据,详情请参阅最佳实践篇:
在 Tencent Cloud SDK for Python 0.1.3 或更低版本中,您可以考虑使用非公开实验性 API 替代该函数:
请注意,函数 get_builtin_client
与 fetch_client
不同,它试图在多个超线程上下文中共享同一个内建地无服务器云函数产品客户端实例,这可能会在多线程模型的应用程序中产生意外的脏数据。
最佳实践是升级并集成最新的 Tencent Cloud SDK for Python 版本。
该函数没有参数。
该函数返回适用于当前超线程的内置无服务器云函数产品客户端实例。如果在相同的超线程上下文中多次调用该函数,每次调用返回的无服务器云函数产品客户端实例是相同的。
该函数可能会主动引发以下异常类型:
没有找到可用的文件凭据或环境凭据。
查找到的文件凭据缺失必要的访问凭据字段。
接下来我们将通过一段 Python 代码向您演示如何使用该函数:
如果当前复用的无服务器云函数产品客户端实例不再干净,您可以考虑使用函数 destroy_client
销毁适用于当前超线程的内置无服务器云函数产品客户端实例。
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.3
命名空间和模块:tencent.cloud.serverless.functions.client.FunctionCode
配置使用本机硬盘上的 ZIP 压缩档案文件作为无服务器云函数源代码来源。
该方法具有以下参数,其参数、参数类型和参数描述如下:
该方法返回当前代表无服务器云函数源代码配置的 FunctionCode 类实例本身。
该方法可能会主动引发的异常类型如下:
参数值或类型不符合预期。
给定 ZIP 压缩档案文件不存在或无法读取。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.1
命名空间和模块:tencent.cloud.serverless.functions.client.FunctionTrigger
配置使用消息队列主题触发器。什么是消息队列主题触发器?
该方法具有以下参数,其参数、参数类型和参数描述如下:
请注意,该方法参数 topic_instance_id 和 topic_requirement_context 是保留参数,这些参数应始终忽略或设置为 None,否则将引发 NotImplementedError 异常。
该方法返回当前代表触发器配置的 FunctionTrigger 类实例本身。
该方法可能会主动引发的异常类型如下:
参数值或类型不符合预期。
保留参数被设置为非预期值。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.1
命名空间和模块:tencent.cloud.serverless.functions.client.FunctionTrigger
命名空间和模块:tencent.cloud.serverless.functions.client.FunctionCode
参数
类型
必选
描述
region_id
str
是
下载源代码的无服务器云函数所在数据中心的唯一标识符。
namespace_name
str
是
下载源代码的无服务器云函数所在命名空间的名称。
function_name
str
是
下载源代码的无服务器云函数名称。
function_version
str
否
下载源代码的无服务器云函数版本名称。
download_file_name
str
否
存储源代码 ZIP 档案的本机文件名。如果该参数被忽略或设置为 None,默认下载到当前工作目录,文件名以 function-code-{FUNCTION_NAME}-{FUNCTION_VERSION}.zip
命名。
成员
类型
必选
描述
function_name
str
否
无服务器云函数的名称
return_result
str
是
无服务器云函数的包装返回值。
is_successful
bool
是
无服务器云函数是否成功运行和结束。
start_time
str
是
无服务器云函数的运行开始时间字符串。
run_duration
int
是
无服务器云函数的运行时长(毫秒)。
bill_duration
int
是
无服务器云函数的计费时长(毫秒)。
usage_memory_size
int
是
无服务器云函数运行时最高占用内存(MBytes)。
run_log
str
否
无服务器云函数的运行日志。
log_level
str
否
无服务器云函数的运行日志等级。
log_source
str
否
无服务器云函数的运行日志来源。
参数
类型
必选
描述
override_handler
bool
否
是否创建或覆盖调用该函数的模块中的无服务器云函数 main
函数。
成员
类型
必选
描述
namespace_name
str
是
无服务器云函数所属的命名空间名称。
status
str
是
无服务器云函数的当前状态。
type
str
是
无服务器云函数的类型。
id
str
是
无服务器云函数的唯一标识符。
name
str
是
无服务器云函数的名称。
description
str
是
无服务器云函数的描述正文。
runtime
str
是
无服务器云函数的运行时名称。
tags
dict
是
无服务器云函数已标记的标签对。
<name>: <value>
last_modified_time
str
是
无服务器云函数的最后修改时间字符串。
create_time
str
是
无服务器云函数的创建时间字符串。
参数
类型
必选
描述
local_file_path
str
是
本机硬盘上的 ZIP 压缩档案文件路径。
成员
类型
必选
描述
handler
str
否
无服务器云函数的入口函数符号名。
memory_size
int
否
无服务器云函数的运行时内存上限(MBytes)。
time_out
int
否
无服务器云函数的运行时长上限(秒)。
vpc_configure
dict
否
无服务器云函数的内网访问配置字典实例。
vpc_configure.vpc_id
str
是
无服务器云函数运行时所在私有网络 ID。
vpc_configure.subnet_id
str
是
无服务器云函数运行时所在私有网络的子网 ID。
role_id
str
否
无服务器云函数的运行角色 ID。
log_configure
dict
否
无服务器云函数的日志服务配置字典实例。
log_configure.logset_id
str
是
存储无服务器云函数日志的日志集 ID。
log_configure.topic_id
str
是
存储无服务器云函数日志的日志主题 ID。
environments
dict
否
无服务器云函数运行时环境变量字典实例。
eip_configure
dict
否
包含无服务器云函数弹性公网 IP 配置的字典实例。
eip_configure.enabled
bool
是
是否启用无服务器云函数公网访问时固定弹性公网 IP 功能。
eip_configure.addresses
list<str>
是
包含无服务器云函数公网访问弹性公网 IP 的列表实例。
access_configure
dict
否
包含无服务器云函数 HTTP 访问端点配置的字典实例。
access_configure.hostname
str
是
无服务器云函数 HTTP 访问端点主机名。
access_configure.ip_address
str
是
无服务器云函数 HTTP 访问主机的 VIP 地址。
layers
list<dict>
否
包含无服务器云函数已关联层信息的列表实例,其成员的数据类型为 LayerInfo。
dead_letter
dict
否
包含无服务器云函数死信队列配置的字典实例。
dead_letter.type
str
是
无服务器云函数死信队列类型。
dead_letter.name
str
是
无服务器云函数死信队列名称。
成员
类型
必选
描述
name
str
是
命名空间的名称。
description
str
是
命名空间的描述正文。
create_time
str
是
命名空间的创建时间字符串。
last_modified_time
str
是
命名空间的最后修改时间字符串。
type
str
是
命名空间的类型。
参数
类型
必选
描述
topic_name
str
是
消息队列主题名称。
topic_instance_id
str
否
消息队列主题所属的消息队列实例唯一标识符。
topic_requirement_context
否
包含消息队列主题消息过滤描述结构的字典实例。
成员 | 类型 | 必选 | 描述 |
name | str | 是 | 无服务器云函数版本名称。 |
description | str | 是 | 无服务器云函数版本描述正文。 |
参数 | 类型 | 必选 | 描述 |
region_id | str | 是 | 对象存储桶所在数据中心园区的可用区唯一标识符。 |
bucket_name | str | 是 | 对象存储桶的完全名称,例如 |
object_name | str | 是 | 对象存储桶中用于作为无服务器云函数源代码 ZIP 档案文件的对象名称。 |
参数 | 类型 | 必选 | 描述 |
bucket_endpoint | str | 是 | 对象存储桶的 XML API 访问端点主机名。 |
bucket_requirement_context | 是 | 包含对象存储桶触发器事件过滤描述结构的字典实例。 |
命名空间和模块:tencent.cloud.serverless.database.client
代表无服务器数据库产品客户端的类。通过利用无服务器数据库产品客户端,您可以以同步或异步面向对象编程的方式快速访问无服务器数据库产品。
继承:tencent.cloud.core.client.UniversalClient
类
该类仅支持构造类实例后使用,其构造实例方法签名如下:
该类可公开访问的属性继承自通用产品客户端,请参阅 UniversalClient 类的属性:
在下文中,我们将向您演示如何正确地构造一个无服务器数据库客户端实例并使用它:
通常情况下,建议您使用环境凭证或文件凭证,而不是将访问凭证硬编码。与无服务器云函数产品客户端一样,您可以使用 fetch_client
函数获取适用于当前超线程的无服务器数据库产品客户端实例。
产品软件包:tencent-cloud-sdk-serverless-database >= 0.1.1
命名空间和模块:tencent.cloud.serverless.functions.errors
成员
类型
必选
描述
event_id
str
是
按对象存储桶事件 ID 过滤触发事件。
prefix_name
str
否
按对象存储桶事件中对象的前缀路径过滤触发事件。
suffix_name
str
否
按对象存储桶事件中对象的后缀路径过滤触发事件。
成员
类型
必选
描述
time
dict
否
按无服务器云函数的运行开始、结束时间过滤。
time.start_timestamp
int
是
无服务器云函数开始运行的 UNIX UTC 时间戳。
time.end_timestamp
int
是
无服务器云函数结束运行的 UNIX UTC 时间戳。
type
str
否
无服务器运行函数运行结果的类型。
包含受支持运行结果类型的有 FunctionResultType 枚举器。
成员
类型
必选
描述
name
str
是
层唯一名称。
description
str
是
层描述正文。
version
int
是
层版本编号。
runtimes
list<str>
是
包含层兼容的运行时名称的列表实例。 与之关联的是 FunctionRuntime 枚举器。
license
str
是
层许可正文。
create_time
str
是
层创建时间字符串。
content
dict
否
包含层数据相关信息的字典实例。
content.url
str
是
层数据 ZIP 档案下载 URL。
content.hash
str
是
层数据 ZIP 档案 SHA256 校验字符串。
status
str
是
层状态。 与之关联的是 LayerStatus 枚举器。
成员
类型
必选
描述
search
dict
否
根据符合条件的关键词过滤。
search.function_name
str
是
根据符合条件的无服务器云函数名称关键字过滤。
tags
list
否
根据符合条件的资源标签过滤。
tags[index]
dict
否
根据符合条件的资源标签过滤。
tags[index].name
str
是
根据符合条件的资源标签名称过滤。
tags[index].values
list<str>
是
根据符合条件的资源标签值过滤。
参数
类型
必选
描述
access_credentials
Credentials
否
访问凭据类实例。如果该参数被忽略或设置为 None
,默认设置为环境凭据或文件凭据。
access_proiexs
否
代理服务器配置类实例。如果该参数被忽略或设置为 None
,默认不使用任何代理服务器。
属性 | 类型 | 描述 |
error_message | str | 错误描述。 |
request_id | str | 出错的无服务器云函数调用唯一标识符(Request ID)字符串。 |
参数 | 类型 | 必选 | 描述 |
error_message | str | 是 | 错误描述。 |
request_id | str | 是 | 出错的无服务器云函数调用唯一标识符(Request ID)字符串。 |
命名空间和模块:tencent.cloud.serverless.functions.client.FunctionCode
配置使用给定 Git 仓库作为无服务器云函数源代码来源。
该方法具有以下参数,其参数、参数类型和参数描述如下:
该方法返回当前代表无服务器云函数源代码配置的 FunctionCode 类实例本身。
该方法可能会主动引发的异常类型如下:
参数值或类型不符合预期。
下面我们将通过一段 Python 代码向您演示如何使用该方法:
产品软件包:tencent-cloud-sdk-serverless-functions >= 0.1.1
成员
类型
必选
描述
info
是
包含无服务器云函数基本信息的字典实例。
configure
是
包含无服务器云函数配置信息的字典实例。
参数
类型
必选
描述
git_url
str
是
Git 仓库 URL 字符串。
git_branch_name
str
否
Git 仓库中已创建的分支名称。
git_directory_name
str
否
Git 仓库中包含用于无服务器云函数源代码的目录名称。
git_commit_id
str
否
Git 仓库中包含用于无服务器云函数源代码的提交 ID。
git_username
str
否
拥有给定 Git 仓库访问权限的用户名。
git_password
str
否
拥有给定 Git 仓库访问权限用户的密码。
成员 | 类型 | 必选 | 描述 |
runtimes | list<str> | 否 | 包含层兼容运行时名称的列表实例。 |
search | dict | 否 | 包含层属性关键字搜索(匹配)属性的字典实例。 |
search.name | str | 是 | 层名称匹配关键字。 例如: |
属性
类型
描述
error_message
str
错误描述。
request_id
str
出错的无服务器云函数调用唯一标识符(Request ID)字符串。