详情页标题前

腾讯云云函数(SCF)Custom Runtime 说明-云淘科技

详情页1

在云函数(Serverless Cloud Function,SCF)已支持的开发语言及版本的标准运行环境外,为了满足更多个性化开发语言及版本的函数实现,SCF 提供了 Custom Runtime 服务,即可定制化运行环境。通过开放实现自定义函数运行时,支持根据需求使用任意开发语言的任意版本来编写函数,并实现函数调用中的全局操作,如扩展程序的加载,安全插件,监控 agent 等。SCF 与 Custom Runtime 通过 HTTP 协议通信完成事件的响应处理。

Custom Runtime 部署文件说明

bootstrap:Custom Runtime 固定的可执行引导程序文件,由开发者创建同名可执行程序文件,通过自定义语言及版本实现,直接处理或者通过启动其他可执行文件来处理,完成函数运行时的初始化和调用。
函数文件:开发者通过自定义语言及版本开发实现的函数程序文件。
运行时依赖的库文件或可执行文件:根据自定义语言及版本运行时需要,添加相关依赖的库文件或可执行文件。通过部署包方式发布,文件构成如下:bootstrap(必须)函数文件(必须)运行时依赖的库文件或可执行文件(可选)由于部署包体积限制,运行时依赖的库文件或者可执行文件体积较大时,建议通过部署包绑定层的组合方式发布,文件构成如下:部署包:bootstrap(必须)函数文件(必须)层:运行时依赖的库文件或可执行文件(可选)注意以上部署文件中的可执行文件发布至 SCF 前请务必设置好文件的可执行权限,并将部署文件打包后通过 zip 包方式直接上传或通过 COS 上传。例如,当您在 Linux 系统中使用 root 账户编译文件,您可以使用 chmod -R 777 your_path 指令更改文件的权限。

Custom Runtime 运行机制

Custom Runtime 将函数的运行时周期分为初始化阶段和调用阶段。初始化阶段只在实例冷启动过程中一次性执行,调用阶段是实例启动之后每次响应事件调用的执行过程。
不同开发语言及版本的启动时间和执行时间会有差异,SCF 针对 Custom Runtime 增加了初始化超时时间配置,与执行超时时间配置一起管理 Custom Runtime 的运行时生命周期。

函数引导加载

SCF 首先检索部署包中的可执行引导文件 bootstrap,根据检索结果并进行如下操作:检索到 bootstrap 文件且可执行,加载执行 bootstrap 程序,进入函数初始化阶段。未检索到 bootstrap 文件或文件不可执行,返回 bootstrap 文件不存在,启动失败。

函数初始化

开始于执行 bootstrap 引导程序文件,开发者可以根据需要在 bootstrap 中自定义实现个性化操作,直接处理或调用其他可执行程序文件来完成初始化操作。以下为建议在初始化阶段完成的基础操作:设定运行时依赖库的路径及环境变量等。加载自定义语言及版本依赖的库文件及扩展程序等,如仍有依赖文件需要实时拉取,可下载至 /tmp 目录。解析函数文件,并执行函数调用前所需的全局操作或初始化程序(如开发工具包客户端 HTTP CLIENT 等初始化、数据库连接池创建等),便于调用阶段复用。启动安全、监控等插件。初始化阶段完成后,需要主动调用运行时 API,访问初始化就绪接口 /runtime/init/ready 通知 SCF,Custom Runtime 运行时已完成初始化,进入就绪状态,否则 SCF 会持续等待,直到达到配置的初始化超时时间后,结束 Custom Runtime 并返回初始化超时错误。若重复通知,则会以首次访问时间作为就绪状态时间节点。

日志及异常

SCF 将会收集初始化阶段所有标准输出上报至日志。函数初始化在超时限制内正常执行完成,初始化阶段的日志会与首次调用日志合并返回。如果在初始化超时限制内由于错误异常未能完成执行,则执行结果返回初始化超时错误,写入标准输出的程序错误及异常日志会上报给 SCF,在控制台日志及日志查询中展示。

函数调用

函数调用阶段需要开发者自定义实现事件获取、调用函数及结果的返回,并循环处理这个过程。长轮询获取事件,开发者通过自定义语言及版本实现 HTTP CLIENT 访问运行时 API 的事件获取接口 /runtime/invocation/next,响应正文包含事件数据,在一次调用内重复访问此接口均返回相同事件数据。注意HTTP CLIENT 请勿设置 get 方法的超时。根据环境变量、响应头中所需信息及事件信息构建函数调用的参数。推送事件信息等参数数据,调用函数处理程序。访问运行时 API 响应结果接口 /runtime/invocation/response 推送函数处理结果,首次调用成功为事件终态,SCF 将进行状态锁定,推送后结果不可变更。如果函数调用阶段出现错误,通过访问运行时 API 调用错误接口 /runtime/invocation/error 推送错误信息,同时本次调用结束,首次调用视为事件终态,SCF 将进行状态锁定,继续推送结果不可变更。清理释放本次调用结束后不再需要的资源。

日志及异常

SCF 将会收集调用阶段所有标准输出上报至日志。SCF 下发事件后,Custom Runtime 较长时间未获取事件,超过函数执行超时限制,SCF 将结束实例并返回等待获取事件超时错误。SCF 下发事件后,Custom Runtime 获取到事件但未在函数执行超时限制内返回执行结果,SCF 将结束实例并返回执行超时错误。

Custom Runtime 运行时 API

Custom Runtime 由开发者使用自定义语言及版本实现,与 SCF 之间的事件下发、处理结果反馈等需要通过标准协议来进行通信。因此 SCF 提供了运行时 API,来满足与 Custom Runtime 生命期中的交互需要。SCF 内置有以下环境变量:SCF_RUNTIME_API:运行时 API 地址。SCF_RUNTIME_API_PORT:运行时 API 端口。更多信息请参阅 环境变量。Custom Runtime 可以通过 SCF_RUNTIME_API:SCF_RUNTIME_API_PORT 来访问运行时 API。

路径 方法 说明
/runtime/init/ready post 运行时初始化完成后,调用接口标识进入就绪状态。
/runtime/invocation/next get 获取调用事件。响应头包含以下信息:request_id:请求 ID,用于标识触发了函数调用的请求。memory_limit_in_mb:函数内存限制,单位为MB。time_limit_in_ms:函数超时时间,单位为毫秒。响应体包含事件数据,结构参见 触发器事件消息结构汇总。
/runtime/invocation/response post 函数处理结果。在运行时调用函数处理程序后,将来自函数的响应推送到调用响应接口。
/runtime/invocation/error post 函数返回错误推送到调用错误接口,标识本次调用失败。



官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/149702.html

(0)
上一篇 2023年12月9日 下午1:24
下一篇 2023年12月9日 下午1:24
详情页2

相关推荐

  • 腾讯云云函数(SCF)函数概述-云淘科技

    Web 函数(Web Function)是云函数的一种函数类型,区别于事件函数(Event Function)对于事件格式的限制,专注于优化 Web 服务场景,用户可以直接发送 HTTP 请求到 URL 触发函数执行。 功能与优势 相较于事件型函数,Web 函数在支持 Web 服务场景的能力上,具备以下优势:函数可以直接接收并处理 HTTP 或 WebSoc…

    2023年12月9日
  • 腾讯云内容分发网络CDN步骤三:配置 CDN 域名

    1. 登录 CDN 控制台,在左侧导航栏中,单击域名管理进入域名管理页面,单击添加域名。 2. 域名配置根据您的网站信息,配置如下: 如上图所示,当接入域名为泛域名,或已被其他用户接入,或首次接入一个新域名时,需要验证域名的归属权。若您的域名解析商为腾讯云,可以按照如下图配置 TXT 解析记录(针对主域名添加即可),完成验证即可添加该域名。更多详情…

    2023年12月9日
  • 腾讯云容器服务节点磁盘爆满排障处理同尘科技

    本文档介绍 TKE 集群中多场景下可能发生的磁盘爆满问题,并给出对应的排查思路及解决方案,请按照下文中的步骤进行排查并解决。 可能原因 kubelet 支持 gc 和驱逐机制,可通过 –image-gc-high-threshold、–image-gc-low-threshold、–eviction-hard、–eviction-soft 及 –e…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • DataWorks用脚本的方式同步数据到MySQL,怎么指定列作为目标表为唯一行?-云小二-阿里云

    DataWorks用脚本的方式同步数据到MySQL,怎么指定列作为目标表为唯一行? 以下为热心网友提供的参考意见 指定列作为目标表为唯一行—这个没有太理解 是mysql的某一列 设置了唯一键吗 同步任务可以正常映射 并配置写入冲突时的策略(在配置任务的时候可以选择) ,此回答整理自钉群“DataWorks交流群(答疑@机器人)” 以下为热心网友提…

    阿里云 2023年12月17日
  • 腾讯云云点播创建视频制作项目

    操作场景 通过云点播控制台,您可以创建视频制作项目,并对媒资管理中的音视频进行视频编辑。本文将为您介绍如何创建视频制作项目。注意:视频制作价格由 媒体处理时长 计费项抵扣,支持购买 媒体处理时长包 进行抵扣。导入视频素材时会产生转码与存储用量,转码后的素材视频可在媒资详情页中查看。使用视频制作产生的其他费用(例如存储、转码、视频加速)按照云点播计费项正常计费…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。