检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
FunctionGraph函数初始化入口 在示例代码中我们在initializer方法内创建Redis客户端,并在创建函数时配置了初始化函数,如下: def initializer(context): global redis_client redis_client
runtimeconfig.json文件的名称为程序集的名称。 文件内容中的version:项目属性中的目标框架的版本号,2.0则为2.0.0 ,2.1则为2.1.0。 当目标框架为.NET Core2.0时,要注意生成*.deps.json文件中是否已引入Newtonsoft.Json。如果没有引入,则需要自己手动引入,如下所示:
Deploy命令概览 Deploy命令 deploy 命令是对函数资源进行部署的命令,即将本地在 Yaml文件 中声明的资源部署到线上。 命令解析 参数解析 操作案例 注意事项 deploy function命令 参数解析 操作案例 deploy trigger命令 操作案例 父主题:
为什么函数实际使用内存大于预估内存,甚至触发OOM? 函数调用过程中,运行时会解析和缓存传入的event事件, 这部分操作会消耗额外的内存。 函数调用结束后,回收的内存首先会放入内部内存池中,并不一定归还给操作系统,导致内存偏高,在高并发场景下这种现象会更加明显。 父主题: 函数执行
添加事件源 选择准备中创建的日志组和日志流,创建LTS触发器,LTS触发器配置如图1所示。 图1 创建LTS触发器 云日志服务LTS的消费端在日志累积大小或日志累积时间满足条件时消费LTS日志数据,并根据订阅该组LTS日志数据的函数URN触发函数执行。 父主题: 函数+LTS:日志实时过滤
添加事件源 选择准备中创建的日志组和日志主题,创建LTS触发器,LTS触发器配置如图1所示。 图1 创建LTS触发器 LTS日志服务的消费端在日志累积大小或日志累积时间满足条件时消费LTS日志数据,并根据订阅该组LTS日志数据的函数URN触发函数执行。 父主题: 函数+LTS:日志实时分析实战
Deserialize<T>(Stream ins):反序列化值传递到Function处理程序的对象中。 Stream Serialize<T>(T value):序列化值传递到返回的响应负载中。 本例以Visual Studio 2017新建一个.NET Core2.0的“test”工程,
h函数,报500错误,该如何解决? FunctionGraph函数对来自APIG调用的返回结果进行了封装,APIG触发器要求函数的返回结果中必须包含body(String)、statusCode(int)、headers(Map)和isBase64Encoded(boolean),才可以正确返回。
若日志包含“WRN”、“WARN”、“ERR”或“ERROR”关键字的告警日志,可收到SMN发送的通知消息邮件,如图1所示。同时可以查看OBS桶中的log.txt文件,可查看到具体的告警日志内容,如图2所示。 图1 告警消息邮件通知 图2 告警日志详情 可以通过函数指标查看函数的调用情况,如图3所示。
命令解析 当执行命令remove -h/remove --help时,可以获取帮助文档。 在该命令中,包括了四个子命令: function:删除指定的函数 trigger:删除指定的触发器 version:删除指定的版本 alias:删除指定的别名 参数解析 表1 参数说明 参数全称
处理结果 若日志包含“WRN”、“WARN”、“ERR”或“ERROR”关键字的告警日志,则过滤出来并转储到准备好的日志流中。以下图1和图2是过滤前和过滤后的实时日志对比。 图1 过滤前日志 图2 过滤后日志 您可以通过函数指标查看函数的调用情况,如下 3 张图所示。 图3 函数指标1
本示例将调用部署的函数,并在终端中输出调用的结果。 带数据的函数调用 serverless invoke --function functionName --data '{"name": "Bob"}' 此示例将使用提供的数据调用函数,并在终端中输出调用的结果。 带传递数据的函数调用
format(value)) return value 客户端使用连接池时不要将获取连接的操作放在初始化函数 initializer 方法中,否则只会在初始化时获取一个连接而导致连接池使用无效。当网络抖动时可能会使已获取的连接断连,后续复用该实例的并发请求时可能会因断连而访问redis失败。
无自定义参数 Initializer不支持用户自定义参数,只能获取FunctionGraph提供的context参数中的变量进行相关逻辑处理。 无返回值 开发者无法从invoke的响应中获取initializer预期的返回值。 超时时间 开发者可单独设置initializer的超时时间,与h
如何在扩展中使用OpenTelemetry API 遥测是一种特殊的扩展,扩展进程中必须完成以下工作才能成功启用遥测功能: 在使用OpenTelemetry API之前,需要先注册拓展,具体内容可参考扩展API使用。 在拓展启动一个httpClient,向FunctionGraph发送注册Telemetry
使用API模式 通过Serverless应用中心和管理中台部署的Stable-Diffusion应用默认未开启API访问,您可以通过配置函数环境变量的方式开启,请参考配置环境变量为Stable-Diffusion函数配置如下环境变量并保存。 表1 环境变量 Key Value EXTRA_ARGS
参数解析 操作案例 remove命令 命令解析 当执行命令version -h/version --help时,可以获取帮助文档。 在该命令中,包括了两个子命令: list:查看版本列表 publish:发布版本 父主题: 版本 version
包,完成依赖包创建。 进入待配置依赖包的函数配置详情页,在“代码”页签下,请参见如何为函数添加依赖包,添加制作成功的私有依赖包。在函数代码中即可使用其功能。 父主题: 依赖包管理
处理文件 当文件上传后更新至dew-bucket-input桶时,会生成事件,触发函数运行,将文件加解密,保存在dew-bucket-output中。 上传文件生成事件 登录对象存储服务控制台,进入dew-bucket-input桶对象界面,上传image.jpg文件,如图1所示。 图1
创建Next.js项目 本案例以Next.js框架的默认demo为例演示部署过程,需要在Linux环境中创建一个全新的Next.js项目,本案例采用本地运行Docker node:18.15.0镜像的方式,同样适用于其他Linux系统。关于Docker镜像和Linux操作系统的使用并非本案例主要内容,不做过多赘述。