Edge Microgate 常見問題

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

開始使用

如何安裝 Edge Microgateway?
請參閱安裝 Edge Microgateway
如何執行 Edge Microgateway?
請參閱 設定及設定 Edge Microgateway
我需要資料庫才能執行 微型閘道?
透過 Edge Microgateway 代管的 API 可與執行成為目標一部分的資料庫互動 課程中也會快速介紹 Memorystore 這是 Google Cloud 的全代管 Redis 服務不過,Edge Microgateway 與任何資料庫或後端資料均獨立運作 也就是經過處理且會導入模型的資料 接著再透過特徵儲存庫與他人分享

作業

Edge 相關異動 需要重新啟動 Edge Microgateway 嗎?
Edge Microgateway 會自動輪詢 Apigee Edge 上的變更,例如: 微閘道感知 Proxy、產品或開發人員 應用程式。預設的輪詢時間間隔為 600 秒;但可以用最後設定選項 config_change_poll_interval配置設定。 詳情請參閱 Edgemicro 屬性
,瞭解如何調查及移除這項存取權。
如果不想等待輪詢時間間隔,請使用 edgemicro reload 來接收最新異動詳情請見 重新載入微閘道叢集
如何區分部署於 Edge 和 Edge Microgateway 上的 Proxy?
設定 Edge Microgateway 時,會顯示在 Apigee 上的微閘道感知 Proxy 清單 系統會將 Edge 下載至 Edge Microgateway 的本機設定。微閘道感知 Proxy 前置字串為 edgemicro_ 的名稱。
使用 Edge Microgateway 記錄哪些選項?
Edge Microgateway 內建記錄功能,如需詳細資訊,請參閱 管理記錄檔
,瞭解如何調查及移除這項存取權。
你也可以撰寫 a 自訂外掛程式,以便搭配 Edge Microgateway 使用第三方記錄服務。順帶一提 Edge Microgateway 正常運作,您無法使用 Apigee Edge 訊息記錄政策 記錄 Edge Microgateway 的訊息。另請參閱 Microgateway 適用的 Logging Plugin 社群文章。
我可以在 Edge Microgateway 執行個體之間重複使用金鑰/密鑰組合嗎?
只要 Microgateway 執行個體的機構和環境相同,您就可以 重複使用設定期間產生的金鑰/密鑰配對。
如何設定 Edge Microgateway,以便在正式環境中啟動?
您可以設定啟動指令參數的環境變數,例如 EDGEMICRO_KEYEDGEMICRO_SECRETEDGEMICRO_ORGEDGEMICRO_ENV。 您可以善用這些 (及其他) 變數 使用單一指令 edgemicro start 的 Edge Microgateway。另請參閱 設定環境變數
我可以 要將自訂產品或開發人員應用程式屬性與 Edge Microgateway 搭配使用嗎?
不可以。根據預設,Edge Microgateway 只會在基本路徑和 安全性。不過,您仍可以解決這個問題:
  1. 新增自訂屬性至 Edge Microgateway 部署至 Apigee 的 edgemicro-auth Proxy 邊緣使用 API 金鑰或 OAuth 權杖安全性時,您就能使用這些屬性。
  2. 修改 OAuth 外掛程式以處理這些屬性。
要求標頭大小是否有限制?
如果您將 Node.js 升級至 v8.14.0 或更新版本,請注意,要求的標頭大小上限已從 80 KB 降至 8 KB。 如果標頭超過 8 KB,就會產生 HTTP 431 錯誤。
,瞭解如何調查及移除這項存取權。
在 Node.js v11.6.0 中新增 Node.js 設定選項,可讓您變更預設上限 標頭大小。這個參數 --max-http-header-size 可讓您指定 HTTP 標頭大小上限 (以位元組為單位)。
,瞭解如何調查及移除這項存取權。
如要變更預設設定,請設定 NODE_OPTIONS 環境的值 變數,如下所示:
NODE_OPTIONS=--max-http-header-size=NUM_BYTES

例如:

NODE_OPTIONS=--max-http-header-size=80000

Edge Microgateway 使用哪些管理 API?

下列 Edge Microgateway 指令呼叫 Apigee Edge Management API 以執行其工作。 如所述 Edge Microgateway 的 CLI 參考資料

  • edgemicro configure
  • edgemicro upgradeauth
  • edgemicro upgradekvm
  • edgemicro rotatekey
  • edgemicro cert check
  • edgemicro cert delete
  • edgemicro cert install

以下各節列出每個指令使用的管理 API 呼叫。

edgemicro configureupgradeauth 指令呼叫 下列管理 API:

  • (列出部署作業) GET: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/deployments
  • (取得部署作業資訊) GET: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth
  • (上傳資源) POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=java&name=micro-gateway-products-javacallout-2.0.0.jar
  • (上傳資源) POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=adjust-quota.js
  • (上傳資源) POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=generate-jwk.js
  • (上傳資源) POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=generate-verify-jwt.js
  • (上傳資源) POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=jsrsasign-all-min.js
  • (上傳資源) POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=jwt-initialization.js
  • (上傳資源) POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-jwk-response.js
  • (上傳資源) POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-product-list.js
  • (上傳資源) POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-public-key.js
  • (上傳資源) POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-jwt-variables.js
  • (上傳資源) POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-quota-variables.js
  • (上傳資源) POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-response.js
  • (上傳資源) POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=validate-params.js
  • (建立 API Proxy) POST: https://api.enterprise.apigee.com/v1/o/[org]/apis?action=import&validate=false&name=edgemicro-auth
  • (上傳政策) POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/policies
  • (上傳 Proxy) POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/proxies?name=default
  • (部署 Proxy)「POST: https://api.enterprise.apigee.com/v1/o/[org]/e/[env]/apis/edgemicro-auth/revisions/1/deployments

upgradekvm 指令會呼叫下列 Management API:

  • PUT: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway

rotatekey 指令會呼叫下列 Management API:

  • GET: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway/entries/private_key

cert check 指令會呼叫下列 Management API:

  • GET: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway

cert delete 指令會呼叫下列 Management API:

  • DELETE: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway

cert install 指令會呼叫下列 Management API:

  • POST: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps

部署作業

可以部署 目標服務執行所在伺服器上的 Edge Microgateway 嗎?
可以。Edge Microgateway 是一個輕量程序,可在接近目標服務的情況下執行,包括 同一部機器
我可以將現有的 Edge Proxy 套件部署為 Edge Microgateway 部署作業嗎?
不可以。Edge Microgateway 感知 Proxy 具有特定要求,且不支援所有功能 一般 Edge Proxy 物件請參閱零件 2:在 Apigee Edge 中建立實體
是否可以在 Edge Proxy 套件之間啟用容錯移轉 ?
不可以。Edge Microgateway 無法得知 Apigee 中的非 Microgateway API Proxy 部署作業 邊緣
什麼是 Edge Microgateway 的高可用性部署模式嗎?
如需如何使用 NGINX 做為負載平衡器執行 Edge Microgateway,請參閱 使用 Apigee Edge Microgateway 和 NGINX 管理 API
哪些負載平衡器可以與 Edge Microgateway 搭配使用?
Edge Microgateway 可與任何負載平衡器搭配使用。
我可以部署的 Edge Microgateway Proxy 數量是否有限制?
請參閱針對以下項目指定的產品設定限制: 一般邊緣 Proxy 所支援您可以在 Apigee Edge 中部署的微閘道感知 Proxy 數量 機構和環境以及透過 Edge Microgateway 呼叫的呼叫,皆須遵守這些限制。
我可以 要將我的 Edge Microgateway 部署作業與特定機構和環境建立關聯嗎?
設定 Edge Microgateway 的執行個體時,必須將其與特定 邊緣機構和環境
如果我是多區域客戶,可以將我的 Edge Microgateway 部署作業與特定區域建立關聯嗎?
Edge Microgateway 會自動選擇最適合與 Apigee Edge 互動的區域。 您可以在要提供服務的每個區域中,部署 Edge Microgateway 執行個體。

管理

只有機構組織管理員才能設定及部署 Edge Microgateway 嗎?
可以。您必須具備機構管理員憑證,才能設定及部署 Edge Microgateway。
只有機構組織管理員才能執行 Edge Microgateway 嗎?
不可以。Edge Microgateway 是一款 Node.js 應用程式,任何人只要擁有 在特定機器上執行這類應用程式。
我的任何機構都可以 使用者是否會使用 Edge Microgateway?
即使不是 Apigee Edge 機構使用者,也能透過 Edge 執行 API 呼叫 Microgateway。不過,您必須具備機構層級權限,才能建立或變更 Edge Microgateway 以便瞭解部署在 Edge 上的 Proxy

成效

使用 Edge Microgateway 時有哪些效能考量?
如果與目標應用程式共用 Edge Microgateway,請確認伺服器已 足夠的容量
大規模執行 Edge Microgateway 的最佳做法為何?
Apigee 建議在前端不同伺服器上執行多個 Edge Microgateway 執行個體 例如 NGINX 等負載平衡器其他參考資訊 使用 Apigee Edge Microgateway 和 NGINX Apigee 社群中的垂直水平資源調度
根據預設,Edge Microgateway TPS 有哪些?硬體需求為何 Microgateway 執行個體
Edge Microgateway 的硬體需求和 TPS 測量結果難以測量。視情況而定 需要一併調整 Edge Microgateway、外掛程式使用方式、自訂外掛程式 並設定 TLS 等其他項目Apigee 通常會建議您瞭解 並根據特定設定來測試成效

私有雲部署

是否邊緣 Microgateway 能與 Edge for Private Cloud 搭配使用嗎?
可以。如需詳細資訊,請參閱 Apigee Private Cloud 設定步驟。

外掛程式

如何使用 Edge 強制執行配額 微型閘道?
您可以選擇為 Edge Microgateway 的執行個體新增配額外掛程式。詳情請參閱 使用配額 外掛程式
《Spike Arrest 》如何 是否透過 Edge Microgateway 強制執行?
您可以選擇在 Edge Microgateway 執行個體中新增高點式逮捕外掛程式。適用對象 詳情請參閱使用尖峰 arrest 外掛程式。
是 是否有其他方式為 Edge Microgateway 的 Node.js 編寫其他外掛程式?
不可以。外掛程式必須以 Node.js 編寫。
如果 Edge Microgateway 無法將 Analytics 資料上傳至 Edge,會發生什麼事?
Edge Microgateway 具備記憶體內緩衝區。如果緩衝區填滿,較舊的酬載則會遭到捨棄 讓 API 流量順利流動
我可以在 Edge 中新增政策 微型閘道?
如果您將一般 Apigee Edge 政策附加至微閘道感知 Apigee Edge 中的 Proxy,系統會忽略這些 Proxy。而 Edge Microgateway 則會使用外掛程式 提供類似 Edge 政策的功能,例如配額、尖峰流量攻擊、API 金鑰安全性 OAuth2 安全性。您也可以編寫自訂外掛程式。詳情請見 使用外掛程式開發自訂外掛程式

下列 Apigee 社群貼文和網誌說明其他外掛程式的用途:

安全性

如何保護 /products 資源?
總覽
設定 Edge Microgateway 時, 已部署名為 edgemicro-auth 的 API Proxy 部署至您的 Apigee Edge 環境這個 Proxy 會公開傳回/products API 產品清單。如果您是在 2018 年 10 月 5 日當天或之前安裝 Edge Microgateway,Apigee 會建議您 採取措施來保護這個端點 其中包含在 Apigee 中建立並修改 API 產品的開發人員電子郵件地址 並根據貴機構的使命 價值觀和目標進行調整
,瞭解如何調查及移除這項存取權。
您可以升級 Edge Microgateway 或設定雙向 TLS,藉此保護端點。兩者皆有 下文將說明這類選項。
檢查 /products 端點是否受到保護

如果不確定 /products 端點是否受到保護,請參閱本節說明 確認 /products 資源受到保護,並採取相應步驟 才能繼續。

選項 1:升級 Edge Microgateway

如果您是在 2018 年 10 月 5 日當天或之前安裝 Edge Microgateway,Apigee 建議您升級至 最新版本的 Edge Microgateway請按照 如有網際網路連線,請將 Edge Microgateway 升級

如果目前無法升級,請前往方法 2。

方法 2:設定雙向傳輸層安全標準 (TLS)

如果目前無法升級 Edge Microgateway,Apigee 建議您 Edge Microgateway 和 edgemicro-auth Proxy 之間的通訊 TLS (也稱為雙向 TLS)。

  1. 開啟 $HOME/.edgemicro/org-env-config.yaml 檔案。詳情請參閱 如果找不到此檔案,安裝 Edge Microgateway 在哪裡。
  2. 將下列 tlsOptions 區塊新增至 org-env-config.yaml 個檔案,以在 Edge Microgateway 和 Apigee Edge:
    edge_config:
      bootstrap: >-
        https://domain/edgemicro/bootstrap/organization/org/environment/env
      jwt_public_key: 'https://domain/edgemicro-auth/publicKey'
      managementUri: 'https://api.enterprise.apigee.com'
      tlsOptions:
        agentOptions:
          requestCert: true
          cert: 'path/to/cert'
          key: 'path/to/key'

    例如:

    tlsOptions:
      agentOptions:
        requestCert: true
        cert: '/Users/jdoe/twowayssl/ssl/client.key'
        key: '/Users/jdoe/twowayssl/ssl/ca.crt'

    您也可以加入下列選用的 agentOptions 參數:

    • ca:指定憑證授權單位的路徑。
    • pfx:如果您要使用 p12/pfx 檔案,而不使用憑證和金鑰,請加入這個參數。
    • passphrase:pfx 檔案的通關密語。
    • ciphers:指定 TLS 加密方式。
  3. 請確認部署 edgemicro-auth Proxy 的虛擬主機已啟用雙向傳輸層安全標準 (TLS)。 詳情請參閱定義雙向 TLS 的虛擬主機。 。

    以下螢幕截圖顯示如何在 Apigee Edge UI 中,在虛擬主機上啟用雙向傳輸層安全標準 (TLS):

  4. 在 Edge UI 中查看 edgemicro-auth API Proxy,確認 請在 Proxy 設定中指定正確的虛擬主機。舉例來說,如果您建立了啟用 TLS 的 名為 mutualtls 的虛擬主機,是 Proxy 的 HTTPProxyConnection 個授權 看起來應該像這樣:
    <HTTPProxyConnection>
        <BasePath>/edgemicro-auth</BasePath>
        <Properties/>
        <VirtualHost>mutualtls</VirtualHost>
    </HTTPProxyConnection>
確認 /products 資源受保護
本節說明如何進行測試,以檢查/products 資源都會受到保護完成步驟後,請務必執行這項測試 (方法 1 或選項 2) 來保護資源。您可以用 cURL 這麼做,例如:
curl -v https://your_domain/edgemicro-auth/products
敬上 ,瞭解如何調查及移除這項存取權。
如果顯示類似下方的回應,表示 /products 端點受保護:
{
  "error":"unauthorized",
  "error_description": "authentication failed"
}

curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number

如果您看到類似這樣的回應,表示 /products 資源未受到保護 可看到下列資訊:

{
   "apiProduct":[
      {
         "apiResources":[
            "/",
            "/**"
         ],
         "approvalType":"auto",
         "attributes":[

         ],
         "createdAt":1537374680948,
         "createdBy":"jdoe@foo.com",
         "description":"",
         "displayName":"mock",
         "environments":[
            "test"
         ],
         "lastModifiedAt":1537374680948,
         "lastModifiedBy":"test@test.com",
         "name":"mock",
         "proxies":[
            "edgemicro-auth",
            "edgemicro_mock"
         ],
         "quota":"null",
         "quotaInterval":"null",
         "quotaTimeUnit":"null",
         "scopes":[
            ""
         ]
      }
   ]
}

Apigee 也會建議您測試 HTTP 虛擬主機:

例如:

curl -v http://your_domain/edgemicro-auth/products

如果 cURL 呼叫傳回 API 產品清單,則開發人員的電子郵件可能不含 暴露在風險中。如果不想透過這個非傳輸層安全標準 (TLS) 虛擬主機公開端點,請務必從 edgemicro-auth HTTPProxyConnection 設定。

為保護資源,請執行以下「其中一個」選項:

如何續訂已過期的存取權 符記?

目前您無法更新指定 Edge Microgateway 執行個體的 JWT 權杖。

解決方法:

每個 JWT 權杖都有一個過期屬性,用來指出權杖的到期日。應用程式可以 會計算到期時間並直接提出 API 呼叫至 edgemicro-auth 權杖端點。舉例來說,您可以發出如下的 API 呼叫:

POST https: //{your_org}-{your_env}.apigee.net/edgemicro-auth/token

... 具有如下的 JSON 內容:

{ "client_id": {your_id}, "client_secret": {your_secret}, "grant_type": "client_credentials" }

另請參閱:

在 Windows 上設定 SSL
如要在 Windows 上執行 Edge Microgateway,OpenSSL 必須安裝在電腦上,並新增至 PATH。 並非所有 Windows 電腦都會透過 OpenSSL 出貨。請參閱 OpenSSL 說明文件,瞭解如何下載和下載 正在安裝 OpenSSL。
我可以使用與 Edge Micro-aware 相關聯的 API 產品存取 API 資源嗎 Proxy?

目前只會檢查基本路徑,藉此判斷 API 是否獲準用於 API 產品 與特定 OAuth 權杖建立關聯

例如:

  1. 您可以建立具有基本路徑和目標的 edgemicro_ 前置字串 Proxy。
  2. 請將這個 Proxy 新增至產品。例如 edgemicro-prod1
  3. 使用 API 金鑰或 OAuth 透過 Edge Microgateway 發出 API 呼叫時 憑證,Edge Microgateway 檢查 API 的基本路徑是否與 已核准用於該金鑰產品清單的 edgemicro_* Proxy,或是 產生下一個符記

另請參閱 在需要產品網址加入許可清單的產品中使用 Edgemicro 閘道時 為何?

我可以使用自訂 SSL 還是使用 Edge Microgateway 編碼?

僅限預設的 Apigee SSL 憑證。目前不支援自訂 SSL 憑證。

解決方法:

如要使用自訂 (非 Apigee 預設) SSL 憑證,您可以選擇下列做法:

  • 使用非 SSL jwt_public_key 端點。修改 Edge Microgateway 設定 檔案才能使用「http://{org}-{env}.apigee.net/edgemicro-auth/publicKey」-或者
  • 啟動 Edge Microgateway 之前,請先設定以下環境變數:export NODE_TLS_REJECT_UNAUTHORIZED ="0"
,瞭解如何調查及移除這項存取權。

另請參閱 確認 Apigee 社群中的 SSL 憑證 Edge Micro 安裝錯誤。

我能避免使用 機構管理員帳戶採用 Edge Microgateway 嗎?
Edge Microgateway 設定指令碼會將 edgemicro-auth Proxy 部署至 Edge, 需要機構組織管理員憑證才能執行部署作業。
,瞭解如何調查及移除這項存取權。
不過,完成這項初始部署作業後,應該就能進行其餘設定 ,則不需要機構管理員憑證。另請參閱 上的這則社群貼文 機構組織管理員憑證
我可以使用自己的 OAuth 是否與 Edge Microgateway 合作?

你可以使用自己的權杖,但必須先關閉 Edge 的內建授權 Microgateway。做法如下:

  1. 開啟 Edge Microgateway 的設定檔。
  2. 將兩個 OAuth 設定變更為 true,如下所示:

    oauth:
        allowNoAuthorization: true
        allowInvalidAuthorization: true
我到 啟動 Edge Microgateway 時出現存取遭拒錯誤
使用下列指令啟動 Edge Microgateway 時,如果收到存取遭拒的錯誤訊息:
edgemicro start -o [org] -e [env] -k [key] -s [secret]
可能出於某些原因,金鑰和密鑰無效。最佳做法是 使用 edgemicro genkeys 指令重新產生金鑰和密鑰。

測試和偵錯

如何 我避免「開啟太多檔案」進行負載測試時發生錯誤?

在某些情況下,系統可能會遇到開放檔案連線過多的情形, 這可能會導致 Edge Micro 當機根據預設記錄功能,您必須使用兩個 HTTP 連線: 以及透過 Microgateway 連線的傳入與傳出交易。

為了進行測試和基準化,Apigee 建議設定系統的 ulimit 指令 不限數量:ulimit -n unlimited。另請參閱 Edge Apigee 社群的負載測試期間發生微型閘道錯誤

快速的訣竅 開發和偵錯

如果您正在開發 Edge Microgateway 外掛程式,可能會發現這類支援 相當有限

以下先提供幾項提示:

  • 如要啟動 Edge Microgateway,您可以設定 EDGEMICRO_KEY 環境變數 和 EDGEMICRO_SECRET,複製到 Microgateway 啟動指令所需的金鑰/密鑰組。 這樣您無須在指令中輸入金鑰/密鑰,就能啟動 Edge Microgateway 互動另請參閱 在 Edge Microgateway 文件中設定環境變數
  • 在 DEBUG 模式中啟動 Edge Microgateway,以查看指令終端機中的其他輸出內容: DEBUG=* edgemicro start -o [org] -e [env] -k [key] -s [secret]

商業與授權

Apigee-127 與 Edge Microgateway 支援模式之間的關係為何?

Apigee-127 是開放原始碼模型支援的開放原始碼軟體專案,沒錯 是,您可以在 GitHub 專案中回報問題,並提出提取要求;如果您嘗試修正問題,可以提出提取要求 例如文字、圖片、模型Apigee-127 與 Apigee。

另一方面,Edge Microgateway 則支援這項服務的 Enterprise 產品 Apigee 客戶。也就是說,Apigee 客戶可以建立支援單、功能要求和錯誤 使用 Google Cloud Apigee Edge 支援製作報表。