您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
總覽
本教學課程會逐步引導您完成讓 Edge Microgateway 執行個體運作並啟用的。
完成這裡的步驟後,您即完成完整設定,可以順利安裝 Edge Microgateway,能夠處理 API 要求。您將透過 Edge Microgateway 對後端目標進行安全的 API 呼叫,藉此測試設定。您也會瞭解如何為 Microgateway 新增尖峰值逮捕外掛程式。
本指南分為以下幾個部分:
- 事前準備: 安裝 Edge Microgateway
- 第 1 部分: 設定 Edge Microgateway
- 第 2 部分: 在 Apigee Edge 中建立實體
- 第 3 部分: Operate Edge Microgateway
- 第 4 部分: 安全 Edge Microgateway
- 第 5 部分: 新增 Spike Arrest 外掛程式
- 第 6 部分: 在 Apigee Edge 上查看數據分析資料
事前準備:安裝 Edge Microgateway
按照「安裝 Edge Microgateway」一文的說明操作。完成安裝後,即可依照本教學課程中的步驟進行。
安裝完成後,請前往下一節「第 1 部分:設定 Edge Microgateway」。
第 1 部分:設定 Edge Microgateway
在這個部分,您將使用指令列介面 (CLI) 指令設定 Edge Microgateway,以便與 Apigee Edge 通訊。如果您使用的是 Apigee Edge Cloud,請按照 Apigee Edge Cloud 設定步驟操作。如果您使用的是 Apigee 私有雲,請按照 Apigee Edge Private Cloud 適用的步驟操作。
Apigee Edge Cloud 設定步驟
請按照下列步驟,將 Edge Microgateway 與 Apigee Edge Cloud 搭配使用:
- 如果您尚未完成此操作,請初始化 Edge Microgateway (這項操作只需執行一次):
edgemicro init
- (選用) 列印 edgemicro configuration 指令的說明:
edgemicro configure -h
- 執行下列指令,設定 Edge Microgateway:
edgemicro configure -o [org] -e [env] -u [username]
在此情況下:
- 「
org
」是您的 Edge 機構名稱 (您必須是機構組織管理員)。 - 「
env
」是機構中的環境 (例如測試或正式版)。 username
是與您的 Apigee 帳戶相關聯的電子郵件地址。
- 「
範例
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 v6.1.0 current edgemicro version is 2.2.3-beta password: file doesn't exist, setting up Give me a minute or two... this can take a while... App edgemicro-auth deployed. creating vault 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/wwitman-test-config.yaml vault info: -----BEGIN CERTIFICATE----- MIICpDCCAYwCCQCaDpaTttaDANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDEwls b2NhbGhvc3QwHhcNMTYxAxMjA0NzIyWhcNMTYxMTAyMjA0NzIyWjAUMRIwEAYD VQQDEwlsb2NhbGhvcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDA YbtbsFe50GgBrI8QTih5yzxxxvCfdubGrLWmovwwCCFthno3u8lS54ekOL9jQu JTJsocJfNhZxvnXifDsCk5Muwx87Z/D0BYLw9ZhM8TMyA2MCkXgC6RfKT69IdJ jT3X+3D0s+apr3lACsDhgOfaeQfeHAm1SSwH/VemaJqdImGkQMtM8uscMDwG6k vBbCSNS+hh6ZH1m3tAkcKXqvj/E1hbrHNTWr+uiYFRByUzeo1I607daQD4Lxid il4Ng3hr3LC1gEzvobWgVyhQ2ovYB57T886H7dGghTnOUxLm2y/TwmQya+44SL JSsDwauArMF38cRKZZ7VAgMBAAEwDQYJKoZIhvcNAQELBQADEBAHwwu+gOn8Tq jKOYBTXtOX11HPMTxmyvZ/I57R4roE7Z/lXg/DXwbiFpFG2uamXNKq7yTDJH2i iiqdERZOGfv7TJMjRlxEnfVHoCV7UKguKq4zeeAEU2x55yFwpWNrarx0kMXRwI v3WgGfo2bimFQrCjDCNIkDKmYYt4SXIF5zUJmBWPCaK9aJoQb7ARXQO9s2zoOI XZ5bCUDbehQZ+6LyqC0hgDXiIZYy7R0j93yCbQgoHaHUMEprJEEjE24SHdsWBO nxGZxB20JLq5AHTm8lbZp7XtvbU0jVpxyrBo2/olFnmpvBVOq9eIp042IVD7nT J4rPejdK6C4= -----END CERTIFICATE----- The following credentials are required to start edge micro key: e88ec9d5da17cd88ca338d532b7c7a8c4f43ddd3da139d95955ab345af30352d secret: d7f64854eb6889d06b809dd7c161dba5eeba4a2657277fd819921bf992221a8f edgemicro configuration complete!
Apigee 私有雲設定步驟
請按照下列步驟,將 Edge Microgateway 與 Apigee Private Cloud 搭配使用:
- 列印 edgemicro private
設定 指令的說明資訊。您可以透過這種方式列印任何 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 vault creating vault adding private_key adding public_key configuring host http://192.168.52.106:9001 for region dc-1 saving configuration information to: /Users/ApigeeCorporation/.edgemicro/jdoe-test-config.yaml vault info: -----BEGIN CERTIFICATE----- MIICpDCCAYwCCQDpIvWlpaZJGDANBgkqhkiG9w0BAQFADAUMRIwEAYDVQQDEwls b2NhbGhvc3QwHhcNMTYwNDA3MTcxNTM5WhcNMTYwND4MTcxNTM5WjAUMRIwEAYD VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAUAA4IBDwAwggEKAoIBAQD3 OAQ+kf5FH0S0yuj05ITqUODuUJspBPberRMbqOZYHcFswhB0Yvg6JKWxKWBDP9o 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: a3f8f3dfe39158fc3c50b274f0af2234246e0d5f6ea4dd09389b645147151ba3 secret: 3e9904802fb3c0e8ca408128a11119cf13546d54dac30ace944c097a726a1263 edgemicro configuration complete!
驗證安裝
執行這個指令驗證安裝作業。如未回報任何錯誤,表示所有設定皆正確無誤,讓您順利啟動 Edge Microgateway。
edgemicro verify -o [org] -e [env] -k [key] -s [secret]
在此情況下:
- 「
org
」是您的 Edge 機構名稱 (您必須是機構組織管理員)。 - 「
env
」是機構中的環境 (例如測試或正式版)。 key
是設定指令先前傳回的金鑰。secret
是設定指令先前傳回的金鑰。
範例
edgemicro verify -o docs -e test -k 93b01fd21d86331459ae52f664ae9aeb13eb94767ce40a4f621d172cdfb7e8e6 -s c8c755be97cf56c21f8b0556d7132afbd03625bbd85dc34ebfefae4f23fbcb3c
關於設定
到目前為止完成的所有設定都可讓 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 總覽中的「Edge Microgateway 感知 Proxy 的注意事項」。
Edge 機構管理員會想瞭解,為 Edge 產品新增 Edge Microgateway 感知 Proxy,就像任何其他 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 Microgateway 的同一個 Edge 機構和環境中,擷取一份微閘道感知 Proxy 清單。
對於每個微閘道感知 Proxy,Edge Microgatway 會擷取 Proxy 的目標網址及其基本路徑。也能使用微型閘道感知 Proxy,將 Edge Microgateway 產生的分析資料與 Edge 平台上的 Proxy 建立關聯。當 Microgateway 處理 API 呼叫時,會以非同步方式將數據分析資料推送至 Edge。數據分析資料會顯示在 Edge Analytics UI 中,microgateway 感知 Proxy 名稱的下方(與其他 Proxy 相同)。
- 產品、開發人員和開發人員應用程式:Edge Microgateway 會運用產品、開發人員和開發人員應用程式來啟用 OAuth2 存取權杖或 API 金鑰安全性。Edge Microgateway 啟動後,會從 Apigee Edge 機構下載所有產品設定。這項資訊會使用這項資訊來驗證透過 Edge Microgateway 以 API 金鑰或 OAuth2 存取權杖發出的 API 呼叫。
瞭解詳情:另請參閱 Edge Microgateway 總覽的「Edge Microgateway aware Proxy」(Edge Microgateway 感知 Proxy) 的注意事項。
1. 在 Edge 中建立 Edge Microgateway 感知 API Proxy
- 在 Apigee Edge 上登入貴機構。
- 按一下「切換至傳統版」,前往 Edge Classic UI。
- 在頂端選單中選取「API」>「API Proxy」。
- 在「API Proxy」頁面中,按一下「+ API Proxy」。
- 在「建構 Proxy 精靈」中,選取「反向 Proxy (最常用)」。
- 點選「下一步」。
- 在精靈的「詳細資料」頁面中,按照下列方式進行設定。請務必完整填寫精靈,如下所示:
- Proxy 名稱:edgemicro_hello
- Proxy 基本路徑:/hello
- 現有 API:http://mocktarget.apigee.net/
- 點選「下一步」。
- 在精靈的「安全性」頁面中,選取「通過 (無)」。
- 點選「下一步」。
- 在精靈的「Virtual Hosts」頁面中,接受預設值。
- 點選「下一步」。
- 在精靈的「建立」頁面中檢查 Proxy 設定。確認已選取 test 環境。
- 按一下「Build and Deploy」。
2. 建立產品
建立含有兩個 Proxy 的產品:
- 您的微閘道感知 Proxy:edgemicro_hello
- 由 Edge Microgateway 安裝的驗證 Proxy:edgemicro-auth。
- 在 Edge UI (傳統版) 中,依序前往「Publish」(發布) >「Product」(產品)。
- 在「產品」頁面中,按一下「+ 產品」。按照下方格式填寫「產品詳細資料」頁面:
- 名稱:EdgeMicroTestProduct
- 顯示名稱:EdgeMicroTestProduct
- Environment (環境):測試和正式版
- 存取權:公開
- 金鑰核准類型:自動
-
資源:
- API Proxy:選取「edgemicro_hello」
- 修訂版本:1
- 資源路徑: /**
- 按一下「Import Resource」。
- 在「資源」中,按一下「+API Proxy」
- 選取「edgemicro-auth」
- 點按「儲存」。
3. (選用) 建立測試開發人員
基於本教學課程的目的,您可以使用任何現有的開發人員進行下一個步驟, 建立開發人員應用程式。不過,如有需要,請立即建立測試開發人員:
- 依序前往「發布」>「開發人員」。
- 在「產品」頁面中,按一下「+ 開發人員」。
- 填寫對話方塊,建立測試開發人員。
4. 建立開發人員應用程式
您將使用這個應用程式的用戶端憑證,透過 Edge Microgateway 進行安全的 API 呼叫:
- 依序前往「發布」>「開發人員應用程式」。
- 在「開發人員應用程式」頁面,按一下「+ 開發人員應用程式」。
- 按照下列方式填寫「開發人員應用程式」頁面:
- 名稱:EdgeMicroTestApp
- 顯示名稱:EdgeMicroTestApp
- 開發人員:如果您已建立測試開發人員,請選取該開發人員。或者,您也可以使用任何現有的開發人員進行本教學課程。
-
憑證:
- 選取「到期日」:[永不]。
- 按一下「+ 產品」,然後選取「EdgeMicroTestProduct」 (您剛剛建立的產品)
- 點按「儲存」。
- 您會回到「開發人員應用程式清單」頁面。
- 選取您剛建立的應用程式「EdgeMicroTestApp」EdgeMicroTestApp。
- 按一下「Consumer Key」和「Consumer Secret」(消費者金鑰) 旁邊的「Show」。
第 3 部分:Operate Edge Microgateway
現在,您已在 Edge 上設定了至少一個 Edge Microgateway 感知 Proxy,可以啟動 Edge Microgateway。Edge Microgateway HTTP 伺服器會在您的本機電腦上執行,讓您直接向該伺服器發出 API 呼叫。
1. 啟動 Edge Microgateway
使用 edgemicro start 指令啟動 Edge Microgateway。
- 請確認您擁有之前執行 edgemicro setup 指令時傳回的金鑰。該輸出內容看起來會像這樣:
You need key and secret while starting edgemicro instance key: da4778e7c240a5d4585fc559eaba5083328828ac9f3a7f583e8b73e secret: 3aad7439708b4aeb38ee08e87189921ad00e6fc1ba8a8ae9f929ee2
- (選用) 列印
edgemicro start
指令的說明資訊。
edgemicro start -h
- 如要啟動 Edge Microgateway,請執行下列指令:
edgemicro start -o [org] -e [env] -k [key] -s [secret]
在此情況下:
- 「
org
」是您的 Edge 機構名稱 (您必須是機構組織管理員)。 - 「
env
」是機構中的環境 (例如測試或正式版)。 key
是設定指令先前傳回的金鑰。secret
是設定指令先前傳回的金鑰。
範例
edgemicro start -o docs -e test -k 701e70e718ce6dc1880616b3c39177d64a88754d615c7a4e1f78b6181d000723 -s 05c14356e42d136b83dd135cf8a18531ff52d7299134677e30ef4e34ab0cc824
輸出內容
啟動指令會從 Apigee Edge 擷取許多設定資訊 (捲動至終端機視窗)。輸出內容會顯示一份清單,當中包含已發現的微閘道感知 Proxy 和產品。輸出內容結束時,您應該會看到類似下方的內容:
... PROCESS PID : 9757 installed plugin from analytics installed plugin from oauth eb725020-a2b0-11e6-8a52-6de156e3a6e2 edge micro listening on port 8000 installed plugin from analytics installed plugin from oauth installed plugin from analytics installed plugin from oauth installed plugin from analytics installed plugin from oauth eb77ce60-a2b0-11e6-8a88-b96278c0c198 edge micro listening on port 8000 eb78b8c0-a2b0-11e6-bf36-717b986c91fe edge micro listening on port 8000 eb77f570-a2b0-11e6-883e-472b9104351e edge micro listening on port 8000
- 「
為什麼會這樣?
查看您執行 edgemicro config 指令的終端機。向上瀏覽標準輸出內容,看到指令會從 Apigee Edge 擷取 Edge Microgateway 設定資訊的酬載。這類資訊包括:
- 我們先前在 Apigee 保管箱中建立及儲存的公開金鑰。
- 機構/環境中所有 Edge Microgateway 感知 Proxy 的 JSON 表示法。這些 Proxy 皆以 edgemicro_ 前置字串命名。
- 機構/環境中所有 API 產品的 JSON 表示法。
透過這項資訊,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 中,前往您先前建立的開發人員應用程式,如第 2 部分:在 Apigee Edge 上建立實體中所述。應用程式名稱是 EdgeMicroTestApp。
- 在「開發人員應用程式」頁面上,顯示用戶端金鑰和用戶端密鑰,並複製這些項目。在下一個步驟中,必須用到這些值才能取得存取權杖。
2.取得存取權杖
取得存取權杖的方法有兩種。我們會說明這兩種方法。
使用 CLI 取得存取權杖
第一個方法很方便,並遵循我們在教學課程中所用的模式。對於需要要求權杖的用戶端應用程式開發人員,第二種方法通常更實用。實際權杖端點會實作在設定 Edge Microgateway 時部署的 edgemicro-auth Proxy 中。
- (選用) 查看 token get 指令的說明:
edgemicro token get -h
- 產生權杖,並將您在 Apigee Edge 上的 -i 和 -s 參數中建立的開發人員金鑰值換成您的用戶端金鑰和用戶端密鑰值:
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 v4.4.4 { token: 'eyJ0eXAiOiJKV1QiLCJhbGciSUzI1NiJ9.eyJhcHBsaWNhdGl vbl9uYW1lIjoiNWNiMGY0tOWMzOC00YmJjLWIzNzEtZGMxZTQzOGYxZGMxI iwiY2xpZW50X2lkIjoiNVVdBWEdvSU9lbzYwYWV3OTRQN0c1TUFaRTNhSnA iLCJzY29wZXMiOltdLCJhcGlfcHJvjdF9saXN0IjpbIkVkZ2VNaWNyb1Rlc 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 範例。只要在網址中替換您的機構和環境名稱,並在基本驗證標頭中傳遞以半形冒號分隔的「Consumer Key:Consumer Secret」值即可:
curl -i -X POST --user [client_id]:[client_secret] "http://[org]-[env].apigee.net/edgemicro-auth/token" -d '{"grant_type": "client_credentials"}' -H "Content-Type: application/json"
在此情況下:
- 「
org
」是您的 Edge 機構名稱 (您必須是機構組織管理員)。 - 「
env
」是機構中的環境 (例如測試或正式版)。 client_id
是您先前在開發人員應用程式中建立的消費者 ID。client_secret
是您先前建立的開發人員應用程式中的用戶端密鑰。
輸出 (範例)
無論您是使用 edgemicro 權杖 CLI 指令或透過 curl 呼叫端點,這個指令都會傳回可用於進行用戶端呼叫的已簽署存取權杖。範例如下:
MIICpDCCAYwCCQDpIvWlpaZJGDANBgkqhkiG9w0BAQFADAUMRIwEAYDVQQDEwls b2NhbGhvc3QwHhcNMTYwNDA3MTcxNTM5WhcNMTYwND4MTcxNTM5WjAUMRIwEAYD VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAUAA4IBDwAwggEKAoIBAQD3 OAQ+kf5FH0S0yuj05ITqUODuUJspBPberRMbqOZYHcFswhB0Yvg6JKWxKWBDP9o 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=
3.檢查 Edge Microgateway 中的設定
- 開啟 ~
/.edgemicro/org-env-config.yaml.
另請參閱安裝 Edge Microgateway 中的「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
是設定指令先前傳回的金鑰。secret
是設定指令先前傳回的金鑰。
範例
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
- 「
4.安全地呼叫 API
有了存取權杖,您現在可以安全地進行 API 呼叫。例如:
curl -i -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhcHBsaWNhdGlvbl 9uYW1lIjoiYmU2YmZjYjAtMWQ0Ni00Y2IxLWFiNGQtZTMxNzRlNTAyMDZkIiwiY2xpZW50X2lkIjoiOGxTTTVIRHdyM VhIT1ZwbmhURExhYW9FVG5STVpwWk0iLCJzY29wZXMiOltdLCJhcGlfcHJvZHVjdF9saXN0IjpbIk1pY3JvZ2F0ZXdh eVRlQcm9kdWN0Il0sImCI6MTQzNTM0NzY5MiwiZXhwIjoxNDM1MzQ5NDkxfQ.PN30Y6uK1W1f2ONPEsBDB_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 中,前往您先前建立的開發人員應用程式,如第 2 部分:在 Apigee Edge 上建立實體中所述。應用程式名稱是 EdgeMicroTestApp。
- 在開發人員應用程式頁面上,顯示用戶端金鑰並複製該金鑰。這個值是 API 金鑰。您將使用此金鑰進行驗證 API 呼叫。
2.檢查 Edge Microgateway 中的設定
- 開啟 ~
/.edgemicro/org-env-config.yaml.
另請參閱安裝 Edge Microgateway 中的「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
是設定指令先前傳回的金鑰。secret
是設定指令先前傳回的金鑰。
範例
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
- 「
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 擷取的用戶端金鑰值。
例如:
curl -i http://localhost:8000/hello/echo -H 'x-api-key: XsU1R4zGXz2ERxa0ilYQ5szwuljr5bB'
現在,您已擁有功能完善的且安全無虞的 Edge Microgateway。在教學課程的下一部分,我們會介紹可為 Edge Microgateway 新增功能的外掛程式。
第 5 部分:新增 Spike Arrest 外掛程式
在本節中,我們將為 Edge Microgateway 執行個體新增頻率限制功能,稱為「尖峰流量防範」。
什麼是外掛程式?
外掛程式是一種 Node.js 模組,可為 Edge Microgateway 新增功能。外掛程式模組遵循一致的模式,並儲存在 Edge Microgateway 已知的位置,讓 Microgateway 能夠自動尋找和載入這些模組。如要進一步瞭解外掛程式,請參閱「使用外掛程式」。
新增尖峰值逮捕外掛程式
尖峰流量是可以抵禦尖峰流量的威脅。用於限制 Edge Microgateway 執行個體處理的要求數量。
在 Edge Microgateway 中,高峰採取攻擊被實作為外掛程式模組。如要啟用,您必須將此元件新增至 Edge Microgateway 設定檔。
- 開啟 ~
/.edgemicro/org-env-config.yaml.
另請參閱安裝 Edge Microgateway 中的「Edge Microgateway 安裝位置」一節。 - 新增下列元素。您可以在檔案中的任何位置新增該檔案。
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: - spikearrest - oauth
- 儲存設定檔。
- 使用 reload 指令重新載入 Edge Microgateway。您必須在啟動 Edge Microgateway 的目錄中執行這個指令。
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
在此情況下:
- 「
org
」是您的 Edge 機構名稱 (您必須是機構組織管理員)。 - 「
env
」是機構中的環境 (例如測試或正式版)。 key
是設定指令先前傳回的金鑰。secret
是設定指令先前傳回的金鑰。
範例
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 推送至 Apigee 邊緣,並由 Edge Analytics 系統使用。我來看看:
- 在 Apigee Edge 上登入貴機構。
- 依序選取「Analytics」>「Proxy Performance」。
- 在 Proxy 效能資訊主頁中,選取 edgemicro_hello Proxy。
- 圖表會顯示 Proxy 流量模式的相關資訊,例如總流量、平均回應時間、平均目標回應時間等等。
如要進一步瞭解 Edge Analytics 資訊主頁,請參閱 Edge 說明文件的「Analytics (分析) 資訊主頁」。如要進一步瞭解外掛程式,請參閱「使用外掛程式」一文