# 函数工作流 FunctionGraph > 自动运行代码,无需配置或管理服务器 ## 产品介绍 - [什么是FunctionGraph](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0100.md): FunctionGraph是一项基于事件驱动的函数托管计算服务。使用FunctionGraph函数,只需编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,函数以弹性、免运维、高可靠的方式运行。此外,按函数实际执行资源计费,不执行不产生费用。函数使用流程如图1所示。①编写代码用户编写业务代码,目前支持Node.js、Pyth - [图解函数工作流服务](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0110.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [与其他服务的关系](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0130.md): FunctionGraph服务与以下云服务的对接,实现相关功能,如表1所示。 - [应用场景](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0140.md): 函数工作流应用场景,如实时文件处理、实时数据流处理、Web移动应用后端和人工智能场景。以事件驱动的方式执行服务,按需供给,开发者无需关注业务波峰波谷,节省闲时成本,最终降低运维成本。比如视频直播/转码、实时数据流处理、IoT规则/事件处理等。实时文件处理客户端上传文件到OBS,触发FunctionGraph函数,在上传数据后立即进行处理。 - [产品功能](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0141.md): FunctionGraph服务支持的主要功能如下。关于各功能支持的地域(Region)信息,可通过控制台查询详情。在FunctionGraph控制台创建函数时,支持使用已有模板或空模板。HTTP函数专注于优化 Web 服务场景,用户可以直接发送 HTTP 请求到 URL 触发函数执行。用户直接打包上传容器镜像,由平台加载并启动运行。函数流 - [约束与限制](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0150.md): 函数工作流服务支持区域详情请参见地区和终端节点。函数流当前仅支持华北-北京四、华东-上海一、华东-上海二、华南-广州、亚太-新加坡。 - [权限管理](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0160.md): 如果您需要对FunctionGraph的函数资源,给企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,您可以使用统一身份认证服务(Identity and Access Management,简称IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全地控制公有云资源的访问。通过IAM,您可 - [产品优势](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0180.md): 自动运行用户代码,用户无需配置或管理服务器,专注于业务创新。根据请求的并发数量自动调度资源运行函数,实现透明、准确和实时的伸缩,应付业务峰值的访问。用户无需关心峰值和空闲时段的资源需要申请多少资源,系统根据请求的数量自动扩容/缩容。自动负载均衡将请求分发到函数运行实例。同时系统会根据流量负载的模式来智能预热实例,以缓解冷启动对业务的影响。 - [产品功能](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0200.md): 提供控制台管理函数。函数支持Node.js、Python、Java、Go、C#、PHP运行时语言,同时支持用户定制运行时,说明如表1所示。建议使用相关语言的最新版本。运行时语言说明运行时语言支持版本Node.js6.10、8.10、10.16、12.13、14.18、16.17、18.15、20.15Python2.7、3.6、3.9、3 - [资产识别与管理](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0203.md): 在函数的整个生命周期中,FunctionGraph提供安全的运行环境,用户需结合FunctionGraph提供的安全机制确保代码、依赖包及配置的安全。FunctionGraph服务提供用户代码执行所需的计算节点和函数实例。该服务基于用户调用量综合评估后,提供有效的算力,同时确保节点的可用性和安全性。计算节点提供以下华为云标准的安全防护能力 - [身份认证与访问控制](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0204.md): FunctionGraph基于华为云统一身份认证服务IAM实现用户身份认证和对华为云资源进行精细的访问控制。用户访问FunctionGraph的方式有多种,包括FunctionGraph控制台、API、SDK,无论访问方式封装成何种形式,其本质都是通过FunctionGraph提供的REST风格的API接口进行请求。FunctionGra - [数据保护技术](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0207.md): 为了确保用户的数据(例如代码、函数元数据等)不被未经过认证、授权的实体或者个人获取,FunctionGraph对数据的传输进行全程加密保护,以防止数据泄露,保证您的数据安全。FunctionGraph中使用的数据保护技术如表1所示。 - [审计与日志](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0208.md): 云审计服务(Cloud Trace Service,CTS),是华为云安全解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。用户开通云审计服务并创建和配置追踪器后,CTS可记录FunctionGraph的管理事件用于审计。CTS的详细介绍和开通配置 - [服务韧性](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0211.md): 华为云数据中心按规则部署在全球各地,所有数据中心都处于正常运营状态,无一闲置。数据中心互为灾备中心,如一地出现故障,系统在满足合规政策前提下自动将客户应用和数据转离受影响区域,保证业务的连续性。为了减少由硬件故障、自然灾害或其他灾难带来的服务中断,华为云为所有数据中心提供灾难恢复计划。FunctionGraph的资源在多个分区部署,具有更 - [监控安全风险](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0212.md): FunctionGraph基于云监控服务CES提供资源与操作监控能力,帮助用户监控其账号下的函数,实现自动实时监控、告警及通知。用户能够了解函数的调用次数、错误次数、运行时间(包括最大、最小和平均运行时间)、被拒绝次数及资源统计等信息。云审计服务(CTS)提供多种云资源操作记录的收集、存储和查询功能,支持安全分析、合规审计、资源跟踪、问题 - [认证证书](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0214.md): 华为云服务及平台通过了多项国内外权威机构(ISO/SOC/PCI等)的安全合规认证,用户可自行申请下载合规资质证书。合规证书下载华为云还提供以下资源来帮助用户满足合规性要求,具体请查看资源中心。资源中心另外,华为云安全服务提供了网络安全专用产品安全检测证书、软件著作权等证书,供用户下载和参考。具体请查看合规资质证书。网络安全专用产品安全检 - [代码签名](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0314.md): 为了保障用户的代码安全,防止代码文件损坏或被篡改导致代码不一致问题,保证被执行的函数代码为正确版本,当函数创建或修改代码时,FunctionGraph对用户的函数代码签名加密,为其生成代码签名,并存储在函数元信息内。FunctionGraph在函数执行时,为当前执行的代码生成签名,然后将其与函数元信息内的代码签名进行对比,仅允许运行通过一 - [数据面保障](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0315.md): 负载均衡优化可用性通过负载均衡技术实现流量分发,有效避免单点故障,大幅提升系统整体可用性,确保业务稳定运行。通过负载均衡技术实现流量分发,有效避免单点故障,大幅提升系统整体可用性,确保业务稳定运行。VPC环境确保网络隔离计算节点被安置在隔离的VPC环境中,与外部网络严格隔离,用户无法直接访问,保障网络的安全性和隔离性。计算节点被安置在隔离 - [函数类型选型](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_02_1001.md): 本文介绍函数工作流支持的函数类型的适用场景及差异,供您进行函数类型选型。为满足不同场景下的用户需求,函数工作流支持通过在线编写代码、上传代码文件或者使用容器镜像,创建事件函数和HTTP函数,且支持使用GPU计算资源。在使用函数工作流时,可以根据业务场景和技术栈偏好,选择合适的函数类型和运行时。常见应用场景的函数选型建议请参考表1。关于事件 - [函数存储选型](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_02_1002.md): 本文介绍函数工作流支持的存储类型的适用场景及差异,供您进行函数存储选型。为了满足业务存储和访问文件的诉求,函数工作流提供丰富的存储类型,包括弹性云服务器ECS、高性能弹性文件服务SFS Turbo、对象存储服务OBS、临时存储和函数依赖包。具体的存储选型对比分析请参考表1。函数工作流支持的存储类型具体介绍如下。 - [函数实例类型与使用模式](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_02_1003.md): 本文为您介绍函数CPU实例和GPU实例的实例模式、计费方式及实例规格。函数实例有以下两种实例类型:CPU实例:函数工作流的基本实例,适用于突发流量和计算密集等场景。GPU实例:提供基于Turing架构的GPU实例,适用于音视频、AI人工智能和图像处理等场景。在各场景中,不同业务负载通过GPU硬件加速,以提升业务处理效率。GPU实例仅支持通 - [基本概念](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_02_1005.md): 函数是处理事件的自定义代码。事件源是发布事件的公有云服务或自定义应用程序。运行时(Runtime)为相应的编程语言提供执行环境,用于传递函数的调用事件、上下文信息和响应。FunctionGraph当前支持Node.js、Python、Java、Go、C#、PHP、Cangjie以及定制运行时。关于函数运行时的更多信息请参见函数运行时。同步 ## 计费说明 - [函数工作流计费概述](https://support.huaweicloud.com/price-functiongraph/functiongraph_00_0001.md): 通过阅读本文,您可以快速了解函数工作流 FunctionGraph的计费模式、计费项、免费额度、费用账单、欠费等主要计费信息。计费模式函数工作流采用按需付费方式,无最低费用,即总费用 = 请求次数费用 + 计量时间费用+节点执行次数(函数流)费用+其他费用。按需计费是一种后付费模式,即先使用再付费,关于计费模式的详细介绍请参考计费模式。函 - [函数工作流计费模式概述](https://support.huaweicloud.com/price-functiongraph/functiongraph_00_0003.md): 函数工作流采用按需付费方式,无最低费用,即总费用 = 请求次数费用 + 计量时间费用+节点执行次数(函数流)费用+其他费用。如您需要快速了解函数工作流服务不同计费模式的具体价格,请参见函数工作流价格详情。 - [按需计费](https://support.huaweicloud.com/price-functiongraph/functiongraph_00_0004.md): 函数工作流使用场景广泛,例如实时文件处理、实时数据流处理、Web移动应用后端和人工智能等场景。函数工作流实际费用是由请求次数费用、执行时间费用、函数流节点执行次数、GPU计量时间、磁盘计量时间、闲置内存计量时间和其他费用构成,各计费项按需计费说明请参见表1。华为云函数工作流 FunctionGraph 按照实际使用量付费,没有最低消费。计 - [计费项](https://support.huaweicloud.com/price-functiongraph/functiongraph_00_0010.md): 函数工作流的计费项是由请求次数费用、执行时间费用、节点执行次数(函数流)和其他费用构成,具体内容如表1。如您需要快速了解函数工作流服务的具体价格,请参见函数工作流价格详情。预留实例的创建和释放由用户管理,根据预留实例的执行时长计费。通过预留实例,用户能够预热函数,从而彻底消除冷启动对延时的影响。当用户调用API创建预留实例时,在预留实例创 - [计费样例](https://support.huaweicloud.com/price-functiongraph/functiongraph_00_0011.md): 某用户在4月份创建了3个函数A、B、C,如表1所示。假设在4月份中,函数A累计执行次数是200万次、函数B累计执行次数是10万次、函数C累计执行次数10万次,那么4月份中函数A、B和C总共产生多少费用?因为函数A、B和C使用不同类型实例,因此需要分段计算费用,具体明细如表2所示。某用户于2023年5月份创建了一个标准函数流,该标准函数流配 - [免费额度](https://support.huaweicloud.com/price-functiongraph/functiongraph_00_0012.md): 每个月您都能免费使用一定额度的函数工作流服务,免费额度是子主账户共同使用。请求次数:每月100万次的免费请求。计量时间:每月400,000GB-秒的免费执行时间。如果函数内存规格为1GB时,免费额度为400,000秒,如果函数内存规格为512MB时,免费额度为800,000秒,其它内存规格以此类推。免费额度不会按月累积,在每个自然月开始时 - [续费](https://support.huaweicloud.com/price-functiongraph/functiongraph_00_0013.md): 续费操作仅适用于包年/包月云服务器,函数工作流为按需计费模式,无需进行续费操作,保证帐户余额充足即可。如需查看包年/包月续费相关的服务,请在管理控制台“续费管理”页面进行续费操作,如图1所示。续费管理详细操作请参考续费管理。 - [费用账单](https://support.huaweicloud.com/price-functiongraph/functiongraph_00_0014.md): 您可以在“费用中心 > 账单管理”查看资源的费用账单,以了解函数工作流在某个时间段的使用量和计费信息。函数工作流会按天结算周期上报使用量到计费系统进行结算,具体扣费规则可以参考按需产品周期结算说明。 - [欠费说明](https://support.huaweicloud.com/price-functiongraph/functiongraph_00_0015.md): 您使用函数工作流时,账户的可用额度小于待结算的账单,即被判定为账户欠费。欠费后,可能会影响您的服务资源的正常运行,请及时充值。当账号进入欠费状态时,需要在约定时间内支付欠款,详细操作请参考欠费还款。在按需计费模式下账户的余额不足。欠费后,您无法创建、执行函数及对资源执行任何操作。您在欠费后需要及时充值,详细操作请参见账户充值。若相关函数或 - [停止计费](https://support.huaweicloud.com/price-functiongraph/functiongraph_00_0016.md): 对于不使用的函数、预留实例或函数流请您及时删除,避免后续继续产生费用。 - [成本管理](https://support.huaweicloud.com/price-functiongraph/functiongraph_00_0017.md): 在云原生时代,FunctionGraph作为华为云的无服务器计算服务,为开发者提供了按需执行代码的高效平台。然而,随着业务的不断扩展和复杂度的增加,如何在享受FunctionGraph带来的敏捷与弹性的同时,有效控制成本,成为了关注的焦点。本章节将深入探讨一系列成本优化策略,旨在帮助用户精打细算,实现FunctionGraph资源的高效利 - [计费FAQ](https://support.huaweicloud.com/price-functiongraph/functiongraph_00_0018.md): 是的,每个region都有一套函数,如果是同一个账号在不同的region都有函数,则函数计费中的调用次数为调用次数总和。不需要,冷启动时间不会被计量,因此用户无需为冷启动时间付费。 ## 快速入门 - [使用空白模板创建并执行函数](https://support.huaweicloud.com/qs-functiongraph/functiongraph_04_0101.md): 本章节介绍如何在函数工作流控制台使用空白模板快速开发一个简单的Hello World函数。该章节以创建HelloWorld事件函数为例,介绍函数的创建及测试过程,供您快速体验FunctionGraph函数的基本功能。注册华为账号并实名认证。在创建函数前,请先注册华为账号并实名认证,具体步骤请参考注册华为账号并开通华为云和实名认证介绍。如果 - [使用函数模板创建并执行函数](https://support.huaweicloud.com/qs-functiongraph/functiongraph_04_0102.md): FunctionGraph平台提供了多种函数模板,本章节将以“context使用指导”函数模板介绍如何在创建函数时选择模板,实现模板代码、运行环境自动填充,快速构建应用程序。注册华为账号并实名认证。在创建函数前,请先注册华为账号并实名认证,具体步骤请参考注册华为账号并开通华为云和实名认证介绍。如果您已有一个华为账号并实名认证,请跳过此步骤 - [使用容器镜像创建并执行HTTP函数](https://support.huaweicloud.com/qs-functiongraph/functiongraph_04_0103.md): 本章节将以使用容器镜像方式创建HTTP类型函数为例,介绍容器镜像函数的创建及测试过程。此过程中用户需要在镜像中实现一个http server,并监听8000(下文示例中提及的8000端口请不要变动)端口接收请求。备注:可以使用任意基础镜像。HTTP函数只支持使用APIC/APIG触发器。在云上环境会默认使用uid 1003,gid 100 - [使用容器镜像创建并执行事件函数](https://support.huaweicloud.com/qs-functiongraph/functiongraph_04_0104.md): 本章节将以使用容器镜像方式创建事件函数为例,介绍容器镜像函数的创建及测试过程。用户需要在镜像中实现一个http server,并监听8000端口接收请求。其中,请求路径/init 默认为函数初始化入口,请根据需要实现该接口。请求路径/invoke为函数执行入口,触发器事件转到该接口处理,请求参数请参见函数支持的事件源。备注:可以使用任意基 - [入门实践](https://support.huaweicloud.com/qs-functiongraph/functiongraph_04_0106.md): 您可以使用下述方式创建函数并部署代码。函数工作流控制台:基于界面化的操作快速创建出简易可执行的函数,适用于构建轻量级应用及快速验证等场景。具体操作步骤请参见使用空白模板创建并执行函数。VSCode:基于华为云函数工作流VSCode插件,您可以在本地代码编辑器便捷地创建、执行函数,适用于小型团队、个人开发者等。具体操作步骤请参见VSCode ## 用户指南 - [FunctionGraph业务使用流程](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0110.md): 函数工作流FunctionGraph是一项基于事件驱动的函数托管计算服务。使用FunctionGraph函数,只需编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,函数以弹性、免运维、高可靠的方式运行。此外,按函数实际执行资源计费,不执行不产生费用。使用FunctionGraph快速创建函数的流程如下:创建用户并授权使用F - [CTS支持的FunctionGraph操作列表](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0130.md): 云审计支持的FunctionGraph操作列表如表1所示。云审计服务支持的FunctionGraph操作列表操作名称资源类型事件名称创建函数FunctionscreateFunction删除函数FunctionsdeleteFunction修改函数信息FunctionsupdateFunctionConfig发布函数版本FunctionV - [FunctionGraph支持的运行时语言](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0151.md): 在函数工作流服务中创建函数时,需选定所需的运行时(Runtime),运行时为相应语言提供执行环境,以传递函数的调用事件、上下文信息和响应。用户可以使用函数工作流服务提供的运行时,或自行构建定制运行时。FunctionGraph支持的运行时语言及其版本请参考表1。 - [配置函数的环境变量](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0154.md): 本章节介绍如何通过函数工作流控制台,为函数配置环境变量,便于调整函数的执行行为。为函数配置环境变量,可以在不修改代码的情况下,将动态参数传递到函数,调整函数的执行行为。环境变量在函数中适用于以下场景:区分多环境:相同的函数逻辑,可根据部署环境的不同,配置不同的环境变量以区分。例如,通过环境变量给测试和开发环境配置不同的数据库。加密配置:函 - [调用函数](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0160.md): 函数创建和配置完成后,可通过RESTful API或者云服务事件源触发函数执行。RESTful API:通过调用API直接触发函数。云服务事件源:由云服务触发函数,即使用函数触发器。根据客户端是否需要等待函数的处理结果,函数的调用可分为同步调用和异步调用两种方式。同步调用是指客户端调用函数后,FunctionGraph会立即执行函数,等函 - [配置函数的版本](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0180.md): 函数在开发、测试到生产全生命周期中支持发布多个版本,实现对函数代码的迭代管理。每个版本是函数某一时刻的完整快照,可对应代码里的Tag,包含独立的代码、配置及依赖信息,便于回滚、并行部署或功能验证。函数创建以后,默认版本为latest版本,每个函数都有一个latest版本。函数版本发布后,可根据实际需要修改部分版本配置信息,但版本的代码无法 - [配置函数初始化](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0201.md): 本章节指导如何通过函数工作流控制台,配置函数的初始化。函数初始化是指调用函数时对其进行初始化设置的过程,包括设置函数的初始状态、分配资源和为函数内部的变量赋予初始值等。FunctionGraph是在函数实例启动成功后执行函数的初始化,初始化执行成功后,函数实例才能开始处理函数的调用请求。FunctionGraph保证一个函数实例在生命周期 - [使用消息通知服务(SMN)触发器](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0202.md): 本节介绍如何通过函数工作流控制台创建SMN触发器,实现发布消息时触发函数运行。关于消息通知服务SMN触发器事件源的具体介绍,请参见支持的事件源。本视频介绍如何在函数中使用SMN触发器,实现在SMN服务发布消息触发函数执行。因产品功能演进,操作界面可能存在差异,相关视频仅供参考,具体以实际环境为准。SMN触发器支持使用的区域和具体运行时函数 - [使用API网关服务(APIG专享版)触发器](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0204.md): 本节介绍如何通过函数工作流控制台创建APIG触发器,实现使用API调用函数运行。APIG专享版触发器是FunctionGraph与APIG(API Gateway)结合使用的一种方式,支持通过HTTPS或HTTP协议调用FunctionGraph函数。通过APIG的自定义REST API和终端节点,可以将特定的API操作(如GET、POS - [使用对象存储服务(OBS)触发器](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0205.md): 本节介绍如何通过函数工作流控制台创建OBS触发器,实现当OBS存储桶有文件更新时触发函数运行。关于OBS触发器事件源的具体介绍,请参见支持的事件源。多个事件类型可以作用于同一个目标对象,即支持多选事件类型。请参考表1选择需要使用的事件类型。本视频介绍如何在函数中使用OBS触发器,实现当OBS存储桶有文件更新时触发函数运行。因产品功能演进, - [使用数据接入服务(DIS)触发器](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0206.md): 本节介绍如何通过函数工作流控制台创建数据接入服务DIS触发器,实现使用系统内置的事件模板配置DIS事件,触发函数运行。数据接入服务DIS(Data Ingestion Service)为处理或分析流数据的自定义应用程序构建数据流管道,主要解决云服务外的数据实时传输到云服务内的问题。数据接入服务每小时可从多种数据源中连续捕获、传送和存储数T - [使用定时触发器(TIMER)](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0207.md): 本节介绍如何通过函数工作流控制台创建定时触发器(TIMER),实现按照设置的频率定期触发函数运行。常见应用场景示例:备份重要数据,例如每7天执行备份数据的函数。监控服务器状态和资源使用情况,例如每天上午10点执行函数并发送服务器使用报表。定时触发器使用TIMER的计划事件功能,能够根据设定的固定频率(分钟、小时、天数)或指定的Cron表达 - [使用云日志服务(LTS)触发器](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0208.md): 本节介绍如何通过函数工作流控制台创建LTS触发器,供您了解LTS触发器的使用方法。编写FunctionGraph函数来处理云日志服务订阅的日志,当云日志服务采集到订阅的日志后,可以通过将采集到的日志作为参数传递来调用FunctionGraph函数,FunctionGraph函数代码可以对其进行自定义处理、分析或将其加载到其他系统。LTS触 - [使用云审计服务(CTS)触发器](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0209.md): 本节介绍如何通过函数工作流控制台创建CTS触发器,实现通过增加自定义操作触发函数运行,然后通过云审计服务获取操作记录。云审计服务(Cloud Trace Service,以下简称CTS),是华为云安全解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪、问题回溯和问题定位等常 - [使用文档数据库服务(DDS)触发器(即将下线不建议使用)](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0210.md): 本节介绍如何通过函数工作流控制台创建DDS触发器,实现每次更新DDS数据库中的表时,都可以触发函数执行。DDS触发器即将下线,不建议新建使用。DDS触发器当前仅支持华东-上海二和华南-广州区域存量用户使用。具体运行时函数是否支持使用请以控制台为准。DDS触发器调用的请求正文有效负载大小为6M。函数及其配置:已创建函数。已配置函数的DDS和 - [使用云数据库GeminiDB MongoDB触发器(即将下线不建议使用)](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0210_00.md): 本节介绍如何通过函数工作流控制台创建GeminiDB MongoDB触发器,实现每次更新数据库中的表时,都可以触发函数执行。GeminiDB MongoDB触发器即将下线,不建议新建使用。GeminiDB Mongo触发器支持使用的区域和具体运行时函数请以控制台展示为准。GeminiDB Mongo触发器调用的请求正文有效负载大小为6M。 - [查看FunctionGraph的监控数据](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0212.md): FunctionGraph函数实现了与应用运维管理AOM服务的对接,用户无需任何配置,即可查询函数监控信息。FunctionGraph会统计函数的运行时指标,显示的指标是函数运行时活动的聚合视图。要查看不同函数版本的指标,可在查看指标前切换函数版本,查询不同版本对应的监控信息。登录函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表” - [FunctionGraph支持的监控指标](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0213.md): 本节定义了FunctionGraph上报云监控服务CES的监控指标的命名空间,监控指标列表和维度定义,用户可以通过云监控服务提供管理控制台或API接口来检索FunctionGraph产生的监控指标和告警信息。SYS.FunctionGraph具体展示的监控指标因区域选择而异,请以控制台显示的监控指标为准,此处列举FunctionGraph - [使用分布式消息服务 Kafka版(KAFKA)触发器](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0214.md): 本节介绍如何通过函数工作流控制台创建Kafka触发器,以实现FunctionGraph对Kafka实例中指定Topic的新消息进行定期轮询。FunctionGraph会将轮询得到的消息作为参数,用于调用相应函数。关于Kafka触发器的事件源介绍,请参见支持的事件源。分布式消息服务Kafka版与开源Kafka的差异说明,请参见Kafka与开 - [创建用户并授权使用FunctionGraph](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0215.md): 如果您需要对您所拥有的FunctionGraph进行精细的权限管理,您可以使用统一身份认证服务(Identity and Access Management,简称IAM),通过IAM,您可以:根据企业的业务组织,在您的华为云账号中,给企业中不同职能部门的员工创建IAM用户,让员工拥有唯一安全凭证,并使用FunctionGraph资源。根据 - [配置函数的网络环境](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0222.md): 本章节介绍如何通过函数工作流控制台,配置函数访问公网或访问VPC内资源。函数的网络访问能力如表1所示,可根据业务需求配置。在一个账号下所有的函数最多能绑定4个不同的子网。开启“函数访问VPC内资源”时,函数将禁用默认网卡并使用VPC绑定的网卡,是否允许公网访问由配置的VPC决定,开关“函数访问公网”将不生效。配置函数访问公网有以下两种方式 - [使用EventGrid触发器(RocketMQ自定义事件源)(仅存量用户支持)](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0227.md): 本节介绍如何通过函数工作流控制台创建EventGrid触发器(RocketMQ自定义事件源),实现使用RocketMQ自定义事件源触发函数执行。EventGrid触发器(RocketMQ自定义事件源)当前已不支持新建使用,仅存量用户可用。EventGrid触发器支持使用的区域和具体运行时函数请以控制台展示为准。函数及其配置:已创建函数。请 - [使用EventGrid触发器(OBS应用事件源)](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0228.md): 本节介绍如何通过函数工作流控制台创建EventGrid触发器(OBS应用事件源),实现当OBS存储桶有文件更新时触发函数运行。拉美-圣保罗一区域支持为共享函数配置EG(OBS应用事件源)触发器。关于EventGrid触发器事件源的具体介绍,请参见支持的事件源。EventGrid触发器支持使用的区域和具体运行时函数请以控制台展示为准。确保创 - [管理函数的触发器](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0301.md): 本章节介绍如何通过函数工作流控制台,查看和管理创建过的触发器。登录函数工作流控制台,在左侧导航栏选择函数触发器列表,如图1所示,即可查看创建过的所有触发器,触发器类型页签会优先展示用户当前使用的触发器。单击“所属函数”列下的函数链接,可跳转至函数详情页对触发器进行停用、启用或删除操作。触发器展示已经创建的触发器,可以通过设置停用或启用,控 - [在线调试函数](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0302.md): 本章节介绍如何通过函数工作流控制台管理测试事件,并通过测试事件在线调试函数。完成函数的各项配置后,在函数详情页的代码页签下,可自定义配置测试事件,验证函数能否成功执行。有关函数在线调试测试事件的操作,可以参考指导视频使用空白模板创建函数中调试测试事件的操作介绍。每个函数最多支持配置10个测试事件。测试事件配置并保存后可重复用于测试。在执行 - [配置函数的并发处理](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0303.md): 默认情况下,每个函数实例同一时刻只处理一个请求。函数收到并发请求时,例如并发三个请求,FunctionGraph会启动三个函数实例处理请求。FunctionGraph提供了单实例多并发能力,可以在一个实例上并发处理多个请求。函数的单实例多并发适合处理逻辑中有较长时间等待下游服务响应的场景,也适合函数逻辑中初始化时间较长的场景。单实例多并发 - [配置FunctionGraph的监控告警](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0304.md): 函数及触发器创建以后,可以实时监控函数被调用及运行情况。删除函数后,已创建的告警规则在CES服务控制台里不会实时更新,可能会继续在CES服务控制台里显示最多 7 天。不同版本函数的监控信息做了区分,查询函数指标之前设置函数版本,可以查询不同版本对应的监控信息。函数实现与云监控服务的对接,函数上报云监控服务的监控指标,用户可以通过云监控服务 - [启动函数流](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0308.md): 函数流配置完成后,需要启动函数流才能完成业务功能实现。当函数流的配置有改动后,必须先保存信息,才能启动函数流任务。在函数流编排页面右上角单击“启动”或在函数流列表页面选择“更多 > 启动”,弹出的启动执行页面。在弹出的启动执行页面,支持定义输入值或者直接启动。此处选择“定义输入值”。(输入定义值必须是JSON格式的内容。)启动执行配置单击 - [创建函数流](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0309.md): 函数流是一个面向无服务器计算领域,编排无服务器分布式应用的工作流服务。基于该服务,用户可以通过Low Code以及可视化的方式将多个独立的无服务器函数用顺序、分支、并行等方式轻松编排成一个完整的应用,并提供监控和管理平台,用于诊断和调试应用。本章节主要介绍如何创建函数流任务和编排函数流任务。您可以根据实际业务场景来创建标准函数流或快速函数 - [配置函数的动态内存](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0310.md): 本章节介绍如何通过函数工作流控制台,配置函数的动态内存,节省成本。默认情况下,一个函数唯一绑定了一个资源规格。开启动态内存可以让函数在处理指定请求时,设置本次处理中函数实例使用的资源规格。如果不指定资源规格,函数将使用默认配置的资源规格。以使用函数做视频转码为例,视频文件大小从MB到GB,不同编码格式和分辨率对转码需要的计算资源要求差别很 - [管理函数流](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0311.md): 函数流创建后,用户可以查看函数流的配置、执行历史、执行日志等信息,可以对失败的流程进行重试,也可以终止正在执行的流程。卡片显示卡片显示列表显示列表显示查看任务基本信息在“基本信息”页签,查看任务名称、ID、更新时间和创建时间等信息。在“基本信息”页签,查看任务名称、ID、更新时间和创建时间等信息。查看任务运行记录(仅支持标准函数流)在“运 - [配置和查看函数的调用链信息](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0312.md): 用户在函数的“监控”页签,开启调用链能力。开启后可以在函数”监控 > 调用链“页面或跳转至APM服务”应用监控 > 调用链"页面,查看函数调用链信息。当前仅支持Java8和Java11函数。当前特性仅中东-利雅得、华北-北京四、华东-上海一、华南-广州、亚太-雅加达、土耳其-伊斯坦布尔区域支持。调用链只支持512MB内存以上的函数,若函数 - [导入导出函数](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0320.md): FunctionGraph支持导入导出函数,可以把函数以文件的形式导出到本地,并在其他区域或其他用户的函数工作流控制台导入,实现函数配置数据的迁移。登录函数工作流控制台,在左侧导航栏选择“函数 > 函数列表”。在“函数”页面,可以通过以下两种方式导出函数。批量导出函数:在函数列表中勾选要导出的函数,单击“导出函数”,导出的函数将下载为zi - [通过应用中心部署函数应用](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0377.md): 应用中心使用资源编排服务来部署应用需要的周边资源(包含函数、委托、触发器等),使这些资源相互配合,共同执行任务。FunctionGraph应用中心提供了多种热门应用的函数模板,使用模板创建函数时,可实现函数代码、环境变量、函数触发器配置等的自动填充,助您快速构建函数应用。支持根据函数“运行时”和“使用场景”筛选函数模板,如图1所示单击函数 - [基于RAM共享函数资源](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0383.md): 基于资源访问管理RAM服务,FunctionGraph可以实现跨账号共享函数资源,资源所有者将资源同时共享给其他多个账号使用,资源使用者接受共享邀请后就可以访问和使用共享的函数资源。资源所有者可以依据最小权限原则和不同的使用诉求,选择不同的共享权限,资源使用者只能对资源进行权限内的访问,保证共享资源在满足资源使用者业务诉求的同时,提升资源 - [GPU函数概述](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0388.md): Serverless GPU是一种高度灵活、高效利用、按需分配GPU计算资源的新兴云计算服务。GPU能力Serverless化,通过提供一种按需分配的GPU计算资源,在一定范围内有效地解决原有GPU长驻使用方式导致的低资源利用率、高使用成本和低弹性能力等痛点问题。本文将介绍Serverless GPU的详细功能和优势。传统GPU长驻使用方 - [FunctionGraph监控概述](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0390_0.md): 华为云函数工作流FunctionGraph与华为云其他云服务紧密集成,为您提供整体解决方案,旨在解决Serverless应用中的可观测性问题。通过与华为云平台上监控、日志、跟踪和分析服务的深度集成,用户可以实现函数功能、性能和成本的有效监控与优化。华为云函数工作流FunctionGraph支持函数一键接入LTS。LTS满足Serverle - [配置函数的异步调用策略](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0390_03.md): 在异步调用函数的场景下,FunctionGraph会将请求排队,不等待函数的执行结果,直接向客户端返回响应,这种情况下客户端无法实时感知函数的执行结果。如果需要设置异步请求失败重试或者获取异步请求的结果通知,可以通过设置异步配置实现。失败重试:用户代码异常造成的失败,FunctionGraph默认不重试。如果函数中有需要重试的场景,例如调 - [配置HTTP函数的请求头传入密钥](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0395.md): HTTP函数的密钥信息仅能通过请求头传递,如需获取HTTP函数的AK、SK、Token等如表1所示的信息,请参考以下步骤操作:登录函数工作流控制台,进入需配置的HTTP函数详情页。单击设置 > 高级设置,开启请求头传入密钥开关,单击保存,即可使用请求头传入密钥。请求头传入密钥关于HTTP函数的更多说明请参考创建HTTP函数。 - [通过KooCLI管理函数](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0396.md): KooCLI工具支持FunctionGraph服务,用户可以通过CLI工具执行函数管理、别名管理、触发器管理函数调用等操作。当通过API访问公有云系统时,需要使用访问密钥进行身份认证并对请求进行加密,确保请求的机密性、完整性和请求双方身份的正确性。请妥善保存config.yaml配置文件,确保访问密钥不被非法使用。建议使用安全性更高的临时 - [函数配置概述](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0397.md): 成功创建函数后,需配置函数运行所必须的资源与环境,确保函数满足业务需求。图1介绍了函数配置的总体流程。详细的步骤操作说明请参考表1。 - [制作函数的私有依赖包](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0398.md): 本章节介绍如何在本地制作函数的私有依赖包。依赖包的文件大小限制为300MB,文件限制数为30000。依赖包内文件名不能以~结尾,例如“module~”。如果安装的依赖模块需要添加依赖库,请将依赖库归档到zip依赖包文件中,例如添加.dll、.so、.a等依赖库。制作函数依赖包推荐在Huawei Cloud EulerOS 2.0环境中进行 - [函数触发器概述](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0399.md): 触发器是FunctionGraph中用于启动函数执行的重要机制。当其他云服务作为事件源检测到特定事件时,触发器会根据预定义的规则自动调用关联的函数,从而实现事件的实时处理。FunctionGraph支持的触发事件请参见FunctionGraph支持的触发事件。每个事件传递到函数时,仅包含与该触发器相关的事件数据,事件数据以结构化的JSON - [使用EventGrid触发器(RabbitMQ自定义事件源)(仅存量用户支持)](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0400.md): 本节介绍如何通过函数工作流控制台创建EventGrid触发器(RabbitMQ自定义事件源),实现使用RabbitMQ自定义事件源触发函数执行。EventGrid触发器(RocketMQ自定义事件源)当前已不支持新建使用,仅存量用户可用。EventGrid触发器支持使用的区域和具体运行时函数请以控制台展示为准。函数及其配置:已创建函数。请 - [使用函数模板创建函数](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0401.md): FunctionGraph提供了多种场景的函数模板,使用函数模板创建函数时,可实现函数代码、环境变量、函数触发器配置等的自动填充,助您快速构建函数应用。支持根据函数类型、使用场景筛选函数模板,单击函数模板的查看详情可查看该模板的描述、输入输出参数以及注意事项。使用函数工作流控制台的所有操作均默认具有操作权限,请确保您登录的用户已有“Fun - [配置函数的磁盘挂载](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0402.md): 本章节介绍如何通过函数工作流控制台,配置函数的磁盘挂载,扩展函数的存储空间。FunctionGraph支持通过挂载文件系统为函数提供持久化存储能力,挂载文件系统可为函数带来如下优势:多个函数之间可以挂载同一个文件系统,共享访问已经配置好的文件系统。利用ECS已有的存储能力,可实现计算资源的动态扩展。相比于临时存储空间/tmp,可以极大的扩 - [启用禁用函数](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0405.md): FunctionGraph支持对函数进行禁用和启用操作,已禁用的函数不能被调用执行。只能禁用“latest”版本的函数,不能禁用已经发布的函数版本。基于已禁用的“latest”版本重新发布新版本,发布后的新版本也处于禁用状态且不能启用。当函数处于禁用状态时可以修改代码,但不能执行函数。登录函数工作流控制台,在左侧导航栏选择“函数 > 函数 - [配置函数流的EG服务组件](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0407.md): 函数流支持配置事件网格服务(EG)服务组件,EG节点会发布已配置的事件至指定的EG事件通道,如何创建EG资源请参见开始使用事件网格。EG服务组件当前仅支持华北-北京四。通过数据工坊DWR服务创建的函数流,在函数工作流控制台只能查看,不能编辑和删除,相关操作请在DWR服务中执行。当前允许流程中配置0-10个EG节点。当EG节点连接异常处理节 - [配置函数流的函数服务组件](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0408.md): 函数流支持配置函数服务组件,通过该组件可以关联已创建的函数,进而实现业务需求。通过数据工坊DWR服务创建的函数流,在函数工作流控制台只能查看,不能编辑和删除,相关操作请在DWR服务中执行。配置的函数节点返回的数据格式必须是json格式,否则会解析失败。同步调用不支持长时间函数,最大执行时长为15分钟。异步调用支持长时间函数,单函数节点的最 - [配置函数流的子流程控制器组件](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0410.md): 函数工作流服务可以把一些“函数流”作为“子流程”组合成一个新的函数流,这样可以抽取出一些函数流作为公共流进行使用,减少函数流的重复编排。通过数据工坊DWR服务创建的函数流,在函数工作流控制台只能查看,不能编辑和删除,相关操作请在DWR服务中执行。已经在函数工作流控制台创建函数流,可作为配置子流程使用。使用函数流功能前,请先了解表达式说明和 - [配置函数流的并行分支控制器组件](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0411.md): 函数流的并行分支控制器组件支持函数流同时执行多个分支任务,并可根据分支执行结束后控制下一步流程。通过数据工坊DWR服务创建的函数流,在函数工作流控制台只能查看,不能编辑和删除,相关操作请在DWR服务中执行。并行分支控制器组件的后继节点允许连接1-20个节点(除了异常处理、开始节点和结束节点),至少连接一个节点。使用函数流功能前,请先了解表 - [配置函数流的开始控制器组件](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0412.md): 函数流的开始控制器组件是用于标识流程的开始。通过数据工坊DWR服务创建的函数流,在函数工作流控制台只能查看,不能编辑和删除,相关操作请在DWR服务中执行。每个函数流必须以“开始节点”作为流程开始且只能有一个“开始节点”,同时以“结束节点”作为流程结束。开始节点后面必须接1个节点,且后续节点类型不能是结束节点或者异常处理。“开始节点”只能配 - [配置函数流的异常处理控制器组件](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0413.md): 异常处理控制器组件用于控制函数执行失败后的下一步流程,当函数流里面的函数执行异常时,可以通过“异常处理”来处理执行失败的函数并可添加重试。函数执行失败可分为多种情况:函数执行异常;函数内部业务失败并在返回内容中添加了错误码,例如status,200代表成功,500和404等代表失败。通过数据工坊DWR服务创建的函数流,在函数工作流控制台只 - [配置函数流的循环控制器组件](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0414.md): 循环控制器组件可以用来对输入数组中每个元素进行循环处理,每次循环会执行一次循环内部的子流程或函数。通过数据工坊DWR服务创建的函数流,在函数工作流控制台只能查看,不能编辑和删除,相关操作请在DWR服务中执行。循环节点内部子流程需要满足如下规则:只能有一个起始节点(没有前驱节点),起始节点只能使用函数,时间等待节点。循环节点内部只允许编排函 - [配置函数流的时间等待控制器组件](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0415.md): 时间等待控制器组件可以用来控制当前子流程或函数在指定时间延迟后再调用下一个子流程或函数。通过数据工坊DWR服务创建的函数流,在函数工作流控制台只能查看,不能编辑和删除,相关操作请在DWR服务中执行。时间等待控制器组件后面可以连接0个或1个节点,节点类型不能是开始节点和异常处理节点。使用函数流功能前,请先了解表达式说明和运算符说明。在函数流 - [配置函数流的服务控制器组件](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0416.md): 服务控制器组件可以将多个函数操作合并成一个原子节点进行管理。函数流的服务控制器组件支持两种执行模式:串行模式和并行模式。通过数据工坊DWR服务创建的函数流,在函数工作流控制台只能查看,不能编辑和删除,相关操作请在DWR服务中执行。服务控制器组件由多个函数节点组成,后续节点可以是结束节点或异常处理节点。使用函数流功能前,请先了解表达式说明和 - [配置函数流的条件分支控制器组件](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0417.md): 函数流的条件分支控制器组件可以根据设置的条件判断是否执行其他分支。通过数据工坊DWR服务创建的函数流,在函数工作流控制台只能查看,不能编辑和删除,相关操作请在DWR服务中执行。条件分支控制器组件后面可以连接2-20个后继节点,后继节点类型不能为开始节点、结束节点和异常处理节点。使用函数流功能前,请先了解表达式说明和运算符说明。在函数流编排 - [配置Java函数类隔离和预停止](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0418.md): 类隔离是指使用单独的类加载器加载用户代码和依赖,解决用户依赖和运行时依赖的冲突,如无依赖冲突问题则无需使用类隔离。预停止是指每次FunctionGraph停止当前函数实例前,用户希望FunctionGraph调用指定回调函数,然后再停止函数实例。当前仅使用Java语言的函数支持配置类隔离和预停止。登录函数工作流控制台,在左侧导航栏选择“函 - [在线编辑函数代码](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0419.md): 本章节介绍如何通过函数工作流控制台在线编辑与部署函数代码,以及如何查看和修改函数执行入口。编写函数业务代码是配置函数实现业务需求的第一步,FunctionGraph预装了适用于Node.js、Python、PHP、定制运行时函数的开发工具包。如果函数代码仅依赖于开发工具包库,则可以使用函数工作流控制台中代码页签下的代码编辑器在线编辑函数代 - [直接上传函数代码](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0500.md): 本章节介绍如何通过函数工作流控制台,直接上传函数代码文件进行部署。当函数的代码文件大小不超过40MB时,可以在函数工作流控制台直接上传本地开发完成的ZIP或JAR代码文件进行函数代码部署。运行时支持直接上传的代码文件类型请参考表1,请参见函数工程打包规范在本地打包代码文件。直接上传代码支持的文件类型运行时上传ZIP文件上传JAR文件说明N - [通过OBS上传函数代码](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0501.md): 本章节介绍如何将存储在OBS中的函数代码文件,上传至函数工作流控制台。函数工作流控制台支持通过输入OBS地址,上传OBS桶中文件大小不超过300MB的函数代码文件对象,支持上传ZIP格式的代码文件进行函数代码部署。当前所有运行时均支持从OBS上传函数代码,请参见函数工程打包规范在本地打包代码文件并上传至OBS桶。请确保函数与OBS桶所在区 - [函数依赖包概述](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0502.md): 函数依赖包包含支持函数业务代码运行的公共库,可以将代码所需的公共库封装成依赖包进行单独管理,便于多函数共享,同时也能有效缩减函数代码在部署与更新过程中的体积。FunctionGraph支持对同一依赖包进行版本迭代,即同一依赖包可拥有多个版本,便于系统化管理。函数依赖包分为公共依赖包与私有依赖包。具体配置指导请参考为函数配置依赖包章节。公共 - [配置函数的流式返回](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0908.md): 为满足当前Web应用及AI应用在实时数据传输和大报文传输方面的需求,函数支持配置流式返回开关,将函数的响应报文以HTTP流式传输的方式返回给客户端。采用流式返回具有以下优势:支持更大规模的响应报文(最大可达200M)。由于流式传输无需一次性传输全部报文,可在函数代码中分批处理和传输数据,有效降低内存占用。通过流式传输可实现更快的首字节响应 - [配置函数的委托权限](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0920.md): 本章节介绍如何创建、配置和修改函数的委托权限。当函数工作流服务需与其他云服务协同工作时,应创建云服务委托,授权FunctionGraph使用这些云服务,并在FunctionGraph中为函数配置委托权限,以实现与其他云服务的协同工作。对于常见函数应用场景的委托配置,可参考常见应用场景授权项配置。为方便创建和使用函数,当华为云账号下无函数默 - [使用容器镜像创建函数](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1047.md): FunctionGraph支持加载并运行容器镜像中的函数,相较于直接上传代码的方式,用户能够使用自定义代码包,灵活且减少了迁移成本。支持使用公开和私有的镜像类型,具体详情请参考编辑镜像属性。使用函数工作流控制台的所有操作均默认具有操作权限,请确保您登录的用户已有“FunctionGraph Administrator”权限,即Functi - [使用API Connect(APIC)触发器](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1085.md): 本节介绍如何通过函数工作流控制台创建APIC触发器,实现使用API调用函数运行。APIC触发器是FunctionGraph与ROMA Connect结合使用的一种方式,支持通过HTTPS或者HTTP调用FunctionGraph函数,将各个API操作(如GET和PUT)映射到特定的FunctionGraph函数,当向该API发送HTTPS - [使用Terraform创建函数](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1147.md): Terraforms是一款开源工具,用于安全有效地构建、更改和版本控制基础设施。用户能够通过这些配置文件声明所需的基础设施最终状态,而不需要具体指定如何实现这个状态。Terraform的优势:提升架构一致性:减少手动配置过程中的错误和配置漂移。降低运维成本:通过编程方式管理虚拟机,减少手动配置硬件及更新的需求。提升操作效率:简化系统配置、 - [创建事件函数](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1441.md): 创建函数是在FunctionGraph业务使用流程中的第一步操作,如需通过云产品事件触发函数执行特定任务,可创建事件函数,并根据业务需求完成函数代码、网络配置及函数触发器等必要配置。本章节介绍如何通过控制台创建事件函数。FunctionGraph支持创建空白事件函数和HTTP函数,关于事件函数与HTTP函数的选型对比请参考表1。本视频介绍 - [创建HTTP函数](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1442.md): 如需使用流行Web应用框架编写函数代码和构建AI项目,可创建HTTP函数,并根据业务需求完成函数代码、网络配置及函数触发器等必要配置。本章节介绍如何通过控制台创建HTTP函数并提供HTTP使用示例。FunctionGraph支持创建空白事件函数和HTTP函数,关于事件函数与HTTP函数的选型对比请参考表1。HTTP函数专注于优化 Web - [使用分布式消息服务 RabbitMQ版(RABBITMQ)触发器](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1821.md): 本节介绍如何通过函数工作流控制台创建RabbitMQ触发器(当前只支持fanout路由模式),以实现FunctionGraph在RabbitMQ实例中,指定交换机绑定的队列下的新消息进行定期轮询。FunctionGraph会将轮询得到的消息作为参数,用于调用相应函数。关于分布式消息服务RabbitMQ触发器的事件源介绍,请参见支持的事件源 - [使用云数据库GeminiDB DynamoDB触发器](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1822.md): 本节介绍如何通过函数工作流控制台创建云数据库GeminiDB DynamoDB触发器。GeminiDB推出了兼容DynamoDB API的服务,用户可以通过SDK/CLI访问数据库服务。关于GeminiDB兼容DynamoDB接口的详细介绍请参考GeminiDB兼容DynamoDB接口。云数据库GeminiDB DynamoDB作为事件源 - [配置函数的常规信息](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1828.md): 函数的常规配置信息如函数执行入口、执行超时时间、内存等,会在创建函数时根据所选择的运行时语言默认填写,用户可根据实际业务需要修改常规信息的配置。登录函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。单击函数的名称,进入函数详情页。在“设置”页签下选择“常规设置”。在常规设置页面参考表1 基本信息配置说明修改常规信息。常规信息配置 - [配置函数的别名](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1829.md): FunctionGraph支持为函数创建别名,并关联指定版本的函数,通过别名调用函数时,即可调用到指定版本的函数。在实际业务场景下,可以通过修改在别名上配置的版本,实现函数版本的更新和回滚,客户端无感知。一个别名支持配置最多2个函数版本,并为两个版本分配不同的权重,实现灰度发布。单个函数最多可以创建10个别名。一个别名支持配置最多2个函数 - [配置和查看函数的调用日志](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1834.md): FunctionGraph函数实现了与云日志服务的对接,用户无需任何配置,即可查询函数日志信息。在FunctionGraph函数控制台,可以通过以下两种方式查看函数日志。在测试页签查看日志函数创建完成后,可以测试函数,在执行结果页,可以查看函数测试日志。操作步骤请参见在线调试函数。此处最多显示2KB字节日志,如果日志太多,可以去函数详情页 - [配置函数的心跳检测](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1835.md): 本章节介绍如何通过函数工作流控制台,配置心跳函数,检测函数运行时的异常场景。心跳函数用于检测函数运行时的异常场景,如函数死锁、函数内存溢出、函数网络异常等。配置了心跳函数后,当函数运行时,FunctionGraph每隔5秒向函数实例发送一次心跳请求,触发心跳函数。如果心跳请求返回异常,FunctionGraph会认为函数实例异常,将终止此 - [为函数配置预留实例](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1837.md): FunctionGraph提供了按量和预留两种类型的实例。按量实例是由FunctionGraph根据用户使用函数的实际情况来创建和释放,当FunctionGraph收到函数的调用请求时,自动为此请求分配执行环境。预留实例是将函数实例的创建和释放交由用户管理,如果一个函数创建了预留实例,FunctionGraph收到此函数的调用请求时,会优 - [使用开源Kafka(OPENSOURCEKAFKA)触发器](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1838.md): 本节介绍如何通过函数工作流控制台创建开源Kafka(OPENSOURCEKAFKA)触发器,以实现FunctionGraph对Kafka实例中指定Topic的新消息进行定期轮询。FunctionGraph会将轮询得到的消息作为参数,用于调用相应函数。分布式消息服务Kafka版与开源Kafka的差异说明,请参见Kafka与开源Kafka的差 - [配置函数的标签](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1839.md): 标签用于标识和分类函数资源,标签与函数资源间为多对多关系。为函数添加标签后,可通过标签快速检索和定位函数,便于系统化管理资源。为函数配置标签,支持以下两种标签来源。使用标签管理服务(TMS)创建的全局资源标签,支持在TMS服务中通过标签筛选函数资源。使用FunctionGraph创建标签,支持在函数列表中通过标签筛选函数。一个函数最多可以 - [使用设备接入(IoTDA)触发器](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1843.md): 本节介绍如何通过函数工作流控制台创建IoTDA触发器,实现与设备接入服务IoTDA的协同工作。关于设备接入服务IoTDA触发器事件源的具体介绍,请参见支持的事件源。IoTDA触发器支持使用的区域和具体运行时函数请以控制台展示为准。已创建函数。已创建IoTDA实例,创建详情请参见购买IoTDA实例。已创建IoTDA实例的资源空间,创建详情请 - [配置函数的快照式冷启动](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1884.md): FunctionGraph支持基于进程级快照的冷启动加速方案,用户无需额外付费,只需进行简单的配置、少量的代码修改,即可享受到该方案带来的冷启动性能提升。当用户的Java函数启用快照式冷启动后,FunctionGraph会预先执行函数对应的初始化代码,获取其初始化执行上下文环境的快照,并进行加密缓存。后续调用该函数时会触发冷启动,直接从提 - [配置函数的WebSocket连接](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1885.md): 本章节介绍通过函数工作流控制台,配置函数的WebSocket连接。在FunctionGraph中,可以通过配置APIG触发器,使函数能够响应WebSocket请求。配置完成后,相关联的函数可以作为一个Web服务器,处理WebSocket连接和消息,并将结果返回给客户端。适用于长连接、实时消息收发和实时数据监控等场景,能够实现高效的实时通信 - [在CTS事件列表查看云审计事件](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1900.md): 云审计服务能够为您提供云服务资源的操作记录,记录的信息包括发起操作的用户身份、IP地址、具体的操作内容的信息,以及操作返回的响应信息。根据这些操作记录,您可以很方便地实现安全审计、问题跟踪、资源定位,帮助您更好地规划和利用已有资源、甄别违规或高危操作。本节介绍如何在云审计服务控制台查看或导出最近7天的操作记录。事件即云审计服务追踪并保存的 - [自定义镜像方式创建GPU函数](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_2004.md): FunctionGraph支持通过容器镜像方式创建的函数启用GPU功能,进而帮助用户有效地解决GPU长驻使用方式导致的资源浪费、高成本、低弹性等问题,为用户提供更加便捷、高效的GPU计算服务。目前该功能仅支持华东-上海一区域,如需使用,请提交工单申请白名单。GPU函数不支持的网段:192.168.64.0/18,192.168.128.0 - [定制运行时方式创建GPU函数](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_2005.md): FunctionGraph支持运行时语言是“定制运行时”的函数启用GPU功能,进而帮助用户有效地解决GPU长驻使用方式导致的资源浪费、高成本、低弹性等问题,为用户提供更加便捷、高效的GPU计算服务。目前该功能仅支持华东-上海一区域,如需使用,请提交工单申请白名单。GPU函数不支持的网段:192.168.64.0/18,192.168.12 - [为函数配置依赖包](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_2119.md): 本章节介绍如何通过函数工作流控制台,对函数依赖包进行创建、配置和删除操作。依赖包为函数提供依赖库、运行时环境及扩展能力。关于函数依赖包的相关介绍请参考函数依赖包概述。私有依赖包需先在函数工作流控制台创建后再配置使用,公共依赖包可直接配置使用。如函数代码中需使用标准库和FunctionGraph内置的部分非标准库,可参考支持引入的依赖库说明 - [申请扩大FunctionGraph配额](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_02_00001.md): 为防止资源滥用,平台限定了各服务资源的配额,对用户的资源数量和容量做了限制。如您最多可以创建多少台弹性云服务器、多少块云硬盘。如果当前资源配额限制无法满足使用需要,您可以申请扩大配额。登录管理控制台。在页面右上角,选择“资源 > 我的配额”。系统进入“服务配额”页面。进入服务配额页面您可以在“服务配额”页面,查看各项资源的总配额及使用情况 ## 最佳实践 - [使用FunctionGraph函数流对图片进行压缩和打水印](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_01_0288.md): 本章节主要介绍如何使用函数流实现流式大文件处理。您可以根据实际业务场景来创建快速函数流实现。Serverless Workflow由于自身可编排、有状态、持久化、可视化监控、异常处理、云服务集成等特性,适用于很多应用场景,比如:复杂度高需要抽象的业务(订单管理,CRM 等)业务需要自动中断 / 恢复能力,如多个任务之间需要人工干预的场景( - [FunctionGraph最佳实践汇总](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0000.md): 本文汇总了基于函数工作流服务(FunctionGraph)常见应用场景的操作实践,为每个实践提供详细的方案描述和操作指导,帮助您轻松构建基于函数工作流的业务。 - [FunctionGraph性能优化实践](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0100.md): 在Serverless技术日益普及的今天,性能优化已成为提升应用效率与用户体验的关键。本篇旨在探讨FunctionGraph性能优化的最新实践,从冷启动优化、函数执行优化等方面,全面分析如何在不同场景下实现最优性能,为您提供实用的指导,帮助您在FunctionGraph上构建更高效、更稳定的应用。编写幂等代码。为函数编写幂等代码可确保函数 - [FunctionGraph安全最佳实践](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0101.md): 安全性是华为云与您的共同责任。华为云负责云服务自身的安全,提供安全的云环境。您需要合理利用云服务提供的安全功能保护数据,确保安全地使用云服务。本文提供了FunctionGraph使用过程中的安全最佳实践,旨在提供可操作的规范性指导以提升整体安全能力。依据该指导文档,能够持续评估函数的安全状态,有效结合FunctionGraph提供的多种安 - [使用FunctionGraph函数对OBS中的图片进行压缩](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0300.md): 本实践适用于将单张或批量的图片压缩处理。高质量图片文件通常占用大量存储空间和带宽,导致网站和应用的加载速度变慢,结合对象存储服务OBS,使用FunctionGraph函数可以构建一个高效的图片压缩解决方案,对存储在OBS桶中的图片进行自动压缩处理,实现存储空间优化与资源高效利用。“OBS应用事件源”触发器目前仅支持华北-北京四、华北-乌兰 - [准备](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0401.md): 创建函数及添加事件源之前,需要创建两个OBS桶,分别用来保存用户上传的图片和打水印后输出的图片。OBS桶创建以后,需要创建委托,给FunctionGraph函数赋权,确保FunctionGraph函数能够访问到OBS资源。注意事项上传图片的源桶、输出图片的目标桶和函数必须处于同一个区域下。必须使用两个不同的桶。如果使用一个桶,会无限执行函 - [构建程序](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0402.md): 本例提供了为图片打水印功能的程序包,使用空白模板创建函数,用户可以下载(watermark.zip)学习使用。本例使用Python语言实现为图片打水印的功能,有关函数开发的过程请参考Python函数开发。本例不再介绍业务功能实现的代码,样例代码目录如图1所示。其中index.py为函数执行的入口文件,index.py中入口函数的代码片段如 - [添加事件源](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0403.md): OBS桶及函数创建以后,可以为函数添加事件源,添加OBS事件源是通过创建OBS应用事件源实现的,步骤如下。触发器名称:自定义。桶:选择创建OBS桶中创建的“bucket-input-fg”桶。事件类型:选择“通过页面或Put请求创建或覆盖桶对象。”、“使用Post请求创建或覆盖桶对象。”。创建OBS应用事件源OBS应用事件源创建以后,当有 - [处理图片](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0404.md): 当图片上传后更新至bucket-input-fg桶时,会生成事件,触发函数运行,将上传图片打水印,保存在bucket-output-fg中。登录对象存储服务控制台,进入bucket-input-fg桶对象界面,上传image.jpg图片,如图1所示。上传图片至bucket-input-fg桶,OBS生成事件触发函数运行,为图片打水印,输出 - [案例概述](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0405.md): 本手册基于函数工作流服务实践所编写,用于指导您使用函数工作流服务实现为图片打水印的功能。(当前“OBS应用事件源”仅支持华北-北京四、华北-乌兰察布一、华东-上海一。)将图片上传到特定的OBS桶中。将用户上传的每个图片打水印。将处理完后的图像上传到另一个指定的OBS桶中。本教程必须使用两个不同的OBS桶。保证函数和OBS桶在一个区域(区域 - [准备](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0601.md): 案例实现的功能是将DIS数据格式转换,存储到表格存储服务中,所以需要先在表格存储服务创建集群,在创建集群时需要使用虚拟私有云。创建函数之前,需要创建委托,给FunctionGraph函数赋权,确保FunctionGraph函数能够访问到DIS和CloudTable资源。基本信息中输入您自定义的名称,此处以“vpc-cloudtable”为 - [构建程序](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0602.md): 本例提供了DIS数据流格式转换的源码和程序包(包含函数依赖),使用空白模板创建函数,用户可以下载、学习使用。本例使用Java语言实现DIS数据流格式转换功能,有关函数开发的过程请参考Java函数开发指南,本例不再介绍业务功能实现的代码。下载样例源码(fss_examples_dis_cloudtable_src.zip),解压缩,在Ecl - [添加事件源](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0603.md): 函数创建以后,可以为函数添加事件源,本例通过配置DIS测试事件,模拟DIS输入数据,步骤如下。配置测试事件:选择“创建新的测试事件”。事件模板:选择“数据接入服务(DIS)”。事件名称:输入您自定义的事件名称,此处以“dis-test”为例。测试事件 - [处理数据](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0604.md): 处理模拟数据步骤如下。 - [案例概述](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0605.md): 本手册基于函数工作流服务实践所编写,用于指导您使用函数工作流服务实现处理DIS数据的功能。使用数据接入服务(DIS)采集IOT实时数据流,需要将采集到的数据进行处理(比如格式转换),然后存储到表格存储服务(CloudTable Service)中,使用FunctionGraph函数可以实现此功能。创建虚拟私有云和集群。构建实现数据处理功能 - [案例概述](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0801.md): 本案例展示了函数工作流服务+LTS云日志服务实现日志云端处理并推送告警消息的功能,并将告警日志投递至OBS桶中集中存储。通过LTS云日志服务,快速完成ECS等服务器的任务运行日志采集、加工和转换。通过函数工作流服务中的函数创建LTS触发器获取日志数据,经由自定义函数对日志中的关键信息进行分析和处理,过滤出告警日志。SMN消息通知服务通过短 - [准备](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0802.md): 在云日志服务创建日志组,此处以polo.guoying为例,创建过程请参考创建日志组。在云日志服务创建日志流,此处以lts-topic-gfz3为例,创建过程请参考创建日志流。在云日志服务配置Agent,快速将ECS等服务器上日志采集到指定的日志组,配置过程请参考安装ICAgent。在SMN消息通知服务创建主题,此处以主题名称fss_te - [构建程序](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0803.md): 本案例提供了实现提取告警日志功能的程序包,使用空白模板创建函数,用户可以下载(fss_examples_logstore_warning.zip)学习使用。创建实现日志提取功能的函数,将示例代码包上传。创建过程请参考创建函数,运行时语言选择“Python2.7”,委托名称选择创建委托中的“LtsOperation”。函数实现的功能是:将收 - [添加事件源](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0804.md): 选择准备中创建的日志组和日志主题,创建LTS触发器。LTS触发器配置如图1所示。LTS日志服务的消费端在日志累积大小或日志累积时间满足条件时消费LTS日志数据,并根据订阅该组LTS日志数据的函数URN触发函数执行。 - [处理结果](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0805.md): 若日志包含“WRN”、“WARN”、“ERR”或“ERROR”关键字的告警日志,可收到SMN发送的通知消息邮件,如图1所示。同时可以查看OBS桶中的log.txt文件,可查看到具体的告警日志内容,如图2所示。可以通过函数指标查看函数的调用情况,如图3所示。 - [案例概述](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0901.md): 通过CTS云审计服务,完成对公有云账户对各个云服务资源操作动作和结果的实时记录。通过在函数工作流服务中创建CTS触发器获取订阅的资源操作信息,经由自定义函数对资源操作的信息进行分析和处理,产生告警日志。SMN消息通知服务通过短信和邮件推送告警信息,通知业务人员进行处理。处理流程如图1所示。处理流程通过云审计服务CTS,快速完成日志分析,对 - [准备](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0902.md): 在云审计服务中开通配置追踪器,如图1所示。开通方法与配置请参考追踪器配置。委托名称:输入您自定义的委托名称,此处以“serverless_trust”为例。委托类型:选择“云服务”。云服务:选择“函数工作流 FunctionGraph”。持续时间:选择“永久”。描述:填写描述信息。SMN Administrator:拥有该权限的用户可以对 - [构建程序](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0903.md): 本案例提供了实现告警日志功能的程序包,使用空白模板创建函数,用户可以下载(index.zip)学习使用。创建实现日志提取功能的函数,将示例代码包上传。创建过程请参考创建函数,运行时语言选择“Python2.7”,委托名称选择创建委托中的“serverless_trust”。函数实现的功能是:将收到的日志事件数据进行分析,过滤白名单功能,对 - [添加事件源](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0904.md): 选择准备中开通的CTS云审计服务,创建CTS触发器,CTS触发器配置如图1所示。CTS云审计服务监听IAM服务中user资源类型,监听login、logout操作。 - [处理结果](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_0905.md): 若用户触发账号的登录/登出操作,订阅服务类型日志被触发,日志会直接调用用户函数,通过函数代码对当前登录/出的账号进行IP过滤,若不在白名单内,可收到SMN发送的通知消息邮件,如图1所示。告警消息邮件通知邮件信息中包含非法请求ip地址和用户执行的动作(login/logout)。可以通过函数指标查看函数的调用情况,如图2所示。函数指标 - [方案概述](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1025.md): 在API的安全认证方面,API网关提供IAM认证、APP认证等方式,帮助用户快速开放API,同时API网关也支持用户使用自己的认证方式(以下简称自定义认证),以便更好地兼容已有业务能力。本手册基于函数工作流服务实践编写,指导您快速创建后端服务为FunctionGraph的API,并通过APIG安全认证中的“自定义认证”鉴权方式进行调用。登 - [资源规划](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1026.md): 请保证以下资源在同一区域。 - [构建程序](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1027.md): 创建函数及添加事件源之前,需要先创建一个API分组,API分组是API的管理单元,用来存放API。您需要拥有一个APIG实例后才能开启API网关服务相关功能,具体请参见购买实例。分组名称:输入您自定义的分组名称,例如APIGroup_test。描述:输入对分组的描述。前端自定义认证指APIG利用校验函数对收到的API请求进行安全认证,如果 - [添加事件源](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1028.md): API分组、自定义认证函数、后端函数均创建成功以后,可以创建API,设置安全认证为自定义认证,并定义后端服务类型为FunctionGraph,步骤如下。API名称:输入您自定义的名称,例如API_test。所属分组:请选择上述操作中创建的API分组“APIGroup_test”。URL:请求方法选择“ANY”,请求协议选择“HTTPS”, - [调试并调用API](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1029.md): API网关提供了在线调试的功能,因此一般建议在API网关上完成API配置之后,可以先通过此功能确认API是否配置成功。参数名:输入“auth”参数值:输入“abc” - [使用已有SpringBoot项目构建HTTP函数](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1035.md): 本章节主要指导使用Springboot开发应用的用户,部署业务到FunctionGraph。用户通常可以使用SpringInitializr或者IntelliJ IDEA新建等多种方式构建SpringBoot,本章节以Spring.io 的RESTful Web Service项目为例,使用HTTP函数的方式部署到FunctionGrap - [方案概述](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1037.md): 端侧文件上传云服务器是Web和App应用的一类场景,例如服务运行日志的上报,Web应用图片上传等,函数可作为后端,结合APIG提供通用的API处理这类场景。本章节以NodeJS和Python语言为例,指导用户如何开发后端解析函数,获取上传的文件。单次请求上传文件大小不超过6MB。函数逻辑处理时间不超过15分钟。 - [资源规划](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1038.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [NodeJS语言方案](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1040.md): 已拥有华为云账号且已实名认证。华为云账号未欠费,且有足够金额购买本案例所涉及的资源。登录函数工作流控制台,在左侧导航栏选择“函数 > 函数列表”,单击“创建函数”。选择“创建空白函数”,填写函数信息,完成后单击“创建函数”。函数类型:事件函数。区域:华北-北京四。函数名称:输入您自定义的函数名称,此处以“upload-file-1”为例。 - [Python语言方案](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1041.md): 已拥有华为云账号且已实名认证。华为云账号未欠费,且有足够金额购买本案例所涉及的资源。登录函数工作流控制台,在左侧导航栏选择“函数 > 函数列表”,单击“创建函数”。选择“创建空白函数”,填写函数信息,完成后单击“创建函数”。函数类型:事件函数。区域:华北-北京四。函数名称:输入您自定义的函数名称,此处以“upload-file-1”为例。 - [案例概述](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1045.md): 该案例演示客户如何使用FunctionGraph 与IoTDA 服务组合,处理物联网设备上报以及设备状态变动的相关数据。物联网设备在IoTDA 平台进行管理,设备产生的数据可以从IoTDA直接流转触发FunctionGraph 的函数运行。用户可以根据需要编写函数处理这些数据。通常该组合,可以适用于以下场景,如将设备上报的数据在处理后进行 - [准备](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1046.md): 创建IoTDA 转发规则前,需要先创建IoTDA实例,在正常的使用中还需要创建产品,设备。在本案例中仅进行测试,只需要先创建IoTDA实例。转发规则用于数据从IoTDA流转到指定函数,以触发函数运行,可以在IoTDA 页面创建转发规则,也可以在FunctionGraph 创建 IoT触发器来实现。下面说明在IoTDA 页面创建转发规则。规 - [构建函数程序](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1047.md): 打开创建的函数iotdemo,复制以下坐标转换代码,仅供测试不建议用于生产用途,用户也可以根据自己的需要修改。可以对程序进行修改,使数据可以用于调用其他系统或进行持久化存储,如存储到obs等。 - [案例描述](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1102.md): 华为云DEW通过使用硬件安全模块HSM(Hardware Security Module, HSM)保护密钥的安全,所有的用户密钥都由HSM中的根密钥保护,避免密钥泄露。DEW对密钥的所有操作都会进行访问控制及日志跟踪,提供所有密钥的使用记录,满足审计和合规性要求,同时用户可通过购买专属加密实例加密用户业务系统(包含敏感数据加密、金融支付 - [准备](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1103.md): 创建函数及添加事件源之前,需要创建两个OBS桶,分别用来保存用户上传的文件和加/解密后输出的文件。OBS桶创建以后,需要创建委托,给FunctionGraph函数赋权,确保FunctionGraph函数能够访问到OBS资源,本指导以加密文件为例:上传文件的源桶、输出文件的目标桶和函数必须处于同一个区域下。必须使用两个不同的桶。如果使用一个 - [构建程序](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1104.md): 本例提供了为文件加/解密的程序包,使用空白模板创建函数,用户可以使用示例代码学习使用。本例使用Java8语言实现加/解密的功能,有关函数开发的过程请参考Java函数开发。本例不再介绍业务功能实现的代码,样例代码目录如图1所示。其中FileEncryptAndDecrypt为函数执行的入口类,FileEncryptAndDecrypt类中入 - [添加事件源](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1105.md): OBS桶及函数创建以后,可以为函数添加事件源,是通过创建“OBS应用事件源”实现的,步骤如下。桶选择创建OBS桶中创建的“dew-bucket-input”桶。事件选择“通过页面或Put请求创建或覆盖桶对象”和“使用Post请求创建或覆盖桶对象”。OBS应用事件源创建以后,当有文件上传或更新至dew-bucket-input桶时,生成事件 - [处理文件](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1106.md): 当文件上传后更新至dew-bucket-input桶时,会生成事件,触发函数运行,将文件加解密,保存在dew-bucket-output中。登录对象存储服务控制台,进入dew-bucket-input桶对象界面,上传image.png文件,如图1所示。上传文件至dew-bucket-input桶,OBS生成事件触发函数运行,对文件加解密, - [案例概述](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1108.md): 本手册基于函数流服务实践所编写,用于指导您使用函数流服务实现OBS数据处理的功能。(当前函数流暂时支持华北-北京四、华东-上海一、华东-上海二、华南-广州、亚太-新加坡。)用户使用函数流编排函数方式自动化处理OBS中的数据(如视频解析、图片转码、视频截图等)。用户将图片上传到特定的OBS桶中。函数流编排函数算子,实现下载OBS中数据进行图 - [准备](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1109.md): 创建函数前,需要创建1个OBS桶,用来保存用户上传的图片。OBS桶创建以后,需要创建“委托”,给FunctionGraph函数赋权,确保FunctionGraph函数能够访问到OBS资源。上传图片的源桶和函数必须处于同一个区域下。操作步骤在“创建桶”界面,填写存储桶信息。区域:根据实际情况设置。桶名称:输入您自定义的桶名称,此处以“you - [构建程序](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1110.md): 本例提供一个图片旋转的样例代码供学习使用。本例使用Golang语言实现图片旋转的功能,有关函数开发的过程请参考Golang函数开发。本例不再介绍业务功能实现的代码,样例代码目录如图1所示。创建函数的时候,必须选择委托包含OBS访问权限的委托,否则不能使用OBS服务。单击“创建函数”,选择“创建空白函数”进入创建函数流程。填写函数配置信息。 - [处理图片](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1111.md): 图片上传至your-bucket-input桶,使用工具模拟客户端触发函数流运行,将上传图片旋转180°,并以流数据返回给客户端。登录对象存储服务控制台,进入your-bucket-input桶对象界面,上传image.jpeg图片如图1,上传完成后如图2所示。上面的字节流保存成图片后如下图所示: - [案例概述](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1113.md): MetaERP业务场景进行微服务Serverless化改造,如图1所示,将低频使用但资源占用大的微服务逻辑,拆分成独立函数,常驻实例缩容到0;剩余微服务逻辑以Spring兼容方式进行函数化,实现函数化后的微服务快速冷启动和弹性,常驻实例减半。改造前单个代码仓集成多个功能,代码量巨大,维护困难;改造后函数、部署包、代码仓一一对应,方便迭代维 - [准备](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1114.md): 该场景涉及微服务与后端服务的调用,因此需要提前准备好对应的后端服务。用户可以使用自己搭建的后端服务,也可以使用华为云提供的云服务。若后端服务需要通过虚拟私有云(VPC)访问,函数需要进行额外配置,若可以通过公网访问后端服务,可以跳过以下步骤2和步骤3。登录统一身份认证服务控制台。在统一身份认证服务的左侧导航窗格中,选择“委托”页签,单击右 - [构建程序](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1115.md): 配置微服务依赖。在项目工程的pom.xml文件中添加如下依赖: com.huawei.yuanrong microservice-function-functiongraph ${ver - [添加事件源](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1116.md): 添加APIG触发器(每个函数分别创建触发器),通过HTTP请求调用函数。如图1所示为函数创建APIG专享版触发器,若无可用API实例可单击创建实例进入创建页面,并为API实例创建分组。创建后可以获得一个调用URL,通过这个URL进行函数的调用,如图2所示。 - [测试函数](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1117.md): 测试托管方式改造函数,调用方法如图1所示。测试函数调用的方法调用时,遵循原来的请求方法。请求url为添加事件源创建的APIG触发器地址。需要在headers里配置requestPath,值为图1中的@Path(可能会包含一些服务前缀,对应微服务改造之前的请求Path即可),如图2所示。requestPath配置调用时,遵循原来的请求方法。 - [案例概述](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1119.md): 本案例展示了函数工作流服务配合使用云日志服务LTS实现日志云端处理并转储消息到LTS的功能。通过云日志服务LTS,快速完成ECS等服务器的任务运行日志的采集、加工和转换。通过函数工作流服务中的函数创建LTS触发器获取日志数据,经由自定义函数对日志中的关键信息进行分析和处理,把过滤后的日志转存到另外的日志流中,如图1所示。处理流程通过云日志 - [准备](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1120.md): 本例提供了日志实时过滤功能的程序包及依赖包,用户可以下载 lts_cleanse.zip(包含函数A代码文件write_log.py、函数B代码文件lts_cleanse.py及依赖包huaweicloudsdklts) 、lts_cleanse.zip.sha256 学习使用。在云日志服务创建日志组,此处以test1206、test-1 - [构建程序](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1121.md): (1)函数中的IP地址为LTS的接入点,获取接入点IP方法如下:登录云日志服务 LTS控制台,在左侧导航栏选择“主机管理 > 主机”;在页面右上方,单击“安装ICAgent”;在弹出的“安装ICAgent”窗口中获取接入点IP。接入点IP登录云日志服务 LTS控制台,在左侧导航栏选择“主机管理 > 主机”;在页面右上方,单击“安装ICAg - [添加事件源](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1122.md): 选择准备中创建的日志组和日志流,创建LTS触发器,LTS触发器配置如图1所示。云日志服务LTS的消费端在日志累积大小或日志累积时间满足条件时消费LTS日志数据,并根据订阅该组LTS日志数据的函数URN触发函数执行。 - [处理结果](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1123.md): 若日志包含“WRN”、“WARN”、“ERR”或“ERROR”关键字的告警日志,则过滤出来并转储到准备好的日志流中。以下图1和图2是过滤前和过滤后的实时日志对比。过滤前日志您可以通过函数指标查看函数的调用情况,如下 3 张图所示。 - [案例概述](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1136.md): FunctionGraph支持在函数内访问客户的Redis数据库。本文介绍如何使用FunctionGraph和Redis客户端的能力,实现一个高可定制、高可靠、高可观测的最佳实践。 - [准备工作](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1137.md): 购买Redis实例,如果已有Redis实例可以跳过。查看Redis实例的连接信息,获取待连接Redis实例的IP地址。具体步骤请参见查看实例信息。创建一个有“VPC Administrator”权限的FunctionGraph云服务委托,配置委托权限请参见配置委托权限。 - [创建依赖包](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1138.md): 创建一个redis-py的依赖包,建议使用redis-py 4.6.0(校验包:redis-4.6.0.zip.sha256)版本。 - [创建函数](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1139.md): 创建函数选择的“区域”与要访问的Redis实例所在的区域一致。 - [连接DCS单机、主备、读写分离、Proxy集群实例](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1141.md): 客户端使用连接池时不要将获取连接的操作放在初始化函数 initializer 方法中,否则只会在初始化时获取一个连接而导致连接池使用无效。当网络抖动时可能会使已获取的连接断连,后续复用该实例的并发请求时可能会因断连而访问redis失败。 - [连接DCS集群实例](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1142.md): 其他参数配置可以参考表3。 - [FunctionGraph函数初始化入口](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1144.md): 在示例代码中,initializer方法内创建Redis客户端,并在创建函数时配置了初始化函数,如下:def initializer(context): global redis_client redis_client = create_redis_client(context) redis_client.ping - [Redis连接池](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1145.md): 在示例代码中使用了Redis连接池(BlockingConnectionPool),配置了最大连接数(max_connections)和连接池耗尽后获取连接的最大等待时间(timeout),代码片段如下:pool = BlockingConnectionPool(host=redis_host, port=redis_port, - [Redis重试机制](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1146.md): Redis客户端支持添加自动重试机制,确保在执行Redis操作失败后重试特定次数,这样能大幅度降低暂时性故障影响。例如:发生瞬时的网络抖动、磁盘抖动导致服务暂时不可用或者调用超时的情况下,提高Redis操作的成功概率。连接DCS单机、主备、读写分离、Proxy集群实例添加Retry配置,退避策略为指数退避(ExponentialBacko - [Redis健康检查](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1147.md): Redis健康检查的作用是判断Redis服务端是否正常工作,使用health_check_interval配置对Redis进行定时健康检查,该配置单位为秒,默认值为0不进行健康检查,代码如下:retry = Retry(ExponentialBackoff(), 3) pool = BlockingConnectionPool(h - [FunctionGraph监控告警](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1148.md): Redis自动重试机制能大幅度降低暂时性故障影响,但不能解决故障,故障不及时处理可能导致故障升级,所以需要告警来及时感知代码运行情况。FunctionGraph支持通过创建告警规则完成对函数运行的实时监控,当函数指标出现满足设定规则时产生告警,通过短信或邮件的方式通知用户。客户收到告警后,可以配置和查看函数的调用日志来分析故障原因,解决故 - [日志告警](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1149.md): 如果没有对函数代码执行返回结果有特定要求,例如绑定了APIG触发器的事件函数需要返回一个APIG响应格式的结果如下:import json def handler (event, context): return { "statusCode": 200, "isBase64Encoded": Fal - [调试函数](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1150.md): 在函数详情页的编码区中,通过配置测试事件进行函数调试。单击函数名称进入函数详情页,如图1所示,在代码页签下可以“配置测试事件”和“测试”函数进行在线调试。 - [使用FunctionGraph部署AI绘画Stable Diffusion方案概述](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1152.md): Stable Diffusion是一种开源的文本到图像的生成模型,能够根据用户提示生成高质量、独特的图像,提供了广泛的创意可能性。通过Stable Diffusion WebUI,可视化图像生成过程,使AI绘画更加易用和可控。使用FunctionGraph应用中心部署AI绘画Stable Diffusion应用,可根据具体使用需求进行相应 - [部署和使用AI绘画Stable Diffusion应用](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1158.md): 在FunctionGraph应用中心,使用AI绘画Stable-Diffusion模板创建应用并配置相关委托,创建成功后即可使用内置默认模型和临时域名进行AI绘画。AI绘画Stable Diffusion应用属于白名单特性,使用前请先在工单系统中提交工单申请加入白名单。使用FunctionGraph应用中心部署Stable Diffusi - [上传自定义模型(可选)](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1159.md): FunctionGraph应用中心的AI绘画Stable Diffusion应用中内置了默认模型,如需使用更多自定义模型进行AI绘画,需要在创建成功的应用中初始化自定义模型挂载文件系统,即可上传自定义模型至文件系统进行AI绘画。FunctionGraph的云服务委托中包含“SWR Admin”、“VPC Administrator”、“S - [使用FunctionGraph函数访问RDS for MySQL案例概述](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1161.md): 在FunctionGraph中,不同函数实例间不共享状态,而数据库可实现结构化数据的持久化存储,进而实现状态共享。通过FunctionGraph访问云上数据库,可执行数据查询和数据插入等操作。本文介绍如何在 FunctionGraph 中高可靠地访问RDS for MySQL并进行数据查询操作,同时提供示例代码供测试使用。示例代码中运用了 - [使用FunctionGraph函数访问RDS for MySQL操作步骤](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1162.md): 已创建虚拟私有云基本信息及默认子网。已购买RDS for MySQL实例,已创建数据库且数据库中有可用的表。RDS实例需与函数所在区域一致,本实践以华东-上海一区域为例。已创建函数委托,委托中包含VPC Administrator权限。登录函数工作流控制台,区域选择华东-上海一。在左侧导航栏选择“函数 > 依赖包管理”,进入“依赖包管理” - [函数访问RDS for MySQL示例代码](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1163.md): 这段示例代码实现了从RDS for MySQL实例数据库的user表中查询前10条记录的功能。通过使用数据库连接池和重试机制,代码能够高效且可靠地执行数据库操作。以下为完整的函数示例代码。其中关于连接池和重试部分的代码解读请参考示例代码解读。 - [示例代码解读](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1164.md): 在示例代码中基于DBUtils.PooledDB构建MySQL连接池(MySQLConnectionPool),并提供内置的连接探活机制,配置了最大连接数(max_connections)和连接探活间隔(keepalive_interval),代码片段如下:使用MySQL连接池复用已创建的连接,能有效提升程序性能。最大连接数配置确保连接资 - [Spring Cloud Function适配方案概述](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1166.md): 本章节旨在指导使用Spring Cloud Function的用户,将业务适配并部署到FunctionGraph平台。用户可以通过多种方式构建Spring Boot应用,包括SpringInitializr或IntelliJ IDEA等。本章节以IntelliJ IDEA新建Spring Initializr项目为例,演示如何将Java事 - [Spring Cloud Function适配流程](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1167.md): 已有开发完成的Spring Cloud Function项目。将下载的两个SDK文件放在本地目录,例如d:\\runtime中。在Spring Cloud Function项目的命令行窗口中执行以下命令,将Spring Cloud Function的SDK安装到本地的maven仓库中。请根据实际本地目录修改命令行。mvn install: - [使用Go语言程序构建HTTP函数](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1168.md): 本章节主要指导使用Go语言开发应用的用户,将业务部署到FunctionGraph。由于HTTP函数本身不支持Go语言直接代码部署,因此本章节将以转换成二进制的方式为例,将Go编写的程序部署到FunctionGraph上。构建代码包创建源文件main.go,代码如下:在main.go中,使用8000端口启动了一个HTTP服务器,并注册了pa - [免责声明](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1169.md): 本应用使用到的Stable-Diffusion、Stable-Diffusion-WebUI以及镜像构建工程等项目均为社区开源项目,关于开源项目的问题还需用户到开源社区寻求帮助或者自行解决,华为云仅提供算力支持。本实践仅作为简易示例供用户参考和学习,如需应用于实际生产环境,请参考镜像构建工程自行完善和优化。使用过程中遇到的函数工作流问题, - [进阶使用:使用ECS作为NFS服务器实现多用户资源隔离](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1170.md): FunctionGraph的函数除了支持挂载弹性文件系统SFS外,也支持挂载ECS服务器共享出的NFS共享路径。在多用户使用场景下,使用ECS能够有效地进行多用户的资源管理,通过配置特定的权限,满足用户之间需要强隔离的使用需求。每位用户的FunctionGraph云服务委托中需包含“SWR Admin”、“VPC Administrato - [进阶使用:使用API模式访问应用](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1171.md): 通过应用中心部署的Stable Diffusion应用默认未启用API访问,可以通过配置函数环境变量的方式启用。请参考配置函数的并发处理配置并发参数,WebUI模式和API模式的推荐参数如下:WebUI模式单实例并发数:>=100。经测试,在单人使用场景下单实例并发量为15左右,如果是多人使用场景推荐将单实例并发数设置为100以上。单函数 - [绑定自定义域名(可选)](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1172.md): 如需开放AI绘画Stable Diffusion应用的内网或外网访问,需要在创建成功的应用中绑定自定义域名。完成部署和使用AI绘画Stable Diffusion应用步骤,应用创建成功。申请公网域名,请通过域名注册商申请,确保域名可用即可。如果使用非华为云注册的域名,可参考创建公网域名进行操作。记录类型:选择“CNAME - 将域名指向另 - [进阶使用:启用WebUI认证](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1174.md): 通过应用中心部署的Stable Diffusion应用为便于快速体验,默认未启用WebUI认证。为避免域名泄露导致函数被滥用,建议通过配置函数环境变量的方式启用WebUI认证。 - [进阶使用:通过挂载同一SFS文件系统实现多用户资源共享](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1175.md): 模型文件普遍占用大量内存,在多用户使用场景下,每个用户复制一份模型文件会导致不必要的存储空间浪费。通过将不同用户的应用挂载到同一SFS文件系统下,能够满足多人共享模型文件资源的需求,同时为了避免不同用户使用期间的推理结果相互影响,可以在Stable Diffusion WebUI中修改结果保存路径。每位用户的FunctionGraph云服 - [FunctionGraph冷启动优化实践](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1184.md): Serverless按需付费、自动弹性伸缩、屏蔽复杂性等特征使其逐渐成为下一代云计算新范式。但是在Serverless架构带来极大便利的同时,在实时性要求较高的应用场景下,冷启动将是面临的一个切实的挑战。当使用Serverless构建Web服务时,冷启动和Web服务初始化时间一共超过了5秒钟,那么无疑将会使您网站的用户体验大打折扣,因此设 - [使用FunctionGraph的Java函数配置Log4j2实现日志打印](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1190.md): 函数工作流服务支持Java函数配置log4j2,本章节将介绍如何使用函数和log4j2的能力实现日志打印。本例使用Java语言实现日志打印,请下载Log_demo.jar样例代码直接使用,无需其他修改。关键示例代码如下所示,可参考了解。其中初始化入口添加了如下代码:Configurator.reconfigure(Objects.requ - [使用FunctionGraph部署AI绘画Stable Diffusion资源和成本规划](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1191.md): 本实践根据使用需求的不同,涉及的计费服务有所不同,请参考表1根据具体需求规划资源与成本。 - [使用FunctionGraph部署AI绘画Stable Diffusion操作流程](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1192.md): 表1介绍本实践中使用FunctionGraph部署AI绘画Stable Diffusion应用的操作流程与说明,其中进阶使用流程主要面向具体的业务使用需求场景,请参考相关说明选择使用。 - [使用FunctionGraph部署AI绘画ComfyUI/ComfyUI+FLUX方案概述](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1194.md): ComfyUI:在使用大模型能力进行AI绘画时,生成满意的图像往往需要多次调整参数和管理模型,若未能复刻文生图流程中的每一处细节,则生成的图像难以复现。ComfyUI提供了一个基于节点流程的图形用户界面,通过拖拽连线组合不同功能的节点,实现文生图工作流的灵活定制与可靠复现,ComfyUI还支持用户同时使用多个大模型,已执行过的固定工作流无 - [使用FunctionGraph部署AI绘画ComfyUI/ComfyUI+FLUX资源和成本规划](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1195.md): 本实践根据使用需求的不同,涉及的计费服务有所不同,请参考表1根据具体需求规划资源与成本。 - [使用FunctionGraph部署AI绘画ComfyUI/ComfyUI+FLUX操作流程](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1196.md): 表1介绍本实践中使用FunctionGraph部署AI绘画ComfyUI应用和AI绘画ComfyUI+FLUX应用的总操作流程与说明,其中进阶使用流程主要面向具体的业务使用需求场景,请参考相关说明选择使用。AI绘画ComfyUI应用和AI绘画ComfyUI+FLUX应用仅内置默认模型不同,使用FunctionGraph应用中心部署的操作流 - [2部署AI绘画ComfyUI/ComfyUI+FLUX准备工作](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1197.md): 使用FunctionGraph应用中心部署AI绘画ComfyUI应用,或部署AI绘画ComfyUI+FLUX应用,均需使用专享版APIG触发器,并为FunctionGraph创建云服务委托。AI绘画ComfyUI应用和AI绘画ComfyUI+FLUX应用需用到WebSocket特性,当前WebSocket特性处于公测阶段,使用应用前请先在 - [部署和使用AI绘画ComfyUI/ComfyUI+FLUX应用](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1198.md): 在FunctionGraph应用中心,使用AI绘画模板创建应用,并配置相关委托和APIG实例,创建成功后即可使用内置默认模型和临时域名进行AI绘画。完成部署AI绘画ComfyUI/ComfyUI+FLUX准备工作,委托中包含“SWR Admin”、“VPC Administrator”和“Server Administrator”权限。如 - [上传自定义模型和节点(可选)](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1199.md): FunctionGraph应用中心的AI绘画应用中内置了默认模型,如需使用更多自定义模型和自定义节点进行AI绘画并保存生成的结果,需要在创建成功的应用中初始化自定义模型,并挂载文件系统为应用提供持续使用能力。完成部署AI绘画ComfyUI/ComfyUI+FLUX准备工作,委托中包含“SWR Admin”、“VPC Administrat - [进阶使用:使用ECS作为NFS服务器实现多用户资源隔离](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1200.md): FunctionGraph的函数除了支持挂载弹性文件系统SFS外,也支持挂载ECS服务器共享出的NFS共享路径。在多用户使用场景下,使用ECS能够有效地进行多用户的资源管理,通过配置特定的权限,满足用户之间需要强隔离的使用需求。每位用户均需完成部署AI绘画ComfyUI/ComfyUI+FLUX准备工作,委托中包含“SWR Admin”、 - [进阶使用:使用ComfyUI Manager在线安装自定义模型和节点](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1201.md): 在使用ComfyUI进行AI绘图的过程中,常需要对模型和节点进行管理,ComfyUI Manager是一个具备集成功能和便利的扩展工具,用户可使用ComfyUI Manager工具在线安装与管理各类插件。在FunctionGraph中使用ComfyUI Manager,需要公网NAT网关和弹性公网IP提供公网访问能力,本例仅提供网络环境的 - [免责声明](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1202.md): 本应用使用到的Stable-Diffusion、ComfyUI以及镜像构建工程等项目均为社区开源项目,关于开源项目的问题还需用户到开源社区寻求帮助或者自行解决,华为云仅提供算力支持。本实践仅作为简易示例供用户参考和学习,如需应用于实际生产环境,请参考镜像构建工程自行完善和优化。使用过程中遇到的函数工作流问题,可通过提交工单进行咨询。本应用 - [使用FunctionGraph部署AI对话ChatGLM3方案概述](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1204.md): ChatGLM3是智谱AI和清华大学KEG实验室联合发布的第三代中英双语对话大语言模型,具备语言理解和生成能力,能够为用户提供高效、个性化和智能化的对话交互体验。本实践指导您使用FunctionGraph应用中心部署AI对话ChatGLM3应用,提供多种个性化部署方案供您选择:快速部署:无需拥有深厚的技术背景,使用内置默认模型ChatGL - [使用FunctionGraph部署AI对话ChatGLM3资源和成本规划](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1205.md): 本实践根据使用需求的不同,涉及的计费服务有所不同,请参考表1根据具体需求规划资源与成本。 - [使用FunctionGraph部署AI对话ChatGLM3操作流程](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1206.md): 表1介绍本实践中使用FunctionGraph部署AI对话ChatGLM3应用的总操作流程与说明,其中进阶使用流程主要面向具体的业务使用需求场景,请参考相关说明选择使用。 - [使用FunctionGraph部署AI对话ChatGLM3准备工作](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1207.md): 本章节介绍使用FunctionGraph部署AI对话ChatGLM3应用前,如何准备网络环境和授予函数必要权限。AI对话ChatGLM3应用需用到WebSocket特性,当前WebSocket特性处于公测阶段,使用应用前请先在工单系统中提交工单申请加入公测白名单。选择问题所属产品:选择“函数工作流 (FunctionGraph)”。选择问 - [部署和使用AI对话ChatGLM3应用](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1208.md): 本章节介绍如何通过函数工作流控制台部署AI对话ChatGLM3应用。部署成功后,即可使用内置默认模型和临时域名开始AI对话体验。完成部署AI对话ChatGLM3准备工作,委托中包含“SWR Admin”、“VPC Administrator”和“Server Administrator”权限。登录函数工作流控制台,区域选择华东-上海一。在 - [上传与使用自定义模型(可选)](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1209.md): FunctionGraph应用中心的AI对话应用中内置了默认模型ChatGLM3-6B,如需使用更多自定义模型进行AI对话,需要在创建成功的应用中初始化自定义模型挂载文件系统,并添加环境变量使用自定义模型。完成部署AI对话ChatGLM3准备工作,委托中包含“SWR Admin”、“VPC Administrator”、“Server A - [进阶使用:使用ECS作为NFS服务器实现多用户资源隔离](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1210.md): FunctionGraph的函数除了支持挂载弹性文件系统SFS外,也支持挂载ECS服务器共享出的NFS(网络文件共享)路径。在多用户使用场景下,使用ECS能够有效地进行多用户的资源管理,通过配置特定的权限,满足用户之间需要强隔离的使用需求。每位用户均需完成部署AI对话ChatGLM3准备工作,委托中包含“SWR Admin”、“VPC A - [免责声明](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1211.md): 本应用使用到的ChatGLM3以及镜像构建工程等项目均为社区开源项目,关于开源项目的问题还需到开源社区寻求帮助或者自行解决,华为云仅提供算力支持。本实践作为简易示例供您参考和学习,如需应用于实际生产环境,请参考镜像构建工程完善和优化。使用过程中遇到的函数工作流问题,可通过提交工单进行咨询。本应用部署后会自动创建APIG网关,建议在应用创建 - [使用FunctionGraph部署DeepSeek-R1蒸馏模型](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1215.md): DeepSeek-R1模型是深度求索公司推出的首款推理模型,基于DeepSeek-V3-Base模型,通过知识蒸馏技术优化,旨在以较低的计算资源实现高性能,支持快速部署与运行。FunctionGraph应用中心提供DeepSeek-R1蒸馏模型的部署解决方案,支持多种模型参数规模选择(包括1.5B、7B、8B、14B和32B参数版本)。该 - [使用FunctionGraph快速部署MCP Server](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1216.md): MCP(Model Context Protocol,模型上下文协议)是一种开源协议,旨在以标准化的方式向大语言模型(LLM)提供上下文信息。MCP Server(即MCP服务器)基于模型上下文协议运行,能够使大型语言模型与外部数据源及工具无缝集成,通过标准化的交互,帮助模型获取丰富的上下文信息。其应用类型广泛,例如文件系统服务器可协助A - [在FunctionGraph上通过委托获取临时凭证访问其他云服务](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1300.md): 在华为云函数工作流FunctionGraph中,函数往往需要访问华为云其他服务(如对象存储服务OBS、云数据库RDS、云日志LTS等)来完成业务操作。这些云服务要求调用方提供合法的访问凭证,因此,如何在函数中安全地获取并使用凭证,是开发过程中需要解决的关键问题。访问凭证按时效性可分为永久凭证和临时凭证两类。直接在函数代码中硬编码永久凭证( ## 开发指南 - [定制运行时](https://support.huaweicloud.com/devg-functiongraph/functiongraph_01_0406.md): 运行时负责运行函数的代码、从环境变量读取处理程序名称以及从FunctionGraph运行时API读取调用事件。运行时会将事件数据传递给函数处理程序,并将来自处理程序的响应返回给FunctionGraph。FunctionGraph支持自定义编程语言运行时,即支持使用定制运行时。可以使用可执行文件(名称为bootstrap)的形式将运行时包 - [VSCode本地调试](https://support.huaweicloud.com/devg-functiongraph/functiongraph_01_1831.md): Huawei Cloud FunctionGraph是华为云Serverless产品的VSCode插件。通过该插件,您可以:快速地在本地创建函数运行调试本地函数、部署本地函数至云端拉取云端的函数列表、调用云端函数、上传ZIP包至云端下载 Visual Studio Code(1.63.0版本以上)并安装。打开Visual Studio C - [函数运行时](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0101.md): 在函数工作流服务中创建函数时,需选定所需的运行时(Runtime),运行时为相应语言提供执行环境,以传递函数的调用事件、上下文信息和响应。用户可以使用函数工作流服务提供的运行时,或自行构建定制运行时。FunctionGraph函数Runtime支持多种运行时语言:Python 、Node.js、Java、Go、C#、PHP、Cangjie - [函数支持的触发事件](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0102.md): 表1为支持触发FunctionGraph函数的云服务,这些云服务可配置为FunctionGraph函数的事件源,即配置函数的触发器。配置事件源触发器后,只要检测到相应事件,将自动调用FunctionGraph函数。定时触发器(TIMER)TIMER示例事件,具体参数解释参考表2。{ "version": "v2.0", " - [函数工程打包规范](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0103.md): 函数除了支持在线编辑代码,还支持上传ZIP、JAR、引入OBS文件等方式上传代码,上传操作过程请参见配置函数代码,函数工程的打包规范说明如表1所示。Nods.js工程ZIP包目录示例Example.zip 示例工程包 |--- lib - [开发Node.js事件函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0410.md): Node.js的事件函数开发,支持本地开发后上传代码文件,也支持直接在FunctionGraph控制台创建函数在线编辑代码。关于Node.js函数的接口定义以及SDK接口说明请参考Node.js函数开发概述。callback返回的第一个参数不为null,则认为函数执行失败,会返回定义在第二个参数的HTTP错误信息。当使用APIG触发器时, - [开发Python事件函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0420.md): Python的事件函数开发,支持本地开发后上传代码文件,也支持直接在FunctionGraph控制台创建函数在线编辑Python函数代码。关于Python函数的接口定义以及SDK接口说明请参考Python函数开发概述。函数仅支持返回如下几种类型的值:None:函数返回的HTTP响应Body为空。String:函数返回的HTTP响应Body - [Java函数开发概述](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0430.md): FunctionGraph目前支持以下Java运行环境。Java 8Java 11Java 17Java 21(仅支持中东-利雅得、土耳其-伊斯坦布尔区域)Java函数接口定义:作用域返回参数函数名(函数参数,Context参数)作用域:提供给FunctionGraph调用的用户函数必须定义为public。返回参数:用户定义,Functi - [开发Go事件函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0441.md): 关于Go函数的接口定义以及SDK接口说明请参考Go函数开发概述。登录已经安装了Go 1.x SDK的linux服务器,按照如下步骤进行编译和打包。(当前支持Ubuntu 14.04,Ubuntu 16.04,SuSE 11.3,SuSE 12.0,SuSE 12.1)func Handler(payload []byte, ctx con - [使用IDE开发C#事件函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0450.md): 本章节介绍使用IDE工具开发C#事件函数的流程。关于C#函数接口定义、Initializer入口介绍以及SDK接口说明请参考C#函数开发概述。通过APIG服务调用函数服务时,isBase64Encoded的值默认为true,表示APIG传递给FunctionGraph的请求体body已经进行Base64编码,需要先对body内容Base6 - [使用.NET Core CLI开发C#函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0451.md): C#新增json序列化和反序列化接口,并提供HC.Serverless.Function.Common.JsonSerializer.dll 。提供的接口如下:T Deserialize(Stream ins):反序列化值传递到Function处理程序的对象中。Stream Serialize(T value):序列化值传递到 - [使用Visual Studio开发C#函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0452.md): 新增json序列化和反序列化接口,并提供HC.Serverless.Function.Common.JsonSerializer.dll 。提供的接口如下:T Deserialize(Stream ins):反序列化值传递到Function处理程序的对象中。Stream Serialize(T value):序列化值传递到返回 - [开发PHP事件函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0460.md): PHP的事件函数开发,支持本地开发后上传代码文件,也支持直接在FunctionGraph控制台创建函数在线编辑PHP函数代码。关于PHP函数的接口定义以及SDK接口说明请参考PHP函数开发概述。函数仅支持返回如下几种类型的值。Null:函数返回的HTTP响应Body为空。string:函数返回的HTTP响应Body内容为该字符串内容。其他 - [Node.js函数开发概述](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0501.md): FunctionGraph当前支持以下Node.js运行环境:Node.js 6.10Node.js 8.10Nodejs 10.16Nodejs 12.13Node.js 14.18Node.js 16.17Node.js 18.15Node.js 20.15Node.js 6.10函数接口定义入口函数名(handler):入口函数名称 - [Python函数开发概述](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0502.md): FunctionGraph目前支持以下Python运行环境。Python 2.7Python 3.6Python 3.9Python 3.10Python 3.12Python函数的接口定义如下所示。入口函数名(handler):入口函数名称,需和函数执行入口处用户自定义的入口函数名称一致。执行事件(event): 函数执行界面由用户输入 - [Go函数开发概述](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0504.md): FunctionGraph运行时支持Go 1.x版本,函数有明确的接口定义,如下所示:入口函数名(Handler):入口函数名称。执行事件体(payload): 函数执行界面由用户输入的执行事件参数, 格式为JSON对象。上下文环境(ctx):Runtime提供的函数执行上下文,其接口定义在SDK接口说明。Go函数的函数执行入口参数格式为 - [C#函数开发概述](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0505.md): FunctionGraph目前支持以下C#运行环境。C#(.NET Core 2.1)C#(.NET Core 3.1)C#(.NET Core 6.0)C#(.NET Core 8.0)(仅支持中东-利雅得、土耳其-伊斯坦布尔区域)C#函数接口定义:作用域返回参数函数名(函数参数,Context参数)作用域:提供给FunctionGra - [PHP函数开发概述](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0506.md): FunctionGraph目前支持以下PHP运行环境。PHP 7.3PHP 8.3PHP函数的接口定义如下所示:入口函数名($handler):入口函数名称, 需和函数执行入口处用户自定义的入口函数名称一致。执行事件($event):函数执行界面由用户输入的执行事件参数, 格式为JSON对象。上下文环境($context):Runtime - [Eclipse-plugin](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0520.md): 当前java没有对应的模板功能,且只支持传包到OBS上,不支持在线编辑,所以需要一个插件,能够支持在java的主流开发工具(Eclipse)上,实现一键创建java模板、java打包、上传到OBS和部署。 - [PyCharm-Plugin](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0530.md): 在Python主流开发工具(PyCharm)上实现一键生成python模板工程、打包、部署等功能。目前仅支持python 2.7的Context模板。 - [在函数中引入动态链接库](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0531.md): 在函数中引入动态链接库的方式如下:函数运行环境中已经默认将代码根目录和根目录下的lib目录加入到LD_LIBRARY_PATH中,只需要将动态链接库放到此处即可。在代码中直接修改LD_LIBRARY_PATH环境变量。对于 Python 语言,解释器启动并初始化后,运行时通过代码修改 LD_LIBRARY_PATH 环境变量的操作,对动态 - [函数初始化入口Initializer](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0532.md): Initializer是函数的初始化逻辑入口,不同于请求处理逻辑入口的handler,在有函数初始化的需求场景中,设置了Initializer后,FunctionGraph首先调用initializer完成函数的初始化,之后再调用handler处理请求;如果没有函数初始化的需求则可以跳过initializer,直接调用handler处理请 - [使用Go开发HTTP函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0603.md): 本章节介绍使用Go运行时开发HTTP函数,更多HTTP详情,请参见创建HTTP函数。HTTP函数只能绑定APIG/APIC触发器,根据函数和APIG/APIC之间的转发协议。函数的返回合法的http响应报文中必须包含body(String)、statusCode(int)、headers(Map)和isBase64Encoded(bool - [使用Java开发HTTP函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0607.md): 本章节介绍使用Java运行时开发HTTP函数,更多HTTP详情,请参见创建HTTP函数。HTTP函数只能绑定APIG/APIC触发器,根据函数和APIG/APIC之间的转发协议。函数的返回合法的http响应报文中必须包含body(String)、statusCode(int)、headers(Map)和isBase64Encoded(bo - [为Java函数制作依赖包](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0608.md): 如果安装的依赖模块需要添加依赖库,请将依赖库归档到zip依赖包文件中,例如,添加.dll、.so、.a等依赖库。使用Java编译型语言开发函数时,依赖包需在本地编译,打包为zip文件后上传使用。开发Java函数中如何制作和添加依赖包请参见Java函数开发指南(使用IDEA工具普通Java项目)。 - [使用Node.js开发HTTP函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0611.md): 本章节以通过HTTP函数部署Koa框架为例,指导您使用Node环境开始开发函数。HTTP函数只能绑定APIG/APIC触发器,根据函数和APIG/APIC之间的转发协议。函数的返回合法的http响应报文中必须包含body(String)、statusCode(int)、headers(Map)和isBase64Encoded(boolea - [为Node.js函数制作依赖包](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0612.md): 制作函数依赖包推荐在Huawei Cloud EulerOS 2.0环境中进行。若所需依赖涉及操作系统相关的依赖包,使用其他操作系统环境打包时,可能因底层依赖库的差异而出现找不到动态链接库的问题。如果安装的依赖模块需要添加依赖库,请将依赖库归档到zip依赖包文件中,例如,添加.dll、.so、.a等依赖库。推荐在EulerOS环境中制作函 - [为Python函数制作依赖包](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0616.md): 制作函数依赖包推荐在Huawei Cloud EulerOS 2.0环境中进行。若所需依赖涉及操作系统相关的依赖包,使用其他操作系统环境打包时,可能因底层依赖库的差异而出现找不到动态链接库的问题。如果安装的依赖模块需要添加依赖库,请将依赖库归档到zip依赖包文件中,例如,添加.dll、.so、.a等依赖库。推荐在EulerOS环境中制作函 - [PHP函数模板](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0623_0.md): 以下为PHP函数的示例代码模板:使用FunctionGraph控制台创建空白PHP事件函数,默认部署上述示例代码。 - [为PHP函数制作依赖包](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0624.md): 制作函数依赖包推荐在Huawei Cloud EulerOS 2.0环境中进行。若所需依赖涉及操作系统相关的依赖包,使用其他操作系统环境打包时,可能因底层依赖库的差异而出现找不到动态链接库的问题。EulerOS是基于开源技术的企业级Linux操作系统软件,具备高安全性、高可扩展性、高性能等技术特性,能够满足客户IT基础设施和云计算服务等多 - [使用Go构建容器镜像开发HTTP函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0625.md): 使用容器镜像创建并执行HTTP函数的完整操作步骤可参考使用容器镜像创建并执行HTTP函数,本章节介绍如何使用Go语言制作镜像,并进行本地验证。以在linux x86 64位系统上制作镜像为例(系统配置无要求)。执行以下命令,创建一个空文件夹。mkdir custom_container_http_example && cd custom_ - [使用Go构建容器镜像开发事件函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0626.md): 使用容器镜像创建并执行事件函数的完整操作步骤可参考使用容器镜像创建并执行事件函数,本章节介绍如何使用Go语言制作镜像,并进行本地验证。以在linux x86 64位系统上制作镜像为例(系统配置无要求)。执行以下命令,创建一个空文件夹。mkdir custom_container_event_example && cd custom_con - [Node.js函数模板](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0666.md): 以下为Node.js函数的示例代码模板:使用FunctionGraph控制台创建空白Node.js事件函数,默认部署上述示例代码。使用Node.js开发事件函数,请参见开发Node.js事件函数。使用Node.js运行时语言开发HTTP函数,请参见使用Node.js开发HTTP函数。为Node.js函数制作依赖包,请参见为Node.js函 - [Python函数模板](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0667.md): 以下为Python函数的示例代码模板:使用FunctionGraph控制台创建空白Python事件函数,默认部署上述示例代码。 - [Java函数模板](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0668.md): 以下为Java函数的示例代码模板。其中每个方法对应特定的触发器事件,打印事件信息并返回响应,可创建相应的触发器并修改函数执行入口,用于测试Java函数。根据Java SDK下载提供的SDK地址,下载JavaRuntime SDK到本地开发环境解压。完整的Java函数开发示例请参考开发Java事件函数和使用Java开发HTTP函数。 - [概览](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0701.md): 华为云函数工作流(FunctionGraph)组件是一个用于支持华为云函数应用生命周期的工具,基于Serverless Devs进行开发,通过配置资源配置文件s.yaml,您可以简单快速地部署应用到华为云函数工作流平台。本地已安装Nodejs。安装完成还需要配置密钥,可以参考密钥配置文档。华为云函数工作流(FunctionGraph)组件 - [密钥配置文档](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0702.md): 登录华为云后台,单击右上角“账号中心 > 我的凭证 ”,进入“我的凭证”界面。在左侧导航栏进入“访问密钥”界面,单击“新增访问密钥”生成新的密钥并下载保存。引导式配置可以通过执行config add直接进行密钥的添加:当您选择某个选项之后,系统会进行交互式引导:s config add ? Please select a provid - [部署deploy](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0704.md): deploy 命令是对函数资源进行部署的命令,即将本地在 Yaml文件 中声明的资源部署到线上。当执行命令deploy -h/deploy --help时,可以获取帮助文档。在该命令中,包括了两个子命令:deploy function命令和deploy trigger命令。deploy function命令deploy function命 - [版本 version](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0708.md): version 命令是进行函数版本操作的命令;主要包括别名的查看、发布、删除等功能。当执行命令version -h/version --help时,可以获取帮助文档。在该命令中,包括了两个子命令:version list命令version publish命令version list命令,是查看服务已发布的版本列表的命令。当执行命令vers - [项目迁移fun2s](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0711.md): fun2s 命令是将函数的配置信息转换成 Serverless Devs 所识别的 s.yaml的命令。命令解析命令解析操作案例命令解析操作案例当执行命令fun2s -h/fun2s --help时,可以获取帮助文档。当前命令还支持部分全局参数(例如-a/--access, --debug等),详情可参考 Serverless Devs - [删除remove](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0712.md): remove 命令是对已经部署的资源进行移除的操作。资源一旦移除可能无法恢复,所以在使用移除功能时,请您慎重操作。当执行命令remove -h/remove --help时,可以获取帮助文档。在该命令中,包括了四个子命令:function:删除指定的函数trigger:删除指定的触发器version:删除指定的版本alias:删除指定的别 - [别名alias](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0719.md): alias命令是对函数别名操作的命令;主要包括别名的查看、发布、修改、删除等功能。当执行命令alias -h/alias --help时,可以获取帮助文档。在该命令中,包括了四个子命令:alias get命令alias list命令alias publish命令remove alias命令alias get命令,是获取服务指定别名详情的命 - [Yaml文件](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0725.md): 华为云函数工作流(FunctionGraph)组件的Yaml字段如下:edition: 1.0.0 # 命令行YAML规范版本,遵循语义化版本(Semantic Versioning)规范 name: fg-test # 项目名称 access: "default" # 秘钥别名 vars: # 全局变量 region: - [华为云函数工作流(FunctionGraph)Yaml规范](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0728.md): 华为云函数工作流(FunctionGraph)组件的Yaml字段如下:edition: 1.0.0 # 命令行YAML规范版本,遵循语义化版本(Semantic Versioning)规范 name: fg-test # 项目名称 access: "default" # 秘钥别名 vars: # 全局变量 region: - [Serverless Devs 全局参数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0732.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [简介](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0735.md): Serverless Framework帮助您使用华为云函数工作流开发和部署无服务器应用。它是一个CLI,提供开箱即用的结构、自动化功能和最佳实践,您可以专注于构建复杂的、事件驱动的、无服务器架构,由函数和事件组成。Serverless Framework与其他应用程序框架不同,因为它:管理您的代码和基础设施。支持多种语言(Node.js - [快速入门](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0737.md): 本章节旨在帮助您尽快了解Serverless Framework的使用。您需要安装和配置以下几个前提条件:在本地计算机上安装Node.js 14.x或更高版本,详情请参见安装Node.js和NPM。安装Serverless Framework开源CLI版本3.28.1或更高版本,详情请参见安装Serverless Framework的开源 - [安装](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0738.md): Serverless是一个Node.js CLI工具,因此您需要先在计算机上安装Node.js。请访问Node.js官方网站,下载并按照安装说明在本地计算机上安装Node.js。您可以通过在终端中运行Node --version来验证Node.js是否安装成功,即可以看到打印出来的对应Node.js版本号。查看安装的Serverless版 - [凭证](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0739.md): Serverless Framework需要访问您的华为云账号的凭证,代表您创建和管理资源。打开华为云官网,选择“注册”,详情请参考注册华为账号并开通华为云。您需要创建凭证,以便Serverless可以使用它们在项目中创建资源。打开您的serverless.yml文件,并使用凭证文件的路径更新provider部分(这里需要使用绝对路径)。 - [服务](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0740.md): service就像一个项目,您可以在服务中定义华为云函数工作流的函数和触发它们的events,所有这些都在一个名为serverless.yml的文件中。若您要构建第一个Serverless Framework项目,请先创建一个service。在最初使用应用时,建议您可以使用单个服务来定义该项目的所有函数和事件。myService/ s - [函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0741.md): 如果您以华为云函数工作流作为提供商,则服务的所有函数都属于华为云函数工作流中的函数。您的Serverless服务中有关华为云函数工作流的所有内容都可以在functions属性下的serverless.yml中找到。# serverless.yml service: fg-service provider: name: huawei - [事件](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0742.md): 简单地说,事件主要用于触发函数运行。如果您选择华为云作为提供商,则服务中的events仅限于华为云API网关(APIG)和OBS,具体详情请参见事件列表。部署后,Framework将设置您的function应该侦听的相应事件配置。事件属于每个函数,可以在serverless.yml的events属性中找到。# serverless.yml - [部署](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0743.md): Serverless Framework旨在安全、快速地为您创建华为云函数工作流的函数、事件和资源。如下是使用Serverless Framework执行部署的主要方法:serverless deploy当您在serverless.yml中更新了函数、事件或资源配置,并且希望将该更改(或多个更改)部署到华为云时,请使用此方法。Server - [打包](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0744.md): 使用Serverless CLI工具,可以将项目打包,而无需将其部署到华为云。建议与CI/CD工作流一起使用,以确保可部署产物一致。运行以下命令将在服务的.serverless目录中构建和保存所有部署产物:serverless package有时,您可能希望对函数产物以及它们的打包方式有更多的控制。您可以使用patterns配置来更多地控 - [变量](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0745.md): Serverless Framework提供了一个强大的变量系统,您可以将动态数据添加到serverless.yml中。使用Serverless变量,您将能够执行以下操作:引用并加载环境变量中的变量。引用并加载CLI选项中的变量。递归引用同一serverless.yml文件中的任何类型的属性。递归引用其他YAML/JSON文件中的任何类型 - [创建](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0747.md): 根据指定的模板在当前工作目录下创建新服务。在当前工作目录中创建服务:serverless create --template-url https://github.com/zy-linn/examples/tree/v3/legacy/huawei-Nodejs使用自定义模板在新文件夹中创建服务:serverless create --t - [安装](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0748.md): 在当前工作目录中从GitHub URL安装服务,如下:serverless install --url https://github.com/some/service--url或-u:GitHub的服务URL,必填。--name或-n:服务名称。从GitHub URL安装服务serverless install --url https:/ - [打包](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0749.md): 默认情况下,serverless package命令将所有基础设施资源打包到.serverless目录中用于部署。在该示例中,您的服务会被打包。生成的软件包将默认位于服务的.serverless目录。 - [部署](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0750.md): serverless deploy命令通过华为云API部署整个服务。当您编辑serverless.yml文件更改了服务时,请运行此命令。serverless deploy执行serverless deploy命令后,所有创建的部署产物都将放置在服务的.serverless目录。 - [信息](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0751.md): 默认情况下,serverless info命令用于显示有关已部署服务的信息。在服务目录中运行此命令即可显示已部署服务的信息。serverless info - [调用](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0752.md): 调用已部署的函数。您可以发送事件数据、读取日志和查看函数调用的其他重要信息。serverless invoke --function functionName--function或-f:要调用的服务中函数的名称,必填。--data或-d:传递给函数的数据。--path或-p:JSON文件的路径,其中包含要传递给所调用函数的输入数据。此路径 - [日志](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0753.md): 查看特定函数的日志。serverless logs --function functionName--函数或-f:获取日志的函数,必填。--count或-c:显示的日志数。检索日志serverless logs --function functionName这将显示指定函数的日志。 - [移除](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0754.md): serverless remove命令将从提供商中移除当前工作目录中定义的已部署服务。serverless remove该命令将仅移除已部署的服务及其所有资源,本地计算机上的代码将会保留。服务移除serverless remove此示例将移除当前工作目录中已部署的服务。 - [APIG网关事件](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0756.md): 华为云函数工作流可以通过API网关(APIG)创建基于函数的API终端节点。要创建HTTP终端节点作为华为云函数工作流的事件源,请使用http事件语法。此设置指定当有人通过GET请求访问函数API终端节点时,应运行first函数。您可以在部署服务后运行serverless info命令来获取终端节点的URL。以下是一个例子:# serve - [OBS事件](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0757.md): 华为云函数可以由不同的event源触发。这些事件源可以通过event定义和配置。此示例设置一个OBS事件,每当对象上传到my-service-resource时,该事件将触发first函数。# serverless.yml functions: first: handler: index.first events: - [使用华为云SDK开发Node.js函数示例](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0800.md): 华为云API Explorer工具提供各云服务的API参考文档及配套SDK代码示例。本章节以获取函数列表接口为例指导您使用华为云SDK,在函数工作流控制台开发Node.js函数。登录统一身份认证服务(IAM)控制台。左侧导航栏选择权限管理权限,单击创建自定义策略。以配置获取函数列表接口的相关委托为例,如图1所示配置包含获取函数列表权限的自 - [使用华为云SDK开发Python函数示例](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0801.md): 华为云API Explorer工具提供各云服务的API参考文档及配套SDK代码示例。本章节以获取函数列表接口为例指导您使用华为云SDK,在函数工作流控制台开发Python函数。登录统一身份认证服务(IAM)控制台。左侧导航栏选择权限管理权限,单击创建自定义策略。以配置获取函数列表接口的相关委托为例,如图1所示配置包含获取函数列表权限的自定 - [使用Python构建容器镜像开发事件函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0802.md): 使用容器镜像创建并执行事件函数的完整操作步骤可参考使用容器镜像创建并执行事件函数,本章节介绍如何使用Python语言制作镜像,并进行本地验证。以在Linux x86 64位系统上制作镜像为例(系统配置无要求)。执行以下命令,创建一个名为custom_container_event_example的空文件夹。mkdir custom_con - [使用Python构建容器镜像开发HTTP函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0803.md): 使用容器镜像创建并执行HTTP函数的完整操作步骤可参考使用容器镜像创建并执行HTTP函数,本章节介绍如何使用Python语言制作镜像,并进行本地验证。以在Linux x86 64位系统上制作镜像为例(系统配置无要求)。执行以下命令,创建一个空文件夹。mkdir custom_container_http_example && cd cus - [使用Java构建容器镜像开发事件函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0804.md): 使用容器镜像创建并执行事件函数的完整操作步骤可参考使用容器镜像创建并执行事件函数,本章节介绍如何使用Java语言制作镜像,并进行本地验证。以在linux x86 64位系统上制作镜像为例(系统配置无要求)。执行以下命令,创建一个空文件夹。mkdir custom_container_event_example && cd custom_c - [使用Java构建容器镜像开发HTTP函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0805.md): 使用容器镜像创建并执行HTTP函数的完整操作步骤可参考使用容器镜像创建并执行HTTP函数,本章节介绍如何使用Java语言制作镜像,并进行本地验证。以在linux x86 64位系统上制作镜像为例(系统配置无要求)。执行以下命令,创建一个空文件夹。mkdir custom_container_http_example && cd custo - [FunctionGraph与基础设施即代码(IaC)](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_1000.md): FunctionGraph函数不常单独运行。它与存储、网关、数据库和消息队列等其他资源结合,组成无服务应用程序。借助基础设施即代码(IaC),可以自动化部署流程,从而快速且重复地部署与更新函数及触发器配置。该方法加快了开发周期,简化了配置管理,确保每次都一致地部署资源。资源编排服务(Resource Formation Service,简 - [部署环境准备](https://support.huaweicloud.com/devg-functiongraph/functiongraph_03_0102.md): 本章节以Linux主机为例,指导您基于KooCLI和软件开发生产线CodeArts搭建一套FunctionGraph函数的CI/CD。该服务器作为CodeArts部署任务的部署主机,用于部署更新FunctionGraph函数。规格:1vCPUs | 1GiB镜像:CentOS 8.2 64bit其他:需要配置弹性公网IP,因为要安装pyt - [步骤一:新建项目](https://support.huaweicloud.com/devg-functiongraph/functiongraph_03_0104.md): 登录软件开发生产线CodeArts控制台,进入软件开发生产线界面,单击“前往工作台”。在工作台界面项目页签下,找到“模板 > Scrum”,单击选用。输入项目名称“function”,其他配置保持默认。完成后单击“确定”。 - [步骤二:函数代码托管](https://support.huaweicloud.com/devg-functiongraph/functiongraph_03_0105.md): 进入function项目界面,在左侧导航栏选择“代码 > 代码托管”,单击“新建仓库”。新建方式选择普通新建,单击下一步。创建一个专属于函数的仓库,填写代码仓库名称为“functions”,其他配置保持默认,单击确定完成创建。进入创建的functions仓库。先新建一个deploy目录,用于存放用户来部署函数的deploy.py代码。新建 - [步骤三:配置部署主机](https://support.huaweicloud.com/devg-functiongraph/functiongraph_03_0106.md): 在左侧导航栏,选择“设置 > 通用设置 > 基础资源管理”,单击“新建主机集群”。输入集群名称为“deploy-function”,其他配置如图1所示,单击“保存”。新建主机集群在跳转界面“目标主机”页签下,单击“添加或导入主机”。选择导入已购ECS,将部署环境准备的ECS云服务器导入,输入该服务器的用户名、密码、ssh端口号22,完成后 - [步骤四:搭建函数部署脚本更新流水线](https://support.huaweicloud.com/devg-functiongraph/functiongraph_03_0107.md): 此流水线的主要作用是将函数部署脚本deploy.py发布到部署主机上,供函数更新流水线使用。登录软件开发生产线CodeArts控制台,在左侧导航栏选择“编译构建”,单击“前往编译构建”。在编译构建界面,单击新建任务。参考图1填写基本信息,完成后单击下一步。新建构建任务模板选择“空白构建模板”,单击“确定”。选择“参数设置”页签,在自定义参 - [步骤五:搭建函数更新流水线](https://support.huaweicloud.com/devg-functiongraph/functiongraph_03_0108.md): 此流水线的主要作用是将functions仓库的helloworld函数代码配置发布更新到FunctionGraph平台。在“构建&发布 > 编译构建”页面,单击“新建任务”。源码仓库选择functions仓库,构建模板选择“空白构建模板”。构建步骤,添加三个构建步骤“执行shell命令”、“上传文件到obs”和“上传软件包到软件发布库”。 - [deploy.py代码示例](https://support.huaweicloud.com/devg-functiongraph/functiongraph_03_0109.md): 以下为自动化部署deploy.py文件的代码示例。该示例用于自动化部署和更新华为云FunctionGraph函数,涵盖配置和代码的更新。通过解析配置文件,调用命令行工具执行更新命令,并处理加密数据的解密,同时记录日志以确保操作的可追溯性。可参考代码注释使用。 - [cam.yaml解析](https://support.huaweicloud.com/devg-functiongraph/functiongraph_03_0110.md): 函数配置在cam.yaml的properties属性下,当前支持的函数配置详解如下:当前cam.yaml不支持VPC、委托、磁盘挂载和动态内存配置的更新,如果函数需要使用VPC、委托或者磁盘挂载和动态内存请在函数界面手动配置,在使用函数更新流水线时会保留VPC、委托、磁盘挂载和动态内存配置,不会覆盖掉。为了避免在cam.yaml中明文显示 - [Java函数开发指南(使用IDEA工具创建Java工程)](https://support.huaweicloud.com/devg-functiongraph/functiongraph_devg_02_0002.md): 本章节介绍使用IDEA工具开发Java函数。关于Java函数接口定义、Initializer入口介绍以及SDK接口说明请参考Java函数开发概述。您可以跟随本文以下步骤从头开始创建Java工程和Java函数,也可以直接下载Java的函数样例工程包并从步骤三:创建Java函数并测试开始操作。配置IDEA如图创建工程所示,创建java工程。创 - [Java函数开发指南(使用IDEA工具创建maven工程)](https://support.huaweicloud.com/devg-functiongraph/functiongraph_devg_02_0003.md): 本章节介绍使用IDEA工具创建maven工程开发Java函数。关于Java函数接口定义、Initializer入口介绍以及SDK接口说明请参考Java函数开发概述。您可以跟随本文以下步骤从头开始创建Java工程和Java函数,也可以直接下载Java的maven样例工程包并从步骤二:创建Java函数并测试开始操作。创建函数工程如图1所示配置 ## API参考 - [错误码](https://support.huaweicloud.com/api-functiongraph/ErrorCode.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [获取触发器列表 - ListActiveTrigger](https://support.huaweicloud.com/api-functiongraph/ListActiveTrigger.md): 获取触发器列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/triggers状态码:200状态码:401状态码:403状态码:500获取触发器列表。状态码:200OK请参 - [获取用户特征信息 - ListUserFeature](https://support.huaweicloud.com/api-functiongraph/ListUserFeature.md): 获取用户特征信息请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/feature状态码:200状态码:400获取用户特征信息状态码:200OK请参见错误码。 - [获取触发器类型列表 - ListUserTriggerTypes](https://support.huaweicloud.com/api-functiongraph/ListUserTriggerTypes.md): 获取触发器类型列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/triggertypes状态码:200状态码:401状态码:403状态码:500获取触发器类型列表。状态码 - [获取用户委托列表 - ListUserTrustAgency](https://support.huaweicloud.com/api-functiongraph/ListUserTrustAgency.md): 获取用户委托给FunctionGraph的委托列表。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/service-trusted-agencies状态码:200状态码:4 - [获取用户支持运行时类型 - ShowUserRuntimeTypes](https://support.huaweicloud.com/api-functiongraph/ShowUserRuntimeTypes.md): 获取所有用户支持的运行时类型列表。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/runtimetypes状态码:200状态码:401状态码:403状态码:500获取用户支 - [FunctionGraph函数模型](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0102.md): 介绍FunctionGraph函数模型的返回字段。FunctionGraph函数模型如下。FunctionGraph函数字段说明如表1所示。Funcurn使用冒号分隔为8个域,region_id为系统配置的值(测试时可以填成与后台相同的值),最后一个中括号的内容表示可以为函数的版本号,也可以为该版本指向的别名,如果为别名时需要在名称前加上 - [函数Trigger Management触发器模型](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0103.md): 介绍Trigger Management触发器模型的返回字段。触发器类型模型字段说明如表1所示。触发器实例模型字段说明如表2所示。SMN触发器数据如下。{ "topic_urn":"string" }SMN触发器数据说明如表3所示。SMN触发器数据说明字段名称字段说明topic_urnSMN服务的topic_urn,创建时必填 - [获取函数列表 - ListFunctions](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0105.md): 获取函数列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions状态码: 200状态码: 401状态码: 403状态码: 404状态码: 500当前租户函数列 - [获取函数的metadata - ShowFunctionConfig](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0106.md): 获取指定函数的metadata。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{function_urn}/config状态码: 200状态码: 40 - [获取指定函数代码信息 - ShowFunctionCode](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0107.md): 获取指定函数代码信息。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{function_urn}/code状态码: 200状态码: 400状态码: 4 - [创建函数 - CreateFunction](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0108.md): 创建指定的函数。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/functions状态码: 200状态码: 400状态码: 401状态码: 403状态码: 404状态码: - [导入函数 - ImportFunction](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0108_0.md): 导入函数请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/functions/import状态码: 200状态码: 409状态码: 500导入函数,文件名为"test.zi - [导出函数 - ExportFunction](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0108_1.md): 导出函数请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{function_urn}/export状态码: 404状态码: 500导出函数代码(新方式) - [删除函数/版本 - DeleteFunction](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0109.md): 删除指定的函数或者特定的版本(不允许删除latest版本)。如果URN中包含函数版本或者别名,则删除特定的函数版本或者别名指向的版本以及该版本关联的trigger。如果URN中不包含版本或者别名,则删除整个函数,包含所有版本以及别名,触发器。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该I - [修改函数代码 - ShowFunctionCode](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0110.md): 修改指定的函数的代码。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。PUT /v2/{project_id}/fgs/functions/{function_urn}/code状态码: 200状态码: 400状态码: 4 - [修改函数的metadata信息 - UpdateFunctionConfig](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0111.md): 修改指定的函数的metadata信息。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。PUT /v2/{project_id}/fgs/functions/{function_urn}/config状态码: 200状态码: - [修改函数调用链配置 - UpdateTracing](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0112_00_0.md): 修改函数调用链配置,开通/修改传入aksk,关闭aksk传空请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。PUT /v2/{project_id}/fgs/functions/{function_urn}/tracing - [获取函数调用链配置 - ShowTracing](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0112_00_1.md): 获取函数调用链配置请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{function_urn}/tracing状态码: 200状态码: 403状态码: - [获取函数异步调用请求列表 - ListAsyncInvocations](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0112_00_3.md): 获取函数异步调用请求列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{function_urn}/async-invocations状态码: 200 - [获取函数活跃异步调用请求列表 - ListActiveAsyncInvocations](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0112_00_4.md): 获取函数异步调用活跃请求列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{function_urn}/active-async-invocation - [开通lts日志上报功能 - EnableLtsLogs](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0112_01.md): 开通lts日志上报功能。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/functions/enable-lts-logs状态码: 429开通租户lts日志上报功能。状态 - [修改函数预留实例数量 - UpdateFunctionReservedInstancesCount](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0112_1.md): 修改函数预留实例数量。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。PUT /v2/{project_id}/fgs/functions/{function_urn}/reservedinstances状态码: 200状 - [获取函数预留实例配置列表 - ListReservedInstanceConfigs](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0112_2.md): 获取函数预留实例配置列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/reservedinstanceconfigs状态码: 200状态码: 400状 - [获取函数预留实例数量 - ListFunctionReservedInstances](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0112_3.md): 获取函数预留实例数量。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/reservedinstances状态码: 200状态码: 400状态码: 401 - [获取指定函数的版本列表 - ListFunctionVersions](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0113.md): 获取指定函数的版本列表。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{function_urn}/versions状态码: 200状态码: 400状 - [创建函数版本别名 - CreateVersionAlias](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0114.md): 创建函数灰度版本别名。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/functions/{function_urn}/aliases状态码: 200状态码: 400状态 - [修改函数版本别名信息 - UpdateVersionAlias](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0115.md): 修改函数版本别名信息。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。PUT /v2/{project_id}/fgs/functions/{function_urn}/aliases/{alias_name}状态码: 2 - [删除函数版本别名 - DeleteVersionAlias](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0116.md): 删除函数版本别名。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。DELETE /v2/{project_id}/fgs/functions/{function_urn}/aliases/{alias_name}状态码: - [获取函数版本的指定别名信息 - ShowVersionAlias](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0117.md): 获取函数指定的版本别名信息。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{function_urn}/aliases/{alias_name}状态码 - [获取指定函数所有版本别名列表 - ListVersionAliases](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0118.md): 获取函数版本别名列表。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{function_urn}/aliases状态码: 200状态码: 401状态码 - [获取指定函数的所有触发器 - ListFunctionTriggers](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0119.md): 获取指定函数的所有触发器设置。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/triggers/{function_urn}状态码: 200状态码: 400状态码: 401 - [获取指定触发器的信息 - ShowFunctionTrigger](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0120.md): 获取特定触发器的信息。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/triggers/{function_urn}/{trigger_type_code}/{trigge - [删除指定函数的所有触发器 - BatchDeleteFunctionTriggers](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0121.md): 删除指定函数所有触发器设置。在提供函数版本且非latest的情况下,删除对应函数版本的触发器。 在提供函数别名的情况下,删除对应函数别名的触发器。 在不提供函数版本(也不提供别名)或版本为latest的情况下,删除该函数所有的触发器(包括所有版本和别名)。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当 - [创建触发器 - CreateFunctionTrigger](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0122.md): 创建触发器。可以创建的触发器类型包括TIMER、APIG、CTS、DDS、DMS、DIS、LTS、OBS、SMN、KAFKA。(当前OBS触发器暂不支持中国站。)DDS和KAFKA触发器创建时默认为DISABLED状态,其他触发器默认为ACTIVE状态。TIMER、DDS、DMS、KAFKA、LTS触发器支持禁用,其他触发器不支持。请参见 - [删除触发器 - DeleteFunctionTrigger](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0123.md): 删除触发器。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。DELETE /v2/{project_id}/fgs/triggers/{function_urn}/{trigger_type_code}/{trigger_ - [更新触发器 - UpdateTrigger](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0124.md): 更新触发器请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。PUT /v2/{project_id}/fgs/triggers/{function_urn}/{trigger_type_code}/{trigger_id}状 - [同步执行函数 - InvokeFunction](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0125.md): 同步调用指的是客户端请求需要明确等到响应结果,也就是说这样的请求必须得调用到用户的函数,并且等到调用完成才返回。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/funct - [异步执行函数 - AsyncInvokeFunction](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0126.md): 异步执行函数。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/functions/{function_urn}/invocations-async状态码: 202状态码: - [获取依赖包列表 - ListDependencies](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0127.md): 获取依赖包列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/dependencies状态码: 200状态码: 401状态码: 403状态码: 404状态码: 500当前租 - [创建依赖包(待废弃) - CreateDependency](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0128.md): 创建依赖包请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/dependencies状态码: 200状态码: 400状态码: 401状态码: 403状态码: 404状态码: - [删除指定测试事件 - DeleteEvent](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0129.md): 删除指定测试事件请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。DELETE /v2/{project_id}/fgs/functions/{function_urn}/events/{event_id}状态码: 400状 - [获取指定依赖包(待废弃) - ShowDependcy](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0130.md): 获取指定依赖包请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/dependencies/{depend_id}状态码: 200状态码: 401状态码: 403状态码: 40 - [更新指定依赖包(待废弃) - UpdateDependcy](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0131.md): 更新指定依赖包请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。PUT /v2/{project_id}/fgs/dependencies/{depend_id}状态码: 200状态码: 400状态码: 401状态码: 40 - [获取指定函数的测试事件列表 - ListEvents](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0132.md): 获取指定函数的测试事件列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{function_urn}/events状态码: 200状态码: 400状态 - [创建测试事件 - CreateEvent](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0133.md): 创建测试事件请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/functions/{function_urn}/events状态码: 200状态码: 400状态码: 401 - [删除指定的依赖包(待废弃) - DeleteDependency](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0134.md): 删除指定的依赖包请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。DELETE /v2/{project_id}/fgs/dependencies/{depend_id}状态码: 400状态码: 401状态码: 403状态码 - [获取测试事件详细信息 - ShowEvent](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0135.md): 获取测试事件详细信息请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{function_urn}/events/{event_id}状态码: 200状态 - [更新测试事件详细信息 - UpdateEvent](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0136.md): 更新测试事件详细信息请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。PUT /v2/{project_id}/fgs/functions/{function_urn}/events/{event_id}状态码: 200状态 - [查询租户配额 - ListQuotas](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0137.md): 查询租户配额请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/quotas状态码: 200状态码: 400状态码: 401状态码: 403状态码: 500查询租户配额。状态码 - [获取指定时间段的函数运行指标 - ListFunctionStatistics](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0138.md): 获取指定时间段的函数运行指标。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{func_urn}/statistics/{period}状态码: 20 - [租户函数统计信息 - ListStatistics](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0139.md): 租户函数统计信息。返回三类的统计信息,函数格式和大小使用情况包括配额和使用量,流量报告。 通过查询参数filter可以进行过滤,查询参数period可以指定返回的时间段。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GE - [获取函数异步配置信息 - ShowFunctionAsyncInvokeConfig](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0140.md): 获取指定函数某一版本的异步配置信息。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{function_urn}/async-invoke-config - [删除函数异步配置信息 - DeleteFunctionAsyncInvokeConfig](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0141.md): 删除函数异步配置信息。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。DELETE /v2/{project_id}/fgs/functions/{function_urn}/async-invoke-config状态码: - [设置函数异步配置信息 - UpdateFunctionAsyncInvokeConfig](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0142.md): 设置函数异步配置信息。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。PUT /v2/{project_id}/fgs/functions/{function_urn}/async-invoke-config状态码: 20 - [获取函数异步配置列表 - ListFunctionAsyncInvokeConfig](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0143.md): 获取指定函数所有版本的异步配置列表。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{function_urn}/async-invoke-config - [发布函数版本 - CreateFunctionVersion](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0144.md): 发布函数版本。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/functions/{function_urn}/versions状态码: 200状态码: 400状态码: - [获取指定函数的lts日志组日志流配置 - ShowLtsLogDetails](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0145.md): 获取指定函数的lts日志组日志流配置。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{function_urn}/lts-log-detail状态码: - [停止函数异步调用请求 - CancelAsyncInvocation](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0146_00_1.md): 当前仅支持参数recursive为false且force为true的函数。 在1:N的函数做并发异步调用的场景下调用停止异步请求接口时,同一函数实例同时在执行的其他请求也会被一并停止并返回4208 function invocation canceled请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前 - [获取按指定指标排序的函数列表 - ListFunctionAsMetric](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0150.md): 按指定指标排序的函数列表。默认统计按错误次数指标统计最近一天失败次数最多的前10个函数请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/function/report状态码: - [创建依赖包版本](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0152.md): 创建依赖包版本请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/dependencies/version状态码: 200状态码: 401状态码: 403状态码: 404状态 - [获取依赖包版本列表 - ListDependencyVersion](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0153.md): 获取依赖包版本列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/dependencies/{depend_id}/version状态码: 200状态码: 401状态码: - [获取依赖包版本详情 - ShowDependencyVersion](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0154.md): 获取依赖包版本详情请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/dependencies/{depend_id}/version/{version}状态码: 200状态码 - [删除依赖包版本 - DeleteDependencyVersion](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0155.md): 删除依赖包版本请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。DELETE /v2/{project_id}/fgs/dependencies/{depend_id}/version/{version}状态码: 400状态 - [示例1:创建函数和Timer触发器实现定时从OBS桶中下载文件](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0202.md): 本章节以Python 2.7为例,指导您通过API创建FunctionGraph函数和Timer触发器,实现定时从OBS桶中下载文件。API的调用方法请参见如何调用API。已在OBS服务中上传文件,并记录文件名、文件所在的OBS桶名,以及OBS地址的链接。已配置具有OBS服务访问权限的委托,并记录委托名。创建FunctionGraph函数 - [示例2:上传代码到OBS桶,并使用OBS链接创建函数](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0204.md): 本章节以Python 2.7为例,指导您在本地编码,然后将代码文件上传到OBS桶,实现通过OBS链接创建函数。API的调用方法请参见如何调用API。已在OBS服务中创建OBS桶。请确保函数与OBS桶创建在同一区域下。在本地进行函数编码后,将代码文件上传到OBS桶,并使用OBS链接创建函数。步骤如下:创建函数工程:在本地进行编码实现函数功能 - [构造请求](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0210.md): 本节介绍REST API请求的组成,并以调用IAM服务的获取用户Token接口说明如何调用API,该API获取用户的Token,Token可以用于调用其他API时鉴权。您还可以通过这个视频教程了解如何构造请求调用API:https://bbs.huaweicloud.com/videos/102987 。请求URI由如下部分组成。{URI - [返回结果](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0220.md): 请求发送以后,您会收到响应,包含状态码、响应消息头和消息体。状态码是一组从1xx到5xx的数字代码,状态码表示了请求响应的状态,完整的状态码列表请参见状态码。对于获取用户Token接口,如果调用后返回状态码为“201”,则表示请求成功。对应请求消息头,响应同样也有消息头,如“Content-type”。对于获取用户Token接口,返回如图 - [认证鉴权](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0230.md): 调用接口有如下两种认证方式,您可以选择其中一种进行认证鉴权。Token认证:通过Token认证通用请求。AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。Token在计算机系统中代表令牌( - [获取账号、IAM用户、项目、用户组、区域、委托的名称和ID](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0260.md): 从控制台获取账号名、账号ID、用户名、用户ID、项目名称、项目ID在调用接口时,部分URI中需要填入用户名、用户ID、账号名、账号ID、项目名称、项目ID,在“我的凭证”页面可以获取这些信息。登录华为云管理控制台。单击用户名,在下拉列表中单击“我的凭证”。在“API凭证”页面的项目列表中查看账号名、账号ID、用户名、用户ID、项目名称、项 - [异步执行工作流 - StartWorkflowExecution](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1001.md): 以异步执行方式启动工作流,暂不支持国际站局点调用请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/workflows/{workflow_id}/executions状态码 - [删除函数流 - BatchDeleteWorkflows](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1002.md): 删除函数流请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。DELETE /v2/{project_id}/fgs/workflows状态码: 200状态码: 400状态码: 500删除urn为urn:fss:{region - [查询函数流 - ListWorkflow](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1003.md): 查询函数流请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/workflows无状态码: 200状态码: 400状态码: 500查询函数流。状态码: 200函数流查询返回体S - [创建函数流 - CreateWorkflow](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1004.md): 创建函数流请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/workflows状态码: 201状态码: 400状态码: 500创建名为workflow_test,开始节点的 - [获取指定函数流执行实例列表 - ListWorkflowExecutions](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1005.md): 获取指定函数流执行实例列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/workflows/{workflow_id}/executions无状态码: 200状态码: 4 - [获取指定函数流执行实例 - ShowWorkflowExecution](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1006.md): 获取指定函数流执行实例请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/workflows/{workflow_id}/executions/{execution_id}状态 - [获取指定函数流实例的元数据 - ShowWorkFlow](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1007.md): 获取指定函数流实例的元数据请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/workflows/{workflow_id}无状态码: 200状态码: 400状态码: 500获 - [修改指定函数流实例的元数据 - UpdateWorkFlow](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1008.md): 修改指定函数流实例的元数据请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。PUT /v2/{project_id}/fgs/workflows/{workflow_id}状态码: 200状态码: 400状态码: 500修改 - [获取函数流指标 - ShowTenantMetric](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1009.md): 获取函数流指标请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/workflow-statistic无状态码: 200状态码: 400状态码: 500获取函数流指标。状态码: - [获取指定函数流指标 - ShowWorkFlowMetric](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1010.md): 获取指定函数流指标请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/workflow-statistic/{workflow_urn}无状态码: 200状态码: 400状态码 - [重试函数流 - RetryWorkFlow](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1011.md): 重试函数流(执行标准函数流失败时可使用执行id调用此接口重试,快速工作流不支持重试)请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/workflows/{workflow - [停止函数流 - StopWorkFlow](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1012.md): 停止函数流请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/workflows/{workflow_id}/executions/{execution_id}/termin - [同步执行工作流 - StartSyncWorkflowExecution](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1016.md): 以同步执行方式启动工作流(仅快速模式工作流支持),暂不支持国际站局点调用请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/workflows/{workflow_id}/s - [函数异步执行并返回预留实例ID(已废弃) - AsyncInvokeReservedFunction](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1017.md): 函数异步执行并返回预留实例ID用于场景指客户端请求执行比较费时任务,不需要同步等待执行完成返回结果,该方法提前返回任务执行对应的预留实例ID, 如果预留实例有异常,可以通过该实例ID把对应实例删除(该接口主要针对白名单用户)。 目前仅支持广州。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该 - [更新函数最大实例数 - UpdateFunctionMaxInstanceConfig](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1018.md): 更新函数最大实例数请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。PUT /v2/{project_id}/fgs/functions/{function_urn}/config-max-instance状态码: 200状 - [禁用/启动函数快照 - UpdateFuncSnapshot](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1019.md): 禁用/启动函数快照,仅支持java运行时函数,且为非latest版本才能开启函数快照功能。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/functions/{funct - [查询函数快照制作状态 - ShowFunctionSnapshotState](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1020.md): 查询函数快照制作状态。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{function_urn}/snapshots/{action}状态码: 200 - [查询函数流列表 - ListGraphs](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1020_0.md): 查询函数流列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v1/{project_id}/ffs/graphs状态码:200状态码:400状态码:500查询函数流列表。无请参见错误码。 - [查询资源实例 - ShowResInstanceInfo](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1021.md): 查询资源实例。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/{resource_type}/resource-instances/{action}状态码: 200状态码: 40 - [创建函数流 - CreateGraph](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1021_0.md): 创建函数流请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v1/{project_id}/ffs/graphs状态码:201状态码:400状态码:500无无请参见错误码。 - [查询资源标签 - ShowProjectTagsList](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1022.md): 查询资源标签。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/{resource_type}/tags状态码: 200状态码: 400状态码: 401状态码: 403状态码: 50 - [删除函数流 - UpdateGraph](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1022_0.md): 删除函数流请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。PUT /v1/{project_id}/ffs/graphs状态码:201状态码:400状态码:500无状态码:201Created请参见错误码。 - [创建资源标签 - CreateTags](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1023.md): 创建资源标签。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/{resource_type}/{resource_id}/tags/create状态码: 400创建键值对分别为" - [获取指定函数流执行实例 - ShowGraph](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1023_0.md): 获取指定函数流执行实例请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v1/{project_id}/ffs/graphs/{workflow_id}状态码:200状态码:400状态码:500无无请参见错误码。 - [删除资源标签 - DeleteTags](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1024.md): 删除资源标签。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。DELETE /v2/{project_id}/{resource_type}/{resource_id}/tags/delete状态码: 400删除资源标签。 - [修改指定函数流实例的元数据 - UpdateGraphInstance](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1024_0.md): 修改指定函数流实例的元数据请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。PUT /v1/{project_id}/ffs/graphs/{workflow_id}状态码:200状态码:400状态码:500无无请参见错误码 - [创建下沉入口 - CreateVpcEndpoint](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1025.md): 创建下沉入口。调用者需具备虚拟私有云服务VPC和云解析服务DNS的权限,或参数xrole对应的委托包含以下权限:请参考JSON视图配置自定义策略前往IAM控制台配置函数的委托权限策略。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限 - [获取指定元数据种类列表 - ShowMetaCategories](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1025_0.md): 获取指定元数据种类列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v1/{project_id}/ffs/metadata/categories无状态码:200状态码:400状态码:500无状态码:200指定 - [删除下沉入口 - DeleteVpcEndpoint](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1026.md): 删除下沉入口。(该功能目前仅支持华北-北京四、华东-上海一)请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。DELETE /v2/{project_id}/fgs/vpc-endpoint/{vpc_id}/{subnet - [获取指定元数据components列表 - ShowMetaComponents](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1026_0.md): 获取指定元数据components列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v1/{project_id}/ffs/metadata/components无状态码:200状态码:400状态码:500无状 - [获取指定元数据constraints列表 - ShowMetaConstraints](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1027_0.md): 获取指定元数据constraints列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v1/{project_id}/ffs/metadata/constraints无状态码:200状态码:400状态码:500 - [获取指定元数据标签列表 - ShowMetaTags](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1028_0.md): 获取指定元数据标签列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v1/{project_id}/ffs/metadata/tags无状态码:200状态码:400状态码:500无状态码:200指定元数据标签列 - [获取指定SmnGraph列表 - ShowSmnGraphs](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1029_0.md): 获取指定SmnGraph列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v1.0/{project_id}/cloud-graphs无状态码:200状态码:400状态码:500无无请参见错误码。 - [分页查询指定函数流记录 - ShowWorkflowExecutionForPage](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1032_0.md): 分页查询指定函数流记录请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/workflows/{workflow_id}/executions-history无状态码:200状 - [权限及授权项说明](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1100.md): 如果您需要对您所拥有的FunctionGraph进行精细的权限管理,您可以使用统一身份认证服务(Identity and Access Management,简称IAM),如果公有云账号已经能满足您的要求,不需要创建独立的IAM用户,您可以跳过本章节,不影响您使用FunctionGraph服务的其它功能。默认情况下,新建的IAM用户没有任 - [状态码](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1310.md): 状态码如表1所示 - [FunctionGraph服务监控指标说明](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1340.md): 本节定义了FunctionGraph服务中“函数”上报云监控服务的监控指标。指标的命名空间和维度,您可以通过云监控服务提供的API接口来检索FunctionGraph服务中“函数”产生的监控指标和告警信息。SYS.FunctionGraph - [API概览](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1500.md): FunctionGraph API为开发者、合作伙伴提供开发、部署、托管、运维的开放接口,帮助用户快速、低成本地实现业务创新,缩短应用上线周期。FunctionGraph API提供的接口有如下几种类型。 - [使用前必读](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1600.md): 欢迎使用函数工作流(FunctionGraph)。FunctionGraph是一项基于事件驱动的函数托管计算服务。通过函数工作流,只需编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,函数以弹性、免运维、高可靠的方式运行。此外,按函数实际执行资源计费,不执行不产生费用。您可以使用本文档提供API对函数资源进行相关操作,如创 - [修订记录](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1700.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [示例3:函数互调](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_1701.md): 本章节以python语言举例,指导您在一个函数里调用另外一个函数。API的调用方法请参见如何调用API。已创建委托,包含“FunctionGraph Administrator”或“Tenant Administrator”权限的委托。请确保子函数与父函数创建在同一区域下。创建子函数。创建父函数。调用函数。在函数控制台创建子函数,本例所选 - [概述](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_2703.md): 您可以使用扩展API将函数与监控、可观察性、安全性和监管等工具集成,控制并参与 FunctionGraph生命周期的所有阶段。例如在函数调用之前、期间和之后捕获诊断信息;无需更改代码即可自动检测您的代码;在函数调用之前获取配置设置;通过安全代理检测功能发出警报;将遥测数据直接从函数异步发送到自定义目的地。扩展作为独立进程在函数执行环境中运 - [操作步骤](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_2704.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [制作扩展依赖包](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_2705.md): 准备一个zip包,zip包中用于扩展进程的编写,可以拉起一个扩展进程,zip包中限制如下:zip包中必须含有extension命名的文件夹,extension的文件夹中必须包含以extension为前缀,.sh文件类型的脚本文件,用于后续扩展启动扩展进程,例如zip包的文件结构如下:extension -​ extensionDem - [API方法](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_2707.md): http://${EXTENSION_API_ADDR}/extension/register进程部署的扩展都需要在FunctionGraph注册成功后才能接收事件。您可以通过 EXTENSION_API_ADDR 环境变量得到FunctionGraph平台开放的提供注册的扩展API地址,例如对于Python,EXTENSION API - [如何通过扩展完成SkyWalking的对接](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_2708.md): 通过以下对接SkyWalking的示例帮助您理解如何通过扩展API将函数与监控、可观察性、安全性和监管等工具集成。当用已编译的语言实现扩展时,在本地编译生成二进制文件;使用非编译的语言实现扩展时,需要把对接第三方平台需要的依赖一起打包上传,且需要函数的运行时兼容。将skywalking agent直接嵌入到扩展代码中,即可通过扩展完成对函 - [如何在扩展中使用OpenTelemetry API](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_2711.md): 遥测是一种特殊的扩展,扩展进程中必须完成以下工作才能成功启用遥测功能:在使用OpenTelemetry API之前,需要先注册拓展,具体内容可参考扩展API使用。在拓展启动一个httpClient,向FunctionGraph发送注册Telemetry API的请求。创建一个httpServer遥测侦听器,接收FunctionGraph发 - [注册OpenTelemetry API](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_2712.md): http://${EXTENSION_API_ADDR}/telemetry您可以通过 EXTENSION_API_ADDR 环境变量得到平台开放的提供注册的API地址,例如对于Python,EXTENSION_API_ADDR的获取方式为os.getenv("EXTENSION_API_ADDR ")。路径- /telemetry方法– - [处理遥测](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_2713.md): http://localhost:{PORT},localhost是本地主机IP:127.0.0.1。使用遥测 API 订阅后,扩展会自动开始通过遥测侦听器接收来自FunctionGraph的遥测数据。每个 POST 请求正文都包含 Event 对象数组。订阅事件类型包括三大类:platform、function、extension。pl - [查询函数标签列表 - ListFunctionTags](https://support.huaweicloud.com/api-functiongraph/functiongraph_23_1031_01.md): 查询函数标签列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/{resource_type}/{resource_id}/tags状态码: 200状态码: 400状态码: 401 - [获取指定函数绑定的servicebridge函数列表 - ListBridgeFunctions](https://support.huaweicloud.com/api-functiongraph/functiongraph_23_1031_02.md): 获取指定函数绑定的servicebridge函数列表信息。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{function_urn}/serviceb - [获取servicebridge可用的版本(已废弃) - ListBridgeVersions](https://support.huaweicloud.com/api-functiongraph/functiongraph_23_1031_03.md): 获取servicebridge可用的版本请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/servicebridge/version状态码: 200状态码: 400状态码: - [更新函数置顶状态 - UpdateFunctionCollectState](https://support.huaweicloud.com/api-functiongraph/functiongraph_23_1031_04.md): 更新函数置顶状态请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。PUT /v2/{project_id}/fgs/functions/{func_urn}/collect/{state}状态码: 500更新函数置顶状态。无 - [获取函数模板列表 - ListFunctionTemplate](https://support.huaweicloud.com/api-functiongraph/functiongraph_23_1031_05.md): 获取函数模板列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/templates状态码: 200状态码: 400状态码: 401状态码: 403状态码: 500获取500 - [获取指定函数模板 - ShowFunctionTemplate](https://support.huaweicloud.com/api-functiongraph/functiongraph_23_1031_06.md): 获取指定函数模板请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/templates/{template_id}状态码: 200状态码: 400状态码: 401状态码: 40 - [允许异步状态通知 - EnableAsyncStatusLog](https://support.huaweicloud.com/api-functiongraph/functiongraph_23_1031_07.md): 允许异步状态通知。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/functions/enable-async-status-logs无允许异步状态通知。无SDK代码示例 - [查询函数实例使用情况指标 - ShowFuncReservedInstanceMetrics](https://support.huaweicloud.com/api-functiongraph/functiongraph_23_1031_08.md): 查询函数实例使用情况指标。指标单位为分钟: 当查询时间范围小于1小时,指标周期为1分钟 当查询时间范围小于1天,指标周期为30分钟 当查询时间范围大于1天,指标周期为180分钟指标分为如下几类:reservedinstancenum(预留实例使用)、concurrency(实例使用/并发)请参见如何调用API。账号具备所有API的调用权限 - [查询函数实例流量指标 - ShowFunctionMetrics](https://support.huaweicloud.com/api-functiongraph/functiongraph_23_1031_09.md): 查询函数流量指标。请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/{func_urn}/slareports/{period}状态码: 200状态码: - [查询异步日志详情 - ShowProjectAsyncStatusLogInfo](https://support.huaweicloud.com/api-functiongraph/functiongraph_23_1106_01.md): 查询异步日志详情请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/functions/async-status-log-detail状态码: 200状态码: 401查询异步日 - [查询应用程序模板列表 - ListAppTemplates](https://support.huaweicloud.com/api-functiongraph/functiongraph_23_1106_02.md): 查询应用程序模板列表(该功能目前仅支持华东-上海一、华北-北京四)请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/application/templates状态码: 200 - [查询应用程序模板详情 - ShowAppTemplate](https://support.huaweicloud.com/api-functiongraph/functiongraph_23_1106_03.md): 查询应用程序模板详情(该功能目前仅支持华东-上海一、华北-北京四)请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/application/templates/{id}状态码 - [查询应用程序列表 - ListFunctionApplications](https://support.huaweicloud.com/api-functiongraph/functiongraph_23_1106_04.md): 查询应用程序列表(该功能目前仅支持华东-上海一、华北-北京四)请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/applications状态码: 200状态码: 400状态码 - [创建应用程序 - CreateFunctionApp](https://support.huaweicloud.com/api-functiongraph/functiongraph_23_1106_05.md): 创建应用程序(该功能目前仅支持华东-上海一、华北-北京四)请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/applications状态码: 200状态码: 400状态码: - [查询应用程序详情 - ShowFunctionApp](https://support.huaweicloud.com/api-functiongraph/functiongraph_23_1106_06.md): 查询应用程序详情(该功能目前仅支持华东-上海一、华北-北京四)请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/applications/{id}状态码: 200状态码: 4 - [删除应用程序 - DeleteFunctionApp](https://support.huaweicloud.com/api-functiongraph/functiongraph_23_1106_07.md): 删除应用程序(该功能目前仅支持华东-上海一、华北-北京四)请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。DELETE /v2/{project_id}/fgs/applications/{id}状态码: 400状态码: - [回调工作流 - CreateCallbackWorkflow](https://support.huaweicloud.com/api-functiongraph/functiongraph_23_1106_08.md): 回调工作流请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。POST /v2/{project_id}/fgs/workflows/{workflow_id}/callback状态码: 200状态码: 400状态码: 404 - [获取函数模板标签列表 - ListFunctionTemplateLabel](https://support.huaweicloud.com/api-functiongraph/functiongraph_25_0911_01.md): 获取函数模板标签列表请参见如何调用API。账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。GET /v2/{project_id}/fgs/template-labels状态码:200状态码:401状态码:403状态码:500获取函数模板标签列 ## SDK参考 - [SDK概述](https://support.huaweicloud.com/sdkreference-functiongraph/functiongraph_07_0100.md): 本文介绍了FunctionGraph服务提供的SDK语言版本,列举了最新版本SDK的获取地址。在开始使用之前,请确保您安装的是最新版本的SDK。使用过时的版本可能会导致兼容性问题或无法使用最新功能。您可以在SDK中心查询版本信息。API Explorer能根据需要动态生成SDK代码功能,降低您使用SDK的难度,推荐使用。表1提供了Func - [Java SDK使用范例](https://support.huaweicloud.com/sdkreference-functiongraph/functiongraph_07_0101.md): 以同步执行函数为例,提供封装后的SDK。为了保证您成功使用以下示例代码,您需要先添加对应语言的SDK依赖。“${version}”是SDK的版本号,请根据实际填写。SDK的请求参数、响应参数、请求示例和响应示例与对应的API一致,具体参数和示例说明请参见同步执行函数接口。SDK调用示例AK/SK、region(EndPoint)、proj - [Node.js SDK使用范例](https://support.huaweicloud.com/sdkreference-functiongraph/functiongraph_07_0102.md): 以同步执行函数为例,提供封装后的SDK。为了保证您成功使用以下示例代码,您需要先添加对应语言的SDK依赖。SDK的请求参数、响应参数、请求示例和响应示例与对应的API一致,具体参数和示例说明请参见同步执行函数接口。SDK调用示例AK/SK、region(EndPoint)、project_id(项目ID)的获取请参见AK/SK签名认证操作 - [Python SDK使用范例](https://support.huaweicloud.com/sdkreference-functiongraph/functiongraph_07_0103.md): 以同步执行函数为例,提供封装后的SDK。为了保证您成功使用以下示例代码,您需要先添加对应语言的SDK依赖。SDK的请求参数、响应参数、请求示例和响应示例与对应的API一致,具体参数和示例说明请参见同步执行函数接口。SDK调用示例# coding: utf-8 from huaweicloudsdkcore.auth.credential - [Go SDK使用范例](https://support.huaweicloud.com/sdkreference-functiongraph/functiongraph_07_0104.md): 以同步执行函数为例,提供封装后的SDK。为了保证您成功使用以下示例代码,您需要先添加对应语言的SDK依赖。SDK的请求参数、响应参数、请求示例和响应示例与对应的API一致,具体参数和示例说明请参见同步执行函数接口。SDK调用示例AK/SK、region(EndPoint)、project_id(项目ID)的获取请参见AK/SK签名认证操作 - [PHP SDK使用范例](https://support.huaweicloud.com/sdkreference-functiongraph/functiongraph_07_0105.md): 以同步执行函数为例,提供封装后的SDK。为了保证您成功使用以下示例代码,您需要先添加对应语言的SDK依赖。SDK的请求参数、响应参数、请求示例和响应示例与对应的API一致,具体参数和示例说明请参见同步执行函数接口。SDK调用示例AK/SK、region(EndPoint)、project_id(项目ID)的获取请参见AK/SK签名认证操作 - [.NET SDK使用范例](https://support.huaweicloud.com/sdkreference-functiongraph/functiongraph_07_0106.md): 以同步执行函数为例,提供封装后的SDK。为了保证您成功使用以下示例代码,您需要先添加对应语言的SDK依赖。SDK的请求参数、响应参数、请求示例和响应示例与对应的API一致,具体参数和示例说明请参见同步执行函数接口。SDK调用示例AK/SK、region(EndPoint)、project_id(项目ID)的获取请参见AK/SK签名认证操作 ## CLI参考 - [CLI命令参考](https://support.huaweicloud.com/clir-functiongraph/zh-cn_topic_0000002707402298.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [如何使用CLI](https://support.huaweicloud.com/clir-functiongraph/zh-cn_topic_0000002707480282.md): 华为云命令行工具服务(Koo Command Line Interface,KooCLI,原名HCloud CLI)是为发布在API Explorer上的云服务API提供的命令行管理工具。您可以通过此工具调用API Explorer中FunctionGraph开放的API,管理和使用您的FunctionGraph资源。关于KooCLI的详 ## 场景代码示例 - [](https://support.huaweicloud.com/scenecode-functiongraph/https://codelabs.developer.huaweicloud.com/codelabs/home?pageno=1&product_group=%E8%AE%A1%E7%AE%97&productshorts=FunctionGraph): 场景代码示例 ## 常见问题 - [使用FunctionGraph是否需要开通计算、存储、网络等服务?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0120.md): 用户使用FunctionGraph时,不需要开通或者预配置计算、存储、网络等服务,由FunctionGraph提供和管理底层计算资源,包括服务器CPU、内存、网络和其他配置/资源维护、代码部署、弹性伸缩、负载均衡、安全升级、资源运行情况监控等,用户只需要按照FunctionGraph支持的编程语言提供程序包,上传即可运行。 - [函数如何访问MySQL数据库?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0130.md): 本章介绍如何访问MySQL数据库,具体操作步骤如下:确认MySQL数据库是否搭建在VPC的网络中?是,为函数设置与MySQL数据库相同的VPC、子网,具体请参考函数配置VPC。否,具体请参考配置固定公网IP。是,为函数设置与MySQL数据库相同的VPC、子网,具体请参考函数配置VPC。否,具体请参考配置固定公网IP。在函数模板中搜索mys - [使用FunctionGraph开发程序之后是否需要部署?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0160.md): 用户在本地开发程序之后打包,必须是ZIP包(Java、Node.js、Python、Go)或者JAR包(Java),上传至FunctionGraph即可运行,无需其它的部署操作。制作ZIP包的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。对于Go runtime,必须在编译之后打zip包,编译后的动 - [FunctionGraph为函数分配的磁盘空间有多少?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0170.md): 对于每个FunctionGraph函数分配了512MB临时存储空间,单个租户下最大允许部署包大小为10G,更多函数的资源限制,请参考使用限制。 - [能否在函数代码中使用线程和进程?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0190.md): 用户可使用编程语言和操作系统的功能,在函数中创建额外的线程和进程。 - [如何获取函数运行过程中的内存使用量信息?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0210.md): 函数调用的返回信息中会包含最大内存消耗等信息,请参考开发指南中的SDK接口。也可以在执行结果界面查看。 - [能否在函数环境变量中存储敏感信息?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0230.md): 定义环境变量时,系统会明文展示所有输入信息,请不要输入敏感信息(如账户密码等),以防止信息泄露。详情请参考配置函数的环境变量。 - [FunctionGraph的函数执行需要多长时间?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0250.md): 同步调用函数的执行时间在900秒内,异步调用函数的执行时间在72小时内。FunctionGraph函数默认的执行超时时间为3秒,您可以自行设置执行超时时间为3 ~ 259200秒之间的任何整数。如果执行超时时间设置为3秒,超过3秒后,函数将终止执行。 - [FunctionGraph函数支持哪些编程语言?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0260.md): FunctionGraph目前支持的编程语言,如表1所示。 - [FunctionGraph中的代码是如何隔离的?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0270.md): 每个FunctionGraph函数都运行在其自己的环境中,有其自己的资源和文件系统。 - [使用APIG触发器调用一个返回String的FunctionGraph函数时,报500错误](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0290.md): FunctionGraph函数对来自APIG调用的返回结果进行了封装,APIG触发器要求函数的返回结果中必须包含body(String)、statusCode(int)、headers(Map)和isBase64Encoded(boolean),才可以正确返回。Node.js函数APIG触发器调用返回结果定义示例如下:Java函数APIG - [FunctionGraph的函数如何读写上传的文件?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0330.md): 函数可以读取代码目录下的文件,函数工作目录在入口文件的上一级,例如用户上传了文件夹backend,需要读取与入口文件同级目录的文件test.conf,可以用相对路径“code/backend/test.conf”,或者使用全路径(相关目录为RUNTIME_CODE_ROOT环境变量对应的值)。如果需要写文件(如创建新文件或者下载文件等), - [FunctionGraph的函数是否支持功能扩展?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0341.md): FunctionGraph目前已经集成了一些非标准库如:redis、http、obs_client等,开发函数时可以直接使用,详情请参考开发指南。用户可以通过维护属于自己的依赖代码库,供所有函数使用,请参考依赖包管理。 - [如何制作函数的依赖包](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0343.md): 本章节介绍如何在本地制作函数的私有依赖包。依赖包的文件大小限制为300MB,文件限制数为30000。依赖包内文件名不能以~结尾,例如“module~”。如果安装的依赖模块需要添加依赖库,请将依赖库归档到zip依赖包文件中,例如添加.dll、.so、.a等依赖库。制作函数依赖包推荐在Huawei Cloud EulerOS 2.0环境中进行 - [Python语言的函数中,中文注释报乱码错误](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0345.md): 使用Python语言在线编辑代码,需要输出中文时,请在编辑器中增加如下代码:# -*- coding:utf-8 -*- import json def handler (event, context): output = 'Hello message: ' + json.dumps(event,ensure_ascii=False) r - [FunctionGraph的函数执行包含了哪些过程?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0347.md): FunctionGraph函数的执行过程包含两步:选择一个相应内存的空闲实例。执行用户的指定运行代码。 - [FunctionGraph函数长时间不执行时,相关的实例会如何处理?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0349.md): 如果一个函数在一段时间内一直没有执行,那么所有与之相关的实例都会被释放。 - [FunctionGraph的函数支持哪些中文字体?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0353.md): FunctionGraph函数支持以下四种中文字体:NotoSansTC-Regular.otfNotoSerifTC-Regular.otfNotoSansSC-Regular.otfNotoSerifSC-Regular.otf以上中文字体,用户可直接引用。 - [函数和Kafka必须在同一个子网内,才可以配置Kafka触发器吗?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0770.md): 是必须的。在创建函数的时候会判断子网是否相同,不允许一个VPC的不同子网进行连接。 - [是否支持在函数中启动TCP的监听端口,通过EIP接收外部发送过来的TCP请求?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0771.md): 目前函数暂不支持这种方式。函数的理念是无服务器计算,计算资源只会在运行期分配,这种自定义监听端口的场景并不适合。 - [为什么首次调用函数时速度会比较慢?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0820.md): 因为函数是冷启动的,所以如果有初始化或者函数中有第一次执行比较耗时的操作(例如加载函数代码及依赖包),第一次请求会比较慢,后面接着的请求就会很快,因为此时容器还没有销毁。如果间隔一分钟没有请求,容器就会销毁。如果您使用的是C#或者Go语言,因为机制原因,启动速度会比其他语言慢。此时,您可以通过以下设置,增加运行速度。适当增加函数的内存。精 - [FunctionGraph函数通过域名访问APIG中注册的接口时,报域名无法解析?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0826.md): 函数服务目前只能解析pod域的域名或者在华为dns服务购买的域名。 - [FunctionGraph是否支持对上传的zip文件进行反编译?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0827.md): 函数不支持反编译,需要用户反编译后上传上来。 - [函数无法通过VPC连接对应的Redis?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0829.md): 相同的代码,函数能通过VPC1连通Redis1,但是不能通过VPC2连通Redis2。与客户确认问题现象,Redis1在VPC1中,Redis2在VPC2中,Redis客户端代码是同一套代码。查看连接报错信息如下,通过VPC2连接Redis2时,Redis IP地址变成乱码。分析Redis1与Redis2除了IP地址和密码不一样之外,其他 - [如何制作基于ODBC驱动的Python语言函数依赖包?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0830.md): 对于依赖操作系统的包(以unixODBC为例),需要下载源码编译制作依赖包:通过ecs控制台页面登录ecs机器(确保gcc、make工具安装完成),执行如下命令下载相关源码包。wget 源码路径若下载包为zip文件,执行如下命令进行解压:unzip xxx/xx.zip若下载包为tar.gz文件,执行如下命令进行解压:tar -zxvf - [如何读取函数的请求头?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0838.md): 函数入口中的第一个参数里面包含请求头,您可以打印函数执行结果,从而获取想要的字段。如下图,event为函数入口的第一个参数,headers为请求头。 - [FunctionGraph如何通过域名访问专享版APIG中注册的接口?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0840.md): 以域名www.test.com为例,具体请参考如下步骤。域名示例 - [函数创建后是否支持修改编程语言?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0842.md): 不支持,函数一旦创建完成,就不能修改运行时语言。 - [为函数挂载文件系统时,报“failed to mount exist system path”](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0843.md): 您可以将文件重新挂载在新的路径下。用户/用户组ID: 可设置为1000之外的其他数字id,如果为-1默认设置为1003。用户/用户组ID用于对访问远端文件系统的目录权限进行控制。文件系统/云服务器名称:选择创建的文件系统或者云服务器资源,注意函数配置的VPC和委托要有访问权限。共享目录路径:如果选择ECS挂载需要配置远端共享目录,请参见E - [函数常规信息中的“应用”如何理解?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0845.md): “应用”实际作用就是文件夹功能。当前创建的新函数所属应用均为“default”应用,且无法更改,新版本里会逐步弱化并下线老界面的“应用"概念,未来会通过标签分组的方式来管理函数的分类等。 - [同步调用函数时,未收到调用响应的可能原因?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0848.md): 如果函数执行端到端时延超过90s,建议使用异步不使用同步,否则会因为网关限制,超过90s后无法收到同步响应。 - [函数中os.system("command &")命令的执行日志未采集,应如何处理?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0849.md): 不建议使用os.system("command &")后台运行命令,其产生的输出函数不进行采集。如果要得到后台运行命令的输出,建议使用subprocess.Popen的方式获取其输出。 - [用户需要为函数的冷启动时间付费吗?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0850.md): 不需要,冷启动时间不会被计量,因此用户无需为冷启动时间付费。 - [创建函数时提示“已限制,不能执行此操作”?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0853.md): 因为账号处于欠费状态。 - [函数计费中的调用次数,是某一账号下在不同region的所有函数的调用次数总和吗?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0854.md): 是的,每个region都有一套函数,如果是同一个账号在不同的region都有函数,则函数计费中的调用次数为调用次数总和。 - [使用定制运行时语言的函数能操作哪些目录?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0855.md): 目前默认只能操作/tmp目录,在/tmp下可以写文件(如创建新文件或者下载文件等)。 - [函数创建后是否支持修改函数名称?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0858.md): 不支持,函数一旦创建完成,就不能修改函数名称。 - [函数执行超时的可能原因有哪些?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0859.md): 自身代码执行逻辑超时,建议优化代码或增加超时时间。网络请求超时,建议增加超时时间。函数进行冷启动时,Java加载类时间过长,建议增加超时时间或增加内存。 - [函数如何获取APIG触发器中的请求路径或请求参数?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0860.md): 请求路径或请求参数默认携带在event的入参中,FunctionGraph函数对APIG调用的传入值为函数自带的事件模板,请参考APIG事件源中的示例事件查看事件模板内容。获取方式:从event对象获取APIG请求路径和请求参数的格式如下:获取请求路径的格式:event['path']获取请求参数的格式:event['queryStrin - [如何通过版本和别名实现绑定APIG触发器的HTTP函数的灰度升级?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0863.md): 基于latest创建版本V1、V2,创建别名alias绑定对应版本V1,权重100%,为alias创建APIG触发器。发布新版本V1和V2创建alias别名并绑定V1版本在alias下创建触发器函数支持别名和版本分别创建APIG触发器,APIG触发器名称默认为API_{函数名}{版本名},请求Path默认是/{函数名}-{版本名} 。同一 - [Python语言的函数从V1版本迁移到V2版本时需注意哪些兼容性问题?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0867.md): args的区别V1使用的语法:args = parser.parse_args()如果迁移到V2,需修改为:args = parser.parse_args(args=[])因为V1和V2 python runtime的sys.argv结构不同。V2是['/home/snuser/runtime/python3.6/server.py', - [函数执行失败返回“runtime memory limit exceeded”时,如何查看内存占用大小?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0869.md): 请在函数请求返回界面查看。 - [自定义镜像函数执行失败报“CrashLoopBackOff”](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0870.md): 若出现“CrashLoopBackOff: The application inside the container keeps crashing”错误字段:请根据页面提示信息诊断原因。查看执行结果请参见使用容器镜像部署函数章节进行容器镜像自验证。排查镜像是否为x86 linux架构,目前仅支持x86 linux架构镜像。 - [如何导出函数中的代码?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0871.md): 登录函数工作流控制台,单击函数名称进入函数详情页,单击右上方操作栏下的“导出函数”,继续单击“导出函数代码”。通过导出函数API接口获取函数代码。 - [FunctionGraph如何实现域名解析?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0872.md): 当前FunctionGraph函数无法直接解析华为云解析服务(DNS)的内网域名,当需要在函数中解析DNS域名,可参考本章节操作,通过调用DNS服务的接口,实现解析功能。您需要提前创建VPC和DNS内网域名,再按照如下步骤操作。登录云解析服务控制台,将内网域名关联VPC。关联VPC点击进入域名并添加记录集,类型选择A。添加记录集创建一个运 - [Python2.7在执行reload(sys)后无法通过print打印日志](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0873.md): 建议使用context.getLogger()打印日志: - [使用相同名称的镜像更新镜像时,预留实例无法自动更新,会一直使用老镜像](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0875.md): 建议使用非latest的镜像tag管理镜像更新,避免使用完全相同的镜像名。 - [函数发起HTTP请求的源地址如何获取?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0885.md): 函数未开启“函数访问VPC内资源”功能时访问公网。访问公网时使用函数工作流服务的SNAT地址,该地址是固定的,如何获取请咨询技术支持工程师。未开启函数访问VPC内资源访问公网时使用函数工作流服务的SNAT地址,该地址是固定的,如何获取请咨询技术支持工程师。函数开启“函数访问VPC内资源”功能时访问公网。(相关VPC配置详情请参见配置网络) - [运行函数时报错error while loading shared libraries时如何处理?](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0892.md): 出现如图1报错,说明依赖包没有把程序运行所需的动态链接库打包进去。针对该问题有以下两种处理方案:代码逻辑较为复杂的情况下建议使用自定义镜像函数,创建自定义镜像函数详情请参见使用容器镜像创建函数。制作依赖包时,把动态链接库一同复制到依赖包最外层。如图2是chrome内核所需的动态链接库。chrome内核动态链接库系统默认动态链接库路径:“/