您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。
Edge Microgate 3.2.x 版本
總覽
完成本設定指南中的步驟之後,您就能完成設定,能夠順利處理邊緣 API 要求。測試會透過 Edge Microgate 傳送至後端目標,以測試設定。您也學到如何在 Microgate 伺服器中新增尖峰流量防範外掛程式。
本指南分為以下幾個部分:
- 必備條件: 安裝 Edge Microgate
- 第 1 部分: 設定 Edge Microgate
- 第 2 部分: 在 Apigee Edge 中建立實體
- 第 3 部分: Operate Edge Microgate
- 第 4 部分: Secure Edge Microgate
- 第 5 部分: 新增 Spike rest 外掛程式
- 第 6 部分: 查看 Apigee Edge 中的 Analytics (分析) 資料
必備條件:安裝 Edge Microgate
請按照安裝 Edge Microgate 中的指示操作。安裝完成後,您就可以按照這個教學課程的步驟操作。
第 1 部分:設定 Edge Microgate
在本節中,您將使用指令列介面 (CLI) 指令將 Edge Micro Gate 設為 與 Apigee Edge 進行通訊。
- 如果您使用的是 Apigee Edge Cloud,請按照 Apigee Edge Cloud 設定步驟操作。
- 如果您位於 Apigee Private Cloud,請按照 Apigee Edge 私有雲步驟操作。
Apigee Edge Cloud 設定步驟
如要將 Apigee Edge 與 Apigee Edge Cloud 搭配使用,請按照下列步驟操作:
- 初始化 Edge Microgate (只需執行這個步驟一次):
edgemicro init
- 名為
default.yaml
的設定檔設置於子目錄.edgemicro
的子目錄中。請檢查並確認這個檔案確實存在:ls ~/.edgemicro default.yaml
注意: 在 Edge Microgate 文件中,「首頁」會參照帶有波浪號 (
~
) 的主目錄,也就是 UNIX 的捷徑。如果您使用 Windows 裝置,而且您執行的殼層不支援波浪狀,則您必須參照參照主目錄的指令,為適當的耳碼取代適當的環境變數。例如:%USERPROFILE%/.edgemicro
。 - 所有 CLI 指令都有說明函式。列印 edgemicro configuration 指令的說明:
edgemicro configure -h
- 執行下列指令來設定 Edge Micro 閘道:
edgemicro configure -o [org] -e [env] -u [username]
在此情況下:
org:
您的 Edge 機構名稱 (您必須是機構組織管理員)。env:
貴機構中的環境 (例如測試或實際工作環境)。username:
與您 Apigee 帳戶相關聯的電子郵件地址。
注意: setup 指令支援其他參數。如需完整清單,請參閱為 Apigee Edge Cloud 設定 Edge Microgate。
範例
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 私有雲設定步驟
如要將 Apigee Edge 和 Apigee 私有雲搭配使用,請按照下列步驟操作:
- 初始化 Edge Microgate (只需執行這個步驟一次):
edgemicro init
- 列印 edgemicro private configure 指令的說明資訊。您可以透過任何適用的 Microgate 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 Microgate。
edgemicro verify -o [org] -e [env] -k [key] -s [secret]
在此情況下:
org
是您的 Edge 機構名稱 (您必須是機構管理員)。env
是貴機構中的環境 (例如測試或實際工作環境)。key
是先前透過指令傳回的金鑰。secret
是先前透過指令傳回的金鑰。
範例
edgemicro verify -o docs -e test -k 93b01fd21d86331459ae52f624ae9aeb13eb94767ce40a4f621d172cdfb7e8e6 -s c8c755be97cf56c21f8b0156d7132afbd03625bbd85dc34ebfefae4f23fbcb3c
關於設定
目前為止完成的所有設定都能讓 Edge Micro Gate 自行啟動 Apigee Edge。啟動程序成功後,Edge Microgate 會從 Apigee Edge 擷取其他設定資訊的酬載。
這項設定的用途為何?本教學課程的下一部分,當 Edge Micro Gate 啟動時,必須取得 Apigee Edge 適用的特殊 Edge Microgate-aware API Proxy 清單。在這個教學課程的下一個部分,您將建立一個 Micro Gate-aware Proxy。Edge Microgate 會限制用戶端只呼叫這些 Microgate-aware API Proxy 前端的 API,且用戶端必須預設為 (每次呼叫) 為每次呼叫提供有效的安全性權杖。如要進一步瞭解這些 Proxy,請參閱「邊緣微型閘道總覽」中的「有關 Edge Microgate 感知 Proxy 須知」一節。
身為 Edge 機構管理員,您可以將 Edge Micro 閘道感知 Proxy 加入 Edge 產品,就像任何其他 Proxy 一樣。透過使用產品和開發人員應用程式,您可以產生用戶端專屬安全性權杖,藉此控管透過 Edge Microgate 呼叫的 API 的存取權。再次提醒,使用不同模式處理 API 與 Apigee Edge 上的任何 API Proxy、產品和開發人員應用程式。如果想閱讀產品相關資訊,請先參閱 Edge 說明文件中的什麼是 API 產品?。
我們會逐步說明如何建立 Edge Microgate 感知 Proxy,接著會啟動 Edge Microgate 並測試設定。
第 2 部分:在 Apigee Edge 中建立實體
在本節中,您將在 Edge 中建立下列實體:
-
微型閘道感知 Proxy:這個特殊 Proxy 會在 Edge Mix 啟動時偵測。以 Micro 閘道感知 Proxy 的命名慣例如下:名稱必須使用
edgemicro_
,例如edgemicro_hello
或edgemicro_userinfo
。Edge Edge 啟動時,系統會從 Edge 擷取您在相同 Edge 機構和您在啟動 Edge Micro Gate 時指定的環境,擷取的微服務感知 Proxy 清單。
針對每個微服務閘道感知 Proxy,Edge Microgatway 會擷取 Proxy 的目標網址及其基礎路徑。以 Micro 閘道感知 Proxy 來說,您也可以輕鬆地將 Edge Microgate 產生的數據分析資料與 Edge 平台上的 Proxy 建立關聯。當 Micro Gate 處理 API 呼叫時,非同步會以非同步方式將數據分析資料推送至邊緣。Analytics (分析) 資料會顯示在 Edge Analytics (分析) 使用者介面的 micro 閘道感知 Proxy 名稱下方,就像任何其他 Proxy 一樣。
- 產品、開發人員和開發人員應用程式:Edge Microgate 會使用產品、開發人員和開發人員應用程式來啟用 OAuth2 存取權杖或 API 金鑰安全性。Edge Edge 啟動後,即可下載 Apigee Edge 機構中的所有產品設定。這項資訊會使用這項資訊,驗證使用 Edge Microgate 搭配 API 金鑰或 OAuth2 存取權杖發出的 API 呼叫。
1. 在 Edge 上建立 Edge Microgate 感知 API Proxy
- 透過 Apigee Edge 登入貴機構。
- 在側邊導覽選單中,選取「開發」>「API Proxy」。
- 按一下「+ Proxy」。系統會叫用「Build Proxy」精靈。
- 在第一個精靈頁面中,選取 [Reverse Proxy (最常見)]。
- 點選「下一步」。
- 在精靈的「Details」(詳細資料) 頁面中,按照下列方式設定。請務必在精靈中填入完整內容,如下所示:
- Proxy 名稱:edgemicro_hello
- Proxy 基礎路徑:/hello
- 現有 API:http://mocktarget.apigee.net/
- 點選「下一步」。
- 在精靈的「安全性」頁面中,選取「傳遞 (無)」。
- 點選「下一步」。
- 在精靈的「虛擬主機」頁面中接受預設值。
- 點選「下一步」。
- 在精靈的「Build」頁面中檢查 Proxy 設定。確認已選取「test」環境。
- 按一下「Build and Deploy」。
2. 建立產品
- 在側邊導覽選單中,依序選取「Publish」>「API Products」。
- 按一下「+ API 產品」。「產品詳細資料」頁面隨即顯示。
- 填寫「產品詳細資料」頁面,步驟如下:
- 名稱: EdgeMicroTestProduct
- Display Name: EdgeMicroTestProduct
- Environment (環境):測試和實際工作環境
- 存取權:公開
- 金鑰核准類型:自動
- 在「資源」中,按一下「+API Proxy」。
- 選取 edgemicro-auth
- 再按一下「+API Proxy」。
- 選取 edgemicro_hello
- 選取 [+ 自訂資源]。
- 輸入 /**
- 再次選取「+ 自訂資源」。
- 輸入 /
- 按一下「儲存」。
3. (選用) 建立測試開發人員
為達到這個教學課程的目的,您可以在下一個步驟建立任何現有的開發人員,以便建立開發人員應用程式。不過,您也可以立即建立測試開發人員:
- 在側邊導覽選單中,依序選取「Publish」>「Developer」。
- 按一下「+ 開發人員」。
- 填寫對話方塊即可建立測試開發人員。
4. 建立開發人員應用程式
您將使用這個應用程式的用戶端憑證,透過 Edge Microgate 發出安全的 API 呼叫:
- 在側邊導覽選單中,依序選取「發布」>「應用程式」。
- 按一下「+ App」,畫面上會顯示開發人員應用程式詳細資料頁面。
- 填寫「開發人員應用程式」頁面,步驟如下:
- Name (名稱): EdgeMicroTestApp
- Display Name: EdgeMicroTestApp
- 開發人員:如果您已建立測試開發人員,請選取該開發人員。或者,您也可以將任何現有的開發人員用於本教學課程。
-
憑證:
- 選取「到期:永不」。
- 點選「+ Product」,然後選取「EdgeMicroTestProduct」(您剛建立的產品)
- 按一下「儲存」。
- 即可返回「應用程式清單」頁面。
- 選取您剛建立的應用程式 EdgeMicroTestApp。
- 按一下「Consumer Key」與「Consumer Secret」旁邊的「Show」。
第 3 部分:操作邊緣微服務
您已經設定 Edge Edge 的微服務,且在 Edge Edge 上至少設有一個 Edge Microgate 感知 Proxy,現在可開始啟動 Edge Microgate。Edge Microgate HTTP 伺服器會在本機電腦上執行,而您將直接對該伺服器發出 API 呼叫。
1. 啟動 Edge Micro 閘道
使用 edgemicro start 指令啟動 Edge Microgate。
- 執行 edgemicro configure 指令時,請務必傳回先前傳回的金鑰。輸出內容看起來會像這樣:
You need key and secret while starting edgemicro instance key: da4778e7c240a5d4585fc559eaba5083328828bc9f3a7f583e8b73e secret: 3aad7439708b4aeb38ee08e82189921ad00e6fc1ba8a8ae9f929ee2
- (選用) 列印
edgemicro start
指令的說明資訊。
edgemicro start -h
- 若要啟動 Edge Microgate,請執行下列指令:
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
輸出內容
start 指令會從 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
- 檢查微型閘道的狀態。在另一個終端機視窗中,插入您啟動 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 下載並快取邊緣邊緣設定的酬載資訊。這類資訊包括:
- 我們先前建立並儲存在加密金鑰鍵/值對應 (KVM) 的公開金鑰。
- 代表機構/環境中的所有 Edge Micro 閘道感知 Proxy。所有前置字串為 edgemicro_ 的 Proxy。
- 此機構/環境中的所有 API 產品表示法。
有了這項資訊,Ecro Microgate 就會知道可以處理哪些 Proxy 和 Proxy 路徑。使用產品資訊來強制執行安全性,這和 Apigee Edge 上的任何 API Proxy 完全相同,因為開發人員應用程式金鑰與產品之間有關聯。我們會盡快說明保護 Edge Micro Gate 的步驟。
2. 測試邊緣微型閘道
在執行 Edge Microgate 時,您可以呼叫 Proxy。啟動 Edge Microgate 時,系統會從 Edge 下載 edgemicro_hello Proxy 的設定。請記住,Proxy 基本路徑為 /hello。
如要測試邊緣微型閘道,請先從基本路徑開始,並新增資源路徑 /echo。請注意,基本路徑 (包括任何查詢參數) 之後的所有內容只會直接傳遞至後端目標:
curl -i http://localhost:8000/hello/echo {"error":"missing_authorization","error_description":"Missing Authorization header"}
之所以發生這個錯誤,是因為您在要求中未傳送有效的 API 金鑰或存取權杖。根據預設,Edge Microgate 需要 API 金鑰或每個 API 呼叫的存取權杖。在教學課程的下一個步驟中,我們會妥善保護這個 API,並說明如何取得有效的存取權杖,並與要求一併納入。
4. 停用 Edge Micro 閘道
- 在另一個終端機視窗中,
cd
啟動用來啟動 Edge Microgate 的相同目錄。 - 輸入停止指令:
edgemicro stop
第 4 章:安全邊緣微服務
您可以使用 API 金鑰或存取權杖,保護透過 Edge Microgate 發出的 API 呼叫。
使用 OAuth2 存取權杖確保 API 呼叫安全
如要使用 OAuth2 存取權杖驗證 API 呼叫,請按照下列步驟操作:
1. 取得必要的金鑰
- 在 Edge UI 中,前往您先前建立的開發人員應用程式。應用程式名稱為 EdgeMicroTestApp。
- 在「Developer App」頁面中,顯示「Consumer Key」和「Consumer Secret」並複製。 您必須使用這些值,才能在下一個步驟中取得存取權杖。
2. 取得存取權杖
取得存取權杖的方法有兩種。我們將會介紹這兩種方法。
使用 CLI 取得存取權杖
第一個方法相當方便,並採用我們在教學課程中使用的模式。對於需要要求權杖的用戶端應用程式開發人員而言,第二種方法通常更為實用。實際權杖端點是在設定 Edge Micro 閘道時部署的 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 範例。只要將網址中的機構和環境名稱替換,然後在「基本驗證」標頭中傳送以半形冒號分隔的「Key Key:Consumer Secret」值即可:
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 權杖 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 Micro Gate 中的設定
- 開啟
$HOME/.edgemicro/org-env-config.yaml
檔案。如果找不到這個檔案,請參閱 哪裡可以安裝 Edge Micro Gate? - 確認這些 OAuth 外掛程式屬性已設為 false。預設值為 false,但還是建議您仔細檢查:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false
- 此外,請確認
org-env-config.yaml
檔案中的 OAuth 外掛程式已新增至plugins:sequence
元素中,如下所示:plugins: dir: ../plugins sequence: - oauth
- 如果您對檔案進行任何變更,請將變更重新載入執行中的 Edge Microgate 執行個體。這個指令會重新設定 Edge Micro Gate,而且無須停機:
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.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。
- 在「Developer app」(開發人員應用程式) 頁面中,顯示並複製「Consumer Key」(消費者金鑰)。這個值是 API 金鑰。您將使用此金鑰發出經過驗證的 API 呼叫。
2. 檢查 Edge Micro Gate 中的設定
- 如果找不到這個檔案,請開啟檔案
$HOME/.edgemicro/org-env-config.yaml.
請參閱「哪個位置有 Edge Microgate 安裝位置」一節。 - 確認這些 OAuth 外掛程式屬性已設為 false。預設值為 false,但你可以視需要仔細檢查:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false
- 此外,請確認
org-env-config.yaml
檔案中的 OAuth 外掛程式已新增至plugins:sequence
元素中,如下所示:plugins: dir: ../plugins sequence: - oauth
- 如果您對檔案進行任何變更,請將變更重新載入執行中的 Edge Microgate 執行個體。這個指令會重新設定 Edge Micro Gate,而且無須停機:
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
在此情況下:
org
是您的 Edge 機構名稱 (您必須是機構管理員)。env
是貴機構中的環境 (例如測試或實際工作環境)。key
是先前透過指令傳回的金鑰。secret
是先前透過指令傳回的金鑰。
範例
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c30177d64a88754d615c74e1f78b6181d
3. 使用 API 金鑰安全地呼叫 API
請使用 x-api-key 標頭呼叫 API,如下所示。您從開發人員應用程式複製的消費者金鑰值是 API 金鑰。根據預設,Edge Micro Gate 預計會透過名為 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 Microgate 新增功能的外掛程式。
第 5 章:新增 Spike Arrest 外掛程式
在本節中,我們會為邊緣 Microgate 執行個體新增稱為「暴增」的頻率限制功能。
什麼是外掛程式?
外掛程式是一種 Node.js 模組,可為 Edge Microgate 新增功能。外掛程式模組採用一致的模式,並儲存在 Edge Edge 閘道的儲存位置,方便微型閘道自動探索及載入這些模組。如要進一步瞭解外掛程式,請參閱使用外掛程式。
新增流量激增的外掛程式
尖峰流量防範外掛程式可防止流量高峰。這會限制 Edge Microgate 執行個體處理的要求數量。
在 Edge Microgate 中,外掛程式會以峰值型式的形式實作。如要啟用這項功能,您必須將其新增至 Edge Microgate 設定檔。
- 如果找不到這個檔案,請開啟檔案
$HOME/.edgemicro/org-env-config.yaml.
「安裝 Edge Microgate 在哪裡?」。 - 新增下列元素。您可以在檔案中的任何位置新增這個檔案。
spikearrest: timeUnit: minute allow: 10 buffersize: 0
- 將
spikearrest
新增至edgemicro:sequence
元素,如下所示。序列設定屬性會指示 Edge Microgate 執行外掛程式模組的順序。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 Microgate。您必須從啟動 Edge Microgate 的目錄執行這個指令。
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
在此情況下:
org
是您的 Edge 機構名稱 (您必須是機構管理員)。env
是貴機構中的環境 (例如測試或實際工作環境)。key
是先前透過指令傳回的金鑰。secret
是先前透過指令傳回的金鑰。
範例
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
- 可以快速連續呼叫 API。第二次呼叫後,邊緣 Microgate 會傳回下列錯誤:
{"message":"SpikeArrest engaged","status":503}
這是因為尖峰時段的清除次數會使特定時間範圍內的呼叫次數能夠順暢。因此,您一次可以在一分鐘內呼叫 10 次,每 6 秒各撥打 1 次。
額外抵免額:新增配額外掛程式
您可以按照用來設定尖峰流量模式的模式,新增其他外掛程式,例如配額外掛程式。與尖峰休息時間一樣,附加於每一個 Edge Micro Gate 時都隨附配額外掛程式。配額會指定應用程式在指定時間間隔 (分鐘或小時) 內向 API 提交的要求訊息數量。
第 6 章:查看 Apigee Edge 中的數據分析
我們現在已具備功能可正常運作的 Edge Microgate 執行個體,快來看看如何完成任務! 根據預設,數據分析外掛程式模組會新增至 Edge Micro。這個模組會以私密方式,將分析資料從 Edge Micro 推送至 Apigee 邊緣,並在 Edge Analytics 系統使用這些資料。我們來看看:
- 透過 Apigee Edge 登入貴機構。
- 選取「Analytics」(分析) >「Proxy 效能」。
- 在 Proxy 效能資訊主頁中,選取 edgemicro_hello Proxy。
- 圖表會顯示 Proxy 的流量模式相關資訊,例如總流量、平均回應時間、平均目標回應時間等。
如要進一步瞭解 Edge Analytics 資訊主頁,請參閱 Edge 說明文件的 Analytics (分析) 資訊主頁。如要進一步瞭解外掛程式,請參閱使用外掛程式。