您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
引言
本主題說明如何將 Node.js 應用程式新增至本機檔案系統的現有 Proxy,以及如何將 Proxy 部署至 Apigee Edge。
準備開發環境
在本主題中,我們假設您已在本機系統上設定 Proxy 開發環境,且想要將 Node.js 應用程式整合至該環境。
包含 Node.js 應用程式的 Proxy 應用程式基本結構如下圖所示,其中含有 /apiproxy、/apiproxy 和 /apiproxy 的子資料夾和子資料夾。/apiproxyapiproxy/resources/node 資料夾是必須放置 Node.js 檔案的位置。其他資料夾包含定義 Proxy 和目標端點、Proxy 流程、條件式流程等的 XML 檔案。如需 API Proxy 結構的完整說明,請參閱 API Proxy 設定參考資料。
請記住,屬於 Proxy 的任何 Node.js 程式碼都必須放在 /apiproxy/resources/node 底下。這是 Edge 在部署時可尋找的位置。
使用 ScriptTarget 指定 Node.js 目標
將 Node.js 整合至 Proxy 的金鑰是在目標端點的 XML 檔案中指定 <ScriptTarget> 元素。在 Proxy 檔案結構中,這個 XML 檔案位於 apiproxy/targets。根據預設,檔案名稱為 default.xml.。
針對情境,請考慮目標端點通常會指向某種類型的後端服務。在本範例中,我們成功達成 Apigee 模擬目標服務。目標端點定義如下所示:
<TargetEndpoint name="default"> <Description/> <Flows/> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net/</URL> </HTTPTargetConnection> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow> </TargetEndpoint>
<HTTPTargetConnection> 元素會指定後端服務的網址,也就是 Apigee 模擬目標服務。
然而,以 Node.js 來說,Node.js 應用程式 本身 是 目標。請在 apiproxy/targets/default.xml 檔案中使用 <ScriptTarget> 指定。
系統會使用 <ScriptTarget> 元素直接參照 Node.js 應用程式,而不是使用 <HTTPTargetConnection> 元素指定後端服務的網址,如下所示:
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://server.js</ResourceURL> </ScriptTarget> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> </TargetEndpoint>
<ResourceURL> 參數一律必須加上 node://
前置字串,後接主要 Node.js 指令碼名稱。如前所述,Node.js 資源必須位於 API Proxy 範圍的 /apiproxy/resources/node
中。
您可以在 ScriptTarget 中設定其他參數。詳情請參閱「 進階 ScriptTarget 設定」。
以這個範例來說,以下是 Node.js 主要檔案 (名為 server.js) 的原始碼。這就是基本 HTTP 伺服器,會在收到要求時傳回「Hello World!」:
var http = require('http'); console.log('node.js application starting...'); var svr = http.createServer(function(req, resp) { resp.end('Hello, Node!'); }); svr.listen(process.env.PORT || 9000, function() { console.log('Node HTTP server is listening'); });
總結來說,假設 main Node.js 應用程式是在名為 server.js
的檔案中實作,且端點設定的名稱皆為 default.xml
,則包含 Node.js 指令碼的 API Proxy 具有下列結構:
/apiproxy/proxyName.xml /apiproxy/proxies/default.xml /apiproxy/targets/default.xml /apiproxy/resources/node/server.js
準備部署應用程式
大多數 Node.js 應用程式都有依附元件檔案,並在基本目錄中包含 package.json 檔案。在這種情況下,最佳做法是執行 npm 公用程式,以便在部署之前填入頂層 node_modules 目錄。如有任何遠端依附元件未包含在 node_modules 中,您的 Node.js 應用程式無法在 Edge 上執行。
您可以使用 npm 公用程式,輕鬆將所有依附元件擷取到檔案系統中:
- 從 Node.js 應用程式的基本目錄執行:
$ npm install
或
$ npm update
安裝依附元件後,即可將 Proxy 部署至 Edge。
將 Node.js 應用程式部署至 Apigee Edge
部署前,您需要知道 Apigee Edge 帳戶的機構名稱、使用者名稱和密碼。您需要這項資訊才能正確建構部署工具指令。
指令本文會假設您位於 Proxy 的根目錄 (具有 -d 標記)。如果 Proxy 名稱為 foo,請從 foo 目錄輸入以下指令:
$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .如要瞭解每個指令旗標的意義,請執行下列步驟:
$ apigeetool deployproxy -h
快速摘要:
- -n 這個標記可讓您指定在部署應用程式時建立的 Proxy 名稱。這個名稱會顯示在管理 UI 中。
- -d 指定 API Proxy 的根目錄。
- -o、-e、-u 和 -p 可指定機構名稱、部署環境、使用者名稱和密碼。
測試新的 API Proxy
您已成功將 Node.js 應用程式新增至現有的 API Proxy,並將 Proxy 部署至 Apigee Edge!如要進行測試,請執行以下 cURL 指令。我們假設使用的是預設基本路徑 (/)。這個基礎路徑是在 Proxy 端點設定檔中指定。請務必將 org_name 以貴機構名稱取代。如果沒有安裝 cURL,可以在瀏覽器中輸入網址。
$ curl http://org_name-test.apigee.net/
Hello, Node!
在管理使用者介面中查看新 Proxy
登入您的 Apigee Edge 帳戶,然後前往「API Proxy」頁面。其中會列出名為「hellonode」的 Proxy。
按一下「hellonode」即可查看 Proxy 的詳細資料。在「開發」檢視畫面中,您可以查看已上傳的原始碼、新增政策、編輯流程等。
後續步驟
如要瞭解如何對在 Apigee Edge 上執行的 Node.js 應用程式進行偵錯,請參閱對 Node.js Proxy 進行偵錯和疑難排解。