云服务器内容精选

  • 概述 FunctionGraph支持两种函数类型,事件函数和HTTP函数。HTTP函数专注于优化 Web 服务场景,用户可以直接发送 HTTP 请求到 URL 触发函数执行,从而使用自己的Web服务。HTTP函数只允许创建APIG/APIC的触发器类型,其他触发器不支持。 HTTP函数支持HTTP/1.1协议。 在函数创建页面,新增一种函数类型“HTTP函数”; HTTP函数执行入口需要设置为bootstrap,用户直接写启动命令,端口统一开放成8000; 若运行用户JAR包,bootstrap中建议增加JVM参数-Dfile.encoding=utf-8,否则可能会出现中文乱码。
  • 优势 丰富的框架支持 您可以使用常见的 Web 框架(例如 Nodejs Web 框架:Express、Koa)编写 Web 函数,也可以将您本地的 Web 框架服务以极小的改造量快速迁移上云。 减少请求处理环节 函数可以直接接收并处理 HTTP 请求,API 网关不再需要做 json 格式转换,减少请求处理环节,提升 Web 服务性能。 编写体验舒适化 HTTP 函数的编写体验更贴近编写原生 Web 服务,可以使用 Node.js 原生接口,保证和本地开发服务体验一致。
  • 概述 FunctionGraph支持事件类型函数。事件是指用于触发函数,通常为JSON格式的请求。用户作为事件源(事件的生产者),可以通过云服务平台或CodeArts IDE Online触发函数并进行执行。在函数创建界面可以选择函数类型,事件类型的函数不受触发器类型的限制,当前FunctionGraph支持的所有类型触发器均可用于触发事件函数。 FunctionGraph原生支持事件类型函数,在函数创建界面默认选择该类型; 测试函数时在参数配置界面输入用户指定的事件JSON即可完成函数触发; 用户也可以通过FunctionGraph支持的触发器进行事件函数触发;
  • 优势 单机编程体验,简单易用 事件类型函数可以在FunctionGraph函数界面或CodeArts IDE Online界面进行函数编辑或代码包上传,一键式完成函数云上部署,用户无需关心并处理函数的并发、故障恢复等问题。 高性能极速运行时 事件函数提供毫秒级函数启动、函数扩容、函数调用,秒级故障中断检测及秒级故障恢复。 便捷完备的工具链 提供完备的日志、调用链、debug及监控能力,支撑开发者“三步”上线函数应用。
  • 代码签名 为了保障用户的代码安全,防止代码文件损坏或被篡改导致代码不一致问题,保证被执行的函数代码为正确版本,当函数创建或修改代码时,FunctionGraph对用户的函数代码签名加密,为其生成代码签名,并存储在函数元信息内。 FunctionGraph在函数执行时,为当前执行的代码生成签名,然后将其与函数元信息内的代码签名进行对比,仅允许运行通过一致性校验的代码,校验未通过则不允许执行并返回错误。 父主题: 安全
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的 云安全 挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的IaaS、PaaS和SaaS类云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。华为云租户的安全责任在于对使用的IaaS、PaaS和SaaS类云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、 虚拟主机 和访客虚拟机的操作系统,虚拟防火墙、API网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
  • 监控安全风险 FunctionGraph提供基于 云监控服务 CES的资源和操作监控能力,帮助用户监控账号下的函数,执行自动实时监控、告警和通知操作。用户可以掌握函数中的调用次数、错误次数、运行时间(包括最大运行时间、最小运行时间、平均运行时间)、被拒绝次数、资源统计等信息。 关于FunctionGraph支持的监控指标,请参见监控。关于如何创建监控告警规则等内容,请参见创建告警规则。 父主题: 安全
  • 审计 云审计 服务(Cloud Trace Service, CTS ),是华为云安全解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。 用户开通云审计服务并创建和配置追踪器后,CTS可记录FunctionGraph的管理事件用于审计。 CTS的详细介绍和开通配置方法,请参见CTS快速入门。 通过云审计服务,您可以记录与FunctionGraph服务相关的操作事件,便于日后的查询、审计和回溯。相关内容请参见云审计服务支持的FunctionGraph操作列表。
  • 资产识别与管理 在函数的环境变量中,若有敏感信息例如账号和密码、Ak/Sk等,建议通过配置加密环境变量。不配置加密环境变量,则会在界面或API返回结果中明文展示。 在使用触发器、配置VPC访问、使用 自定义镜像 、挂载SFS等场景下,FunctionGraph需要与其他云服务协同工作,需要由您通过创建云服务委托,让FunctionGraph有权限代替您进行一些资源运维工作。具体请参见委托配置。 父主题: 安全
  • 初始化功能 引入initializer接口: 分离初始化逻辑和请求处理逻辑,程序逻辑更清晰,让用户更易写出结构良好,性能更优的代码。 用户函数代码更新时,系统能够保证用户函数的平滑升级,规避应用层初始化冷启动带来的性能损耗。新的函数实例启动后能够自动执行用户的初始化逻辑,在初始化完成后再处理请求。 在应用负载上升,需要增加更多函数实例时,系统能够识别函数应用层初始化的开销,更准确的计算资源伸缩的时机和所需的资源量,让请求延时更加平稳。
  • 函数流 函数流是用来编排FunctionGraph函数的工具,可以将多个函数编排成一个协调多个分布式函数任务执行的工作流。 用户通过在可视化的编排页面,将事件触发器、函数和流程控制器通过连线关联在一个流程图中,每个节点的输出作为连线下一个节点的输入。编排好的流程会按照流程图中设定好的顺序依次执行,执行成功后支持查看工作流的运行记录,方便您轻松地诊断和调试。 函数流功能特性和优势: 功能特性 函数可视化编排 函数流执行引擎 错误处理 可视化监控 优势 使用更少代码快速构建应用程序 函数流允许用户将函数组合编排成一个完整的应用程序,而无需进行代码编写。可以实现快速构建,快速上线。当业务调整时,可以快速调整流程,完成快速上线,无需编写任何代码。 完善的错误处理机制 支持对流程中发生的错误进行捕获和重试,用户可以进行灵活的异常处理。 可视化的编排和监控体验 通过拖拽进行流程编排,学习成本低,可以快速上手。 监控页面使用流程可视化的查看方式,可以做到快速识别问题位置。
  • 函数管理 提供控制台管理函数。 函数支持Node.js、Java、Python、Go、PHP、Cangjie等多种运行时语言,同时支持用户自定义运行时,说明如表1所示。 建议使用相关语言的最新版本。 表1 运行时语言说明 运行时语言 支持版本 Node.js 6.10、8.10、10.16、12.13、14.18、16.17、18.15 Python 2.7、3.6、3.9、3.10 Java 8.0、11 Go 1.x C# .NET Core 2.1、.NET Core 3.1 PHP 7.3 定制运行时 - Cangjie 1.0 函数支持多种代码导入方式 支持在线编辑代码、OBS文件引入、上传ZIP包、上传JAR包等方式。不同运行时支持的代码上传方式如表2所示。 表2 代码上传方式说明 运行时 在线编辑 上传ZIP文件 上传JAR包 从OBS上传文件 Node.js 支持 支持 不支持 支持 Python 支持 支持 不支持 支持 Java 不支持 支持 支持 支持 Go 不支持 支持 不支持 支持 C# 不支持 支持 不支持 支持 PHP 支持 支持 不支持 支持 定制运行时 支持 支持 不支持 支持 Cangjie 不支持 支持 不支持 支持
  • 版本说明 发布日期 版本说明 2022-11-14 新增“安全”章节。 2022-08-19 新增“图解 函数工作流 服务”章节。 2022-07-15 优化“与其他服务的关系”章节。 2022-05-30 VSCode插件更新。 2022-04-30 支持创建快速函数流 VPC配置情况下支持 域名 解析 2022-03-30 函数工作流全新改版。 2022-02-25 支持Python 3.9和Node.js 14.18。 2021-12-09 新增函数调用链。 说明: 该特性当前仅“华南-广州、华北-北京四”区域支持。 2021-11-16 新增HTTP函数。 新增函数流服务节点。 新增动态内存配置。 新增自定义镜像。 计费粒度精确到1ms。 新增CodeArts IDE Online支持JAVA、Python函数开发。 新增CodeArts IDE Online支持推送代码文件对比。 2021-07-05 新增加密配置公测上线。 新增开通 云日志 服务(LTS),使用更丰富的函数日志管理功能。 新增CodeArts IDE Online在线编辑功能。 新增函数工作流功能。 新增延长函数执行超时时间。 新增单函数运行最大实例数和单实例并发数。 说明: 以上新增特性当前仅“华北-北京四”区域支持。 2021-06-30 依赖包列表展示ID。 2021-05-30 支持函数长时间(12h)运行。 2021-04-30 提供C#、python、Nodejs、Java语言SDK。 2021-03-30 新增 OMS 数据同步模板。 2020-12-30 新增APIC触发器。 新增APIG(专享版)触发器。 2020-10-30 新增GeminiDB Mongo触发器。 2020-09-30 DDS触发器支持并发。 2020-08-30 Kafka触发器支持并发,最大消息体为6MB。 2020-06-30 新增预留实例功能。 2020-05-30 新增支持Go 1.x Runtime。 2020-04-30 新增支持Node.js 10.16 Runtime。 新增支持Node.js 12.13 Runtime。 2020-03-30 删除工作流相关介绍。 新增支持C#(.NET Core 3.1)。 2020-02-25 支持配置企业项目。 2020-01-05 新增细粒度权限配置功能。 2019-12-31 新增Kafka触发器。 2019-11-26 函数模板分类优化。 新增筛选错误日志功能。 2019-10-16 总览界面新增月度统计功能。 2019-09-30 新增DDS触发器。 2019-08-16 支持测试事件持久化。 支持定制运行时。 支持挂载文件系统。 2019-5-27 函数服务代码在线编辑页面优化,新增函数在线测试及返回、快速创建多层级Python模块等。 函数模板支持与周边云服务集成。 函数新增PHP Runtime,支持PHP7.3,并支持在线编辑。 2019-3-15 函数新增版本分流功能。支持版本灰度发布,在创建别名时可以绑定多版本,并且可以设置主版本和灰度版本的权重。 函数新增支持配置VPC功能。用户支持创建虚拟私有云(VPC)并访问自己VPC内的资源,同时支持通过SNAT方式绑定EIP访问外网。 C#sdk增加json序列化和反序列接口。 2019-3-4 函数新增初始化功能。 函数工作流API2.0版上线。 2019-1-26 Sandbox AOS远程部署实现package、deploy命令合并。 函数内存配置新增了1792,2048,2560,3072,3584,4096 内存。 函数优化执行委托和配置委托功能。 函数支持分版本查看日志特性。 2018-12-25 Sandbox新增函数自动生成功能。 Sandbox新增支持Windows系统功能。 2018-11-30 函数新增函数应用导入导出功能。 新增函数执行委托与触发器委托可独立设置功能。 2018-11-16 函数实现与 云监控 服务的对接, 新增FunctionGraph监控说明。 函数新增依赖包管理模块,统一管理用户所有依赖包。 函数新增日志下载功能。 2018-11-2 新增支持C#Runtime,对于C#,FunctionGraph运行时目前支持C#(.NET Core 2.0)、C#(.NET Core 2.1)版本。 新增工具箱页面,提供sdk、cli、sandbox等工具的下载,以及在线费用计算器的使用。 2018-10-18 函数实现与云监控服务的对接,函数上报云监控服务的监控指标、指标的命名空间和维度,用户可以通过云监控服务提供的API接口来检索函数产生的监控指标和告警信息。 函数新增Node.js Runtime集成的三方件:smnsdk、express、fgs-express和request。 2018-09-29 增加函数应用分组功能。 增加函数多目录在线编辑功能。 2018-08-29 新增高危操作保护功能,在删除函数、工作流、触发器、版本、别名时进行确认。 新增函数禁用功能。 新增体验馆,指导使用FunctionGraph构建功能程序,并演示效果。 CLI工具能力增强,支持对话交互模式。 Sandbox工具能力增强,支持加载云端事件。 新增应用模板。 2018-07-28 新增支持Node.js 8.10 Runtime。 优化监控指标,平均延迟优化为最大运行时间、最小运行时间、平均运行时间三个指标。 APIG触发器增加超时配置。 Node.js Runtime集成常用三方件。 新增CTS触发器,实现与华为云云审计服务的对接,可以订阅对应云服务的资源操作事件,当对订阅的资源操作时,会触发函数执行,实现预期功能。 支持将函数代码及配置信息打包导出,支持通过导入的方式创建函数。 Java SDK加入了触发器事件结构体定义,目前支持DMS、DIS、 SMN 、LTS、TIMER、APIG等六种。在需要使用触发器的场景时,编写相关代码更简单。 2018-07-13 新增LTS触发器,实现了与华为云云日志服务的对接。可以使用FunctionGraph函数对使用云日志服务订阅的日志进行自定义分析。详情请参考使用LTS触发器。 修复已知问题。 2018-06-30 函数与工作流产品及资料合并,定名为FunctionGraph。 合并后的FunctionGraph正式转为商用。
  • FunctionGraph权限 默认情况下,新建的 IAM 用户没有任何权限,您需要将其加入用户组,并给用户组授予策略,才能使得用户组中的用户获得策略定义的权限,这一过程称为授权。授权后,用户就可以基于策略对云服务进行操作。 FunctionGraph资源通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在各区域(如华北-北京1)对应的项目(cn-north-1)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问FunctionGraph时,需要先切换至授权区域。 根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。 如表1所示,包括了FunctionGraph的所有系统权限。 表1 系统权限说明 系统角色/策略名称 描述 类别 依赖关系 FunctionGraph Administrator 函数工作流(FunctionGraph)管理员,具有管理函数、工作流、触发器以及调用函数的权限(该权限后期会下线,建议您不使用) 系统角色 Tenant Guest FunctionGraph Invoker 函数工作流(FunctionGraph)调用者,具有查询函数、工作流、触发器以及调用函数的权限 系统角色 无 FunctionGraph FullAccess 函数工作流服务所有权限 系统策略 无 FunctionGraph ReadOnlyAccess 函数工作流服务只读权限 系统策略 无 FunctionGraph CommonOperations 函数工作流(FunctionGraph)调用者,具有查询函数和触发器,以及调用函数的权限 系统策略 无 表2 触发器及相关功能的权限 触发器/服务功能 权限 APIG apig:groups:get apig:groups:list apig:apis:create apig:apis:delete apig:apis:update apig:apis:publish apig:apis:list apig:apis:get apig:apis:offline apig:apps:list apig:envs:list APIG专享版 apig:instances:get apig:instances:create apig:instances:update apig:instances:list apig:sharedInstance:operate CTS cts:notification:create cts:notification:delete cts:notification:update cts:operation:list cts:tracker:list cts:trace:list DDS dds:instance:get dds:instance:list DIS dis:streams:list IoTDA iotda:routingrules:create iotda:routingrules:delete iotda:routingrules:queryList iotda:routingrules:query iotda:routingactions:create iotda:routingactions:delete iotda:routingactions:query iotda:routingactions:queryList iotda:subscriptions:queryList iotda:rules:modifyStatus iotda:apps:queryList LTS lts:groups:create lts:groups:get lts:groups:list lts:groups:put lts:logstreams:delete lts:logstreams:list lts:topics:get lts:subscriptions:create lts:subscriptions:delete lts:subscriptions:put lts:structConfig:create lts:structConfig:get OBS obs:bucket:GetBucketLocation obs:bucket:GetBucketNotification obs:bucket:PutBucketNotification obs:bucket:ListBucket SMN smn:topic:list smn:topic:update TMS tms:predefineTags:list tms:tagValues:list DNS dns:recordset:create, dns:recordset:list, dns:recordset:update, dns:zone:create, dns:zone:delete, dns:zone:get, dns:zone:list BSS bss:bill:view bss:renewal:view CES ces:alarms:get ces:alarms:list ces:alarms:create DMS dms:instance:get EG eg:subscriptions:get eg:subscriptions:list eg:sources:list eg:sources:get eg:agency:create eg:subscriptions:create eg:subscriptions:delete eg:subscriptions:operate 表3列出了FunctionGraph常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。 表3 常用操作与系统权限之间的关系 操作 FunctionGraph Invoker FunctionGraph Administrator FunctionGraph ReadOnlyAccess FunctionGraph CommonOperations FunctionGraph FullAccess 创建函数 × √ × × √ 查询函数 √ √ √ √ √ 修改函数 × √ × × √ 删除函数 × √ × × √ 调用函数 √ √ × √ √ 查看函数日志 √ √ √ √ √ 查看函数指标数据 √ √ √ √ √
  • 企业项目授权后仍报权限不足的说明 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM和企业管理的区别。 FunctionGraph当前仅函数资源接口支持企业项目方式授权,除函数资源外的部分接口仅支持IAM项目方式授权,因此针对仅支持IAM项目方式授权时需注意: 授权时选择“IAM项目视图”。 图1 IAM项目视图 选择授权范围时,建议根据最小化授权原则,选择“指定区域项目资源”,具体请根据实际业务情况选择授权范围。