正在生成
详细信息:
检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
Go SDK使用范例 以同步执行函数为例,提供封装后的SDK。为了保证您成功使用以下示例代码,您需要先添加对应语言的SDK依赖。 表1 Go SDK信息说明 SDK信息 说明 安装 go get -u github.com/huaweicloud/huaweicloud-sdk-go-v3
欢迎使用函数工作流(FunctionGraph)。FunctionGraph是一项基于事件驱动的函数托管计算服务。通过函数工作流,只需编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,函数以弹性、免运维、高可靠的方式运行。此外,按函数实际执行资源计费,不执行不产生费用。
使用函数模板创建并执行函数 FunctionGraph平台提供了多种函数模板,本章节将以“context使用指导”函数模板介绍如何在创建函数时选择模板,实现模板代码、运行环境自动填充,快速构建应用程序。 准备工作 注册华为账号并实名认证。 在创建函数前,请先注册华为账号并实名认证,具体步骤请参考注册华为账号并开通华为云和实名认证介绍。
把对接第三方平台需要的依赖一起打包上传,且需要函数的运行时兼容。 将skywalking agent直接嵌入到扩展代码中,即可通过扩展完成对函数请求的监控。 示例代码:skywalking-go.zip func startSkywalkingAgent() { r, err
返回结果 状态码 请求发送以后,您会收到响应,包含状态码、响应消息头和消息体。 状态码是一组从1xx到5xx的数字代码,状态码表示了请求响应的状态,完整的状态码列表请参见状态码。 对于获取用户Token接口,如果调用后返回状态码为“201”,则表示请求成功。 响应消息头 对应请求
定制运行时语言 场景说明 运行时负责运行函数的设置代码、从环境变量读取处理程序名称以及从FunctionGraph运行时API读取调用事件。运行时会将事件数据传递给函数处理程序,并将来自处理程序的响应返回给FunctionGraph。 FunctionGraph支持自定义编程语言
处理结果 若用户触发账号的登录/登出操作,订阅服务类型日志被触发,日志会直接调用用户函数,通过函数代码对当前登录/出的账号进行IP过滤,若不在白名单内,可收到SMN发送的通知消息邮件,如图1所示。 图1 告警消息邮件通知 邮件信息中包含非法请求ip地址和用户执行的动作(login/logout)。
在EXPLORER可以看到完整的kong_new函数,其中函数代码只是 “index.js”,其余的都是配置文件,可以不关心。 函数下载、推送代码比较流程 鉴于本地代码与远程代码可能存在不同,会存在新代码覆盖老代码的情况,所以当下载、推送时候,都会有弹框提示。 函数 node01
实现对函数代码的管理。对于发布的每个版本的函数、环境变量会另存为相应版本的快照,函数代码发布后,可以根据实际需要修改版本配置信息。 函数别名 用户可以创建别名,指向特定函数版本。别名的优势在于:如果需要回滚到之前的函数版本,则可以将相应别名指向该版本,不再需要修改代码信息。 函数
getUserData("sk")”。(当前以python语言为例,其他语言请根据实际情况改写) 图5 修改ak/sk获取代码 代码修改完成后,单击“部署”刷新代码。 父主题: FunctionGraph临时入库AK/SK替换指导
x、Go1.8 PHP7.3 http Custom Code Type 函数代码类型: inline: UI在线编辑代码。 zip: 函数代码为zip包。 obs: 函数代码来源于obs存储。 jar: 函数代码为jar包,主要针对Java函数。 Func Code 表2 Func Code参数说明
委托名称:选择“未使用任何委托”。 运行时语言:选择“Python 2.7”。 进入函数详情页,在“代码”页签,进行代码在线编辑,复制Header中的请求参数定义代码示例中的代码并单击“部署”,更新函数。 配置测试事件,测试用于前端自定义认证的函数。单击“配置测试事件”,选择事件
由于FunctionGraph在冷启动的时候会下载函数代码,下载代码的过程也会影响启动时间。如果代码包太大,下载时间将会变长,导致增加FunctionGraph的启动时间;如果使用自定义镜像函数,镜像越大,启动时间也会越长。所以,为了降低冷启动时间,可以对应用程序进行瘦身,比如在程序中移除不必要的代码、减少不必要的第三方库依赖等。例如,在Node
/artifactId> <version>3.21.4</version> </dependency> 在pom.xml中添加插件用来将代码和依赖包打包到一起。 <build> <plugins> <plugin> <artifactId>maven-a
进入项目目录。 cd nextjs-app 官方默认Demo代码需要修改项目中layout.tsx(该文件在nextjs-app下的app目录)文件的代码,不然会导致无法下载字体文件的错误,参见图2并删除红框标出的内容。 图2 删除相关代码 构建项目。 npm run build 图3 构建项目
创建函数A,代码样例请参考write_log.py。函数A代码中host、log_group_id和log_stream_id使用对应接入点和创建好的日志组test-1206、日志流test-206的ID,如图2所示。 图2 write_log.py 创建函数B,代码样例请参考lts_cleanse
创建函数 创建函数选择的“区域”与要访问的Redis实例所在的区域一致。 根据Redis实例类型选择示例代码覆盖函数代码详情页中index.py内的代码。 图2 替换代码 在函数代码详情页,单击“添加依赖包”,选择私有依赖包源,添加创建依赖包创建的redis-py-4.6.0依赖包。
如果您使用的是C#或者Go语言,因为机制原因,启动速度会比其他语言慢。此时,您可以通过以下设置,增加运行速度。 适当增加函数的内存。 精简函数代码,例如:删除不必要的依赖包。 使用C#语言时,除了以上两种方法,在非并发场景下,您还可以通过以下方法增加运行速度。 创建一个一分钟一次的定时触发器,确保至少有一个存活的实例。
“到LTS进行日志分析”,在实时日志中进行观察分析。 图8 到LTS进行日志分析 我的代码具有什么用户的执行权限? 和普通事件函数一样,代码执行时并没有root权限,因此需要root权限的代码或者命令都无法在HTTP函数里执行。 如何为多个模块的springboot项目进行打包配置?
创建函数 能否在函数代码中使用线程和进程? FunctionGraph函数工程打包有哪些规范(限制)? FunctionGraph如何隔离代码? HTTP函数bootstrap启动文件如何创建?