检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
FunctionGraph权限 默认情况下,新建的IAM用户没有任何权限,您需要将其加入用户组,并给用户组授予策略,才能使得用户组中的用户获得策略定义的权限,这一过程称为授权。授权后,用户就可以基于策略对云服务进行操作。 FunctionGraph资源通过物理区域划分,为项目级服务。授权时,“作用范围”需要选
API网关APIG 区域:北京四 规格:可使用共享版APIG或者创建专享版APIG实例 函数工作流FunctionGraph 区域:北京四 计费模式:按需计费 父主题: 使用FunctionGraph函数实现通过API方式上传文件
函数代码为zip包。 obs: 函数代码来源于obs存储。 jar: 函数代码为jar包,主要针对Java函数。 Custom-Image-Swr: 函数代码来源于SWR自定义镜像。 枚举值: inline zip obs jar Custom-Image-Swr code_url String
连接DCS单机、主备、读写分离、Proxy集群实例添加Retry配置,退避策略为指数退避(ExponentialBackoff),重试次数上限为3次,并通过retry_on_error配置指定了BusyLoadingError,ConnectionError,TimeoutError三种错误才进行重试,代码片段如下:
=(函数单实例并发度)*(函数单次执行访问Redis并发度) 最大连接数上限 =(Redis实例连接数上限)/(函数最大实例数) 举例:某个访问Redis函数单实例并发度配置为5,每次执行函数访问Redis并发度为2,函数最大实例数默认400,访问的Redis实例连接数上限为30000,计算如下:
服务类型:选择“FunctionGraph”。 当服务类型选择全局级云服务时,例如对象存储服务(OBS)、统一身份认证服务(IAM)等,CTS触发器只能在“北京四”区域才能触发。如需了解更多全局级云服务请提交工单咨询。 资源类型:所选服务下对应的资源类型,如触发器、实例、函数等。 操作名称:所选资源
为方便快速体验,应用中心会为您分配一个临时域名,此临时域名仅可用于测试使用,有效期30天。若想开放应用长期访问,需绑定自定义域名,具体部署步骤请参考绑定自定义域名(可选)。 图4 应用创建完成 表2 关键函数服务功能 函数资源逻辑名称 功能说明 stable_diffusion AI绘图功能主体,可通过其APIG触发器访问Stable
方案概述 应用场景 端侧文件上传云服务器是Web和App应用的一类场景,例如服务运行日志的上报,Web应用图片上传等,函数可作为后端,结合APIG提供通用的API处理这类场景。本章节以NodeJS和Python语言为例,指导用户如何开发后端解析函数,获取上传的文件。 约束与限制 单次请求上传文件大小不超过6MB。
连接DCS集群实例 from redis.cluster import RedisCluster as Redis from redis.cluster import ClusterNode redis_client = None def create_redis_client(context):
上传的文件大小限制为40M,如超过40M,请通过OBS上传。 depend_link 否 String depend_type为obs类型时,依赖包在obs的存储地址。 depend_type 是 String 导入类型,目前支持obs和zip。 runtime 是 String
方法中,否则只会在初始化时获取一个连接而导致连接池使用无效。当网络抖动时可能会使已获取的连接断连,后续复用该实例的并发请求时可能会因断连而访问redis失败。 表1 Redis配置 参数 默认值 说明 connection_pool None 连接池 表2 BlockingConnectionPool配置
应用示例 示例1:创建函数和Timer触发器实现定时从OBS桶中下载文件 示例2:创建函数和APIG触发器获取静态页面 示例3:上传代码到OBS桶,并使用OBS链接创建函数 示例4:函数互调
函数代码为zip包。 obs: 函数代码来源于obs存储。 jar: 函数代码为jar包,主要针对Java函数。 Custom-Image-Swr: 函数代码来源于SWR自定义镜像。 枚举值: inline zip obs jar Custom-Image-Swr code_url String
函数配置委托。需要IAM支持,并在IAM界面创建委托,当函数需要访问其他服务时,必须提供该字段。配置后用户可以通过函数执行入口方法中的context参数获取具有委托中权限的token、ak、sk,用于访问其他云服务。如果用户函数不访问任何云服务,则不用提供委托名称。 app_xrole 否
给函数配置委托。 getSecurityToken() 获取用户委托的SecurityToken(有效期24小时),使用该方法需要给函数配置委托。 getUserData(string key) 通过key获取用户通过环境变量传入的值。 getFunctionName() 获取函数名称。
进阶使用:通过挂载同一SFS文件系统实现多用户资源共享 应用场景 模型文件普遍占用大量内存,在多用户使用场景下,每个用户复制一份模型文件会导致不必要的存储空间浪费。通过将不同用户的应用挂载到同一SFS文件系统下,能够满足多人共享模型文件资源的需求,同时为了避免不同用户使用期间的推理结果相互影响,可以在Stable
端到端测试:绑定APIG触发器,测试文件上传及处理流程。 NodeJS语言方案 Python语言方案 父主题: 使用FunctionGraph函数实现通过API方式上传文件
上传的文件大小限制为40M,如超过40M,请通过OBS上传。 depend_link 否 String depend_type为obs类型时,依赖包在obs的存储地址。 depend_type 是 String 导入类型,目前支持obs和zip。 runtime 是 String
若zip包超过40M,需要通过OBS方式上传,如图6所示。 进入对象存储服务,选择一个已有桶,或者创建新的桶。 将步骤1.c中打包好的mfa-services-0.0.1-SNAPSHOT-serverless.zip包上传。 图6 上传对象 获取对象地址,如图7所示。 图7 对象地址 通过obs上传代码包,如图8所示。
Python2.7在执行reload(sys)后无法通过print打印日志 建议使用context.getLogger()打印日志: log = context.getLogger() log.info("test") 父主题: 调用函数