日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle adf_Fn函数来构建Oracle ADF应用程序

發布時間:2023/12/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle adf_Fn函数来构建Oracle ADF应用程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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应用程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。