华为云用户手册

  • 一句话识别 用于短语音的同步识别。一次性上传1min以内音频,能快速返回识别结果。该接口的使用限制请参见约束与限制,详细使用指导请参见SIS服务使用简介章节。 接口功能及调用方法请参考一句话识别。 输入参数 用户配置一句话识别执行动作,相关参数说明如表2所示。 表2 一句话识别输入参数说明 参数 必填 说明 选择语音格式 是 支持语音的格式,有下拉框和输入框模式。有多重语音格式供选择。 选择语种_采样率_领域 否 所使用的模型特征串,有下拉框和输入框模式,提供多重语言类型选择。 识别结果允许使用标点 否 是否在识别结果中添加标点,有下拉框和输入框模式,默认为“是”。 识别结果输出分词 否 是否在识别结果中输出分词结果信息,有下拉框和输入框模式,默认为“是”。 语音数据 否 语音数据Base64编码字符串。 输出参数 用户可以在之后的执行动作中调用该输出参数,输出参数说明请参考表3。 表3 一句话识别输出参数说明 参数 说明 内容 内容。 置信度 置信度。 word_info 分词信息列表。 起始时间 识别动作的起始时间。 结束时间 识别动作的结束时间。 分词 显示文本分词。
  • 效能大盘 效能大盘是AppStage集成看板 CodeArts Board的能力,为企业管理者、项目经理、团队Leader、开发者提供面向DevSecOps领域端到端的研发效能度量能力,提供从需求、缺陷、代码、构建、测试、部署、发布到运营等研发各阶段作业数据的分析洞察能力,覆盖交付质量、交付效率、交付能力、交付成本、交付价值,同时集成了华为先进的方法论和优秀实践,助力企业数字化转型和数据驱动运营及治理,提升企业软件能力可信和研发效能。 关于效能大盘的详细介绍文档请参考看板 CodeArts Board。 父主题: 开发中心
  • 处理结果 若用户触发账号的登录/登出操作,订阅服务类型日志被触发,日志会直接调用用户函数,通过函数代码对当前登录/出的账号进行IP过滤,若不在白名单内,可收到SMN发送的通知消息邮件,如图1所示。 图1 告警消息邮件通知 邮件信息中包含非法请求ip地址和用户执行的动作(login/logout)。 可以通过函数指标查看函数的调用情况,如图2所示。 图2 函数指标 父主题: 函数+CTS:登录/登出安全分析实战
  • 创建SFS Turbo文件系统 登陆华为云弹性文件服务控制台,选择“SFS Turbo”,单击“创建文件系统”,进入“创建文件系统”界面。 在“创建文件系统”界面填写如下参数: 计费模式:根据实际情况选择,推荐按需计费。 区域:请选择“华东-上海一”,当前Stable-Diffusion应用仅支持上海一部署。 项目:默认。 可用区:与子网可用区保持一致。 文件系统类型:根据实际需要选择。 存储类型:根据实际需要选择。 容量:根据实际需要选择。 选择网络:请选择上一步创建的VPC和子网。 安全组:请根据提示信息配置。 企业项目:default。 其他保持默认。 参数配置完成后,单击“立即创建”,等待SFS Turbo文件系统创建完成即可。 父主题: 准备
  • 创建功能函数 创建实现日志提取功能的函数,将示例代码包上传。创建过程请参考创建事件函数,运行时语言选择“Python3.9”,委托名称选择创建委托中的“LtsOperation”。 创建函数A,代码样例请参考write_log.py。函数A代码中host、log_group_id和log_stream_id使用对应接入点和创建好的日志组test-1206、日志流test-206的ID,如图3所示。 图3 write_log.py 创建函数B,代码样例请参考lts_cleanse.py。函数B代码中host、log_group_id和log_stream_id使用对应接入点和创建好的日志组test-1121、日志流test-1121的ID,并为函数B添加依赖huaweicloudsdklts,如图4和图5所示。 图4 lts_cleanse.py 图5 为函数B添加依赖包 函数实现的功能是:将收到的日志事件数据进行base64解码,然后提取出包含“WRN”、“WARN”、“ERR”或“ERROR”关键字的告警日志,将此级别的日志投递至创建好的LTS日志流中集中存储。可根据您的业务日志的具体内容配置相应的日志提取条件。
  • 前提条件 (1)函数中的IP地址为LTS的接入点,获取接入点IP方法如下: 登录云日志服务 LTS控制台,在左侧导航栏选择“主机管理”; 在“主机管理”页右上方,单击“安装ICAgent”; 图1 安装ICAgent 在弹出的“安装ICAgent”窗口中获取接入点IP。 图2 接入点IP (2)函数中的log_group_id和log_stream_id变量值的获取,请参考获取账号ID、项目ID、日志组ID、日志流ID。 (3)制作函数B需要的 lts 依赖包,具体添加依赖方法请参考如何在函数平台创建依赖包和如何为函数添加依赖包。制作依赖包时可以参考命令“pip install huaweicloudsdklts”。同时,示例代码中包含了已适用于python3.9的huaweicloudsdklts依赖。
  • 访问WebUI程序创建相关目录和文件 进入user1的应用“总览”页,单击右上角“开始使用”,耐心等待函数启动。 WebUI启动后由于此时NFS中还没有模型文件,所以并不能直接使用,请将模型放入到对应目录后再继续使用。 回到ECS控制台,此时查看“/home/user1/share”目录就已经创建了sd及其相关目录。 图10 查看user1的share目录 将您的模型、插件等文件分别放入对应目录。以下介绍部分主要目录,其他目录请自行查看。 auto/sd/models/Stable-diffusion,用于保存Stable-Diffusion checkpoint模型文件。 auto/sd/models/VAE,用于保存VAE文件。 auto/sd/models/Lora,用于保存Lora模型。 auto/sd/extensions,用于保存插件。 重新加载WebUI,即可看到新传入的模型。 图11 Checkpoints新增模型 图12 LoRA新增模型 单击右上角“生成”,图片会自动保存到“/home/user1/share/sd/outputs/txt2img/202x-xx-xx”目录。 图13 图片保存目录
  • 创建VPC和子网 登陆华为云网络控制台,单击“创建虚拟私有云”,进入“创建虚拟私有云”界面。 在“创建虚拟私有云”界面填写如下参数: 基本信息 区域:请选择“华东-上海一”,当前Stable-Diffusion应用仅支持上海一部署。 名称:自定义。 IPv4网段:请根据实际情况填写。 企业项目:default。 默认子网 可用区:默认即可,后续创建文件系统可用区请保持一致。 名称:自定义。 子网IPv4网段:请根据实际情况填写。 其他保持默认。 参数配置完成后,单击“立即创建”,完成VPC和子网的创建。 父主题: 准备
  • 场景介绍 该案例演示客户如何使用FunctionGraph 与IoTDA 服务组合,处理物联网设备上报以及设备状态变动的相关数据。物联网设备在IoTDA 平台进行管理,设备产生的数据可以从IoTDA直接流转触发FunctionGraph 的函数运行。用户可以根据需要编写函数处理这些数据。 通常该组合,可以适用于以下场景,如将设备上报的数据在处理后进行存储到如OBS;对上报的数据进行结构化,清洗然后存储到数据库;根据设备状态变化进行事件通知等。 该案例重点在如何组合IoTDA 与 FunctionGraph,关于如何在IoTDA 以及设备上进行设备管理和数据上报,需要用户进一步参考IoTDA的文档。在该案例中,我们使用IoTDA + FunctionGraph 做一个坐标转换的示例(WGS84 坐标转 GCJ02坐标)。
  • 模型上传与加载 创建好模型路径后,将您自定义的模型上传到对应的路径下,如CheckPoint模型、VAE模型和Lora模型。 图1 CheckPoint模型 图2 VAE模型 图3 Lora模型 模型文件一般都较大,通过页面上传大文件可能因网络问题上传失败。推荐您使用华为云提供的OBS Browser+工具或者obsutil工具,使用方法请参考OBS Browser+简介或obsutil简介。 上传完成后回到Stable-Diffusion WebUI界面重新加载模型后即可看到新增模型,加载需要较长时间请耐心等待。 图4 CheckPoint新增模型 图5 VAE新增模型 图6 Lora新增模型 父主题: 自定义模型
  • 创建委托 使用华为云Serverless应用中心部署Stable-Diffusion WebUI应用需要FunctionGraph服务与其他云服务协同工作,因此需要通过配置委托给FunctionGraph授权必要的云服务资源的操作权限,且委托授权的生效需要15-30分钟才能生效,所以强烈建议您提前创建委托。 登录统一身份认证服务控制台,左侧导航栏选择“委托”,进入“委托”页面后,右上角单击“创建委托”。 在“创建委托”页面,配置如下参数: 委托名称:自定义。 委托类型:选择“云服务”。 云服务:选择“函数工作流 FunctionGraph”。 持续时间:选择“永久”。 描述(可选):填写相关描述信息。 图1 创建委托 参数配置完成后,单击“下一步”,进入委托授权页面。在列表中搜索并选择如下5个系统策略或系统角色,单击“下一步”,进入选择权限的左右范围页面,给委托进行授权。 OBS Administrator SFS FullAccess SFS Turbo FullAccess VPC Administrator SWR Admin 图2 选择策略 请根据需要选择权限作用范围,如果不确定可以选择“所有资源”或者在“指定区域项目资源”中选则“华东-上海一”。 图3 指定区域项目资源 "OBS Administrator"暂不支持该授权范围,默认授权所有资源。 单击“确定”,委托创建完成,请等待委托生效。 父主题: 准备
  • 创建OBS桶 上传文件的源桶、输出文件的目标桶和函数必须处于同一个区域下。 必须使用两个不同的桶。如果使用一个桶,会无限执行函数。(源桶上传文件会触发函数执行,从而无限循环)。 操作步骤 登录对象存储服务控制台,单击“创建桶”,进入“创建桶”界面。 在“创建桶”界面,填写存储桶信息。 区域:根据实际情况设置 数据冗余存储策略:“单AZ存储” 桶名称输入:“dew-bucket-input” 默认存储类别:“标准存储” 桶策略选择:"私有" 归档数据直读:“关闭” 单击“立即创建”,完成源桶创建。 重复步骤2,创建目标桶。 区域及存储类别与源桶保持一致,桶名称命名为“dew-bucket-output”。 完成桶创建以后,OBS桶列表有dew-bucket-input、dew-bucket-output两个桶。
  • 解决方案 登录FunctionGraph控制台,创建函数,并将其定义为自定义认证函数。 登录FunctionGraph控制台,创建一个业务函数。 在APIG中创建一个API分组,用来存放API。 创建一个鉴权方式为自定义认证且后端为FunctionGraph的API。 调试API。 完成本教程后,您的公有云账户将存在以下资源: 一个API分组(存放API)。 一个自定义认证函数。 一个业务函数。 一个鉴权方式为自定义认证且后端为FunctionGraph的API。
  • 指令使用方法 华为云函数工作流(FunctionGraph)组件全部支持的能力如表1所示: 表1 组件支持能力介绍 构建&部署 发布&配置 其他功能 部署deploy 版本 version 项目迁移fun2s 删除remove 别名alias - 在使用华为云函数工作流(FunctionGraph)组件时,还会涉及到资源描述文件的编写,关于华为云函数工作流(FunctionGraph)组件的Yaml规范可以参考华为云函数工作流(FunctionGraph)Yaml规范章节。
  • 执行结果 执行结果由3部分组成:函数返回、执行摘要和日志。 表21 执行结果说明 参数项 执行成功 执行失败 函数返回 返回函数中定义的返回信息。 返回包含错误信息和错误类型的JSON文件。格式如下: { "errorMessage": "", "errorType":"", } errorMessage:Runtime返回的错误信息 errorType:错误类型 执行摘要 显示请求ID、配置内存、执行时长、实际使用内存和收费时长。 显示请求ID、配置内存、执行时长、实际使用内存和收费时长。 日志 打印函数日志,最多显示4KB的日志。 打印报错信息,最多显示4KB的日志。
  • SDK接口 FunctionGraph函数GoSDK提供了Event事件接口、Context接口和日志记录接口。Go SDK下载(Go SDK下载.sha256)。 Event事件接口 Go SDK加入了触发器事件结构体定义,目前支持CTS、KAFKA、DIS、DDS、SMN、LTS、TIMER、APIG、八种。在需要使用触发器的场景时,编写相关代码更简单。 APIG触发器相关字段说明 APIGTriggerEvent相关字段说明 表1 APIGTriggerEvent相关字段说明 字段名 字段描述 IsBase64Encoded Event中的body是否是base64编码 HttpMethod Http请求方法 Path Http请求路径 Body Http请求body PathParameters 所有路径参数 RequestContext 相关的APIG配置(APIGRequestContext对象) Headers Http请求头 QueryStringParameters 查询参数 UserData APIG自定义认证中设置的userdata 表2 APIGRequestContext相关字段说明 字段名 字段描述 ApiId API的ID RequestId 此次API请求的requestId Stage 发布环境名称 APIGTriggerResponse相关字段说明 表3 APIGTriggerResponse相关字段说明 字段名 字段描述 Body 消息体 Headers 最终返回的Http响应头 StatusCode Http状态码,int类型 IsBase64Encoded body是否经过base64编码,bool类型 APIGTriggerEvent提供GetRawBody()方法获取base64解码后的body体,相应的APIGTriggerResponse提供SetBase64EncodedBody()方法来设置base64编码的body体。 DIS触发器相关字段说明 表4 DISTriggerEvent相关字段说明 字段名 字段描述 ShardID 分区ID Message DIS消息体(DISMessage结构) Tag 函数版本 StreamName 通道名称 表5 DISMessage相关字段说明 字段名 字段描述 NextPartitionCursor 下一个游标 Records 消息记录(DISRecord结构) MillisBehindLatest 保留字段 表6 DISRecord相关字段说明 字段名 字段描述 PartitionKey 数据分区 Data 数据 SequenceNumber 序列号(每个记录的唯一标识) KAFKA触发器相关字段说明 表7 KAFKATriggerEvent相关字段说明 字段名 字段描述 InstanceId 实例ID Records 消息记录(表8) TriggerType 触发器类型,返回KAFKA Region region EventTime 事件发生时间,秒数 EventVersion 事件版本 表8 KAFKARecord相关字段说明 字段名 字段描述 Messages DMS消息体 TopicId DMS的主题ID SMN触发器相关字段说明 表9 SMNTriggerEvent相关字段说明 字段名 字段描述 Record 消息记录集合(SMNRecord结构) 表10 SMNRecord相关字段说明 字段名 字段描述 EventVersion 事件版本(当前为1.0) EventSubscriptionUrn 订阅URN EventSource 事件源 Smn SMN事件消息体(SMNBody结构) 表11 SMNBody相关字段说明 字段名 字段描述 TopicUrn SMN主题URN TimeStamp 消息时间戳 MessageAtrributes 消息属性集合 Message 消息体 Type 消息类型 MessageId 消息ID Subject 消息主题 定时触发器相关字段说明 表12 TimerTriggerEvent相关字段说明 字段名 字段描述 Version 版本名称(当前为“v1.0”) Time 当前时间 TriggerType 触发器类型(“Timer”) TriggerName 触发器名称 UserEvent 触发器附加信息 LTS触发器相关字段说明 表13 LTSTriggerEvent相关字段说明 字段名 字段描述 Lts LTS消息(LTSBody结构) 表14 LTSBody相关字段说明 字段名 字段描述 Data LTS原始消息 LTSBody提供GetRawData()函数返回base64解码后的消息。 CTS触发器相关字段说明 表15 CTSTriggerEvent字段说明 字段名 字段说明 CTS CTS消息体(表16) 表16 CTS结构相关字段说明 字段名 字段描述 Time 事件产生时间 User 触发该事件的用户信息(表17) Request 事件请求内容 Response 事件响应内容 Code 响应码 ServiceType 事件触发的服务名称 ResourceType 事件触发的资源类型 ResourceName 事件触发的资源名称 ResourceId 事件触发资源的唯一标识 TraceName 事件名称 TraceType 事件触发的方式(如ConsoleAction:代表前台操作) RecordTime CTS服务接收事件时间 TraceId 当前事件的唯一标识 TraceStatus 事件状态 表17 User字段说明 字段名 字段描述 Name 用户名(同一账号可以创建多个子用户) Id 用户ID Domain 账号信息(表18) 表18 Domain字段说明 字段名 字段描述 Name 账号名称 Id 账号ID 例如使用APIG触发器时,只需要把入口函数(假如函数名为handler)的第一个参数按照如下方式设置:handler(APIGTriggerEvent event, Context context)。相关约束条件请参考Base64解码和返回结构体的说明。 关于所有TriggerEvent,上面提到的TriggerEvent方法均有与之对应的set方法,建议在本地调试时使用;DIS和LTS均有对应的getRawData()方法,但无与之相应的setRawData()方法。 Context接口 Context接口提供函数获取函数执行上下文,例如,用户委托的AccessKey/SecretKey、当前请求ID、函数执行分配的内存空间、CPU数等。 Context接口说明如表19所示。 表19 Context类上下文方法说明 方法名 方法说明 getRequestID( ) 获取请求ID。 getRemainingTimeInMilligetRunningTimeInSecondsSeconds ( ) 获取函数剩余运行时间。 getAccessKey( ) 获取用户委托的AccessKey(有效期24小时),使用该方法需要给函数配置委托。 说明: 当前函数工作流已停止维护Runtime SDK 中getAccessKey接口,您将无法使用getAccessKey获取临时AK。 getSecretKey( ) 获取用户委托的SecretKey(有效期24小时),使用该方法需要给函数配置委托。 说明: 当前函数工作流已停止维护Runtime SDK 中getSecretKey接口,您将无法使用getSecretKey获取临时SK。 getSecurityAccessKey() 获取用户委托的SecurityAccessKey(有效期24小时),使用该方法需要给函数配置委托。 getSecuritySecretKey() 获取用户委托的SecuritySecretKey(有效期24小时),使用该方法需要给函数配置委托。 getSecurityToken() 获取用户委托的SecurityToken(有效期24小时),使用该方法需要给函数配置委托。 getUserData(string key) 通过key获取用户通过环境变量传入的值。 getFunctionName( ) 获取函数名称。 getRunningTimeInSeconds ( ) 获取函数超时时间。 getVersion( ) 获取函数的版本。 getMemorySize( ) 分配的内存。 getCPUNumber( ) 获取函数占用的CPU资源。 getPackage( ) 获取函数组。 getToken( ) 获取用户委托的token(有效期24小时),使用该方法需要给函数配置委托。 getLogger( ) 获取context提供的logger方法(默认会输出时间、请求ID等信息)。 getAlias 获取函数的别名 GetToken()、GetAccessKey()和GetSecretKey()方法返回的内容包含敏感信息,请谨慎使用,避免造成用户敏感信息的泄露。
  • 安装KooCLI命令行工具 安装KooCLI命令行工具 远程登录购买的ECS云服务器,执行如下命令安装KooCLI: curl -sSL https://hwcloudcli.obs.cn-north-1.myhuaweicloud.com/cli/latest/hcloud_install.sh -o ./hcloud_install.sh && bash ./hcloud_install.sh 图5 安装命令行工具 初始化KooCLI命令行工具 使用如下命令初始化KooCLI命令行工具: hcloud configure init 需要输入Access Key ID、Secret Access key和Region Name,获取方法请参见3、4。 图6 初始化KooCLI命令行工具 获取访问密钥(Access Key ID和Secret Access key) 如果您有登录密码,可以登录控制台,可以在我的凭证中获取自己的访问密钥AK/SK。请参见:新增访问密钥。可以下载得到AK/SK文件,文件名一般为:credentials.csv。如下图所示,文件包含了用户名称(User Name),AK(Access Key Id),SK(Secret Access Key)。 图7 credentials.csv文件内容 如果您没有登录密码,不能登录控制台,在访问密钥异常丢失或者需要重置时,可以请账号管理员在IAM中生成您的访问密钥,并发送给您。请参见:管理IAM用户访问密钥。 获取Region Name 请参见:地区和终端节点。 图8 获取区域
  • SDK接口 Context类中提供了许多上下文方法供用户使用,其声明和功能如表1所示。 表1 Context类上下文方法说明 方法名 方法说明 getRequestID() 获取请求ID。 getRemainingTimeInMilliSeconds () 获取函数剩余运行时间。 getAccessKey() 获取用户委托的AccessKey(有效期24小时),使用该方法需要给函数配置委托。 说明: 当前函数工作流已停止维护Runtime SDK 中getAccessKey接口,您将无法使用getAccessKey获取临时AK。 getSecretKey() 获取用户委托的SecretKey(有效期24小时),使用该方法需要给函数配置委托。 说明: 当前函数工作流已停止维护Runtime SDK 中getSecretKey接口,您将无法使用getSecretKey获取临时SK。 getSecurityAccessKey() 获取用户委托的SecurityAccessKey(有效期24小时),使用该方法需要给函数配置委托。 getSecuritySecretKey() 获取用户委托的SecuritySecretKey(有效期24小时),使用该方法需要给函数配置委托。 getSecurityToken() 获取用户委托的SecurityToken(有效期24小时),使用该方法需要给函数配置委托。 getUserData(string key) 通过key获取用户通过环境变量传入的值。 getFunctionName() 获取函数名称。 getRunningTimeInSeconds () 获取函数超时时间。 getVersion() 获取函数的版本。 getMemorySize() 分配的内存。 getCPUNumber() 获取函数占用的CPU资源。 getPackage() 获取函数组。 getToken() 获取用户委托的token(有效期24小时),使用该方法需要给函数配置委托。 getLogger() 获取context提供的logger方法,返回一个日志输出类,通过使用其info方法按“时间-请求ID-输出内容”的格式输出日志。 如调用info方法输出日志: logg = context.getLogger() logg.info("hello") getAlias 获取函数的别名 getToken()、getAccessKey()和getSecretKey()方法返回的内容包含敏感信息,请谨慎使用,避免造成用户敏感信息的泄露。
  • Node.js的initializer入口介绍 FunctionGraph目前支持以下Node.js运行环境: Node.js6.10 (runtime = Node.js6) Node.js8.10 (runtime = Node.js8) Nodejs10.16(runtime = Node.js10) Nodejs12.13(runtime = Node.js12) Node.js14.18(runtime = Node.js14) Node.js16.17(runtime = Node.js16) Node.js18.15(runtime = Node.js18)
  • 执行结果 执行结果由3部分组成:函数返回、执行摘要和日志。 表2 执行结果说明 参数项 执行成功 执行失败 函数返回 返回函数中定义的返回信息。 返回包含错误信息和错误类型的JSON文件。格式如下: { "errorMessage": "", "errorType":"", } errorMessage:Runtime返回的错误信息 errorType:错误类型 执行摘要 显示请求ID、配置内存、执行时长、实际使用内存和收费时长。 显示请求ID、配置内存、执行时长、实际使用内存和收费时长。 日志 打印函数日志,最多显示4KB的日志。 打印报错信息,最多显示4KB的日志。
  • 其余功能 跳转到界面打开 选择您需要打开的函数,鼠标右键单击“Open in Portal”,会在浏览器中打开该函数的详情页面。 执行云端函数 选择您需要操作的函数,鼠标右键单击“Invoke Function...”。 在Invoke Function面板中,选择需要传入的事件,单击“Invoke”,函数的日志以及结果会输出在OUTPUT中。 下载云端函数 前提 用户已添加获取桶对象(obs:object:GetObject)的权限。 选择您需要操作的函数,鼠标右键单击“Download...”,选择您要下载的路径,函数代码会从云端下载到本地并自动打开入口文件。 更新云端函数 选择您需要操作的函数,鼠标右键单击“Upload Function...”,选择您想要上传的ZIP包。 删除云端函数 选择您需要删除的函数,鼠标右键单击“Delete...”。 在确认框中选择"Delete",删除函数。 复制URN 选择您需要复制URN的函数,鼠标右键单击“Copy URN”直接获取。
  • 部署函数 前提 确保函数代码路径正确。Nodejs、Python和PHP运行时函数代码在src目录下,其余运行时函数代码在根目录下。 在插件面板中选择“Deploy Function”,或“Ctrl+Shift+p”搜索“Deploy Function”命令,按照提示依次选择“需要部署的函数”、“Region”。 部署成功:界面右下角弹出成功提示,切换至部署“Region”查看。 部署失败:在“OUTPUT”下查看错误日志并解决。
  • 登录函数插件 单击Huawei Cloud FunctionGraph插件图标,单击“您尚未登录,请先登录”,弹出登录界面,根据页面提示选择登录方式。若选择“华为云 AK/SK登录”,需先获取账号的AK/SK,请参见新增访问密钥。 图3 使用AK/SK登录 您可以选择需要展示的区域Region,查看不同区域的函数信息。 您也可以参考下图,进行更多区域的展示和隐藏、以及账号退出操作。 Show region in the Explorer:选择需要操作的Region。 Hide region from the Explorer:隐藏暂时不关注的Region。 Log Out:退出登录。
  • 本地调试 Nodejs 前提 本地环境已安装Nodejs。 默认模式 单击handler方法的Local Debug,配置事件内容,单击 Invoke,进行调试。 图4 单击Local Debug 图5 配置事件内容 VSCode自带调试能力 在函数文件夹下新建main.js文件,并将下面内容复制到main.js文件,单击左侧的运行和调试图标,选择添加配置,进行配置,选择Nodejs,按“F5”进行调试。 const handler = require('./index'); // 函数入口文件路径,根据具体情况修改 const event = { 'hello': 'world' }; // 测试事件内容,根据具体情况修改 const context = {}; // Context类 console.log(handler.handler(event, context)); Python 前提 本地环境已安装Python。 在函数文件夹下新建main.py文件,并将下面内容复制到main.py文件,单击左侧的运行和调试图标,选择添加配置,进行配置,选择Python,按“F5”进行调试。 import sys import index # 函数入口文件路径,根据具体情况修改 # main方法用于调试,event是选择的调试事件 if __name__ == '__main__': event = { 'hello': 'world' } # 测试事件内容,根据具体情况修改 context = '' content = index.handler(event, context) print('函数返回:') print(content) Java 前提 已安装Java,VSCode已支持java的运行测试。 在函数文件夹下的test目录下,打开TriggerTestsTest.java文件,单击左侧的运行和调试图标,选择添加配置,进行配置,选择Java,按“F5”进行调试。
  • 函数定义 PHP 7.3函数的接口定义如下所示: function handler($event, $context) 入口函数名($handler):入口函数名称, 需和函数执行入口处用户自定义的入口函数名称一致。 执行事件($event):函数执行界面由用户输入的执行事件参数, 格式为JSON对象。 上下文环境($context):Runtime提供的函数执行上下文,其接口定义在SDK接口说明。 函数执行入口: index.handler。 函数执行入口格式为“[文件名].[函数名]”。例如创建函数时设置为index.handler,那么FunctionGraph会去加载index.php中定义的handler函数。
  • 执行结果 执行结果由3部分组成:函数返回、执行摘要和日志。 表2 执行结果说明 参数项 执行成功 执行失败 函数返回 返回函数中定义的返回信息。 返回包含错误信息、错误类型和堆栈异常报错信息的JSON文件。格式如下: { "errorMessage": "", "errorType": "", "stackTrace": {} } errorMessage:Runtime返回的错误信息 errorType:错误类型 stackTrace:Runtime返回的堆栈异常报错信息 执行摘要 显示请求ID、配置内存、执行时长、实际使用内存和收费时长。 显示请求ID、配置内存、执行时长、实际使用内存和收费时长。 日志 打印函数日志,最多显示4KB的日志。 打印报错信息,最多显示4KB的日志。
  • 免费额度 每个月您都能免费使用一定额度的函数工作流服务,免费额度是子主账户共同使用。 请求次数:每月100万次的免费请求。 计量时间:每月400,000GB-秒的免费执行时间。如果函数内存规格为1GB时,免费额度为400,000秒,如果函数内存规格为512MB时,免费额度为800,000秒,其它内存规格以此类推。 免费额度不会按月累积,在每个自然月开始时,上月未使用的免费额度清零,重新计算。 当函数是预留实例模式且开启空闲模式时,在预留实例生命周期内中,空闲时间产生的计量时间不包含在每月400,000GB-秒的免费额度里。 表1显示了函数工作流配置不同内存规格时的免费执行秒数。 表1 免费执行秒数 内存(MB) 每个月的免费执行秒数 128 3,200,000 256 1,600,000 512 800,000 768 533,333 1024 400,000 1280 320,000 1536 266,667 其他内存规格X(MB) 1024*400,000/X(S) 节点执行次数(标准函数流):每月5000次的免费执行次数。
  • 普通实例计费规则 请求次数费用 在您使用函数的过程中会产生请求次数费用,请求次数是所有函数的请求总数。 每月100万次免费请求次数。100万次免费请求次数使用完后,具体价格请参考价格详情。 计量时间费用 函数工作流提供了预留和按量两种类型的实例,二者统计执行时间的方式不同。 预留实例:预留实例的计费请参考预留实例计费规则。 按量实例:按量实例的创建和释放由函数工作流管理,根据按量实例实际执行请求的时长计费。执行时间是从函数代码开始执行的时间算起到其返回或终止的时间为止。 其他费用 在您使用函数工作流服务过程中,如果搭配使用了其它华为云服务,则您需要为该服务支付额外的费用,具体的费用请参考价格详情。
  • 预留实例计费规则 预留实例的创建和释放由用户管理,根据预留实例的执行时长计费。通过预留实例,用户能够预热函数,从而彻底消除冷启动对延时的影响。 当用户调用API创建预留实例时,在预留实例创建成功后开始计费。 当用户调用API释放预留实例时,新的请求不会再路由到该预留实例上,因此该预留实例将在限定的时间内被释放,预留实例释放时停止计费。 图1 预留实例生命周期 如图1所示,计费时长为T1 ~ T4。 预留实例计量粒度为秒,不足一分钟,按照一分钟计费。超过一分钟,按照实际执行时长计费。 例如预留实例执行时长为51秒,按照1分钟计费。执行时长为61秒,则计费时长仍然为61秒。 执行时间费用的单位为GB-秒,指函数内存规格为1GB时,执行1秒的费用。
  • 免费额度 每个月您都能免费使用一定额度的函数工作流服务,免费额度是子主账户共同使用。 请求次数:每月100万次的免费请求。 计量时间:每月400,000GB-秒的免费执行时间。如果函数内存规格为1GB时,免费额度为400,000秒,如果函数内存规格为512MB时,免费额度为800,000秒,其它内存规格以此类推。 免费额度不会按月累积,而是在每个自然月起始时刻清零,重新计算。 表1显示了函数工作流配置不同内存规格时的免费执行秒数。 表1 免费执行秒数 内存(MB) 每个月的免费执行秒数 128 3,200,000 256 1,600,000 512 800,000 768 533,333 1024 400,000 1280 320,000 1536 266,667 其它内存规格X (MB) 1024*400,000/X(S) 节点执行次数(函数流):每月5000次的免费执行次数。
共100000条