检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
return "ok"; } } 图5 定义函数运行入口 上图所示的代码中添加了多个入口函数,分别使用了不同的触发器事件类型。当函数的事件源是APIG时,相关约束条件请参考Base64解码和返回结构体的说明。 工程打包 右击工程,选择“Export”,如图6所示。 图6 打包
对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的账号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的名称,可以从地区和终端节点中获取。
声明Serverless服务。 在服务中定义一个或多个函数: 定义服务将被部署到的提供商(如果有运行时,也要定义)。 定义要使用的任何自定义插件。 定义触发每个函数执行的事件(如HTTP请求)。 允许“events”部分中列出的事件在部署时自动创建事件所需的资源。 允许使用Serverless变量进行灵活配置。
如下信息:函数类型选择“事件函数”、输入您自定义的函数名称,此处以“access-redis-demo”为例,选择运行时“Python3.9”,最后单击创建函数。 图1 创建函数 创建函数选择的“区域”与要访问的Redis实例所在的区域一致。 根据Redis实例类型选择示例代码覆盖函数代码详情页中index
一般不建议在函数代码内捕获异常,其会导致创建的错误次数告警配置不生效。但是FunctionGraph实现了与云日志服务(LTS)的对接,支持在LTS服务中配置告警,LTS支持日志告警实时监控函数日志中出现的异常信息。 父主题: 使用函数访问Redis数据库
当code_type为obs时,该值为函数代码包在OBS上的地址,code_type为其他值时,该字段为空。 code_filename 否 String 函数的文件名,当code_type为jar/zip时必须提供该字段,code_type为其他值时不需要提供。 custom_image
} 请求体中必须包括上述JSON字段。 protocol为请求类型,限制为POST。 uri为扩展进程中遥测侦听器URI,用于接收FunctionGraph发送的遥测数据,其中PORT可选8081~8090。 Types为您希望扩展订阅的事件类型的信息,可选platform、function、extension。
Redis客户端支持添加自动重试机制,确保在执行Redis操作失败后重试特定次数,这样能大幅度降低暂时性故障影响。例如:发生瞬时的网络抖动、磁盘抖动导致服务暂时不可用或者调用超时的情况下,提高Redis操作的成功概率。 连接DCS单机、主备、读写分离、Proxy集群实例添加Retry配置,退避策略为指数退避
函数运行的实时监控,当函数指标出现满足设定规则时产生告警,通过短信或邮件的方式通知用户。客户收到告警后,可以查看函数日志来分析故障原因,解决故障。 FunctionGraph函数监控信息,提供了调用次数、运行时间、错误次数、拒绝次数和资源统计监控指标。建议对监控指标中的错误次数和
创建一个redis-py的依赖包,建议使用redis-py 4.6.0(校验包:redis-4.6.0.zip.sha256)版本。 登录函数工作流控制台,在左侧导航栏选择“函数 > 依赖包管理”,进入“依赖包管理”界面。 单击“创建依赖包”,弹出“创建依赖包”对话框。 输入您自定义的依赖包名称,此处以“redis-py-4
project_name String 租户的project name。 package String 函数所属的分组Package,用于用户针对函数的自定义分组。 runtime String FunctionGraph函数的执行环境 Python2.7: Python语言2.7版本。 Python3
发布区域:所有部署函数工作流服务的区域均可使用。 版本管理 预留实例管理 预留实例是将函数实例的创建和释放交由用户管理,当您为某一函数创建了预留实例,函数工作流收到此函数的调用请求时,会优先将请求转发给您的预留实例,当请求的峰值超过预留实例处理能力时,剩余部分的请求将会转发给按量实例,由函数工作流自动为您分配执行环境。
redis_client.ping() 图1 初始化函数配置 这里用到了FunctionGraph的函数初始化入口Initializer能力,通过该能力我们能在函数初始化阶段完成Redis客户端的创建,在调用handler处理请求时能够使用该Redis客户端复用连接,相比在handler
String 当code_type为obs时,该值为函数代码包在OBS上的地址,code_type为其他值时,该字段为空。 code_filename String 函数的文件名,当code_type为jar/zip时必须提供该字段,inline和obs不需要提供。 code_size Long
project_name String 租户的project name。 package String 函数所属的分组Package,用于用户针对函数的自定义分组。 runtime String FunctionGraph函数的执行环境 Python2.7: Python语言2.7版本。 Python3
使用函数访问Redis数据库 案例概述 准备 创建依赖包 创建函数 示例代码 FunctionGraph监控告警 日志告警 调试函数
像类型函数的镜像配置。 枚举值: inline zip obs jar code_url 否 String 当code_type为obs时,该值为函数代码包在OBS上的地址,code_type为其他值时,该字段为空。 code_filename 否 String 函数的文件名,当
String 租户的project id。 project_name String 租户的project name。 package String 函数所属的分组Package,用于用户针对函数的自定义分组。 runtime String FunctionGraph函数的执行环境 Python2
environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK")
Framework提供了一个强大的变量系统,您可以将动态数据添加到serverless.yml中。使用Serverless变量,您将能够执行以下操作: 引用并加载环境变量中的变量。 引用并加载CLI选项中的变量。 递归引用同一serverless.yml文件中的任何类型的属性。 递归引用其他