您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
Edge Microgateway 3.2.x 版
總覽
完成本設定指南中的步驟後,您將擁有可處理 API 要求的 Edge Microgateway 安裝項目,且已完成所有設定。您將透過 Edge Microgateway 向後端目標發出安全 API 呼叫,測試設定。您也會瞭解如何將尖峰流量抑制外掛程式新增至 Microgateway。
本指南分為以下幾個部分:
- 必要條件: 安裝 Edge Microgateway
- 第 1 部分: 設定 Edge Microgateway
- 第 2 部分: 在 Apigee Edge 上建立實體
- 第 3 部分: 操作 Edge Microgateway
- 第 4 部分: 保護 Edge Microgateway 安全
- 第 5 部分: 新增尖峰流量防範外掛程式
- 第 6 部分: 查看 Apigee Edge 的 Analytics 資料
必要條件:安裝 Edge Microgateway
請按照「安裝 Edge Microgateway」一文中的操作說明進行。安裝完成後,即可按照本教學課程的步驟操作。
第 1 部分:設定 Edge Microgateway
在本節中,您將使用指令列介面 (CLI) 指令,設定 Edge Microgateway 與 Apigee Edge 通訊。
- 如果您使用 Apigee Edge Cloud,請按照Apigee Edge Cloud 設定步驟操作。
- 如果您使用 Apigee Private Cloud,請按照 Apigee Edge Private Cloud 步驟操作。
Apigee Edge Cloud 設定步驟
如要搭配使用 Edge Microgateway 與 Apigee Edge Cloud,請按照下列步驟操作:
- 初始化 Edge Microgateway (這個步驟只需執行一次):
edgemicro init
- 名為
default.yaml的設定檔會放在主目錄中名為.edgemicro的子目錄。請立即檢查,確認這個檔案存在:ls ~/.edgemicro default.yaml
附註: 在 Edge Microgateway 文件中,我們以波浪號 (
~) 代表主目錄,這是 UNIX 捷徑。如果您使用 Windows,且執行的殼層不支援波浪符號,則必須在參照主目錄的指令中,以適當的環境變數取代波浪符號。例如:%USERPROFILE%/.edgemicro。 - 所有 CLI 指令都有說明功能。列印 edgemicro configure 指令的說明:
edgemicro configure -h
- 執行下列指令來設定 Edge Microgateway:
edgemicro configure -o [org] -e [env] -u [username]
其中:
org:您的 Edge 機構名稱 (您必須是機構管理員)。env:貴機構的環境 (例如測試或正式環境)。username:與 Apigee 帳戶相關聯的電子郵件地址。
注意:configure 指令允許使用其他參數。如需完整清單,請參閱「為 Apigee Edge Cloud 設定 Edge Microgateway」。
範例
edgemicro configure -o docs -e test -u jdoe@example.com
輸出內容
./edgemicro configure -o docs -e test -u jdoe@apigee.com password: current nodejs version is v12.5.0 current edgemicro version is 3.1.0 password: file doesn't exist, setting up Give me a minute or two... this can take a while... App edgemicro-auth deployed. checking org for existing KVM error checking for cert. Installing new cert. creating KVM adding private_key adding public_key configuring host edgemicroservices-us-east-1.apigee.net for region us-east-1 saving configuration information to: $HOME/.edgemicro/docs-test-config.yaml vault info: -----BEGIN CERTIFICATE----- MIICpDCCAYwCCQCQ2mJZJGbPPTANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDEwls b2NhbGhvc3QwHhcNMTcwOTA3MjA0ODA4WhcNMTcwOTA4MjA0ODA4WjAUMRIwEAYD VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDw yzmqi5CelqqtTr6IaFe1ssrMXEDnNtkBh95U6F5zHLsNQhJcyNUAO9um6FLMSqSd fTztXfWUZzDgmbb6sfbx/9cqpvQ8TIjxyIz8xGM9H4legRQmsCQoYGkLjpPE5ZOa wZrI5IaVm8LY6vbopPFwxgKOQ9bphx6k9Na055DmNyZAOTMD+4I0m/RdsrnZnYih 3DaFj1tXHKZI1jfAt/QOif5Nmk4+JckYwF+9HBysWUbbvj/gnBjVYF2Isb7q7oFD lPGhwFoIebMqHMWD8lG7+9RJDO9dDV6f1g1/9waIrq1D+MoVXos9VMstNrPp0cKF Ue+lAkct8tylH+2MosF7AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAJMRdcQh3ayy csVVT4TYwxV7MKWRfhDRz6X+MM9frB+Z7sI4+ZoZbXKOoZI2hSjmbdLpkNR/m9eJ +1Uk0JKmpSY7Q+1rRrvcHsWNysGf4z+zDJXYECTrtSnXKBXtb9SJ8JAfoZOQD0lA zmKuJjQMLTdiYMHOBR6ZWnaKaRvrQwGHcQrheJm4a90XgZF6jcRR8CPrBzkmsbCp IU/Ux3E17wDGYPxjJs5otyQG8rN/88RGyaSeXK8rjKr9D4KFGJeasXBKmTG2afAr yfBvS4h6s42FCOR/eLpmMllVoO9up71Fa3EtV+aK+FNNY9uMbgUHeLQE7z9nn06q PTmvExZLkLQ= -----END CERTIFICATE----- The following credentials are required to start edge micro key: 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb secret: 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47
Apigee Private Cloud 設定步驟
如要搭配使用 Edge Microgateway 與 Apigee Private Cloud,請按照下列步驟操作:
- 初始化 Edge Microgateway (這個步驟只需執行一次):
edgemicro init
- 列印 edgemicro private configure 指令的說明資訊。您可以透過這種方式,列印任何 Edge Microgateway CLI 指令或指令選項的說明。
edgemicro private configure -h
- 執行下列指令。您必須提供 Apigee Edge 私有雲帳戶的標準資訊:機構名稱、環境名稱、使用者名稱 (電子郵件位址)、密碼、管理伺服器 IP 和路由器 IP。您必須是 Edge 機構管理員,才能使用這項指令:
edgemicro private configure -o [org] -e [env] -u [username] -r [runtime_url] -m [mgmt_url] -v [virtual_host]
其中:
org是 Edge 機構名稱 (您必須是機構管理員)。env是貴機構的環境 (例如測試或實際工作環境)。runtime_url是私有雲執行個體的執行階段網址。mgmt_url是私有雲執行個體的管理伺服器網址。username是與您的 Apigee 帳戶相關聯的電子郵件地址。-
virtual_host是以半形逗號分隔的虛擬主機名稱清單。預設值為default,secure
範例
edgemicro private configure -o docs -e test -u jdoe@example.com -r http://192.162.52.106:9001 -m http://192.162.52.106:8080 -v default
或者,如果您有 myorg-test.mycompany.com 的虛擬主機別名,則可以使用如下指令:
edgemicro private configure -o docs -e test -u jdoe@example.com -r myorg-test.mycompany.com -m http://192.162.52.106:8080 -v default
輸出內容
delete cache config checking for previously deployed proxies configuring edgemicro internal proxy deploying edgemicro internal proxy deploying edgemicro-auth app copy auth app into tmp dir copy config into tmp deer Give me a minute or two... this can take a while... App edgemicro-auth added to your org. Now adding resources. checking org for existing KVM error checking for cert. Installing new cert. creating KVM adding private_key adding public_key configuring host http://192.168.52.106:9001 for region dc-1 saving configuration information to: $HOME/.edgemicro/jdoe-test-config.yaml vault info: -----BEGIN CERTIFICATE----- MIICpDCCAYwCCQDpIvWlpaZJGDANBgkqhkiG9w0BAQFADAUMRIwEAYDVQQDEwls b2NhbGhvc3QwHhcNMTYwNDA3MTcxNTM5WhcNMTYwND4MTcxNTM5WjAUMRIwEAYD VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAUAA4IBDwAwggEKAoIBAQD3 OAQ+kf5FH0S0yuj05ITqUODuUJspBPberRMbqOZYHcFswhB0Yvg6JKWsKWBDP9o Xl96dtgH7xPFRqIU0zI452jkMQ1fPz2mSaGwik245yfBku7olooXKRKTRKOUoXa q3Hld/RPxGSsWtiyyYtKex7tuFdq0Knm1EhowdTRGIgjNvudeYMka/XPRXuykhd xIDxWj4rdX+4GPx9qT2eTQC5nOAC7XHVL7ys4KqsAiv28vw10u400KstFFS8Qho 7FaE0bOKLolKKadKyA60ha1XIw/uSTD6ZQFWQ+XM3OaRbXePWXnSZioSxXcZT7L hMUKbsRXw/TCvRB51LgNAgMBAAEwDQYJKoZIhvcNAQELBQADgEBAOuR1OmE/W6j gRAarJB5EQuTEpI/9Zpg5c5RAGjzLhkazsycn7pal+IymUjCV7D0oIxTVuTM8ZZ 57kR5hF/C1ZypDN9i+KGP2ovX8WOCCXYtIQECgZPB/L/7/k7BDuKN4vFBvWUe3X s2oyjnVWy+ASqsW8gHfj8ekhe22bP240Oqkbyg9SZP9ol1tvJX6+M0thYwcTwAd ft929Icey/MOTQC0jB2qm0gnIx/7KInFXfS5KoFRJoGrWDeckr3RdBo2LhnPaeZ 1gPYIqphZ3HfisF5KlBXoR8oT/Ilym/nq5COlv+3L4tMIk18F7BQZB60SRazifz pFkIxepyr/0= -----END CERTIFICATE----- The following credentials are required to start edge micro key: a3f8f3dfe39158fc3c50b274f0af2234246e0d5f6ea4ad09389b645147151ba3 secret: 3e9904802fb3c0e8ca408128a11119cf13546d54dac10ace944c097a726a1263 edgemicro configuration complete!
驗證安裝
執行下列指令來驗證安裝作業。如果沒有回報任何錯誤,表示一切設定正確,您將能順利啟動 Edge Microgateway。
edgemicro verify -o [org] -e [env] -k [key] -s [secret]
其中:
org是 Edge 機構名稱 (您必須是機構管理員)。env是您機構中的環境 (例如測試或實際工作環境)。key是先前由 configure 指令傳回的金鑰。secret是先前由 configure 指令傳回的金鑰。
範例
edgemicro verify -o docs -e test -k 93b01fd21d86331459ae52f624ae9aeb13eb94767ce40a4f621d172cdfb7e8e6 -s c8c755be97cf56c21f8b0156d7132afbd03625bbd85dc34ebfefae4f23fbcb3c
關於設定
目前為止的所有設定,都是為了讓 Edge Microgateway 自行啟動至 Apigee Edge。啟動程序成功後,Edge Microgateway 會從 Apigee Edge 擷取其他設定資訊的酬載。
這項設定資訊的用途為何?如本教學課程的下一部分所述,Edge Microgateway 啟動時,需要從 Apigee Edge 接收 Edge Microgateway 感知的特殊 API Proxy 清單。在本教學課程的下一部分,您將建立可辨識 Microgateway 的 Proxy。Edge Microgateway 會限制用戶端,只能呼叫這些 Microgateway 感知的 API Proxy 所代理的 API,且用戶端必須 (預設) 為每次呼叫提供有效的安全性權杖。如要進一步瞭解這些 Proxy,請參閱「您需要瞭解的 Edge Microgateway 感知 Proxy」一文,該文位於「Edge Microgateway 總覽」中。
Edge 機構組織管理員會想知道,Edge Microgateway 感知 Proxy 可以新增至 Edge 產品,就像其他 Proxy 一樣。使用產品和開發人員應用程式,即可產生用戶端專屬的安全權杖,控管透過 Edge Microgateway 呼叫的 API 存取權。同樣地,所用的模式與在 Apigee Edge 上使用任何 API Proxy、產品和開發人員應用程式時相同。如要瞭解產品,請先參閱 Edge 說明文件中的「什麼是 API 產品?」。
接著,我們將逐步說明如何建立可辨識 Edge Microgateway 的 Proxy,然後啟動 Edge Microgateway 並測試設定。
第 2 部分:在 Apigee Edge 建立實體
在本節中,您將在 Edge 上建立下列實體:
-
可感知微閘道的 Proxy - 這是 Edge Microgateway 啟動時可探索的特殊 Proxy。支援微閘道的 Proxy 必須遵循命名慣例,名稱開頭必須是
edgemicro_。例如edgemicro_hello或edgemicro_userinfo。Edge Microgateway 啟動時,會從 Edge 擷取微型閘道感知 Proxy 清單,這些 Proxy 來自您啟動 Edge Microgateway 時指定的 Edge 機構和環境。
對於每個可感知微閘道的 Proxy,Edge Microgateway 會擷取 Proxy 的目標網址和基準路徑。此外,透過 Microgateway 感知的 Proxy,您可以輕鬆將 Edge Microgateway 產生的數據分析資料,與 Edge 平台上的 Proxy 建立關聯。由於 Microgateway 會處理 API 呼叫,因此會以非同步方式將 Analytics 資料推送至 Edge。Analytics 資料會顯示在 Edge Analytics 使用者介面中,位於微閘道感知 Proxy 名稱下方,與其他 Proxy 相同。
- 產品、開發人員和開發人員應用程式 - Edge Microgateway 會使用產品、開發人員和開發人員應用程式,啟用 OAuth2 存取權杖或 API 金鑰安全機制。Edge Microgateway 啟動時,會從 Apigee Edge 機構下載所有產品設定。並使用這項資訊,透過 API 金鑰或 OAuth2 存取權杖,驗證透過 Edge Microgateway 發出的 API 呼叫。
1. 在 Edge 上建立 Edge Microgateway 感知的 API Proxy
- 登入 Apigee Edge 上的機構。
- 在側邊導覽選單中,依序選取「開發」>「API Proxy」。
- 按一下「+ Proxy」。系統會叫用「Build a Proxy」(建立 Proxy) 精靈。
- 在精靈的第一頁中,選取「Reverse proxy (most common)」。
- 點選 [下一步]。
- 在精靈的「詳細資料」頁面中,進行下列設定。請務必按照畫面所示填寫精靈:
- Proxy 名稱:edgemicro_hello
- Proxy 底層路徑:/hello
- 現有 API:http://mocktarget.apigee.net/
- 點選 [下一步]。
- 在精靈的「安全性」頁面中,選取「Pass through (none)」(直通 (無))。
- 點選 [下一步]。
- 在精靈的「虛擬主機」頁面中,接受預設值。
- 點選 [下一步]。
- 在精靈的「建構」頁面中,檢查 Proxy 設定。確認已選取「測試」環境。
- 按一下「Build and Deploy」(建構及部署)。
2. 建立產品
- 在側邊導覽選單中,依序選取「發布」>「API 產品」。
- 按一下「+ API 產品」,系統隨即會顯示「產品詳細資料」頁面。
- 按照下列方式填寫「產品詳細資料」頁面:
- 名稱:EdgeMicroTestProduct
- 顯示名稱:EdgeMicroTestProduct
- 環境:測試和正式版
- 存取權:公開
- 金鑰核准類型:自動
- 在「資源」中,按一下「+API Proxy」。
- 選取「edgemicro-auth」
- 再次點選「+API Proxy」。
- 選取「edgemicro_hello」edgemicro_hello
- 選取「+ 自訂資源」
- 輸入 /**
- 再次選取「+ 自訂資源」。
- 輸入 /
- 按一下 [儲存]。
3. (選用) 建立測試開發人員
在本教學課程中,您可以使用任何現有開發人員進行下一步,也就是建立開發人員應用程式。但如果您願意,現在可以建立測試開發人員:
- 在側邊導覽選單中,依序選取「發布」>「開發人員」。
- 按一下「+ 開發人員」。
- 填寫對話方塊,建立測試開發人員。
4. 建立開發人員應用程式
您將使用這個應用程式的用戶端憑證,透過 Edge Microgateway 發出安全的 API 呼叫:
- 在側邊導覽選單中,依序選取「發布」>「應用程式」。
- 按一下「+ 應用程式」,系統會顯示「開發人員應用程式詳細資料」頁面。
- 按照下列方式填寫「開發人員應用程式」頁面:
- 名稱:EdgeMicroTestApp
- 顯示名稱:EdgeMicroTestApp
- 開發人員:如果您已建立測試開發人員,請選取該開發人員。或者,您也可以使用任何現有開發人員進行本教學課程。
-
憑證:
- 選取「到期時間」:永不。
- 按一下「+ 產品」,然後選取「EdgeMicroTestProduct」 (您剛建立的產品)
- 按一下 [儲存]。
- 您會返回「應用程式清單」頁面。
- 選取剛建立的應用程式「EdgeMicroTestApp」EdgeMicroTestApp。
- 按一下「用戶端金鑰」和「用戶端密鑰」旁的「顯示」。

第 3 部分:操作 Edge Microgateway
您已設定 Edge Microgateway,且 Edge 上至少有一個可辨識 Edge Microgateway 的 Proxy,現在可以啟動 Edge Microgateway。Edge Microgateway HTTP 伺服器會在您的本機電腦上執行,您將直接對該伺服器發出 API 呼叫。
1. 啟動 Edge Microgateway
使用 edgemicro start 指令啟動 Edge Microgateway。
- 請務必備妥先前執行 edgemicro
configure 指令時傳回的金鑰。輸出內容大致如下:
You need key and secret while starting edgemicro instance key: da4778e7c240a5d4585fc559eaba5083328828bc9f3a7f583e8b73e secret: 3aad7439708b4aeb38ee08e82189921ad00e6fc1ba8a8ae9f929ee2
- (選用) 列印
edgemicro start指令的說明資訊。
edgemicro start -h
- 如要啟動 Edge Microgateway,請執行下列指令:
edgemicro start -o [org] -e [env] -k [key] -s [secret]
其中:
org是 Edge 機構名稱 (您必須是機構管理員)。env是您機構中的環境 (例如測試或實際工作環境)。key是先前由 configure 指令傳回的金鑰。secret是先前由 configure 指令傳回的金鑰。
範例
edgemicro start -o docs -e test -k 701e70e718ce6dc1880616b3c39177d64a88754d615c7a4e1f78b6181d000723 -s 05c14356e42d136b83dd135cf8a18531ff52d7299134677e30ef4e34ab0cc824
輸出內容
啟動指令會從 Apigee Edge 擷取大量設定資訊 (這些資訊會捲動到終端機視窗中)。輸出內容會顯示探索到的微閘道感知 Proxy 和產品清單。輸出內容的結尾應如下所示:
... current nodejs version is v12.5.0 current edgemicro version is 3.1.0 info: jwk_public_keys download from null returned 200 undefined info: jwt_public_key download from https://docs-test.apigee.net/edgemicro-auth/publicKey returned 200 OK info: products download from https://docs-test.apigee.net/edgemicro-auth/products returned 200 OK info: config download from https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test returned 200 OK PROCESS PID : 17991
- 檢查微閘道狀態。在另一個終端機視窗中,cd 到啟動 Edge Micro 的相同目錄,然後輸入下列指令:
edgemicro status current nodejs version is v12.5.0 current edgemicro version is 3.1.0 edgemicro is running with 8 workers
狀況說明
系統會從 Apigee Edge 下載 Edge Microgateway 設定資訊的酬載,並在本機快取。這類資訊包括:
- 我們先前建立並儲存在加密鍵/值對應 (KVM) 中的公開金鑰。
- 代表機構/環境中所有可識別 Edge Microgateway 的 Proxy。這些都是以「edgemicro_」edgemicro_前置字元命名的所有 Proxy。
- 代表機構/環境中所有現有的 API 產品。
Edge Microgateway 會根據這項資訊,判斷允許處理哪些 Proxy 和 Proxy 路徑。系統會使用產品資訊來強制執行安全性 (與 Apigee Edge 上的任何 API Proxy 完全相同,開發人員應用程式金鑰會與產品建立關聯)。我們稍後會說明如何保護 Edge Microgateway。
2. 測試 Edge Microgateway
Edge Microgateway 執行後,您就可以呼叫 Proxy。啟動 Edge Microgateway 時,系統會從 Edge 下載 edgemicro_hello Proxy 的設定。請注意,Proxy 的基本路徑為 /hello。
如要測試 Edge Microgateway,請從基本路徑開始,然後新增資源路徑 /echo。請注意,基準路徑後的所有內容 (包括任何查詢參數) 都會直接傳遞至後端目標:
curl -i http://localhost:8000/hello/echo
{"error":"missing_authorization","error_description":"Missing Authorization header"}這是因為您未在要求中傳送有效的 API 金鑰或存取權杖。根據預設,Edge Microgateway 會要求每次 API 呼叫都必須提供 API 金鑰或存取權杖。在本教學課程的下一個步驟中,我們會妥善保護這個 API,並說明如何取得有效的存取權杖,以及將權杖納入要求中。
4. 停止 Edge Microgateway
- 在另一個終端機視窗中,
cd前往您啟動 Edge Microgateway 的目錄。 - 輸入停止指令:
edgemicro stop
第 4 部分:保護 Edge Microgateway 安全
您可以透過 API 金鑰或存取權杖,確保透過 Edge Microgateway 發出的 API 呼叫安全無虞。
使用 OAuth2 存取權杖確保 API 呼叫安全
如要使用 OAuth2 存取權杖驗證 API 呼叫,請按照下列步驟操作:
1. 取得必要金鑰
- 在 Edge UI 中,前往先前建立的開發人員應用程式。應用程式名稱為 EdgeMicroTestApp。
- 在「開發人員應用程式」頁面中,顯示用戶端金鑰和用戶端密鑰,然後複製這些金鑰。 您必須提供這些值,才能在下一個步驟中取得存取權杖。
2. 取得存取權杖
取得存取權杖的方法有兩種。我們將說明這兩種方法。
使用 CLI 取得存取權杖
第一種方法很方便,而且符合我們在整個教學課程中使用的模式。第二種方法通常更適合需要要求權杖的用戶端應用程式開發人員。實際的權杖端點是在您設定 Edge Microgateway 時部署的 edgemicro-auth Proxy 中實作。
- (選用) 查看 token get 指令的說明:
edgemicro token get -h
- 產生權杖,並在 -i 和 -s 參數中,替換您在 Apigee Edge 上建立的開發人員應用程式中的用戶端金鑰和用戶端密鑰值:
edgemicro token get -o [org] -e [env] -i [consumer_key] -s [consumer_secret]
其中:
org是 Edge 機構名稱 (您必須是機構管理員)。env是您機構中的環境 (例如測試或實際工作環境)。consumer_id是您先前建立的開發人員應用程式中的消費者 ID。consumer_secret是您先前建立的開發人員應用程式中的消費者密鑰。
範例
edgemicro token get -o docs -e test -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
輸出內容 (範例)
current nodejs version is v12.5.0 { token: 'eyJ0eXAiOiJKV1QiLCJhbGciSUzI1NiJ9.eyJhcHBsaWNhdGl vbl9uYW1lIjoiNWNiMGY0tOWMzOC00YmJjLWIzNzEtZGMxZTQzOGYxZGMxI iwiY2xpZW50X2lkIjoiNVVdBWEdvSU9lbzYwYWV3OTRQN0c1TUFaRTNhSnA iLCJzY29wZXMiOltdLCJhcGlfcHJvjdF9saXN0IjpbIsVkZ2VNaWNyb1Rlc 3RQcm9kdWN0IlmlhdCI6MTQ3ODIwODMzMiwiZXhwIjoxNDc4MjEwMTMxfQ. v3Q8Rs0W9FO_XpERwIAMMXhjGamRmmmWgrAy1wJv0-99oajx5ASI5qjNubM nCF14xxwlVXHcz1VfedA8Nx7Ih145zhWWuPKL9muzhXXnVBRFeBMeeLqJk4 QQ7Bhst7xH_68nJSTE20Egu95DHOCUemfrepDFH0VggY4BmzvwLkBNfz_te E_YqwKZbpGOLMdKK1vMk0fk0x19SieIMS_aJYeOAklrzUhnFxWJFrsAWsax NLx_BbQcZzYfK1JSDUrhRNVBuPHMnGjNA_oHw2J4qa6Hsp62PfchG-DIW_t -0BFnYf3rYXmqyNORqFrOMdl4VxqQ' }
(選用) 使用 API 取得權杖
如果您習慣使用 curl 或其他 HTTP 用戶端呼叫 Edge Proxy,您會發現可以直接呼叫權杖端點,不必使用 edgemicro token 指令。以下是 curl 範例。只要在網址中代入機構和環境名稱,並在基本驗證標頭中傳遞以半形冒號分隔的消費者金鑰:消費者密鑰值即可:
curl -i -X POST "http://[org]-[env].apigee.net/edgemicro-auth/token" -d '{ "client_id": "your consumer key", "client_secret": "your consumer secret", "grant_type": "client_credentials" }' -H "Content-Type: application/json"
其中:
org是 Edge 機構名稱 (您必須是機構管理員)。env是您機構中的環境 (例如測試或實際工作環境)。client_id是您先前建立的開發人員應用程式中的消費者 ID。client_secret是您先前建立的開發人員應用程式中的消費者密鑰。
輸出內容 (範例)
無論您是使用 edgemicro token CLI 指令,還是使用 curl 呼叫端點,該指令都會傳回簽署的存取權杖,可用於發出用戶端呼叫。如下所示:
MIICpDCCAYwCCQDpIvWlpaZJGDANBgkqhkiG9w0BAQFADAUMRIwEAYDVQQDEwls
b2NhbGhvc3QwHhcNMTYwNDA3MTcxNTM5WhcNMTYwND4MTcxNTM5WjAUMRIwEAYD
VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAUAA4IBDwAwggEKAoIBAQD3
OAQ+kf5FH0S0yuj05ITqUODuUJspBPberRMbqOZYHcFsnhB0Yvg6JKWxKWBDP9o
Xl96dtgH7xPFRqIU0zI452jkMQ1fPz2mSaGwik241yfBku7olooXKRKTRKOUoXa
q3Hld/RPxGSsWtiyyYtKex7tuFdq0Knm1EhowdTRGIgjNvudeYMka/XPRXuykhd
xIDxWj4rdX+4GPx9qT2eTQC5nOAC7XHVL7ys4KqsAiv28vw10u400KstFFS8Qho
7FaE0bOKLolKKadKyA60ha1XIw/uSTD6ZQFWQ+XM3OaRbXePWXnSZioSxXcZT7L
hMUKbsRXw/TCvRB51LgNAgMBAAEwDQYJKoZIhvcNAQELBQADgEBAOuR1OmE/W6j
gRAarJB5EQuTEpI/9Zpg5c5RAGjzLhkazsycn7pal+IymUjCV7D0oIxTVuTM8ZZ
57kR5hF/C1ZypDN9i+KGP2ovX8WOCCXYtIQECgZPB/L/7/k7BDuKN4vFBvWUe3X
s2oyjnVWy+ASqsW8gHfj8ekhe22bP240Oqkbyg9SZP9ol1tvJX6+M0thYwcTwAd
ft929Icey/MOTQC0jB2qm0gnIx/7KInFXfS5KoFRJoGrWDeckr3RdBo2LhnPaeZ
1gPYIqphZ3HfisF5KlBXoR8oT/Ilym/nq5COlv+3L4tMIk18F7BQZB60SRazifz
pFkIxepyr/0=
3. 檢查 Edge Microgateway 中的設定
- 開啟
$HOME/.edgemicro/org-env-config.yaml檔案。如果找不到這個檔案,請參閱「 Edge Microgateway 安裝位置」。 - 請確認這些 OAuth 外掛程式屬性已設為 false。這些值預設為 false,但建議您仔細檢查:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false
- 同樣在
org-env-config.yaml檔案中,請務必將 oauth 外掛程式新增至plugins:sequence元素,如下所示:plugins: dir: ../plugins sequence: - oauth
- 如果對檔案進行任何變更,請將變更重新載入至正在執行的 Edge Microgateway 執行個體。這項指令會重新設定 Edge Microgateway,不會造成任何停機時間:
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
其中:
org是 Edge 機構名稱 (您必須是機構管理員)。env是您機構中的環境 (例如測試或實際工作環境)。key是先前由 configure 指令傳回的金鑰。secret是先前由 configure 指令傳回的金鑰。
範例
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
4. 安全地呼叫 API
取得存取權杖後,您現在可以安全地呼叫 API。例如:
curl -i -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhcHBsaWNhdGlvbl 9uYW1lIjoiYmU2YmZjYjAtMWQ0Ni00Y2IxLWFiNGQtZTMxNzRlNTAyMDZkIiwiY2xpZW50X2lkIjoiOGxTTTVIRHdyM VhIT1ZwbmhURExhYW9FVG5STVpwWk0iLCJzY29wZXMiOltdLCJhcGlfcHJvZHVjdF9saXN0IjpbIk1pY3JvZ2F0ZXdh eVRlQcm9kdWN0Il0sImCI6MTQzNTM0NzY5MiwiZXhwIjoxNDM1MzQ5NDkxfQ.PL30Y6uK1W1f2ONPEsBDB_BT31c6 IsjWGfwpz-p6Vak8r767tAT4mQAjuBpQYv7_IU4DxSrnxXQ_q536QYCP4p4YKfBvyqbnW0Rb2CsPFziy_n8HIczsWO s0p4czcK63SjONaUpxV9DbfGVJ_-WrSdqrqJB5syorD2YYJPSfrCcgKm-LpJc6HCylElFDW8dHuwApaWcGRSV3l5Wx 4A8Rr-WhTIxDTX7TxkrfI4THgXAo37p3au3_7DPB_Gla5dWTzV4j93xLbXPUbwTHzpaUCFzmPnVuYM44FW5KgvBrV0 64RgPmIFUxSqBWGQU7Z1w2qFmWuaDljrMDoLEreI2g" http://localhost:8000/hello/echo
API 會從模擬伺服器傳回標頭和其他資訊。
使用 API 金鑰保護 API
如要使用 API 金鑰進行授權,請按照下列步驟操作:
1. 取得 API 金鑰
- 在 Edge UI 中,前往先前建立的開發人員應用程式。應用程式名稱為 EdgeMicroTestApp。
- 在「開發人員應用程式」頁面中,顯示並複製「消費者金鑰」。這個值是 API 金鑰。您將使用這個金鑰發出經過驗證的 API 呼叫。
2. 檢查 Edge Microgateway 中的設定
- 開啟
$HOME/.edgemicro/org-env-config.yaml.檔案。如果找不到這個檔案,請參閱「Edge Microgateway 安裝位置」。 - 請確認這些 OAuth 外掛程式屬性已設為 false。這些值預設為 false,但您可以視需要進行雙重檢查:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false
- 同樣在
org-env-config.yaml檔案中,請務必將 oauth 外掛程式新增至plugins:sequence元素,如下所示:plugins: dir: ../plugins sequence: - oauth - 如果對檔案進行任何變更,請將變更重新載入至正在執行的 Edge Microgateway 執行個體。這項指令會重新設定 Edge Microgateway,不會造成任何停機時間:
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
其中:
org是 Edge 機構名稱 (您必須是機構管理員)。env是您機構中的環境 (例如測試或實際工作環境)。key是先前由 configure 指令傳回的金鑰。secret是先前由 configure 指令傳回的金鑰。
範例
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c30177d64a88754d615c74e1f78b6181d
3. 使用 API 金鑰安全地呼叫 API
使用 x-api-key 標頭呼叫 API,如下所示。您從開發人員應用程式複製的「消費者金鑰」值就是 API 金鑰。根據預設,Edge Microgateway 會要求您在名為「x-api-key」的標頭中傳遞金鑰,如下所示:
curl -i http://localhost:8000/hello/echo -H "x-api-key: [apikey]"
其中:
apikey是從 EdgeMicroTestApp 取得的 Consumer Key 值。
例如:
curl -i http://localhost:8000/hello/echo -H 'x-api-key: XsU1R4zGXz2ERxd0ilYQ5szwuljr5bB'
現在,您已擁有功能完整且安全的 Edge Microgateway。在本教學課程的下一部分,我們將瞭解可為 Edge Microgateway 新增功能的外掛程式。
第 5 部分:新增尖峰流量防範外掛程式
在本節中,我們將在 Edge Microgateway 執行個體中新增名為尖峰抑制的速率限制功能。
什麼是外掛程式?
外掛程式是 Node.js 模組,可為 Edge Microgateway 新增功能。外掛程式模組遵循一致的模式,並儲存在 Edge Microgateway 已知的位置,因此微型閘道可以自動探索及載入這些模組。如要進一步瞭解外掛程式,請參閱「使用外掛程式」。
新增尖峰流量防範外掛程式
尖峰流量抑制外掛程式可防範流量遽增情形。限制 Edge Microgateway 執行個體處理的要求數量。
在 Edge Microgateway 中,尖峰流量防護功能是以外掛程式模組的形式實作。如要啟用這項功能,請將其新增至 Edge Microgateway 設定檔。
- 如果找不到這個檔案,請開啟「Where is Edge Microgateway installed」(Edge Microgateway 安裝位置) 檔案
$HOME/.edgemicro/org-env-config.yaml.。 - 新增下列元素。您可以將其新增至檔案中的任何位置。
spikearrest: timeUnit: minute allow: 10 buffersize: 0 - 將
spikearrest新增至edgemicro:sequence元素,如下所示。序列設定屬性會告知 Edge Microgateway 外掛程式模組的執行順序。edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 plugins: dir: ../plugins sequence: - oauth - spikearrest
- 儲存設定檔。
- 使用 reload 指令重新載入 Edge Microgateway。您必須從啟動 Edge Microgateway 的目錄執行這項指令。
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
其中:
org是 Edge 機構名稱 (您必須是機構管理員)。env是您機構中的環境 (例如測試或實際工作環境)。key是先前由 configure 指令傳回的金鑰。secret是先前由 configure 指令傳回的金鑰。
範例
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
- 請嘗試快速連續呼叫 API 數次。第二次呼叫後,Edge Microgateway 會傳回下列錯誤:
{"message":"SpikeArrest engaged","status":503}
這是因為尖峰抑制功能會平滑化指定時間單位內的通話次數。因此,在這種情況下,您可以在一分鐘內撥打 10 通電話,或每 6 秒撥打一通電話。
額外學分:新增配額外掛程式
按照設定尖峰抑制的相同模式,您可以新增其他外掛程式,例如配額外掛程式。與尖峰流量抑制功能一樣,配額外掛程式會隨附於每個 Edge Microgateway 安裝套件。配額會指定應用程式在指定時間間隔 (分鐘或小時) 內,可向 API 提交的要求訊息數量。
第 6 部分:在 Apigee Edge 上查看數據分析
我們現在有可正常運作的 Edge Microgateway 執行個體,讓我們看看它做了什麼! 根據預設,分析外掛程式模組會新增至 Edge Micro。這個模組會將 Edge Micro 的 Analytics 資料無聲推送至 Apigee Edge,供 Edge Analytics 系統使用。請參閱以下範例:
- 登入 Apigee Edge 上的機構。
- 選取「數據分析」>「Proxy 成效」。
- 在 Proxy 效能資訊主頁中,選取「edgemicro_hello proxy」。
- 圖表會顯示 Proxy 的流量模式相關資訊,例如總流量、平均回覆時間、平均目標回應時間等。
如要進一步瞭解 Edge Analytics 資訊主頁,請參閱 Edge 說明文件中的 Analytics 資訊主頁首頁。如要進一步瞭解外掛程式,請參閱「使用外掛程式」