FME Server工程任务运维方案部署

时间:2024-03-26 21:55:00

 

众所周知,FME Server中工程任务的运行可以通过B/S端运行,也可以通过接口服务的方式被其他应用所调用。在实际应用中,通过B/S端运行工程任务,可以直接查看到相关的日志信息。但通过接口服务的方式调用,无法实时查看到相关的日志信息,从而无法“快速”“精准”的从日志中发现问题,不利于运维工作的开展。同时,对于管理单位而言,无法及时查看工程任务的使用情况。本文介绍如何在FME Server中部署工程任务运维方案,提升运维效率的同时为用户提供相应的统计数据。

首先,不管是通过FME Server的B/S端运行工程任务还是通过第三方应用调用接口服务方式运行工程任务,最终FME Server中的工程任务执行完成后都将在JOBS/COMPLETED选项卡下,在这里,只要没有被删除的任务,你都可以在这里找到。

FME Server工程任务运维方案部署

       在JOBS/COMPLETED选项卡下的任务列表中,记录着任务ID、工程名称、任务状态(成功/失败)、任务时间等信息。单击一个任务后即可进入任务详情信息,包含参数信息、日志信息。那么如何快速的将JOBS/COMPLETED选项卡下的任务列表进行汇总统计分析呢?

REST API服务

       FME Server REST API服务中提供了相应的服务。地址:http://<ip:port>/fmerest/apidoc/v3/,ip为FME Server的IP地址,port为FME Server的IP端口。如http://172.0.0.1:8008/fmerest/apidoc/v3/

FME Server工程任务运维方案部署

FME Server工程任务运维方案部署

通过API选项卡下的transformations 项目,可以找到获取JOBS/COMPLETED任务列表的接口。具体为:/transformations/jobs/completed      Retrieve all completed jobs

FME Server工程任务运维方案部署

页面中提供了接口参数的详细信息,我们可以通过该接口信息在FME中制作模板来调用。

令牌的获取

在调用REST API服务的时候,需要提供有效的令牌,否则无法正常调用。我们可以通过FME Server中获取令牌,具体如下:

FME Server工程任务运维方案部署

登陆FMEServer中,在页面右上方个人中心中选择“Manage Tokens”,新建一个Token,并填写token信息,如名称、描述、期限、权限等。

FME Server工程任务运维方案部署

REST API服务调用

我们可以通过FME Desktop来调用以上接口信息获取任务列表信息,在FME Workbench中可使用HTTPCaller 转换器来进行接口的调用,如下图:

FME Server工程任务运维方案部署

在转换器中“Request URL”填写接口地址,如:http://<ip>:<port>/fmerest/v3/transformations/jobs/completed根据提供的接口参数进行设置,其中主要有以下参数:

参数名称

参数示例

说明

completedState

空或Failed或success

如果指定,则仅返回指定完成状态的作业,否则返回所有完成的作业。如果为“成功”,则返回状态为“成功”的作业。如果为“失败”,则返回状态为“已暂停”,“ FME_FAILURE”或“ JOB_FAILURE”的作业

limit

默认为“-1”

指定要返回的最大结果数,这对于迭代结果分页很有用。如果指定,还必须指定“偏移”

offset

默认为“-1”

指定开始结果的偏移量,这对于迭代结果分页很有用。如果指定,则还必须指定“限制”

repository

TEST

如果指定,则仅返回指定在repository值TEST目录下的工程文件。

workspace

CAD_CHECK.fmw

指定工作空间,如果与存储库repository一起指定,则仅返回指定存储库和工作空间中的任务

将上表中的参数在HTTPCaller转换器中的Query String Parameters中进行设置,如下:

FME Server工程任务运维方案部署

将token信息作为HTTPCaller转换器中的Headers进行设置,具体如下图:

FME Server工程任务运维方案部署

解析结果

在调用了接口后,将返回结果存储在指定属性项中(本文以“_response_body”为例),如下:

FME Server工程任务运维方案部署

返回的结果通常为json格式,可通过JSONFlattener等转换器提取数据中有效内容。

FME Server工程任务运维方案部署

可以通过FMEServerLogFileRetriever转换器提取对应JobID对应的详细日志信息。

数据存储

数据提取完成后存储到指定格式中,如csv等。

FME Server工程任务运维方案部署

自动化运行

将制作好的工程文件上传到FME Server中,并在FME Server中进行自动化运行设置,确保运维工程文件定期执行。

FME Server工程任务运维方案部署

关于在FME Server中进行自动化运行的相关资料请参考博客“次世代:FME Server 2019中的企业级自动化”博客地址:https://blog.csdn.net/fmechina/article/details/88059605