DataWorks为您提供函数计算节点,您可通过该节点周期性调度处理事件函数,并完成与其它类型节点的集成和联合调度。本文为您介绍如何使用函数计算节点。
前提条件
-
已开通函数计算。
您需要先开通函数计算服务后,才可在DataWorks使用函数计算节点。开通函数计算后,为保障开发过程顺利,建议您先了解函数计算产品的相关介绍及功能特性。详情请参见开通函数计算、函数计算介绍。
-
已创建调用函数所需的服务。
服务是函数计算的基本资源单位,您可以在服务级别上进行授权、日志配置和创建函数等操作。因此,进行函数开发前您需要先创建服务。创建服务,详情请参见创建服务。
-
已创建函数。
函数是调度与运行的基本单位,是一段代码的处理逻辑。您需根据函数计算提供的函数接口形式编写代码,并将代码以函数的形式部署到函数计算进行应用。创建函数,详情请参见创建函数。
背景信息
函数计算是一款事件驱动的全托管计算服务,无需您单独采购与管理服务器等基础设施,通过编写并上传代码或镜像,即可进行服务、函数等的管理操作。函数计算支持运行如下两种类型的函数:
-
事件函数:适用于事件驱动模型中通过事件发生来调用关联函数。
-
HTTP函数:适用于快速构建Web应用等场景。
DataWorks的数据开发(DataStudio)可通过调用事件函数来处理请求事件。更多函数类型介绍,详情请参见函数类型。
使用限制
-
功能限制
DataWorks目前仅支持调用事件函数,不支持调用HTTP函数。因此,若要在DataWorks周期性调度处理事件函数,则在创建函数时,需要创建用于处理事件请求的事件函数。
-
地域限制
DataWorks目前仅支持华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华南1(深圳)、中国香港、新加坡、英国(伦敦)、美国(硅谷)、美国(弗吉尼亚)、德国(法兰克福)、澳大利亚(悉尼)和印度(孟买)地域的工作空间使用函数计算功能。
注意事项
-
使用函数计算节点时,需基于已创建的服务调用待执行事件函数。选择服务时,若无法获取已创建的服务列表,则可能原因如下:
-
当前账号欠费:请充值后刷新节点配置页面重新尝试。
-
当前登录用户没有获取服务列表的权限:请联系阿里云主账号为您添加fc:ListServices权限,或直接赋予您 AliyunFCFullAccess权限,授权后请刷新节点配置页面重新尝试。授权操作,请参见为RAM用户授权。
-
-
若使用RAM用户(即子账号)进行函数计算节点开发,则需为该用户添加如下系统策略或自定义策略权限。
策略类型
策略描述
相关参考
系统策略
使用系统策略时,需授权用户
AliyunFCFullAccess
,或AliyunFCReadOnlyAccess
及AliyunFCInvocationAccess
权限策略。系统策略
自定义策略
使用自定义策略时,需授权用户如下所有权限策略。
-
fc:GetService
-
fc:ListServices
-
fc:GetFunction
-
fc:InvokeFunction
-
fc:ListFunctions
-
fc:GetFunctionAsyncInvokeConfig
-
fc:ListServiceVersions
-
fc:ListAliases
-
fc:GetAlias
-
fc:ListFunctionAsyncInvokeConfigs
-
fc:GetStatefulAsyncInvocation
-
fc:StopStatefulAsyncInvocation
自定义策略
-
步骤一:进入节点创建入口
-
登录DataWorks控制台,单击左侧导航栏的数据建模与开发 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发。
-
进入节点创建入口。
在数据开发(DataStudio)界面,您可通过如下方式创建函数计算节点。
步骤二:创建并配置函数计算节点
-
创建函数计算节点。
进入节点创建入口后,根据界面提示,配置新建节点的路径、名称等基本信息,创建节点。
-
配置函数计算节点参数。
在节点编辑页面,根据业务需求,选择执行本次任务需调用的函数并配置其运行方式及变量详情。
参数
描述
选择服务
用于为函数提供相关运行资源。同一服务下的所有函数共享一些相同的设置,例如,服务授权和日志配置等。如果没有可用服务,则需新建,详情请参见创建服务。
选择版本或别名
选择后续调用函数时所使用的服务版本或别名。默认版本为 LATEST。
-
服务版本
函数计算提供服务级别的版本控制功能,支持您为自己的服务发布一个或多个版本。当发布版本时,函数计算会为服务生成快照,包括服务的配置、服务内的函数代码及函数配置,但不包括触发器,并自动分配一个版本号与其关联,以供后续使用。发布版本,详情请参见发布版本。
-
版本别名
函数计算支持为服务的版本创建别名。别名用于指向特定版本,您可利用别名轻松实现发布、回滚以及灰度发布等功能。别名无法脱离服务或版本单独存在。使用别名访问服务或函数时,函数计算会将别名解析为其指向的版本,调用方无需了解别名指向的具体版本。创建别名,详情请参见创建别名。
选择函数
选择此次任务执行所需调用的函数。如果没有可用函数,则需新建,详情请参见创建函数。
说明
DataWorks目前仅支持调用事件函数,不支持调用HTTP函数。因此,若要在DataWorks周期性调度处理事件函数,则在创建函数时,需要创建用于处理事件请求的事件函数。
示例选择
para_service_01_by_time_triggers
函数。创建该函数时,选择平台提供的定时触发函数的示例代码。代码逻辑如下。import json import logging logger = logging.getLogger() def handler(event, context): logger.info('event: %s', event) # Parse the json evt = json.loads(event) triggerName = evt["triggerName"] triggerTime = evt["triggerTime"] payload = evt["payload"] logger.info('triggerName: %s', triggerName) logger.info("triggerTime: %s", triggerTime) logger.info("payload: %s", payload) return 'Timer Payload: ' + payload
更多函数的示例代码,请参见示例代码。
调用方式
支持使用如下方式调用函数:
-
同步调用:该方式事件将直接触发函数,函数计算会运行该函数并等待响应,当函数调用完成后,函数计算直接返回执行结果。
-
异步调用:该方式函数计算会将事件请求先持久化后再立即返回响应,而不是等待请求执行完成后才返回响应。
如果您的函数中存在耗时较长、资源消耗较大或容易出错的逻辑,则可使用该方式,让您的程序响应更加迅速,更加可靠地应对突发流量。
变量
基于实际应用,对函数中的变量进行赋值。该变量与函数计算产品中,目标函数详情页的测试函数 > 配置测试事件内容对应。
示例对
para_service_01_by_time_triggers
函数的相关变量传入如下参数。参数中,使用${}
格式定义了名为bizdate
的变量,该变量需在步骤4中赋值。{ "payload": "payload1", "triggerTime": "${bizdate}", "triggerName": "triggerName1" }
-
-
可选:调试运行函数计算节点。
函数计算节点配置完成后,您可单击
图标,指定任务运行的资源组并为代码变量赋值常量进行调试运行,测试节点代码逻辑是否正确。运行时,参数配置格式为
key=value
,输入多个参数时,需使用逗号(,)分隔。说明
-
为保障任务高并发执行且无法错峰运行的情况下,当前任务能够定时调度执行,建议使用独享调度资源组。若无合适资源组,请重新创建,详情请参见新增和使用独享调度资源组。
-
更多任务调试运行详情,请参见调试运行任务。
-
-
配置节点的周期调度属性。
DataWorks提供的调度参数,可实现调度场景下代码动态传参。在节点编辑页面定义函数变量后,需进入调度配置中为变量赋值。本文示例为变量
bizdate
赋值为前一天,即在函数计算节点定时运行时间的前一天,DataWorks会调度运行该节点。更多调度参数的配置,详情请参见配置调度参数。节点的更多调度属性,详情请参见任务调度属性配置概述。
步骤三:提交并发布节点
函数计算节点需要提交发布至生产环境后,才会自动调度运行。
-
保存并提交节点。
单击工具栏中的
、
图标,保存并提交节点。提交节点时,请根据提示输入变更描述,并根据需要选择是否进行代码评审及冒烟测试。
说明
-
您需在调度配置中设置节点的重跑属性和依赖的上游节点,才可以提交节点。
-
开启代码评审后,开发人员提交的节点代码必须通过评审人员的审核才可发布,详情请参见代码评审。
-
为保障调度节点任务执行符合预期,建议您在发布前对任务进行冒烟测试,详情请参见冒烟测试。
-
-
可选:发布节点。
如果您使用的是标准模式的工作空间,提交成功后,需单击右上方的发布,发布节点。相关介绍请参见标准模式的工作空间、发布任务。
后续步骤
任务提交发布至生产运维中心调度后,您可通过DataWorks的运维中心进行相关运维操作,详情请参见运维中心。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/167351.html