部署獨立的 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 網址呼叫應用程式,並使用標準 Edge 功能 (例如 OAuth 安全性、配額政策、威脅防護政策、條件流程、快取等) 為您的應用程式增添價值。

apigeetool 的作用為何?

搭配 deploynodeapp 選項執行 apigeetool 公用程式時,:

  • 產生 API Proxy 設定套裝組合,用於存放 Node.js 應用程式。
  • 搭配安裝 NPM (Node Packaged 模組) 安裝的任何 Node.js 套件的 Node.js 應用程式。
  • 使用 Edge Management API,將 API Proxy 設定組合匯入 Apigee Edge 中的指定機構。
  • 將 API Proxy 部署至環境。
  • 這個外掛程式能在 Apigee Edge 上執行 Node.js 應用程式,並透過網路提供應用程式。

準備使用 apigeetool

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

您可以透過 npm 安裝 apigeetool,或從 GitHub 複製及連結程式碼來安裝 apigeetool。

從 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 Proxy」頁面。即可看到新的 Proxy。

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

如果您的 Node.js 應用程式依附於已安裝模組,apigeetool 會壓縮 node_modules 資料夾並將其新增至 Proxy 套件以處理這些模組。您無須採取其他動作。如果目錄包含其他原始碼,情況也是一樣。Apigee 工具公用程式會將這些套件壓縮處理,與套裝組合一起部署。

無法透過 Edge 管理 UI 的編輯器編輯這些壓縮的目錄中的檔案。如果需要更改,您可以匯出專案,在本機編輯檔案,然後使用 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 和「新增 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 檔案是主要檔案,也就是部署 Proxy 時叫用的檔案 Edge。

透過 UI 新增 Node.js 檔案

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

如要建立新的 Node.js 資源檔案:

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

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

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

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

如何將 Node.js 檔案從檔案系統import至 Proxy:

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

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

叫用匯入的 Node.js 檔案

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

  1. 在「導覽器」中的「目標端點」下方,按一下目標端點的名稱 (通常稱為「預設」)。
  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. 在程式碼編輯器中,將 <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 摘要頁面中,按一下「Develop」(開發)
  2. 在「開發」頁面中,選取「下載目前的修訂版本」
  3. 將下載的檔案解壓縮到系統中。

您可以在相同選單中選取「Import In to New Revision」,將 Proxy 組合匯回 Edge。

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

後續步驟

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