华为云用户手册

  • 成本构成 使用CodeArts Inspector时,成本主要包括两个方面: 产品版本:CodeArts Inspector提供的产品版本有专业版、高级版、企业版,您可以根据实际业务需要按需使用。可参考不同版本的功能特性,按照业务需要选择对应的版本。 使用次数:CodeArts Inspector按需计费模式按照使用次数收费,每次扫描后扣费,单次网站扫描支持一个二级 域名 ,单次主机扫描支持最多20台主机。如果已经购买专业版、高级版、企业版中任何一个版本,则可以支持不限次数的扫描。 CodeArts Inspector的计费不包括计算(云容器引擎CCE、弹性 云服务器ECS )、网络(弹性负载均衡ELB、弹性公网EIP)、中间件(云数据库RDS)等资源的费用。
  • 包年/包月资源 对于包年/包月计费模式的资源,例如包年/包月的漏洞管理服务、包年/包月的云硬盘等,用户在购买时会一次性付费,服务将在到期后自动停止使用。 如果在计费周期内不再使用包年/包月漏洞管理服务,您可以执行退订操作。漏洞管理服务套餐支持退订。系统将根据资源是否属于五天无理由退订、是否使用代金券和折扣券等条件返还一定金额到您的账户。详细的退订规则请参见云服务退订规则概览。 如果您已开启“自动续费”功能,为避免继续产生费用,请在自动续费扣款日(默认为到期前7日)之前关闭自动续费。
  • 续费相关的功能 包年/包月漏洞管理服务续费相关的功能如表1所示。 表1 续费相关的功能 功能 说明 手动续费 包年/包月漏洞管理服务从购买到被自动删除之前,您可以随时在漏洞管理服务控制台进行续费,以延长漏洞管理服务的使用时间。 自动续费 开通自动续费后,漏洞管理服务会在每次到期前自动续费,避免因忘记手动续费而导致资源被自动删除。 在包年/包月漏洞管理服务生命周期的不同阶段,您可以根据需要选择一种方式进行续费,具体如图1所示。 图1 漏洞管理服务生命周期 漏洞管理服务从购买到到期前,处于正常运行阶段,套餐状态为“正常”。 到期后,套餐状态变为“已过期”。 到期未续费时,漏洞管理服务首先会进入宽限期,宽限期到期后仍未续费,套餐状态变为“保留”。 超过宽限期仍未续费将进入保留期,如果保留期内仍未续费,资源将被自动删除。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 在漏洞管理服务到期前均可开通自动续费,到期前7日凌晨3:00首次尝试自动续费,如果扣款失败,每天凌晨3:00尝试一次,直至漏洞管理服务到期或者续费成功。到期前7日自动续费扣款是系统默认配置,您也可以根据需要修改此扣款日。
  • 计费说明 漏洞管理服务提供按需模式和包年/包月模式,按需模式计费项信息请参考表1;按包年/包月模式计费项信息请参考表2。 表1 按需模式计费项信息 计费项 计费项说明 适用的计费模式 计费公式 基础版按次扫描Web漏洞单价 使用基础版单次扫描Web漏洞。 当您针对基础版Web漏洞创建扫描任务时,您可以打开“将本次扫描升级为专业版”的开关,将本次扫描任务升级为专业版规格进行扫描。 按需计费。 免费使用基础版配额内的Web 网站漏洞扫描 功能(域名个数:5个,扫描次数:每日5次)。 升级为专业版时,每次99元。 基础版按次扫描主机漏洞单价 使用基础版单次扫描主机漏洞。 当您针对基础版主机漏洞创建扫描任务时,须将本次扫描任务升级为专业版规格进行扫描。 按需计费。 升级为专业版时,每次99元。 表2 按包年/包月模式计费项信息 计费项 计费项说明 适用的计费模式 计费公式 套餐包版本包月单价 漏洞管理服务提供套餐包版本有:专业版、高级版和企业版,您可以根据实际业务需要购买。产品套餐说明,请参考产品规格差异。 套餐包版本包月单价,请参考价格详情中的套餐包价格。 包年/包月。 套餐包版本包月单价 * 购买时长 * 扫描配额包 扫描配额包 按购买的个数计费。 购买时长 专业版、高级版:支持购买1~9个月或者1~3年。 购买时长为1年时,可享受实付10个月的优惠。 购买时长为2年时,可享受实付7折的优惠。 购买时长为3年时,可享受实付5折的优惠。 企业版:支持购买1个月、3个月或者1年。 购买时长为1年时,可享受实付3.125折的优惠。
  • 适用计费项 表1 包年/包月适用计费项 计费项目 计费项说明 服务版本 按购买的服务版本(专业版、高级版或企业版)计费。 服务版本包月单价,请参考价格详情中的套餐包价格。 扫描配额包 按购买的个数计费。 购买时长 专业版、高级版:支持购买1~9个月或者1~3年。 购买时长为1年时,可享受实付10个月的优惠。 购买时长为2年时,可享受实付7折的优惠。 购买时长为3年时,可享受实付5折的优惠。 企业版:支持购买1个月、3个月或者1年。 购买时长为1年时,可享受实付3.125折的优惠。 假设您计划购买漏洞管理服务专业版,扫描配额包选择1个,购买时长1个月,在价格计算器页面底部,您将看到所需的配置费用。 图1 包年/包月配置费用示例
  • 变更配置后对计费的影响 当前漏洞管理服务套餐不满足您的业务需要时,您可以在漏洞管理服务控制台发起变更操作。 变更操作可选择“即时变更”或“续费变更”。 即时变更:变更操作在当前的套餐周期内生效,变更时系统将按照如下规则为您计算变更费用。 资源升配:变更后的套餐价格高于变更前价格,此时您需要支付新老配置的差价。 资源降配:变更后的套餐价格低于变更前价格,此时华为云会将新老配置的差价退给您。 续费变更:即购买新套餐,在当前套餐到期后,新套餐自动生效。
  • 到期后影响 图2描述了包年/包月漏洞管理服务各个阶段的状态。购买后,在计费周期内资源正常运行,此阶段为有效期;资源到期而未续费时,将陆续进入宽限期和保留期。 图2 包年/包月漏洞管理服务生命周期 到期预警 包年/包月漏洞管理服务在到期前第15天内,系统将在服务使用界面向用户推送到期预警消息。 当漏洞管理服务套餐资源用量/流量已达80%以上或100%,系统将在服务使用界面向用户推送预警消息。 到期后影响 当您的包年/包月漏洞管理服务到期未续费,首先会进入宽限期,资源状态变为“已过期”。宽限期内您可以正常使用漏洞管理服务。 如果您在宽限期内仍未续费包年/包月漏洞管理服务,那么就会进入保留期,资源状态变为“已冻结”,您将无法对处于保留期的包年/包月资源执行任何操作。 保留期到期后,若包年/包月漏洞管理服务仍未续费,那么将无法继续使用漏洞管理服务。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 关于续费的详细介绍请参见续费概述。
  • 适用场景 适用于可预估资源使用周期的场景,价格比按需计费模式更优惠。对于长期使用者,推荐该方式。以下是一些适用于包年/包月计费模式的业务场景: 稳定业务需求:对于长期运行且资源需求相对稳定的业务,如企业业务系统等,包年/包月计费模式能提供较高的成本效益。 长期项目:对于周期较长的项目,如科研项目、大型活动策划等,包年/包月计费模式可以确保在整个项目周期内资源的稳定使用。 业务高峰预测:如果能预测到业务高峰期,如电商促销季、节假日等,可提前购买包年/包月资源以应对高峰期的需求,避免资源紧张。 数据安全要求高:对于数据安全性要求较高的业务,包年/包月计费模式可确保资源的持续使用,降低因资源欠费而导致的数据安全风险。
  • 适用计费项 表1 按需计费适用计费项 计费项 说明 Web 漏洞扫描 次数 使用漏洞管理服务基础版进行Web漏洞扫描,升级为专业版规格按次计费(¥99.00/次)。 进入漏洞管理服务后,您可以免费使用基础版配额内的Web网站漏洞扫描功能(域名个数:5个,扫描次数:每日5次),扫描内容如下: Web常规漏洞扫描(包括XSS、SQL注入等30多种常见漏洞)。 端口扫描。 在扫描配置界面开启“是否将本次扫描升级为专业版规格(¥99.00/次)”时,则可按专业版进行Web漏洞扫描,扫描内容如下: Web常规漏洞扫描(包括XSS、SQL注入等30多种常见漏洞)。 端口扫描。 弱密码扫描。 CVE漏洞扫描。 网页内容合规检测(文字)。 未开启专业版时扫描任务时长限制2小时,如果您扫描次数较为频繁,建议您购买包月专业版服务(¥300.00/月)。 主机漏洞扫描次数 使用漏洞管理服务基础版进行主机漏洞扫描,按次计费(¥99.00/次)。 假设您计划使用漏洞管理服务基础版运行进行Web漏洞扫描或主机漏洞扫描,在漏洞管理服务界面进行扫描时,您将看到所需的配置费用。 图1 Web漏洞扫描按需计费配置费用示例 图2 主机漏洞扫描按需计费配置费用示例
  • 计费模式概述 漏洞管理服务提供按需计费、包年/包月计费模式,以满足您的不同用户需求。 按需计费,一种后付费模式,即先使用再付费,按照实际使用次数计费。按需计费模式允许您根据实际业务需求灵活地调整资源使用,无需提前预置资源,从而降低预置过多或不足的风险。 包年/包月,一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买时长不同优惠力度不同。 表1 计费模式说明 计费模式 包年/包月 按需计费 适用版本 专业版、高级版和企业版 基础版 付费方式 预付费,按照订单的购买周期结算。 后付费,按照使用次数计费。 计费周期 按订单的购买周期计费。 按次结算。 适用计费项 套餐包版本包月单价、购买时长和扫描配额包。 扫描次数。 升级产品版本 支持购买其他版本套餐包。 支持升级产品版本。 适用场景 适用于可预估资源使用周期的场景,价格比按需计费模式更优惠。对于扫描任务需长期7x24小时持续扫描的场景,推荐该方式。 适用于短期使用场景,可以随时进行扫描。 父主题: 计费模式
  • 使用限制 单账号跟踪的事件可以通过 云审计 控制台查询。多账号的事件只能在账号自己的事件列表页面去查看,或者到组织追踪器配置的OBS桶中查看,也可以到组织追踪器配置的 CTS /system日志流下面去查看。 用户通过云审计控制台只能查询最近7天的操作记录。如果需要查询超过7天的操作记录,您必须配置转储到 对象存储服务 (OBS)或 云日志 服务(LTS),才可在OBS桶或LTS日志组里面查看历史事件信息。否则,您将无法追溯7天以前的操作记录。 云上操作后,1分钟内可以通过云审计控制台查询管理类事件操作记录,5分钟后才可通过云审计控制台查询数据类事件操作记录。 CTS新版事件列表不显示数据类审计事件,您需要在旧版事件列表查看数据类审计事件。
  • 操作步骤 登录 FunctionGraph 控制台,配置 Java 函数,并打开“快照式冷启动”开关。 图1 开启快照式冷启动 (可选)配置 Restore Hook,并在函数代码中实现对应的 Hook 逻辑。 图2 开启Restore Hook 函数代码中Restore Hook示例如下: 函数发布新版本后,触发快照的自动化制作。 图3 发布新版本 请耐心等待快照制作完成(5min 超时时间)。 图4 快照制作中 图5 快照制作成功 调用 Java 函数,体验快照优化后的性能提升。
  • 概述 华为云发布的基于进程级快照的冷启动加速方案,是一种性能优化服务,用户无需额外付费,只需进行简单的配置、少量的代码修改,即可享受到该创新方案带来的冷启动性能提升。 当用户 Java 函数打开冷启动加速的配置开关后,华为云 FunctionGraph 会预先执行函数对应的初始化代码,获取其初始化执行上下文环境的快照,并进行加密缓存。后续调用该函数并触发冷启动扩容时,会直接从提前初始化后的应用快照来恢复执行环境,而非重新走一遍初始化流程,以此达到极大提升启动性能的效果。
  • 概述 函数工作流 提供了按量和预留两种类型的实例。 按量实例是由函数工作流根据用户使用函数的实际情况来创建和释放,当函数工作流收到函数的调用请求时,自动为此请求分配执行环境。 预留实例是将函数实例的创建和释放交由用户管理,当您为某一函数创建了预留实例,函数工作流收到此函数的调用请求时,会优先将请求转发给您的预留实例,当请求的峰值超过预留实例处理能力时,剩余部分的请求将会转发给按量实例,由函数工作流自动为您分配执行环境。 预留实例在创建完成后,会自动加载该函数的代码、依赖包以及执行初始化入口函数,且预留实例会常驻环境,消除冷启动对业务的影响。(注意:不要依赖预留实例本身的初始化函数去执行一次性业务。) 预留实例当前支持配置固定数量的预留实例,也支持配置定时伸缩的预留实例、配置按指标弹性伸缩的预留实例和配置智能推荐的预留实例。 用户默认没有权限使用指标策略和智能推荐策略,如果需要使用该功能,请在工单系统提交工单添加白名单。
  • 概述 心跳函数用于检测用户函数运行时的异常,例如以下场景: 用户函数死锁,无法正常运行。 用户函数内存溢出,无法正常运行。 用户函数网络异常,无法正常运行。 在配置了自定义心跳函数后,当用户函数运行时,FunctionGraph每隔5s向函数实例发送一次心跳请求,触发心跳函数。如果心跳请求返回异常,FunctionGraph会认为函数实例异常,终止此函数实例。 FunctionGraph心跳请求的超时时间是3s,如果连续6次心跳请求未响应,函数实例将被终止。
  • 云日志服务(LTS)管理函数日志 FunctionGraph支持开通云日志服务(LTS),使用更丰富的函数日志管理功能。开通云日志服务后,FunctionGraph会自动创建1个日志组(functiongraph开头),创建函数后,会默认生成一个日志流(函数名称开头)。 您也可以针对某个函数自行关联日志组和日志流,管理函数日志,即进行函数调用后,调用日志会保存到指定的日志组和日志流下。具体操作请参见配置日志组、日志流和查看函数日志。 默认创建的20个日志流,您无法自定义。您可以在函数的“日志”页签下,按“F12”,找到query接口里的日志流ID,再到lts里找到对应的日志流ID。 若在LTS控制台误删函数日志组,之前的日志数据不可找回,FunctionGraph服务不感知该操作。此时您可以通过修改函数常规设置中的描述信息,保存后触发重建函数日志组。 开通云日志服务(LTS)管理函数日志。 FunctionGraph V1版本开通:在“日志”页签,单击“使用 云日志服务(LTS) 管理函数日志”,页面直接切换至LTS管理函数日志的页面。 FunctionGraph V1版本支持“切换旧版”,将会停用云日志服务(LTS) ,并切换为 应用运维管理 服务( AOM ) 管理函数日志。 函数运行过程中产生的日志管理费用将按需收取。 FunctionGraph V2版本开通:在“日志”页签,直接单击“点击开通”。继续单击“确认”,右上角弹出“开通成功”。 FunctionGraph V2版本当前只支持使用LTS管理函数日志。 设置查询条件。 请求列表:支持设置请求ID、调用结果(执行成功、执行失败)、原因分析(初始化失败、加载失败、系统错误、调用超时、内存超限、磁盘超限、代码异常)。 请求日志:支持关键字、请求ID、实例ID。 表2 调用结果 调用结果 说明 执行成功 函数执行成功打印的日志。 执行失败 函数执行失败打印的日志,包含调用超时、内存超限、磁盘超限、代码异常四种情况。 若想查看调用超时的日志信息,请将“日志类型”切换为调用超时,另外3种执行失败下的日志类型查看方法相同。 表3 原因分析 原因分析 说明 初始化失败 函数初始化失败打印的日志。 加载失败 runtime加载用户函数文件失败打印的日志 系统错误 内部错误。 调用超时 函数调用时间超过配置的“执行超时时间”打印的日志。 内存超限 函数内存大小超过配置的“内存”大小打印的日志。 磁盘超限 磁盘超出限制大小打印的日志。 代码异常 代码出现异常情况打印的日志。 支持的时间条件:最近1小时、最近1天、最近3天及自定义。 您可以单击“到LTS进行 日志分析 等更多操作”,前往LTS控制台管理函数日志。 用户普通实例的初始化阶段的日志大小限制为(10MB),超过大小限制的日志进行滚动更新,为您保留最新的日志。
  • FunctionGraph V1和V2版本支持管理函数日志的区别 FunctionGraph V1版本的函数支持应用运维管理服务(AOM)管理函数日志及云日志服务(LTS)管理函数日志。 图5 应用运维管理服务(AOM)管理函数日志页面 图6 云日志服务(LTS)管理函数日志页面 FunctionGraph V2版本的函数支持云日志服务(LTS)管理函数日志。 图7 云日志服务(LTS)管理函数日志页面
  • 概述 用户在本地环境打包容器镜像,只要符合OCI(Open Container Initiative)标准,都可以上传到FunctionGraph,由平台加载并启动运行。与原来上传代码方式相比,用户可以使用自定义的代码包,不仅灵活也简化了用户的迁移成本。您可以选择“事件函数”类型创建 自定义镜像 函数,也可以选择“HTTP函数”类型创建自定义镜像函数。 使用容器镜像部署函数,开发HTTP函数示例,请参见开发HTTP函数。 使用容器镜像部署函数,开发事件函数示例,请参见开发事件函数。 支持的功能: 下载用户镜像 用户镜像储存在自己的SWR服务中,需要SWR Admin权限才能下载,FunctionGraph会在创建pod前使用swr api生成并设置好临时登录指令。 环境变量 设置FunctionGraph函数的加密配置和环境变量,具体请参见配置函数的环境变量。 挂载外部数据盘 支持挂载外部数据盘,具体请参见扩展函数的磁盘存储空间。 计费 下载镜像、等待镜像Ready不计费。 预留实例 支持预留实例,具体请参见预留实例。 流式返回 支持在函数中返回超过6MB并且不超过200MB的大报文,以数据流的方式返回。 部署新镜像 支持在函数中重新部署新镜像。 用户容器会使用属主1003、属组1003启动,与其他类型的函数相同。
  • 创建委托 如下示例表示:为FuntionGraph赋予VPC Administrator权限,仅在授权区域生效。 按照如下参数设置委托,创建委托的具体步骤请参见如何创建委托。 登录 统一身份认证 服务( IAM )控制台。 在统一身份认证服务(IAM)的左侧导航窗格中,选择“委托”页签,单击右上方的“+创建委托”。 图1 创建委托 开始配置委托。 图2 填写基本信息 委托名称:serverless-trust。 委托类型:选择“云服务”。 云服务:选择“函数工作流 FunctionGraph”。 持续时间:选择“永久”。 描述:填写描述信息。 单击“下一步”,进入委托选择页面,在右方搜索框中搜索需要添加的权限并勾选。此处以添加VPC Administrator权限为例。 图3 选择策略 表2 委托权限示例 权限名称 使用描述/场景 VPC Administrator 虚拟私有云服务管理员。 单击“下一步”,选择权限的作用范围。 图4 根据业务需要选择对应的权限
  • 应用场景 若您在FunctionGraph服务中使用如下场景,请先创建委托。创建委托时授予的权限类型请您根据实际业务需要进行调整,比如前期您在开发阶段授予Admin权限,后期在生产环境中建议您调整为细粒度最小使用权限,保证业务所需权限的同时,也降低权限过大的风险。具体对应授权项参见表1 常见授权项选择进行选择。 表1 常见授权项选择 场景 Admin权限 细粒度最小使用权限 说明 使用自定义镜像 SWR Administrator 暂不支持 SWR Admin: 容器镜像服务 (SWR)管理员,拥有该服务下的所有权限。 如何创建自定义镜像,请参见使用容器镜像创建函数。 挂载SFS文件系统 SFS Administrator 暂不支持 SFS Administrator:弹性文件服务(SFS)管理员,拥有该服务下的所有权限。 如何挂载SFS文件系统,请参见添加SFS容量型文件系统。 挂载sfs turbo文件系统 SFS Turbo ReadOnlyAccess sfsturbo:shares:getShare(查询单个文件系统详细信息) sfsturbo:shares:showFsDir(查询目录是否存在) SFS Turbo ReadOnlyAccess:弹性文件服务SFS Turbo的只读权限。 sfsturbo:shares:getShare:您拥有SFS服务下查询单个文件系统信息的权限。 sfsturbo:shares:showFsDir:您拥有SFS服务下查询目录是否存在的权限。 如何挂载挂载sfs turbo文件系统,请参见添加sfs turbo文件系统。 挂载E CS 共享目录 ECS ReadOnlyAccess ecs:cloudServers:get(查询云服务器详情) ECS ReadOnlyAccess:弹性云服务器的只读访问权限。 ecs:cloudServers:get:您拥有ECS服务下查询云服务器信息的权限。 如何挂载ECS共享目录,请参见添加ECS共享目录。 配置预留实例策略 AOM ReadOnlyAccess aom:metric:get(查询指标) aom:metric:list(查询指标列表) AOM ReadOnlyAccess:应用运维管理服务只读权限。 aom:metric:get:您拥有AOM服务下查询某个指标信息的权限。 aom:metric:list:您拥有AOM服务下查询指标列表详情的权限。 使用DIS触发器 DIS Administrator 暂不支持 数据接入服务 (DIS)管理员,拥有该服务下的所有权限。 如何创建DIS触发器,请参见使用DIS触发器。 使用DMS触发器 DMS ReadOnlyAccess dms:instance:get(查看实例详情信息) DMS ReadOnlyAccess:分布式消息服务只读权限。 dms:instance:get:您拥有DMS服务下查看实例详情信息的权限。 配置跨域VPC访问 VPC Administrator vpc:ports:get(查询端口) vpc:ports:create(创建端口) vpc:vpcs:get(查询VPC) vpc:subnets:get(查询子网) vpc:vips:delete(虚IP解绑VM) vpc:securityGroups:get(查询安全组列表或详情) 拥有VPC Administrator权限的用户可以对VPC内所有资源执行任意操作。在函数配置跨VPC访问时,则函数必须配置具备VPC管理权限的委托。 VPC细粒度最小使用权限:您拥有VPC服务下虚IP解绑VM、查询端口、创建端口、查询VPC、查询子网、查询安全组列表或详情的权限。 如何配置跨域VPC访问,请参见配置网络。 DNS域名解析 DNS ReadOnlyAccess dns:recordset:get(查询租户Record Set资源) dns:zone:get(查询租户zone) dns:recordset:list(查询Record Set列表) dns:zone:list(查询zone列表) DNS ReadOnlyAccess:云解析服务只读权限,拥有该权限的用户仅能查看云解析服务资源。在函数配置调用DNS服务的接口解析内网域名时,则函数必须具备读取DNS资源权限的委托。 DNS细粒度最小使用权限:您拥有DNS服务下查询租户Record Set资源列表和查询租户zone列表的权限。 如何调用DNS服务的接口解析内网域名,请参见解析DNS内网域名。 开启异步通知 目标服务为OBS时: OBS Administrator obs:bucket:HeadBucket(获取桶元数据) obs:bucket:CreateBucket(创建桶) obs:object:PutObject(PUT上传、POST上传、复制对象、追加写对象、初始化上传段任务、上传段、合并段) OBS Administrator:对象存储服务管理员,拥有该服务下的所有权限。 OBS细粒度最小使用权限:您拥有OBS服务下获取桶元数据、创建桶、PUT上传、POST上传、复制对象、追加写对象、初始化上传段任务、上传段、合并段的权限。 如何配置异步通知请参见配置函数的异步调用策略。 目标服务为 SMN 时: SMN Administrator smn:topic:publish(发布消息) smn:topic:list(查询主题列表) SMN Administrator: 消息通知 服务管理员,拥有该服务下的所有权限。 SMN细粒度最小使用权限:您拥有SMN服务下发布消息、查询主题列表的权限。 如何配置异步通知请参见配置函数的异步调用策略。 目标服务为DIS时: DIS Administrator 暂不支持 DIS Administrator:数据接入服务管理员,拥有该服务下的所有权限。 如何配置异步通知请参见配置函数的异步调用策略。
  • 函数定时触发器Cron表达式规则 函数Cron表达式下支持如下几种配置方式。 @every格式 @every NUnit,其中N表示一个正整数,Unit可以为ns, µs, ms, s, m, h,表示每隔N个Unit时间触发一次函数如表1所示。 表1 表达式示例 表达式 含义 @every 30m 每隔30分钟触发一次函数 @every 1.5h 每隔1.5小时触发一次函数 @every 2h30m 每隔2小时30分钟触发一次函数 标准cron表达式 cron表达式格式要求“秒 分 时 日 月 周(可选)”,每个字段间以空格隔开,其中各字段说明如表2所示。 表2 cron表达式字段说明 字段 说明 取值范围 允许的特殊字符 CRON_TZ 可选。不设置则默认使用region所在时区。 - - 秒 必选 0-59 , - * / 分钟 必选 0-59 , - * / 时 必选 0-23 , - * / 日(Day of month) 必选 1-31 , - * ? / 月 必选 1-12或者Jan-Dec(英文不区分大小写)如表3所示。 , - * / 星期几(Day of week) 可选 0-6或者Sun-Sat(0表示星期天,英文不区分大小写),如表4所示。 , - * ? / 表3 月份字段取值说明 月份 数字 英文简写 1月 1 Jan 2月 2 Feb 3月 3 Mar 4月 4 Apr 5月 5 May 6月 6 Jun 7月 7 Jul 8月 8 Aug 9月 9 Sep 10月 10 Oct 11月 11 Nov 12月 12 Dec 表4 星期字段取值说明 星期 数字 英文简写 星期一 1 Mon 星期二 2 Tue 星期三 3 Wed 星期四 4 Thu 星期五 5 Fri 星期六 6 Sat 星期日 0 Sun cron表达式字段特殊字符说明如表5所示。 表5 特殊字符说明 特殊字符 含义 说明 * 表示该字段中的所有值 在“分钟”字段中表示每一分钟都执行。 , 指定多个值(可以不连续) 在“月”字段中指定“Jan,Apr,Jul,Oct”或者“1,4,7,10”,表示1月,4月,7月和10月,在“星期几”字段中指定“Sat,Sun”或者“6,0”表示周六,周日。 - 指定一个范围 在“分钟”字段中使用0-3,表示从0分到3分 ? 指定一个或另一个 仅“日”和“星期几”字段可以指定。例如,如果指定了一个特定的日期,但你不关心该日期对应星期几,那么“星期几”字段就可以使用该特殊字符。 / 表示起步和步幅,n/m表示从n开始,每次增加m 在“分钟”字段1/3表示在满足其它字段情况下,从时间1分(例如00:01:00)开始,每隔3分钟触发一次。 cron表达式配置示例如表6所示。 表6 cron表达式配置示例 配置实例 Cron 表达式(以北京时区为例) 每天12点调度函数 CRON_TZ=Asia/Shanghai 0 0 12 * * * 每天12:30调度函数 CRON_TZ=Asia/Shanghai 0 30 12 * * * 每小时的26分,29分,33分调度函数 CRON_TZ=Asia/Shanghai 0 26,29,33 * * * * 周一到周五的每天12:30调度函数 CRON_TZ=Asia/Shanghai 0 30 12 ? * MON-FRI 周一到周五的每天12:00~14:59每5分钟调度函数 CRON_TZ=Asia/Shanghai 0 0/5 12-14 ? * MON-FRI 一月到四月每天12:00调度函数 CRON_TZ=Asia/Shanghai 0 0 12 ? JAN,FEB,MAR,APR * Cron表达式未设置时,默认以region所在时区运行。如果您的任务需要按照特定时区运行,可以通过CRON_TZ指定,例如在北京时间每个月一号的04:00触发函数执行,则可以使用CRON_TZ=Asia/Shanghai 0 0 4 1 * *。不同地域的时区表达式存在差异,请以实际情况为准。 父主题: 配置函数的触发器
  • 支持的依赖库说明 FunctionGraph支持引入标准库及第三方依赖库。 标准库 对于标准库,无论是在线编辑或是线下开发打包上传至FunctionGraph,均可以直接在代码中引入,使用其功能。 FunctionGraph支持的非标准库 FunctionGraph内置一些三方件,如表1、表2所示。像标准库一样,在编写代码时直接引入,使用其功能。 表1 Node.js Runtime集成的三方件 名称 功能 版本号 q 异步方法封装 1.5.1 co 异步流程控制 4.6.0 lodash 常用工具方法库 4.17.10 esdk-obs-nodejs OBS sdk 2.1.5 express 极简web开发框架 4.16.4 fgs-express 在FunctionGraph和API Gateway之上使用现有的Node.js应用程序框架运行无服务器应用程序和REST API 。提供的示例允许您使用Express框架轻松构建无服务器Web应用程序/服务和RESTful API 。 1.0.1 request 简化http调用,支持HTTPS并默认遵循重定向 2.88.0 表2 Python Runtime支持的非标准库 模块 功能 版本号 dateutil 日期/时间处理 2.6.0 requests http库 2.7.0 httplib2 httpclient 0.10.3 numpy 数学计算 pip2.7,numpy==1.16.6 pip3.10,numpy==1.24.2 pip3.9,numpy==1.18.5 pip3.6,numpy==1.18.5 redis redis客户端 2.10.5 obsclient OBS客户端 3.0.3 smnsdk 访问公有云smn服务 1.0.1 其他第三方库(除了上面表格列举的非标准三方库,FunctionGraph没有内置别的非标准三方库) 将依赖的第三方库打包,上传至OBS桶或在函数界面上传,最后可在函数代码中使用其功能。
  • 在线编辑函数代码 要创建函数,首先需要创建函数部署程序包(包含代码和所有依赖项的文件)。 FunctionGraph支持如下三种方式部署程序包: 支持在线编辑代码。用户在编辑函数代码时支持类似工程方式的管理,可以创建文件、文件夹并对其进行编辑。 支持直接上传函数代码。用户在本地开发程序之后打包(程序包大小不超过40MB),必须是ZIP包(Java、Node.js、Python、Go)或者JAR文件(Java),然后上传至FunctionGraph即可运行,无需其它的部署操作。 支持OBS方式上传函数代码。当函数的程序包大小超过40MB时,使用该方式部署程序包。OBS中ZIP包大小限制为300MB。 本章节将介绍FunctionGraph的在线编辑函数代码方式。 表1 在线编辑支持介绍 运行时 在线编辑 说明 Node.js 支持 - Python 支持 使用Python语言在线编辑代码,需要输出中文时,请在编辑器中增加如下代码: # -*- coding:utf-8 -*- import json def handler (event, context): output = 'Hello message: ' + json.dumps(event,ensure_ascii=False) return output Java 不支持 Java是编译型语言,所以不能在线编辑代码,只能上传程序包。 Go 不支持 Go是编译型语言,所以不能在线编辑代码,只能上传程序包。 C# 不支持 C#是编译型语言,所以不能在线编辑代码,只能上传程序包。 PHP 支持 - 定制运行时 支持 - HTTP 支持 - FunctionGraph预装了适用于Node.js、Python、PHP、定制运行时和HTTP的开发工具包,如果自定义代码只需要软件开发工具包库,则可以使用FunctionGraph控制台的内联编辑器。使用控制台可以编辑代码并将代码上传到FunctionGraph,控制台会将代码及相关的配置信息压缩到FunctionGraph服务能够运行的部署程序包中。 在线编辑区域支持类似工程方式的管理,可以创建文件、文件夹并对其进行编辑。 文件:支持创建文件和文件夹功能。其中包括新建文件,新建文件夹、保存、关闭所有文件功能。 编辑:支持在编码框中,对代码进行撤销、恢复、剪切、复制、粘贴、查找、替换操作。 设置:支持设置编码框中代码字体大小、自动格式化和编码框主题颜色。 代码编辑区中如果代码有修改,请修改完成后再次单击“部署”,完成重新部署代码。 当您部署的代码大于20M时,在线编辑器将不展示代码,但您仍可以测试您的函数。 图1 编辑器不展示代码 父主题: 配置函数代码
  • 准备 已经在FunctionGraph控制台创建函数1、函数2和函数3(运行时语言都使用Python 3.9,代码及功能介绍如下所示),如何创建请参见创建空白函数。 函数1功能:函数执行返回result的值为函数调用事件内的input输入值 import json def handler (event, context): input = event.get('input',0) return { "result": input } 函数2功能:函数执行返回result的值为函数调用事件内的input输入值+2的结果值 import json def handler (event, context): input = event.get('input',0) return { "result": input+2 } 函数3功能:函数执行返回result的值为函数调用事件内的input输入值平方的结果值 import json def handler (event, context): input = event.get('input',0) return { "result": input*input } 使用函数流功能前,请先了解组件说明、编排规则和表达式运算符说明。
  • 准备 已经在FunctionGraph控制台创建函数1、函数2、函数3和函数4(运行时语言都使用Python 3.9,代码及功能介绍如下所示),如何创建请参见创建空白函数。 函数1功能:函数执行返回result的值为函数调用事件内的input输入值+2的结果值 import json def handler (event, context): input = event.get('input',0) return { "result": input+2 } 函数2功能:函数执行返回result的值为函数调用事件内的input输入值平方的结果值 import json def handler (event, context): input = event.get('input',0) return { "result": input*input } 函数3和函数4功能:函数执行返回result的值为“success”。 import json def handler (event, context): print(event) return {"result":"success"} 使用函数流功能前,请先了解组件说明、编排规则和表达式运算符说明。
  • 准备 已经在FunctionGraph控制台创建函数(运行时语言都使用Python 3.9,代码及功能介绍如下所示),如何创建请参见创建空白函数。 函数功能:函数执行返回值为当前日期和时间。 # -*- coding:utf-8 -*- import json from datetime import datetime def handler (event, context): # 获取当前日期和时间 now = datetime.now() # 使用 f-strings 格式化输出 print(f"格式化输出:{now:%Y-%m-%d %H:%M:%S}") return { "statusCode": 200, "isBase64Encoded": False, "body": json.dumps(event), "headers": { "Content-Type": "application/json" } } 使用函数流功能前,请先了解组件说明、编排规则和表达式运算符说明。
  • 准备 已经在FunctionGraph控制台创建函数(运行时语言使用Python 3.9,代码及功能介绍如下所示),如何创建请参见创建空白函数。 函数功能:函数执行返回result的值为函数调用事件内的input输入值+2的结果值。 import json def handler (event, context): input = event.get('input',0) return { "result": input+2 } 使用函数流功能前,请先了解组件说明、编排规则和表达式运算符说明。
  • 创建APIG触发器(专享版) 函数流APIG触发器目前仅支持IAM认证方式。 前提条件:需要预先创建APIG专享版实例,具体请参见购买专享版实例。 在函数流编排页面,单击“开始”节点,在右侧弹出的属性页面添加触发器,触发器类型选择“APIG触发器(专享版)”。 图3 APIG(专享版)触发器 填写触发器配置信息。如表3,带*参数为必填项。 表3 APIG触发器(专享版)信息 字段 填写说明 触发器类型 选择“APIG触发器(专享版)”。 *实例 选择已创建的专享版APIG实例,如何创建详情请参见购买实例。 *分组 API分组相当于一个API集合,API提供方以API分组为单位,管理分组内的所有API。如何创建详情请参见创建API分组。 *发布环境 API可以同时提供给不同的场景调用,如生产、测试或开发。API网关服务提供环境管理,在不同的环境定义不同的API调用路径。选择“RELEASE”,才能调用。 *API类型 API类型:公有API和私有API 公有API:选择此类型时,API支持上架。 私有API:选择此类型时,当该API所在分组上架时,该API不会上架。 *路径 接口请求的路径。 格式如:/users/projects *请求方式 接口调用方式:GET、POST、DELETE、PUT、PATCH、HEAD、OPTIONS、ANY 其中ANY表示该API支持任意请求方法。 单击“创建”,完成APIG触发器(专享版)创建。
  • 创建EG触发器 在函数流编排页面,单击“开始”节点,在右侧弹出的属性页面添加触发器,触发器类型选择“EG触发器”。 图5 EG触发器 填写触发器配置信息。如表4所示,带*参数为必填项。 表4 定时触发器配置信息 配置项 说明 触发器类型 选择“EG触发器”。 *提供方 EG事件源提供方,支持华为云和自定义两种方式。 *事件通道 当“提供方”选择“自定义”时,配置此参数。事件通道负责接收来自事件源的事件来触发函数流执行。 *事件源 事件源是事件的来源,负责将华为云服务、自定义应用等应用程序生产的事件发布到事件网格。 事件类型 当“提供方”选择“华为云”时,配置此参数。可以指定事件类型进行过滤,满足事件类型才会触发函数流执行。 单击“创建”,完成EG触发器创建。
  • 创建定时触发器 登录函数工作流控制台,左侧导航栏单击“函数流”。 单击“创建标准函数流”或“创建快速函数流”,进入新建函数流编排页面。 如果通过DWR侧创建的函数流,在console页面是没有编辑和删除权限,如需相关操作请在DWR侧执行。 单击“开始”节点,在右侧弹出的属性页面添加触发器,触发器类型选择“定时触发器”。 图1 定时触发器 填写触发器配置信息。如表1所示,带*参数为必填项。 表1 定时触发器配置信息 配置项 说明 *触发器类型 选择“定时触发器”。 *触发规则 定时触发器的触发规则,当前只支持Cron表达式。 *Cron表达式 用于表示任务调度的表达式,能够表示特定周期进行的特定的时间、日期等。具体请参见Cron表达式规则。 附加信息 附加信息为json格式,输入必须包含input,在input内输入需要的json体。input的内容会作为流程的输入参数。 单击“创建”,完成定时触发器创建。
共100000条