查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
環境變數限制
代管目標對環境變數的大小和數量設有限制 可以在 Hosted Targets 執行階段環境中設定。
- 1000:單一環境變數的長度上限。
- 100:可設定的環境變數數量上限。
如要瞭解如何設定環境變數,請參閱 資訊清單檔案。
在應用程式執行階段中設定的環境變數
部署託管目標應用程式時,系統會設定下列環境變數, 你的應用程式可以使用:
APIGEE_ENVIRONMENT
:部署託管目標 Proxy 的環境。APIGEE_ORGANIZATION
:部署代管目標 Proxy 的機構。PORT
- 代管目標應用程式必須監聽的通訊埠。
系統資源分配
每個託管目標執行個體都會收到下列資源:
- 256 MB 記憶體
- 1.2 GHz CPU
資源調度
本節說明代管目標應用程式如何根據邊緣帳戶類型調度資源 。- Apigee Edge 試用版本限制為每個 Proxy 一個託管目標執行個體。
- 付費的 Apigee Edge 帳戶會自動按照要求比率、回應延遲時間調度資源
以及每個 Proxy 的其他應用程式指標
- 如果應用程式部署至 Apigee Edge 付費和試用版本,託管目標應用程式會在閒置期間將資源調度降至零。 因此,你可能會在短時間內發現回應速度較慢。其他參考資訊 已知問題
資訊清單檔案
為了收集用來建構及部署託管應用程式的執行階段資訊,Edge 會尋找 resources/managed 目錄中名為 app.yaml 的資訊清單檔案 此檔案包含建構及部署代管目標應用程式所需的資訊。
資訊清單檔案語法
runtime: node runtimeVersion: version_number command: command_name args: argument_array env: - name: variable_name value: literal_value - name: variable_name valueRef: name: kvm_name key: kvm_value
資訊清單檔案元素
app.yaml 資訊清單檔案包含下列元素:
- runtime - (必要) 指定您要部署的應用程式類型。
您必須指定
node
。 - runtimeVersion - (選填) 用於測試的執行階段版本。 應用程式所使用的容器預設:Node.js LTS (v10.x)。參閱適用於節點的 Docker 官方存放區 一文。
- command - (選用):可讓您指定要執行的指令,而不是執行
用於啟動應用程式的預設指令預設:
Node.js=npm
- args - (選填) 要傳遞至該函式的指令列引數陣列
應用程式 (以標準 YAML 陣列語法指定)。通常,這些指令會新增至預設指令。
預設值為 start。舉例來說,Node.js 應用程式預設會將
npm start
。 - env - (選用) 環境變數陣列 (名稱/值組合) 要在代管目標執行階段環境中設定。這些變數可用於 託管的 Hosted Targets 應用程式
- name - 變數名稱。
- 值 |valueRef - 共有兩種選項。您可以設定常值
或參照儲存在鍵/值對應中的值。「鍵/值對應」必須
必須已存在於 Edge 環境中請參閱「使用鍵/值對應」一文。
- 如果您使用「value」,則必須
請指定變數
name
和常值value
。例如:runtime: node env: - name: NODE_ENV value: production
- 如果您使用的是 valueRef,
接著,您必須提供先前在 Edge 中建立的鍵/值對應 (KVM) 名稱和鍵。
例如:
敬上runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
- 如果您使用「value」,則必須
請指定變數
- apigeetool:指令列 來部署 Edge Proxy
- get_token - 用來取得 apigeetool 所需授權權杖的指令列工具。
- 透過瀏覽器前往 https://github.com/apigee/api-platform-samples。
- 按一下「Clone or download」(複製或下載),然後使用 您偏好的方法。
- 將 cd 變更為 <your install dir>/api-platform-samples/doc-samples/Hosted-targets
- 存放區下載完畢後,便可執行 cd 至任何範例目錄,並遵循以下指示: README 操作說明,將範例 Proxy 部署至 Edge。部署指令如下所示。Simply 將指定的參數替換成您的 Apigee 帳戶參數:
- 網路延遲 - Node.js 應用程式現在已停止執行 ,現在 MP 和部署作業之間都有網路躍點。當然 這麼做將會耗費成本,但初始基準測試結果顯示,在合理的範圍內
- API 回應速度緩慢:執行應用程式的基礎架構 來視需求自動調度資源這表示應用程式可以實際縮減資源 如果是這種情況,下一個 API 要求的時間可能會超過 一般 API 要求,因為基礎架構正在啟動執行個體,以便處理 請求。
- 部署作業錯誤 - 如果您在部署 託管目標 Proxy,請嘗試重新部署 Proxy。在某些情況下,部署作業可能會逾時 如果您重新部署,問題本身就會解決。
資訊清單檔案範例
本節包含 Node.js 的資訊清單檔案範例
應用程式。必須提供資訊清單檔案才能部署代管目標應用程式,且必須位於
位於 apiproxy/resources/hosted
目錄中,而且檔案名稱必須為 app.yaml
。
以下是 Node.js 應用程式的 app.yaml
(資訊清單) 檔案範例。
指定常值環境變數的範例:
runtime: node
env:
- name: NODE_ENV
value: production
其中包含啟動指令、指令列引數和環境變數的範例。
runtime: node
command: ./node_modules/pm2/bin/pm2
env:
- name: NODE_ENV
value: production
args:
- app.js
指定鍵/值對應 (KVM) 參照的範例:
如要進一步瞭解 KVM 存取權,請參閱資訊清單檔案。
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
GitHub 上的託管目標應用程式範例
Apigee 提供 GitHub 上的 Proxy 範例,其中有以 Hosted Targets 編寫的應用程式 。您可以複製這個存放區,並按照 README 操作說明進行以下操作: 部署任何 Proxy
必要條件
若要部署範例,您必須在系統上安裝兩個工具:
若要在本機測試範例,您也必須安裝 Node.js。
取得範例存放區
get_token && apigeetool deployproxy \ -o YOUR_ORGANIZATION \ -e YOUR_ENVIRONMENT \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api NAME_OF_THE_PROXY \ --directory .
範例:執行範例應用程式
複製範例存放區
cd ~/myhome
git clone https://github.com/apigee/api-platform-samples.git
cd ~/myhome/api-platform-samples/doc-samples/hosted-targets
cd node-hosted-hello
在本機測試應用程式
您必須先安裝 Node.js,才能執行這項本機測試。
PORT=8081 node apiproxy/resources/hosted/index.js
curl http://localhost:8081
輸出內容範例:
{"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"}
部署 Proxy
get_token && apigeetool deployproxy \ -o myorg \ -e test \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api node-hosted-hello \ --directory .
測試部署作業
部署會在幾分鐘內完成。如果您收到部署錯誤,請執行 執行 Deployment 指令
curl http://myorg-test.apigee.net/node-hosted-hello
輸出內容範例:
{"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"