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

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

本主題說明如何從本機系統將 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 網址呼叫應用程式,並使用 OAuth 安全性、配額政策、威脅防護政策、條件流程、快取等標準 Edge 功能「裝飾」應用程式,為其加值。

apigeetool 的用途為何?

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

  • 產生 API Proxy 設定套件,用於存放 Node.js 應用程式。
  • 將 Node.js 應用程式與透過 NPM (Node Packaged Modules) 安裝的任何 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 選項會將模組放在 *nix 型電腦的 /usr/local/lib/node_modules/apigeetool 中。

從 GitHub 安裝

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

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

安裝完成後,請確認 apigeetool 可執行檔位於路徑中。如要測試,請輸入:

$ 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 Proxies」頁面。您會看到新 Proxy 列於該處。

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

如果 Node.js 應用程式依附於已安裝的模組,apigeetool 會將 node_modules 資料夾壓縮成 ZIP 檔案,並新增至 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 Proxy,另一種方式是在建立 Proxy 時新增應用程式。您完全可以透過管理 UI 和「New API Proxy」(新增 API Proxy) 對話方塊完成這項作業。

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


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

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

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

透過使用者介面新增 Node.js 檔案

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

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

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

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

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

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

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

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

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

叫用匯入的 Node.js 檔案

您無法直接叫用新匯入或建立的 Node.js 檔案。這是因為 Edge 規定必須有一個 Node.js 檔案做為主要檔案。主要檔案會在目標端點定義的 <ScriptTarget> 元素中指定。如要指定哪個檔案是主要的 Node.js 檔案,請按照下列步驟操作:

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

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

  1. 在「Navigator」的「Proxy Endpoints」下方,按一下 Proxy 端點的名稱 (通常稱為「default」)。
  2. 在程式碼編輯器中,編輯 <HttpProxyConnection> 元素,將 <BasePath> 變更為您想要的名稱。舉例來說,如果目前的 <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 匯出回系統,在系統中處理 Proxy,然後使用管理 UI 重新匯入 Edge。這種往返開發技術相當常見。

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

如要將 Proxy 套件匯回 Edge,請從相同選單選取「Import Into New Revision」(匯入新修訂版本)

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

後續步驟

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