設定及設定 Edge Microgateway

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

Edge Microgateway 3.3.x 版

總覽

完成本設定指南中的步驟後,您就能安裝完整的 Edge Microgateway 安裝作業,能夠處理 API 要求。您將透過 Edge Microgateway 對後端目標進行安全的 API 呼叫,藉此測試設定。您也會瞭解如何為 Microgateway 新增尖峰值逮捕外掛程式。

本指南分為以下幾個部分:

事前準備:安裝 Edge Microgateway

按照「安裝 Edge Microgateway」一文的說明操作。完成安裝後,即可依照本教學課程中的步驟進行。

第 1 部分:設定 Edge Microgateway

在這個部分,您將使用指令列介面 (CLI) 指令設定 Edge Microgateway,以便 與 Apigee Edge 通訊

Apigee Edge Cloud 設定步驟

請按照下列步驟,將 Edge Microgateway 與 Apigee Edge Cloud 搭配使用:

  1. 初始化 Edge Microgateway (只需執行這個步驟一次):
    edgemicro init
    
  2. 系統會將名為 default.yaml 的設定檔儲存在主目錄中名為 .edgemicro 的子目錄中。請立即檢查,確認這個檔案確實存在:
    ls ~/.edgemicro
    default.yaml
    

    注意: 在 Edge Microgateway 文件中,我們是利用波浪號 (~) 的主目錄,這是 UNIX 捷徑。如果您使用 Windows,但執行不支援波浪號的殼層,則必須在參照主目錄的指令中,將波浪號適用的環境變數替換成適當的環境變數。例如:%USERPROFILE%/.edgemicro

  3. 所有 CLI 指令都有說明函式。列印 edgemicro setup 指令的說明:
    edgemicro configure -h
    
  4. 執行下列指令,設定 Edge Microgateway:
    edgemicro configure -o [org] -e [env] -u [username] 
    

    在此情況下:

    • org: 您的 Edge 機構名稱 (您必須是機構組織管理員)。
    • env: 機構中的環境 (例如測試或正式版)。
    • username: 與 Apigee 帳戶相關聯的電子郵件地址。

      注意: setup 指令允許使用其他參數。如需完整清單,請參閱為 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 私有雲設定步驟

請按照下列步驟,將 Edge Microgateway 與 Apigee Private Cloud 搭配使用:

  1. 初始化 Edge Microgateway (只需執行這個步驟一次):
    edgemicro init
    
  2. 列印 edgemicro private 設定 指令的說明資訊。您可以透過這種方式列印任何 Edge Microgateway CLI 指令或指令選項的說明。
    edgemicro private configure -h
    
  3. 執行以下指令。這項服務需要取得您的 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 是設定指令先前傳回的金鑰。
  • secret 是設定指令先前傳回的金鑰。

範例

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 總覽」的「Edge Microgateway aware Proxy」(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_helloedgemicro_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 呼叫。

1. 在 Edge 中建立 Edge Microgateway 感知 API Proxy

  1. 在 Apigee Edge 上登入貴機構。
  2. 在側邊導覽選單中,依序選取「Develop」(開發) >「API Proxy」
  3. 按一下「+ Proxy」。叫用「建構 Proxy」精靈。
  4. 在第一個精靈頁面中,選取「反向 Proxy (最常用)」
  5. 按一下「Next」
  6. 在精靈的「詳細資料」頁面中,按照下列方式進行設定。請務必完整填寫精靈,如下所示:
    • Proxy 名稱:edgemicro_hello
    • Proxy 基本路徑:/hello
    • 現有 API:http://mocktarget.apigee.net/
  7. 按一下「Next」
  8. 在精靈的「安全性」頁面中,選取「通過 (無)」
  9. 按一下「Next」
  10. 在精靈的「Virtual Hosts」頁面中,接受預設值。
  11. 按一下「Next」
  12. 在精靈的「建立」頁面中檢查 Proxy 設定。確認已選取 test 環境。
  13. 按一下「Build and Deploy」

2. 建立 API 產品

  1. 在側邊導覽選單中,依序選取「Publish」(發布) >「API Products」(API 產品)
  2. 按一下 + API 產品
  3. 輸入下表中顯示的產品詳細資料:
    欄位 說明
    名稱 EdgeMicroTestProduct
    顯示名稱 Edge Microgatway 測試產品
    環境 測試
    存取權 公開
    金鑰核准類型 自動
  4. 在 API 資源部分,新增您剛建立的 API Proxy 和 edgemicro-auth Proxy:
    • edgemicro_hello
    • edgemicro-auth
  5. 點按「儲存」

3. 建立開發人員

基於本教學課程的目的,您可以使用任何現有的開發人員進行下一個步驟, 建立開發人員應用程式。不過,如有需要,請立即建立測試開發人員:

  1. 在側邊導覽選單中,依序選取「發布」>「開發人員」
  2. 按一下「+ 開發人員」
  3. 填寫對話方塊,建立測試開發人員。

4. 建立開發人員應用程式

您將使用這個應用程式的用戶端憑證,透過 Edge Microgateway 進行安全的 API 呼叫:

  1. 在側邊導覽選單中,依序選取「發布」>「應用程式」
  2. 按一下「+ 應用程式」。系統隨即會顯示「開發人員應用程式詳細資料」頁面。
  3. 按照下列方式填寫「開發人員應用程式」頁面:
    1. 名稱:EdgeMicroTestApp
    2. 顯示名稱:EdgeMicroTestApp
    3. 開發人員:如果您已建立測試開發人員,請選取該開發人員。或者,您也可以使用任何現有的開發人員進行本教學課程。
    4. 憑證:
      1. 選取「到期日」:[永不]
      2. 按一下「+ 產品」,然後選取「EdgeMicroTestProduct」(您剛建立的產品)
  4. 點按「儲存」
  5. 您就會返回「應用程式清單」頁面。
  6. 選取您剛建立的應用程式「EdgeMicroTestApp」EdgeMicroTestApp
  7. 按一下「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。

  1. 請確認您擁有之前執行 edgemicro setup 指令時傳回的金鑰。輸出內容看起來會像這樣:
    You need key and secret while starting edgemicro instance
    
    key: da4778e7c240a5d4585fc559eaba5083328828bc9f3a7f583e8b73e
    secret: 3aad7439708b4aeb38ee08e82189921ad00e6fc1ba8a8ae9f929ee2
    
  2. (選用) 列印 edgemicro start 指令的說明資訊。
    edgemicro start -h
    
  3. 如要啟動 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 和產品。輸出內容結束時,您應該會看到類似下方的內容:

    ...
    
    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
    
  4. 檢查微閘道狀態。在另一個終端機視窗中,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。這些 Proxy 皆以 edgemicro_ 前置字串命名。
  • 代表機構/環境中的所有 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

  1. 在另一個終端機視窗中,cd 連結至您啟動 Edge Microgateway 的相同目錄
  2. 輸入停止指令:
    edgemicro stop
    

第 4 部分:確保 Edge Microgateway

您可以使用 API 金鑰或存取權杖,保護透過 Edge Microgateway 發出的 API 呼叫。

透過 OAuth2 存取權杖確保 API 呼叫安全無虞

如果您想使用 OAuth2 存取權杖驗證 API 呼叫,請按照下列步驟操作:

1. 取得必要的金鑰

  1. 在 Edge UI 中,前往您先前建立的開發人員應用程式。應用程式名稱是 EdgeMicroTestApp。
  2. 在「開發人員應用程式」頁面上,顯示並複製用戶端金鑰和用戶端密鑰。這是在下一個步驟取得存取權杖的必要值。

2. 取得存取權杖

取得存取權杖的方法有兩種。我們會說明這兩種方法。

使用 CLI 取得存取權杖

第一個方法很方便,並遵循我們在教學課程中使用的模式。對於需要要求權杖的用戶端應用程式開發人員,第二種方法通常更實用。實際權杖端點會實作在設定 Edge Microgateway 時部署的 edgemicro-auth Proxy 中。

  1. (選用) 查看 token get 指令的說明:
    edgemicro token get -h
    
  2. 產生權杖,並將您在 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 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 權杖指令。以下是 curl 範例。只要在網址中替換貴機構和環境名稱,並在基本驗證標頭中傳遞以半形冒號分隔的「Consumer 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 Microgateway 中的設定

  1. 開啟 $HOME/.edgemicro/org-env-config.yaml 檔案。如果找不到這個檔案,請參閱「 Edge Microgateway 安裝位置」一文。
  2. 請務必將這些 OAuth 外掛程式屬性設為 false。預設為「false」,但建議您再次確認:
    oauth:
       allowNoAuthorization: false
       allowInvalidAuthorization: false
    
  3. 此外,在 org-env-config.yaml 檔案中,請務必將 OAuth 外掛程式加入 plugins:sequence 元素,如下所示:
    plugins:
       dir: ../plugins
       sequence:
       - oauth
    
  4. 如果您的檔案有任何變更,請將變更重新載入至執行中的 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.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 金鑰

  1. 在 Edge UI 中,前往您先前建立的開發人員應用程式。應用程式名稱是 EdgeMicroTestApp。
  2. 在開發人員應用程式頁面上,顯示用戶端金鑰並複製該金鑰。這個值是 API 金鑰。您將使用此金鑰進行驗證 API 呼叫。

2. 檢查 Edge Microgateway 中的設定

  1. 開啟檔案 $HOME/.edgemicro/org-env-config.yaml. 如果您找不到這個檔案,請參閱「Edge Microgateway 的安裝位置」。
  2. 請務必將這些 OAuth 外掛程式屬性設為 false。根據預設,這些值為 false,但您可以視需要再次確認:
    oauth:
       allowNoAuthorization: false
       allowInvalidAuthorization: false
    
  3. 此外,在 org-env-config.yaml 檔案中,請務必將 OAuth 外掛程式加入 plugins:sequence 元素,如下所示:
    plugins:
       dir: ../plugins
       sequence:
       - oauth
        
    
  4. 如果您的檔案有任何變更,請將變更重新載入至執行中的 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 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 擷取的用戶端金鑰值。

例如:


curl -i http://localhost:8000/hello/echo -H 'x-api-key: XsU1R4zGXz2ERxd0ilYQ5szwuljr5bB'

現在,您已擁有功能完善的且安全無虞的 Edge Microgateway。在教學課程的下一部分,我們會介紹可為 Edge Microgateway 新增功能的外掛程式。

第 5 部分:新增 Spike Arrest 外掛程式

在本節中,我們將為 Edge Microgateway 執行個體新增頻率限制功能,稱為「尖峰流量防範」。

什麼是外掛程式?

外掛程式是一種 Node.js 模組,可為 Edge Microgateway 新增功能。外掛程式模組遵循一致的模式,並儲存在 Edge Microgateway 已知的位置,讓 Microgateway 能夠自動尋找和載入這些模組。如要進一步瞭解外掛程式,請參閱「使用外掛程式」。

新增尖峰流量防範外掛程式

峰值逮捕外掛程式能防範流量遽增的情況。用於限制 Edge Microgateway 執行個體處理的要求數量。

在 Edge Microgateway 中,高峰採取攻擊被實作為外掛程式模組。如要啟用,您必須將此元件新增至 Edge Microgateway 設定檔。

  1. 如果找不到這個檔案,請開啟 $HOME/.edgemicro/org-env-config.yaml.Edge Microgateway 安裝位置
  2. 新增下列元素。您可以在檔案中的任何位置新增該檔案。
       spikearrest:
          timeUnit: minute   
          allow: 10   
          buffersize: 0   
    
  3. 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
    
  4. 儲存設定檔。
  5. 使用 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
    
  6. 請嘗試快速連續呼叫 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 系統使用。我來看看:

  1. 在 Apigee Edge 上登入貴機構。
  2. 依序選取「Analytics」>「Proxy Performance」
  3. 在 Proxy 效能資訊主頁中,選取「edgemicro_hello Proxy」
  4. 圖表會顯示 Proxy 流量模式的相關資訊,例如總流量、平均回覆時間、平均目標回應時間等等。

如要進一步瞭解 Edge Analytics 資訊主頁,請參閱 Edge 說明文件的「Analytics (分析) 資訊主頁」。如要進一步瞭解外掛程式,請參閱「使用外掛程式」一文