部署獨立的 Node.js 應用程式

您正在查看 Apigee Edge 說明文件。
參閱 Apigee X說明文件
資訊

本主題說明如何將 Node.js 應用程式從本機系統部署至 Apigee Edge。在本主題中,我們將討論如何使用名為 apigeetool 的指令列工具,將 Node.js 應用程式部署至 Apigee Edge。

關於將 Node.js 程式碼部署至 Apigee Edge

您可以使用名為 apigeetool 的指令列公用程式,將本機系統中的現有 Node.js API 應用程式 (包括任何相依的 Node.js 模組) 部署至 Apigee Edge。公用程式會自動將應用程式及其依附元件封裝到 API Proxy,並在 Edge 上部署。

舉例來說,假設您使用 Express 在 Node.js 中建立網頁應用程式,應用程式會以 HTTP 伺服器的形式執行,負責監聽 HTTP 要求、處理這些要求、傳回資料等等。當您使用 apigeetool 將 Node.js 應用程式部署至 Edge 時,該應用程式會納入 Proxy,並在 Edge 平台的背景中執行。接著,您可以透過新的 Proxy URL 呼叫應用程式,並透過 OAuth 安全性、配額政策、威脅防護政策、條件式流程、快取等標準 Edge 功能「妝點」應用程式,為其增添價值。

Apigeetool 的用途為何?

使用 deploynodeapp 選項執行 apigeetool 公用程式時,會發生以下情況:

  • 產生 API Proxy 設定套件,用於容納 Node.js 應用程式。
  • 使用透過 NPM (Node 封裝模組) 安裝的任何 Node.js 套件,為 Node.js 應用程式製作套件。
  • 使用 Edge 管理 API,將 API Proxy 設定套件匯入 Apigee Edge 上的指定機構。
  • 將 API Proxy 部署至環境。
  • 在 Apigee Edge 上執行 Node.js 應用程式,並透過網路提供該應用程式。

準備使用 apigeetool

開始之前,您必須先安裝 apigeetool 公用程式。

您可以透過 npm 安裝 Apigeetool,或是從 GitHub 複製程式碼並連結。

從 npm 安裝

apigeetool 模組及其依附元件專為 Node.js 設計,可透過 npm 使用下列指令:

$ sudo npm install -g apigeetool

一般來說,-g 選項會將模組放入以下位置: /usr/local/lib/node_modules/apigeetool 在以 *nix 為基礎的電腦上。

從 GitHub 安裝

從 GitHub 下載或複製 API 平台工具。如需安裝操作說明,請參閱存放區根目錄中的 README 檔案。

$ git clone https://github.com/apigee/apigeetool-node.git

安裝完成後,請確認 apigeetool 可執行檔位於 Path 中。您可以輸入以下內容進行測試:

$ apigeetool -h

使用 apigeetool 將 Node.js 應用程式部署至 Edge

注意:在部署前,您必須知道 Apigee Edge 機構名稱、使用者名稱和 Apigee Edge 帳戶的密碼。您需要這些資訊才能正確建立 apigeetool 指令。

如要使用 apigeetool 部署 Node.js 應用程式,請按照下列步驟操作:

  1. 在終端機視窗中,cd Node.js 應用程式的根目錄。
  2. 使用 deploynodeapp 指令執行 apigeetool 公用程式:

    $ apigeetool deploynodeapp -n {A name for your new proxy} -d {The root directory of your Node.js app} -m {The name of the main Node.js file} -o {Your org name on Edge} -e {The environment to deploy to} -b {The base URL for your proxy} -u {Your Edge email address} -p {Your Edge password}
    
    例如:

    $ apigeetool deploynodeapp -n myNodeApp -d . -m server.js -o myorg -e test -b /myNodeApp -u ntesla -p myPassword
    
  3. 請在終端機視窗中查看輸出內容。如下所示:

    Importing new application myNodeApp
    Imported new app revision 1
    Deploying revision 1
      Deployed.
    Proxy: "myNodeApp" Revision 1
      Environment: test BasePath: /myNodeApp
      Status: deployed
    

    如果看到「狀態:已部署」,表示已完成。一切都很順利。您的 Node.js 應用程式已包裝在 API Proxy 中並部署至 Edge,且正在執行並等待處理要求。即可進行測試。

  4. 測試 Proxy。例如:

    $ curl http://myorg-test.apigee.net/myNodeApp
    Hello, My Node App!
    
  5. 如有需要,請登入 Apigee Edge 帳戶,然後前往管理 UI 的 API Proxy 頁面。您會在其中看到新的 Proxy。

apigeetool 如何處理依附檔案和模組

如果 Node.js 應用程式依附於已安裝的模組,apigeetool 會透過壓縮 node_modules 資料夾並將其新增至 Proxy 套件來處理這些模組。您不必採取其他行動。對於包含額外原始碼的任何目錄也是如此。apigeetool 公用程式會將這些檔案壓縮成 ZIP 檔案,並與套件一併部署。

您無法在 Edge 管理介面編輯器中編輯這些壓縮目錄中的檔案。如果需要變更這些設定,您可以匯出專案、在本機編輯檔案,然後使用 apigeetool 重新部署,或使用管理 UI 匯入已匯出的專案。另請參閱「使用 Node.js 程式碼匯出及匯入 Proxy」。

apigeetool 的基本使用資訊

如要瞭解 apigeetool 公用程式的輸入參數基本用法資訊,請輸入:

$ apigeetool deploynodeapp -h

  Usage: deploynodeapp -n [name] -o [organization] -e [environment]
  -d [directory name] -m [main script file]
  -u [username] -p [password]
  -b [base path] -l [apigee API url] -z [zip file] -i -h
  -o Apigee organization name
  -e Apigee environment name
  -n Apigee proxy name
  -d Apigee proxy directory
  -m Main script name: Should be at the top level of the directory
  -u Apigee user name
  -p Apigee password
  -b Base path (optional, defaults to /)
  -L Apigee API URL (optional, defaults to https://api.enterprise.apigee.com)
  -z ZIP file to save (optional for debugging)
  -i import only, do not deploy
  -R Resolve Node.js modules on Apigee Edge. Equivalent to running npm install on your project. 
  -U Uploads Node.js modules to Apigee Edge. 
  -h Print this message

使用現有的 Node.js 檔案建立新的 Proxy

將現有的 Node.js 應用程式整合至 API 代理程式的另一種方法,是在建立代理程式時新增應用程式。您可以完全透過管理使用者介面和「New API Proxy」對話方塊完成這項操作。

  1. 在 API Proxy 摘要頁面中,按一下「+API Proxy」
  2. 在「New API Proxy」對話方塊中,選取「Existing Node.js」
  3. 使用「Choose Files」按鈕選取要匯入的一或多個 Node.js 檔案。
  4. 為 Proxy 命名。在本範例中,我們將其稱為 hellonode
  5. 將版本 /v1 新增至專案基礎路徑。為 API 建立版本是最佳做法。
  6. 按一下「Build」
  7. 按一下「Develop」進入 Develop 檢視畫面。
  8. 在程式碼編輯器中開啟 TargetEndpoint 檔案。
  9. 請確認 <ScriptTarget> 元素指定了主要的 Node.js 檔案,如下所示:


    <ScriptTarget>
            <ResourceURL>node://server.js</ResourceURL>
            <Properties/>
    </ScriptTarget>
    
  10. 按一下 [儲存]

新增及叫用新的 Node.js 資源檔案

將 Node.js 程式碼新增至 Proxy 的另一種方式,是直接透過 UI 或從本機檔案系統上傳 Node.js 程式碼。您也可以指定哪個 Node.js 檔案為主要檔案,也就是 Edge 在部署 Proxy 時會叫用的檔案。

透過 UI 新增 Node.js 檔案

管理 UI 可讓您將其他 Node.js 來源檔案新增至 Edge 平台上的 Proxy。您可以直接在 UI 中建立快訊,或是從檔案系統匯入這些項目。首先,我們來看看如何透過使用者介面執行這項操作。

如要建立新的 Node.js 資源檔案,請按照下列步驟操作:

  1. 在「開發」檢視畫面中,從「新增」選單中選取「新指令碼」
  2. 在「新增指令碼」對話方塊中,選取檔案類型為「Node」,並為指令碼命名。
  3. 按一下「Add」(新增)

編輯器會開啟新的空白 Node.js 檔案。您可以將程式碼剪下並貼到檔案中。檔案也會顯示在導覽器的「指令碼」部分。

[[{"type":"media","view_mode":"media_large","fid":"2431","attributes":{"alt":"","class":"media-image","height":"312","typeof":"foaf:Image","width":"417"}]]

從檔案系統匯入 Node.js 檔案

如要從檔案系統import Node.js 檔案至 Proxy,請按照下列步驟操作:

  1. 在「開發」檢視畫面中,從「新增」選單中選取「新指令碼」
  2. 在「Add Script」對話方塊中,按一下「Import Script」
  3. 使用檔案工具選取 Node.js 檔案。
  4. 檔案名稱會加入對話方塊,但您可以視需要變更。
  5. 按一下「Add」(新增)。檔案會顯示在導覽器的「指令碼」部分,並在編輯器中開啟。
  6. 按一下 [儲存]

如要叫用匯入的檔案,您必須執行額外步驟,詳情請參閱下一個章節。

叫用匯入的 Node.js 檔案

您無法直接叫用新匯入或建立的 Node.js 檔案。原因是 Edge 要求一個 Node.js 檔案為 main 檔案。主要檔案是在目標端點定義的 <ScriptTarget> 元素中指定。如要指定主要 Node.js 檔案,請執行下列步驟:

  1. 在導覽器的「目標端點」下方,按一下目標端點的名稱 (通常稱為「預設」)。
  2. 在程式碼編輯器中,變更 <ResourceURL> 的 <ScriptTarget> 元素,以反映您要用於主要 Node.js 檔案的檔案名稱。舉例來說,如果您希望名為 hello-world.js 的檔案為主要檔案,請在 ResourceURL 元素中輸入 node://hello-world.js
  3. 按一下 [儲存]

此時,您可以使用先前使用的任何 Proxy 路徑叫用檔案。例如,我們查看了 Hello World! 範例,其中基本路徑 v1/hello 已指定在這裡。不過,只要編輯 Proxy 端點,即可變更基本路徑。

  1. 在導覽器的「Proxy Endpoints」(Proxy 端點) 下方,按一下 Proxy 端點的名稱 (通常稱為「default」)。
  2. 在程式碼編輯器中,將 <BasePath> 變更為您想要的名稱,即可編輯 <HttpProxyConnection> 元素。舉例來說,如果目前的 <BasePath> 是 v1/hello,而您希望改為 v1/my-node-file,請將 <BasePath> 元素變更為以下格式:

    <BasePath>/v1/my-node-file</BasePath>
  3. 按一下 [儲存]
  4. 使用新的基本路徑叫用 Proxy,如下所示:

    $ curl http://myorg-test.apigee.net/v1/my-node-file
    Hello, World!
    

使用 Node.js 程式碼匯出及匯入 Proxy

將包含 Node.js 程式碼的 Proxy 部署至 Edge 後,您隨時可以將 Proxy 匯出至系統,在該系統中進行處理,然後使用管理 UI 將 Proxy 重新匯入 Edge。這種來回開發技術常用。

  1. 在 API Proxy 摘要頁面中,按一下「開發」
  2. 在「開發」頁面中,選取「下載目前的修訂版本」
  3. 將下載的檔案解壓縮到系統。

只要在同一個選單中選取「Import In to New Revision」,即可將 Proxy 組合匯入回 Edge。

您也可以使用 API 部署 Proxy。詳情請參閱「透過指令列部署 Proxy」。

後續步驟

在下一節「將 Node.js 新增至現有的 API Proxy」,我們將說明如何將 Node.js 應用程式新增至檔案系統中的現有 Proxy,並將其部署至 Edge。