您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
取消部署代管目標 Proxy
取消部署含有代管目標應用程式的 Edge Proxy 時,系統會取消部署相關聯的代管目標應用程式,但不會刪除基礎應用程式映像檔。如果您重新部署 Proxy,系統會重新部署代管目標應用程式。
刪除代管目標 Proxy
刪除代管目標 Proxy 後,基礎執行階段執行個體會在一定時間內停止運作。不過,應用程式的程式碼仍會保留。
存取記錄檔
記錄檔對於偵錯和疑難排解非常實用。您可以查看兩種代管目標部署的記錄檔:
- 建構記錄 - 顯示與部署和建構代管目標應用程式相關的輸出內容。
- 執行階段記錄:顯示與執行中代管目標應用程式相關的輸出內容。執行階段記錄的範圍僅限於環境,並顯示目前部署的 Proxy 修訂版本的記錄檔資訊。
從 Edge UI 存取記錄
- 前往:apigee.com/edge
- 輸入您的登入憑證,然後按一下「Sign In」。
- 在側邊導覽選單中依序選取「Develop」(開發) >「API Proxy」。
- 選取要查看記錄檔的 Proxy。
- 按一下「開發」分頁標籤。
- 如要查看建構記錄檔,請按一下「Build Logs」。
- 如要查看執行階段記錄,請按一下「Runtime Logs」。
使用 API 存取記錄
您也可以使用 Edge API 擷取代管目標記錄檔。詳情請參閱「取得快取 Node.js 記錄」一文。
使用私人 npm 存放區
本節說明如何在開發環境中使用私人 NPM 存放區時,將 Node.js Proxy 部署至託管的目標。
使用私人存放區的重要須知
將 Node.js 應用程式部署至 Edge 時,系統會在部署程序中,自動匯入專案的所有依附元件。基本上,代管目標會在部署後在您的程式碼上執行 npm install
。但如果您在開發環境中使用私人 NPM 存放區,則無法在 Cloud 中解析私人依附元件。在此情況下,解決方法是在使用部署公用程式 apigeetool 使用 --bundled-dependencies
選項。另請參閱「將系統中的 Node.js 從系統部署至 Edge」。
在 apigeetool
上使用 --bundled-dependencies
標記時,您的 Node.js 應用程式會上傳至代管目標,以及 package.json
中 bundledDependencies 陣列中列出的任何本機/私人檔案,都會與套件一起壓縮並上傳。
雖然這不是常見的情況,但請注意,如果在內部複製公開 NPM 存放區,如果您的部署項目組合包含指向私人鏡像的 .npmrc
或 package-lock.json
檔案,部署作業就會失敗。在此情況下,請務必在要部署的 Proxy 組合中省略 .npmrc
或 package-lock.json
。
使用私人 NPM 存放區進行部署
如要使用私人 NPM 存放區提供的模組,請按照下列步驟操作:
- 登入 npm:
npm login
- 取得 npm 驗證權杖:
- 找出您的 .npmrc (應該位於 ~/.npmrc)。
- 在 .npmrc 中,記下行末端的權杖,如下所示:
//registry.npmjs.org/:_authToken=****
- 或者,使用
npm token <list | create | revoke>
指令列出、建立或撤銷驗證權杖。詳情請參閱 npm-token 說明文件。 - 按照下文說明存取「鍵/值對應」設定頁面。
Edge
如何使用 Edge UI 存取鍵/值對應設定頁面:
- 登入 apigee.com/edge。
- 在左側導覽列中,依序選取「管理」>「環境」>「鍵/值對應」。
傳統邊緣 (Private Cloud)
如何使用傳統版 Edge UI 存取鍵/值對應設定頁面:
- 登入
http://ms-ip:9000
,其中 ms-ip 是管理伺服器節點的 IP 位址或 DNS 名稱。 - 在頂端的導覽列中,依序選取「API」>「環境設定」>「鍵/值對應」。
- 按一下「+ 鍵/值對應」。
- 在「New Key Value Map」對話方塊中輸入名稱,然後選取「Encrypted」。
- 按一下 [新增]。
- 將您先前找到或建立的驗證權杖新增為剛建立的每個 KVM 中的新項目。
- 在 app.yaml 檔案中,新增參照 KVM 和與 npm 驗證權杖相關聯的金鑰的項目。如下所示:
- 頂層 name 屬性對應至即將建立的環境變數名稱。
- valueRef 下方的 name 會對應至您先前建立的 KVM。
- key 屬性會對應至您新增至 KVM 的 npm 權杖的金鑰。
- 在與 package.json 相同的目錄中建立 .npmrc 檔案。這個檔案看起來會像這樣:
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
。如果您不使用registry.npmjs.org
,可以在 .npmrc 檔案中設定範圍,請新增類似以下的@myscope:registry=https://mycustomregistry.example.org
行@myscope:registry=https://mycustomregistry.example.org
。另請參閱 npmrc 說明文件。 - 使用內含的 .npmrc 檔案和 app.yaml 檔案上傳或更新 Node.js Proxy。
- 確認新的或更新的 Proxy 已部署項目,且可與所需的私人存放區模組搭配運作。
- 如果 Proxy 未部署,請查看建構記錄檔,確認其安裝私人 npm 模組是否失敗。若是如此:
- 在開發分頁中,確認 .npmrc 存在。
- 請確認您的權杖有效 (請嘗試在本機使用 kvm 中的權杖在本機安裝模組)。
- 如果您使用的是自訂範圍,請確認該範圍已設定完畢。
env: - name: NPM_TOKEN valueRef: name: npm_store key: private_token
在此情況下:
為隨附依附元件指定 NPM 版本
根據預設,NPM v4 是用來在代管目標環境中安裝套裝組合依附元件。不過,如果您想使用其他 NPM 版本,可以在 NPM_VERSION
環境變數中指定。您可以在應用程式的資訊清單檔案中設定這個變數。詳情請參閱「資訊清單檔案元素」。
如果您使用組合依附元件,而且未指定 NPM_VERSION
,代管目標會預設使用 NPM v4。如未使用套裝組合依附元件,系統會採用指定的 Node.js 執行階段中包含的 NPM 版本。
組合依附元件示例
如需示範隨附依附元件功能與代管目標的範例,請參閱如何使用自訂模組建立含有代管函式的 Node.js 應用程式。新增健康狀態檢查端點
您可以選擇為 Node.js 應用程式實作健康狀態檢查端點。Apigee 會在 Node.js 應用程式開始檢查應用程式是否正在容器中運作時使用這個端點。
根據預設,Apigee 預期的端點為 /health
。如要變更預設端點,請在名為 HOSTED_TARGET_HEALTH_CHECK_PATH
的環境變數中指定端點。您可以在應用程式的資訊清單檔案中設定這個變數。詳情請參閱「資訊清單檔案元素」。
您不一定要實作健康狀態檢查端點。不過,如果您確實實作健康狀態檢查端點,請注意以下事項:
- 如果 Apigee 到達端點時結束,應用程式就無法正常啟動。
- 如果端點傳回 404 Not Found HTTP 狀態,表示沒有問題。
/health
或HOSTED_TARGET_HEALTH_CHECK_PATH
僅用於檢查應用程式是否正在執行。因此會忽略實際回應。
變更 NPM 快取位置
較新版本的 Node.js 採用 NPM 版本,針對 NPM 快取使用 /root/.npm
。
這個位置對代管目標有問題,因為代管目標執行階段採用的 tmpfs 檔案系統,其中只有 /tmp
可以寫入。如要解決這個問題,您可以在應用程式 app.yaml
檔案 (資訊清單檔案) 中,將 npm_config_cache
環境變數設為 /tmp
內的目錄。例如:
runtime: node application: my-express-app env: - name: npm_config_cache value: /tmp/.npm - name: NODE_ENV value: production - name: LOG_LEVEL value: 3
不使用 NPM 執行應用程式
根據預設,代管目標會使用 npm start
執行代管目標應用程式。但在先前的工作中,我們討論過使用 NPM 時會發生的問題,因為新版本會嘗試使用 /root/.npm
進行 NPM 快取 (無法寫入),導致代管目標無法啟動。雖然先前的工作會解決這個問題,但另一個選項是在不使用 NPM 的情況下執行應用程式。方法是在應用程式的 app.yaml
檔案 (資訊清單檔案) 中使用 command
和 args
值,直接使用 node index.js
執行代管目標。例如:
runtime: node application: my-express-app command: node args: - index.js env: - name: NODE_ENV value: production - name: LOG_LEVEL value: 3當然,您可以使用任何合適的指令,而
node index.js
只是範例。