云服务器内容精选

  • 免费额度 每个月您都能免费使用一定额度的 函数工作流 服务,免费额度是子主账户共同使用。 请求次数:每月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次的免费执行次数。
  • 预留实例计费规则 预留实例的创建和释放由用户管理,根据预留实例的执行时长计费。通过预留实例,用户能够预热函数,从而彻底消除冷启动对延时的影响。 当用户调用API创建预留实例时,在预留实例创建成功后开始计费。 当用户调用API释放预留实例时,新的请求不会再路由到该预留实例上,因此该预留实例将在限定的时间内被释放,预留实例释放时停止计费。 图1 预留实例生命周期 如上图1所示,计费时长为T1~T4。 预留实例计量粒度为秒,不足一分钟,按照一分钟计费。超过一分钟,按照实际执行时长计费。 例如预留实例执行时长为51秒,按照1分钟计费。执行时长为61秒,则计费时长仍然为61秒。 执行时间费用的单位为GB-秒,指函数内存规格为1GB时,执行1秒的费用。
  • 适用计费项 函数工作流实际费用是由请求次数费用、执行时间费用、函数流节点执行次数、GPU计量时间、磁盘计量时间、闲置内存计量时间和其他费用构成,各计费项按需计费说明请参见表1。 表1 计费项说明 计费项 说明 请求次数 在您使用函数的过程中会产生请求次数费用,请求次数是所有函数的请求总数。 执行时间费用(非预留实例) 执行时间费用包含两个变量:执行时间和函数分配的内存大小。以下介绍计算资源消耗的方式: 函数计算资源消耗是函数所选内存和函数执行时间的乘积,执行时间是从函数代码开始执行的时间算起到其返回或终止的时间为止,计量的粒度是1毫秒,不足1毫秒按1毫秒计费。 执行时间费用(预留实例) 执行时间费用包含两个变量:执行时间和函数分配的内存大小。以下介绍计算资源消耗的方式: 函数计算资源消耗是函数所选内存和函数执行时间的乘积,执行时间是从实例创建成功后开始算起到用户调用API释放预留实例为止。如果预留实例存活时间不足1分钟,将按照 1 分钟计算,超过一分钟的部分,按照秒的粒度向上取整计算。 节点执行次数(函数流) 函数流中除开始、结束和异常分支节点外,其他节点都要统计执行次数计费。 GPU计量时间 根据您配置函数的GPU规格计费,输入值必须在0GB到10GB之间。 磁盘计量时间 根据您配置函数的磁盘规格计费,磁盘超出512MB的部分才计费,输入值必须在512MB到10GB之间。 闲置内存计量时间 在配置预留实例时可开启,表示预留实例在无调用的时候暂停CPU,节省资源,降低费用成本。详情请参见预留实例管理。 其他费用 在您使用函数工作流服务过程中,如果搭配使用了其它华为云服务,如OBS、 SMN 等,则您需要为该服务支付额外的费用,具体费用请参考价格详情。
  • 计费周期 华为云函数工作流 FunctionGraph 按照实际使用量付费,没有最低消费。计费模式采用累计分档计费,按天结算,即每日3点后对前一日使用量进行扣费。例如,2023-05-11 00:00:00至2023-05-11 23:59:59期间产生的费用,通常会在2023-05-12 03:00:00左右完成扣费。 函数响应事件通知或调用(包括控制台的测试调用)开始执行时记为一次请求,请求次数是所有函数的请求总数。 未使用预留实例情况下,执行时间是从函数代码开始执行的时间算起到其返回或终止的时间为止。计量粒度是1毫秒,不足1毫秒按1毫秒计费。例如,函数A执行了0.5毫秒、函数B执行了2.3毫秒,则计算函数资源消耗时,函数A执行时间按照1毫秒计费、函数B执行时间按照3毫秒计费。 使用预留实例情况下,执行时间是从实例创建成功后开始算起到用户调用API释放预留实例为止。计量粒度是1秒,不足1分钟按1分钟计算,超过一分钟的部分,按照秒的粒度向上取整计算,比如运行时间为51秒,将按60秒计算;运行时间为60.5秒,则按61秒计算,以此类推。
  • 快照冷启动 Java应用冷启动速度慢的问题尤为突出。华为云FunctionGraph创新提出的基于进程级快照的冷启动加速解决方案,致力于在用户无感知(无需/少量进行代码适配)的前提下,帮助用户突破冷启动的性能瓶颈。本优化方案直接从应用初始化后的快照进行运行环境恢复,跳过复杂的框架、业务初始化阶段,从而显著降低Java应用的启动时延,实测性能提升达90%+。 用户使用Java函数可以打开冷启动快照加速的配置开关,详情请参见配置快照式冷启动。华为云FunctionGraph会预先执行函数对应的初始化代码,获取其初始化执行上下文环境的快照,并进行加密缓存。后续调用该函数并触发冷启动扩容时,会直接从提前初始化后的应用快照来恢复执行环境,而非重新走一遍初始化流程,以此达到极大提升启动性能的效果。
  • 精简代码大小和镜像瘦身 由于FunctionGraph在冷启动的时候会下载函数代码,下载代码的过程也会影响启动时间。如果代码包太大,下载时间将会变长,导致增加FunctionGraph的启动时间;如果使用 自定义镜像 函数,镜像越大,启动时间也会越长。所以,为了降低冷启动时间,可以对应用程序进行瘦身,比如在程序中移除不必要的代码、减少不必要的第三方库依赖等。例如,在Node.js中执行“npm prune”命令、在Python中执行“autoflake”。另外,某些第三方库中可能会包含测试用例源代码、无用的二进制文件和数据文件等,删除无用文件可以降低函数代码下载和解压时间。
  • 配置说明 异步调用目标的配置说明参见表2,异步调用目标的事件内容参见如下示例: { "timestamp": "2020-08-20T12:00:00.000Z+08:00", "request_context": { "request_id": "1167bf8c-87b0-43ab-8f5f-26b16c64f252", "function_urn": "urn:fss:xx-xxxx-x:xxxxxxx:function:xxxx:xxxx:latest", "condition": "", "approximate_invoke_count": 0 }, "request_payload": "", "response_context": { "status_code": 200, "function_error": "" }, "response_payload": "hello world!" } 表2 配置参数说明 参数 说明 timestamp 调用时间戳。 request_context 请求上下文。 request_context.request_id 异步调用的请求ID。 request_context. function_urn 异步执行的函数URN。 request_context.condition 调用错误类别。 request_context. approximate_invoke_count 异步调用的执行次数。当该值大于1时,说明函数计算对您的函数进行了重试。 request_payload 请求函数的原始负载。 response_context 返回上下文。 response_context.statusCode 调用函数的返回码(系统)。当该返回码不为200时,说明出现了系统错误。 response_context.function_error 调用错误信息。 response_payload 执行函数返回的原始负载。
  • 步骤二:本地验证 启动docker容器 docker run -u 1003:1003 -p 8000:8000 custom_container_http_example:latest 打开一个新的命令行窗口,向开放的8000端口发送消息,支持访问模板代码中根目录“/”下所有路径,以下以“helloworld”为例。 curl -XPOST -H 'Content-Type: application/json' -d '{"message":"HelloWorld"}' localhost:8000/helloworld 按照模块代码中返回 Hello FunctionGraph, method POST 在容器启动端口可以看到 receive {"message":"HelloWorld"} 或者使用docker logs命令获取容器的日志
  • 准备工作 注册华为账号 并实名认证。 在创建函数前,请先注册华为账号并实名认证,具体步骤请参考注册华为账号并开通华为云和实名认证介绍。 如果您已有一个华为账号并实名认证,请跳过此步骤。 免费额度。 函数工作流服务每个月都会提供一定数量的免费额度,免费额度是子主账户共同使用,具体详情请参见免费额度。 当免费额度使用完后,若您继续使用函数工作流时,账户的可用额度小于待结算的账单时,即被判定为账户欠费。欠费后,可能会影响您的服务资源的正常运行,请及时充值,具体详情请参考账户充值。 为用户添加函数的操作权限。 本章节所有操作均默认具有操作权限,请确保您登录的用户已有“FunctionGraph Administrator”权限,即FunctionGraph服务所有权限,更多权限的说明请参考权限管理。
  • 步骤五:测试函数 在函数详情页,单击“测试”,在弹窗中创建新的测试事件。 选择“apig-event-template”,事件名称输入“helloworld”,测试事件修改为如下所示,完成后单击“创建”。 { "body": "{\"message\": \"helloworld\"}", "requestContext": { "requestId": "11cdcdcf33949dc6d722640a13091c77", "stage": "RELEASE" }, "queryStringParameters": { "responseType": "html" }, "httpMethod": "POST", "pathParameters": {}, "headers": { "Content-Type": "application/json" }, "path": "/helloworld", "isBase64Encoded": false }
  • 步骤二:本地验证 启动docker容器 docker run -u 1003:1003 -p 8000:8000 custom_container_event_example:latest 打开一个新的命令行窗口,向开放的8000端口发送消息,访问模板代码中指定的/init路径 curl -XPOST -H 'Content-Type: application/json' localhost:8000/init 按照模块代码中返回 Hello init 打开一个新的命令行窗口,向开放的8000端口发送消息,访问模板代码中指定的/invoke路径 curl -XPOST -H 'Content-Type: application/json' -d '{"message":"HelloWorld"}' localhost:8000/invoke 按照模块代码中返回 Hello invoke 在容器启动端口可以看到 Listening on http://localhost:8000 receive {} receive { message: 'HelloWorld' } 或者使用docker logs命令获取容器的日志
  • 准备工作 注册华为账号并实名认证。 在创建函数前,请先注册华为账号并实名认证,具体步骤请参考注册华为账号并开通华为云和实名认证介绍。 如果您已有一个华为账号并实名认证,请跳过此步骤。 免费额度。 函数工作流服务每个月都会提供一定数量的免费额度,免费额度是子主账户共同使用,具体详情请参见免费额度。 当免费额度使用完后,若您继续使用函数工作流时,账户的可用额度小于待结算的账单时,即被判定为账户欠费。欠费后,可能会影响您的服务资源的正常运行,请及时充值,具体详情请参考账户充值。 为用户添加函数的操作权限。 本章节所有操作均默认具有操作权限,请确保您登录的用户已有“FunctionGraph Administrator”权限,即FunctionGraph服务所有权限,更多权限的说明请参考权限管理。
  • 创建SFS Turbo文件系统 登录华为云弹性文件服务控制台,选择“SFS Turbo”,单击“创建文件系统”,进入“创建文件系统”界面。 在“创建文件系统”界面填写如下参数: 计费模式:根据实际情况选择,推荐按需计费。 弹性文件服务的计费介绍请参见计费说明,计费价格请参见价格计算器。 区域:请选择“华东-上海一”,当前Stable-Diffusion应用仅支持上海一部署。 项目:默认。 可用区:与子网可用区保持一致。 文件系统类型:根据实际需要选择。 存储类型:根据实际需要选择。 容量:根据实际需要选择。 选择网络:请选择上一步创建的VPC和子网。 安全组:请根据提示信息配置。 企业项目:default。 其他保持默认。 参数配置完成后,单击“立即创建”,等待SFS Turbo文件系统创建完成即可。 父主题: 准备
  • 概述 HTTP函数专注于优化 Web 服务场景,用户可以直接发送 HTTP 请求到 URL 触发函数执行,从而使用自己的Web服务。HTTP函数只允许创建APIG/APIC的触发器类型,其他触发器不支持。 HTTP函数当前不区分编程语言,函数执行入口必须在bootstrap文件中设置,用户直接写启动命令,端口统一开放成8000,绑定IP为127.0.0.1。 bootstrap文件是HTTP函数的启动文件,HTTP函数仅支持读取bootstrap 作为启动文件名称,其它名称将无法正常启动服务,bootstrap启动文件请参见bootstrap文件示例。 HTTP函数支持多种开发语言。 用户函数需要返回一个合法的http响应报文。 该章节均以Nodejs为样例,若需要使用其他语言,则更换语言路径即可,代码包路径无需更换。其他各语言路径请参见表1。 关于Go语言构建FunctionGraph HTTP函数,请参考使用Go构建FunctionGraph HTTP函数。 函数发起HTTP请求时,如果是内网访问,则请求IP地址是动态;如果是公网访问,则请求IP地址是固定。如需了解更多详情请咨询技术支持工程师。
  • 函数公共请求头 HTTP函数请求头默认携带如下字段。 表2 默认请求头 字段 描述 X-CFF-Request-Id 当前请求ID X-CFF-Memory 分配的内存 X-CFF-Timeout 函数超时时间 X-CFF-Func-Version 函数版本 X-CFF-Func-Name 函数名称 X-CFF-Project-Id ProjectID X-CFF-Package 函数组 X-CFF-Region 当前region