检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用函数模板创建并执行函数 FunctionGraph平台提供了多种函数模板,本章节将以“context使用指导”函数模板介绍如何在创建函数时选择模板,实现模板代码、运行环境自动填充,快速构建应用程序。 准备工作 注册华为账号并实名认证。
通过函数工作流,只需编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,函数以弹性、免运维、高可靠的方式运行。此外,按函数实际执行资源计费,不执行不产生费用。 您可以使用本文档提供API对函数资源进行相关操作,如创建、删除、查询、执行函数等。
创建功能函数 创建实现日志提取功能的函数,将示例代码包上传。创建过程请参考创建函数,运行时语言选择“Python2.7”,委托名称选择创建委托中的“serverless_trust”。
FunctionGraph监控告警 Redis自动重试机制能大幅度降低暂时性故障影响,但不能解决故障,故障不及时处理可能导致故障升级,所以需要告警来及时感知代码运行情况。
(当前以python语言为例,其他语言请根据实际情况改写) 图5 修改ak/sk获取代码 代码修改完成后,单击“部署”刷新代码。 父主题: FunctionGraph临时入库AK/SK替换指导
创建函数A,代码样例请参考write_log.py。函数A代码中host、log_group_id和log_stream_id使用对应接入点和创建好的日志组test-1206、日志流test-206的ID,如图2所示。
在函数详情页的“代码”页签,进行代码在线编辑,并传入如下所示的代码,完成后单击“部署”,更新函数。
状态码是一组从1xx到5xx的数字代码,状态码表示了请求响应的状态,完整的状态码列表请参见状态码。 对于获取用户Token接口,如果调用后返回状态码为“201”,则表示请求成功。 响应消息头 对应请求消息头,响应同样也有消息头,如“Content-type”。
处理结果 若用户触发账号的登录/登出操作,订阅服务类型日志被触发,日志会直接调用用户函数,通过函数代码对当前登录/出的账号进行IP过滤,若不在白名单内,可收到SMN发送的通知消息邮件,如图1所示。
根据Redis实例类型选择示例代码覆盖函数代码详情页中index.py内的代码。 图2 替换代码 在函数代码详情页,单击“添加依赖包”,选择私有依赖包源,添加创建依赖包创建的redis-py-4.6.0依赖包。
函数版本 函数从开发、测试、生产过程中发布一个或多个版本,实现对函数代码的管理。对于发布的每个版本的函数、环境变量会另存为相应版本的快照,函数代码发布后,可以根据实际需要修改版本配置信息。 函数别名 用户可以创建别名,指向特定函数版本。
自动化部署 部署环境准备 使用CodeArts托管函数代码 deploy.py代码示例 cam.yaml解析
创建函数 能否在函数代码中使用线程和进程? FunctionGraph函数工程打包有哪些规范(限制)? FunctionGraph如何隔离代码? HTTP函数bootstrap启动文件如何创建?
将skywalking agent直接嵌入到扩展代码中,即可通过扩展完成对函数请求的监控。
图1 获取内网域名对应的IP 切换到代码示例获取完整的代码,相关依赖请参见SDK信息。 图2 获取相关代码 父主题: 通用问题
(压缩为.zip/.jar文件) 40MB 否 调用函数接口时,在线编辑单个函数代码部署包大小(压缩为.zip/.jar文件) 50MB 否 调用函数接口时,单个代码部署包原始代码大小 zip格式:解压后原始代码大小为1500M OBS桶:最大可上传300M压缩后的代码包 否 单个账户下最大允许部署包大小
图8 到LTS进行日志分析 我的代码具有什么用户的执行权限? 和普通事件函数一样,代码执行时并没有root权限,因此需要root权限的代码或者命令都无法在HTTP函数里执行。 如何为多个模块的springboot项目进行打包配置?
函数生命周期管理 获取函数列表 创建函数 删除函数/版本 获取指定函数代码信息 修改函数代码 获取函数的metadata 修改函数的metadata信息 更新函数最大实例数 查询函数标签列表 禁用/启动函数快照 获取指定函数绑定的servicebridge函数列表 查询函数快照制作状态
图2 总览页参数 存储库信息中“名称”:通过该链接可跳转到相关函数代码托管的代码仓,可用于浏览及下载相关代码。 图3 代码页参数 常见问题排查方法 创建代码仓库失败,提示如图4所示。
在“代码”页签,复制如下代码替换默认的函数代码,并单击“部署”更新函数。