如何設定 Edge

Edge for Private Cloud 4.18.05

如要在安裝後設定 Edge,請同時使用 .properties 檔案和 Edge 公用程式。舉例來說,如要在 Edge UI 上設定 TLS/SSL,您可以編輯 .properties 檔案來設定必要的屬性。變更 .properties 檔案時,您必須重新啟動受影響的 Edge 元件。

Apigee 是指透過設定程式碼編輯 .properties 檔案的技術。基本上,含設定的程式碼是一種鍵/值查詢工具,以 .properties 檔案中的設定為基礎。在有設定的程式碼中,金鑰稱為「符記」。因此,如要設定 Edge,您必須在 .properties 檔案中設定符記。

透過設定的程式碼可讓 Edge 元件設定產品隨附的預設值,讓安裝團隊根據安裝拓樸覆寫這些設定,然後讓客戶覆寫所選的任何屬性。

如果您將政策視為階層,這些設定會按照以下客戶設定順序排列,並具有最高優先順序,以便覆寫安裝者團隊或 Apigee 的任何設定:

  1. 客戶
  2. 安裝程式
  3. Apigee

如何使用 .properties 檔案

客戶只能修改 /opt/apigee/customer/application 目錄中的 .properties 檔案。每個元件在該目錄中都有自己的 .properties 檔案。例如 router.propertiesmanagement-server.properties

舉例來說,如要建立 .properties 檔案:

  1. 以任何使用者身分在編輯器中建立檔案。
  2. 使用 chown 將檔案的擁有者變更為「apigee:apigee」;如果您已將執行 Edge 服務的使用者從「apigee」使用者變更為其他使用者,請將檔案的擁有者變更為執行 Edge 服務的使用者。

如要設定元件的屬性,請編輯對應的 .properties 檔案來設定符記,然後重新啟動元件:

/opt/apigee/apigee-service/bin/apigee-service component restart

舉例來說,編輯 router.properties 後,請重新啟動路由器:

/opt/apigee/apigee-service/bin/apigee-service edge-router restart

升級 Edge 時,系統會讀取 /opt/apigee/customer/application 目錄中的 .properties 檔案。也就是說,升級作業會保留您在元件上設定的所有屬性。

.properties 檔案的位置

Edge 元件的 .properties 檔案有三個頂層目錄:安裝、擁有者和客戶。預設位置如下表所示:

擁有者 權杖的預設根目錄
元件
/opt/apigee/component_name/conf

其中 component_name 是元件的識別碼。可能的值包括:

  • apigee-cassandra (Cassandra)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (PostgreSQL 資料庫)
  • apigee-qpidd (魁北克)
  • apigee-sso (邊緣單一登入)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (管理伺服器)
  • edge-management-ui (新版 Edge UI)
  • edge-message-processor (訊息處理器)
  • edge-postgres-server (Postgres 伺服器)
  • edge-qpid-server (快速伺服器)
  • edge-router (邊緣路由器)
  • edge-ui (傳統版 UI)
安裝
/opt/apigee/token
客戶
/opt/apigee/customer

判斷符記的目前值

.properties 檔案中設定元件的符記之前,您可以先使用下列指令判斷其目前的值:

/opt/apigee/apigee-service/bin/apigee-service component_name configure -search token

其中 component_name 是元件名稱,token 是需要檢查的符記。

這個指令會搜尋 .properties 檔案的階層,以判斷符記的目前值。

例如,如要檢查 Router 的 conf_http_HTTPRequest.line.limit 符記目前的值,請執行以下操作:

/opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_http_HTTPRequest.line.limit

您應該會看到以下輸出內容:

Found key conf_http_HTTPRequest.line.limit, with value, 4k, in /opt/apigee/edge-router/token/default.properties

在 .properties 檔案中設定符記

如要覆寫符記的值,請按照下列步驟操作:

  1. 編輯元件的 .properties 檔案,設定符記值。如果檔案不存在,則請建立該檔案。
  2. 重新啟動元件。
  3. 檢查符記值。

舉例來說,如要設定 Edge Router 的要求行限制:

  1. 編輯 /opt/apigee/customer/application/router.properties 檔案來設定 conf_http_HTTPRequest.line.limit 權杖:
    conf_http_HTTPRequest.line.limit=8k
  2. 重新啟動 Edge Router:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  3. 檢查符記的值:
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_http_HTTPRequest.line.limit

設定可接受多個值的符記

部分符記會接受以半形逗號分隔的值清單。例如,conf_security_rbac.restricted.resources 權杖會使用受限制的 URI 清單,因此只有 sysadmin 可以呼叫這些 URI。如要查看 conf_security_rbac.restricted.resources 的值,請按照下列步驟操作:

cd /opt/apigee/edge-management-server
grep -ri "conf_security_rbac.restricted.resources" *

輸出內容包含下列項目:

token/default.properties:conf_security_rbac.restricted.resources=/environments,/environments/*,/environments/*/virtualhosts,/environments/*/virtualhosts/*,/pods,/environments/*/servers,/rebuildindex,/users/*/status

如要設定可接受值清單的符記,請在 .properties 檔案中,將任何新值附加至符記的目前值。因此,如要將 URI /myuri/* 新增至 conf_security_rbac.restricted.resources,請按照下列方式編輯 /opt/apigee/customer/application/management-server.properties 檔案:

conf_security_rbac.restricted.resources=/environments,/environments/*,/environments/*/virtualhosts,/environments/*/virtualhosts/*,/pods,/environments/*/servers,/rebuildindex,/users/*/status,/myuri/*

尋找符記

在大部分的情況下,本指南會指出需要設定的符記。不過,如果您需要判斷用於覆寫屬性的符記,請在元件的 source 資料夾中執行 grep

舉例來說,如果您知道在 Edge 的先前版本中設定了 session.maxAge 屬性,並想知道用於設定該屬性的符記值,請在 /opt/apigee/edge-ui/source 目錄中為該屬性執行 grep

grep -ri "session.maxAge" /opt/apigee/edge-ui/source

您應該會看到以下格式的結果:

/opt/apigee/edge-ui/source/conf/application.conf:session.maxAge={T}conf_application_session.maxage{/T}

{T}{/T} 標記之間的字串,就是您在 .properties 檔案中設定的符記。

設定目前已註解的權杖

有些權杖在 Edge 設定檔中已加上註解。如果您嘗試設定已註解的符記,系統會忽略該設定。

如要設定已註解的符記,請使用特殊語法,格式如下:

conf/file.extension+propertyName=propertyValue

舉例來說,您想在訊息處理器上設定名為 HTTPClient.proxy.host 的屬性。接著,您可以 grep 屬性來判斷其符記:

cd /opt/apigee/edge-message-processor
grep -ri "HTTPClient.proxy.host" *

grep 指令會以包含符記值的格式傳回結果。請注意屬性名稱的註解方式,如屬性名稱上的 # 前置字串表示:

source/conf/http.properties:#HTTPClient.proxy.host={T}conf_http_HTTPClient.proxy.host{/T}
token/default.properties:conf_http_HTTPClient.proxy.host=
conf/http.properties:#HTTPClient.proxy.host=

如要設定屬性,請編輯 /opt/apigee/customer/application/message-processor.properties,將屬性設為:

conf/http.properties+HTTPClient.proxy.host=myhost.name.com

請注意,屬性名稱的前置字串是 conf/http.properties+,也就是含有屬性的設定檔的位置和名稱,後面接著「+」。

重新啟動訊息處理工具後,請檢查 /opt/apigee/edge-message-processor/conf/http.properties 檔案:

cat /opt/apigee/edge-message-processor/conf/http.properties

在檔案結尾處,您會看到屬性集,格式如下:

conf/http.properties:HTTPClient.proxy.host=myhost.name.com