oracle adf

在我之前的一篇文章中,我描述了如何创建一个Docker容器作为ADF应用程序的构建器。 在这里,我将展示如何将此容器用作
在FN平台的功能

首先,让我们更新容器,使其符合功能要求,这意味着可以将其作为接受某些参数的可运行二进制文件进行调用。 在一个空文件夹中,我创建了一个具有以下内容的Dockerfile(只是一个具有此名称的简单文本文件):

FROM efedorenko/adfbuilder
ENTRYPOINT ["xargs","mvn","package","-DoracleHome=/opt/Oracle_Home","-f"]

该文件包含有关Docker的说明,说明如何从现有映像中创建新的Docker映像(上一篇文章中的efedorenko / adfbuilder),并指定一个入口点,以便容器知道由Docker 运行启动后该怎么做。命令。 在这种情况下,每当我们运行一个容器时,该容器都会为pom文件执行从stdin提取的名称的Maven 软件包目标。 这很重要,因为Fn平台将stdin / stdout用于函数输入/输出作为标准方法。

在同一文件夹中,我们执行命令以从我们的Docker文件中构建一个新的Docker映像(fn_adfbuilder):

docker build -t efedorenko/fn_adfbuilder.

现在,如果我们运行容器通过stdin传递pom文件名,如下所示:

echo -n "/opt/MySampleApp/pom.xml" | docker run -i --rm efedorenko/fn_adfbuilder

容器将在其内部执行我们实际需要的内容:

mvn package -DoracleHome=/opt/Oracle_Home -f/opt/MySampleApp/pom.xml

基本上,这样做之后,我们得到了一个充当函数的容器。 它为给定的pom文件构建一个应用程序。

让我们在Fn平台中使用此功能。 在本地计算机上安装Fn就像调用单个命令一样简单,并在GitHub Fn项目页面上进行了介绍。 安装完Fn之后,我们可以指定Docker注册表,在其中存储函数容器的映像并启动Fn服务器:

export FN_REGISTRY=efedorenko
fn start

下一步是创建一个Fn应用程序,它将使用我们的强大功能:

fn apps create adfbuilderapp

对于这个新创建的应用程序,我们必须指定一个指向函数约束器的路由,以便该应用程序知道何时以及如何调用它:

fn routes create --memory 1024 --timeout 3600 --type async adfbuilderapp /build efedorenko/fn_adfbuilder:latest

我们创建了一条路线,说每当adfbuilderapp请求/ build资源时,Fn平台应基于efedorenko存储库中最新版本的fn_adfbuilder映像创建一个新的Docker容器,并运行它以提供1GB内存并将参数传递给stdin (默认模式)。
  此外,由于建筑是一项耗时/耗资源的工作,因此我们将以一个小时超时的异步模式调用该函数。 创建路由后,我们可以使用Fn Cli调用该函数:

echo -n "/opt/MySampleApp/pom.xml" | fn call adfbuilderapp /buildor over http:curl -d "/opt/MySampleApp/pom.xml" http://localhost:8080/r/adfbuilderapp/build

在这两种情况下,平台都会将呼叫放入队列(因为它是异步的)并返回呼叫ID:

{"call_id":"01C5EJSJC847WK400000000000"}

该功能现在正在运行,我们可以通过多种不同方式检查它的运行情况。 由于函数调用只是创建和运行Docker容器,因此我们可以通过获取所有正在运行的容器的列表来查看它:

docker psCONTAINER ID        IMAGE                               CREATED             STATUS                NAMES6e69a067b714        efedorenko/fn_adfbuilder:latest     3 seconds ago       Up 2 seconds          01C5EJSJC847WK400000000000e957cc54b638        fnproject/ui                        21 hours ago        Up 21 hours           clever_turing68940f3f0136        fnproject/fnserver                  27 hours ago        Up 27 hours           fnserver

Fn创建了一个新容器,并使用函数调用ID作为其名称。 我们可以将stdin / stdout附加到容器上,看看里面发生了什么:

docker attach 01C5EJSJC847WK400000000000

函数执行后,我们可以使用Fn Rest API(或Fn Cli)来请求有关调用的信息:

http://localhost:8080/v1/apps/adfbuilderapp/calls/01C5EJSJC847WK400000000000{"message":"Successfully loaded call","call":{"id":"01C5EJSJC847WK400000000000","status":"success","app_name":"adfbuilderapp","path":"/build","completed_at":"2018-02-03T19:52:33.204Z","created_at":"2018-02-03T19:46:56.071Z","started_at":"2018-02-03T19:46:57.050Z","stats":[{"timestamp":"2018-02-03T19:46:58.189Z","metrics":

……

http://localhost:8080/v1/apps/adfbuilderapp/calls/01C5EJSJC847WK400000000000/log
{"message":"Successfully loaded log","log":{"call_id":"01C5EKA5Y747WK600000000000","log":"[INFO] Scanning for projects...\n[INFO] ------------------------------------------------------------------------\n[INFO] Reactor Build Order:\n[INFO] \n[INFO] Model\n[INFO] ViewController\n[INFO]

我们还可以使用Fn UI仪表板以一种精美的方式监视函数调用:

我们工作的结果是构建ADF应用程序的功能。 它的优点在于,函数的使用者(调用者)仅使用基于HTTP的Rest API来构建应用程序,而调用者并不关心如何以及在何处完成此工作。 但是调用者可以肯定地知道,计算资源的使用时间不会超过完成工作所需的时间。

下次,我们将尝试在Fn Flow中协调功能。

而已!

翻译自: https://www.javacodegeeks.com/2018/02/fn-function-build-oracle-adf-application.html

oracle adf

oracle adf_Fn函数来构建Oracle ADF应用程序相关推荐

  1. oracle中文转换为unicode,oracle 用函数unistr将Oracle数据库中的Unicode转换为中文

    用函数unistr将Oracle数据库中的Unicode转换为中文 1:保留连续的中文 select regexp_substr('Hello,大家好!greeting', '[' || unistr ...

  2. Fn函数来构建Oracle ADF应用程序

    在我以前的一篇文章中,我描述了如何创建一个Docker容器作为ADF应用程序的构建器. 在这里,我将展示如何将此容器用作 在FN平台的功能 . 首先,让我们更新容器,使其符合功能要求,这意味着可以将其 ...

  3. oracle自定义函数获取省份,oracle 自定义函数 方法 基本例子

    核心提示:函数用于返回特定数据.执行时得找一个变量接收函数的返回值; 语法如下: create or replace function function_name ( argu1 [mode1] da ...

  4. docker构建oracle集群,docker 构建 oracle数据库 镜像-Go语言中文社区

    前言 之前docker 部署的 oracle 镜像,突然从 dockerhub 下架了.所以没办法,只能自己打包一个oracle 数据库的镜像. 找来找去,其实oracle 自身就提供了oracle ...

  5. oracle in函数的使用,oracle in 函数

    IN操作符 select * from scott.emp where empno=7369 or empno=7566 or empno=7788 or empno=9999: select * f ...

  6. oracle decode函数什么意思,oracle decode函数的用法

    oracle decode函数,不管查询的结果是否满足'PRIMARY',参数中的select语句还是会执行的,通过查看执行计划就知道 set autotrace traceonly select d ...

  7. oracle instr函数用法和(oracle 用instr 来代替 like)

    最近项目中出现oracle instr函数,于是在网上找了一下关于它的资料. Oracle中INSTR和SUBSTR的用法 Oracle中INSTR的用法: INSTR方法的格式为 INSTR(源字符 ...

  8. oracle开窗函数是什么,ORACLE数据库(六)-----开窗函数

    ORACLE数据库(六)-----开窗函数 开窗函数又名分析函数.窗口函数.OLAP(数据分析)函数 聚合函数:将数据按照一定的规则分组,统一分析各组的某项情况,每个分组返回一行结果 开窗函数:将数据 ...

  9. oracle sum函数返回类型,Oracle / PLSQL SUM函数

    这个Oracle教程解释了如何使用Oracle / PLSQL SUM函数. SUM(x) 添加x中的所有值,并返回总和. SUM函数对一组行进行操作,并返回一行输出. Null值被SUM函数忽略.您 ...

最新文章

  1. 使用canvas操作图像
  2. X5本地应用打包服务器环境搭建
  3. java标识符遵循规范
  4. 三维数据平滑处理_你该如何正确的处理思看科技三维扫描仪得到的数据?
  5. fraction函数的分数处理
  6. 快速入门人工智能的秘诀,都在这里了!
  7. The type sun.management.ManagementFactory is not visible
  8. java web 分页技术_javaweb分页的后端实现
  9. Cookie Theft and Session Hijacking
  10. paip.检测信用卡账单数据的正确性算法
  11. 过VMP加壳程序的自效验
  12. 概率论简明教程_Chapter-02_最大似然估计
  13. stata14中文乱码问题
  14. 龙达pm3 proxmark3各个版本
  15. linux加密狗复制克隆教程,圣天狗SentinelDog
  16. 网络广告CPC、CPM和CTR的定义和关系
  17. html中em使用例子,HTML DOM Emphasized用法及代码示例
  18. 基于Java+SpringBoot+微信小程序实现奶茶点单系统
  19. 数据帮助企业决策案例_大数据可以如何帮助您的企业
  20. 动态规划之最优配对问题

热门文章

  1. P3850-[TJOI2007]书架【Splay】
  2. codeforces1471 D. Strange Definition
  3. AtCoder Beginner Contest 175总结
  4. 洛谷P1169 树上分组背包
  5. 2017西安交大ACM小学期数据结构 [树状数组]
  6. Sentinel(二十二)之使用Nacos存储规则
  7. 如何快速开发一个 Dubbo 应用
  8. MySQL instr()函数
  9. Oracle入门(十四.2)之PL / SQL的好处
  10. JAVA面试常考系列十一