設定及設定 Edge Microgateway

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

Edge Microgateway 2.3.x 版

總覽

本教學課程會逐步引導您完成讓 Edge Microgateway 執行個體運作並啟用的。

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

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

事前準備:安裝 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 搭配使用:

  1. 如果您尚未完成此操作,請初始化 Edge Microgateway (這項操作只需執行一次):
    edgemicro init
    
  2. (選用) 列印 edgemicro configuration 指令的說明:
    edgemicro configure -h
    
  3. 執行下列指令,設定 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 搭配使用:

  1. 列印 edgemicro private 設定 指令的說明資訊。您可以透過這種方式列印任何 Edge Microgateway CLI 指令或指令選項的說明。
    edgemicro private configure -h
    
  2. 執行以下指令。這項服務需要取得您的 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_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 呼叫。

瞭解詳情:另請參閱 Edge Microgateway 總覽的「Edge Microgateway aware Proxy」(Edge Microgateway 感知 Proxy) 的注意事項。

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

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

2. 建立產品

建立含有兩個 Proxy 的產品:

  • 您的微閘道感知 Proxy:edgemicro_hello
  • 由 Edge Microgateway 安裝的驗證 Proxy:edgemicro-auth
  1. 在 Edge UI (傳統版) 中,依序前往「Publish」(發布) >「Product」(產品)
  2. 在「產品」頁面中,按一下「+ 產品」。按照下方格式填寫「產品詳細資料」頁面:
    • 名稱:EdgeMicroTestProduct
    • 顯示名稱:EdgeMicroTestProduct
    • Environment (環境):測試和正式版
    • 存取權:公開
    • 金鑰核准類型:自動
    • 資源:
      • API Proxy:選取「edgemicro_hello」
      • 修訂版本:1
      • 資源路徑: /**
  3. 按一下「Import Resource」
  4. 在「資源」中,按一下「+API Proxy」
  5. 選取「edgemicro-auth」
  6. 點按「儲存」

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: da4778e7c240a5d4585fc559eaba5083328828ac9f3a7f583e8b73e
    secret: 3aad7439708b4aeb38ee08e87189921ad00e6fc1ba8a8ae9f929ee2
    
  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 和產品。輸出內容結束時,您應該會看到類似下方的內容:

    ...
    
    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

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

第 4 部分:確保 Edge Microgateway

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

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

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

1. 取得必要的金鑰

  1. 在 Edge UI 中,前往您先前建立的開發人員應用程式,如第 2 部分:在 Apigee Edge 上建立實體中所述。應用程式名稱是 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 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 中的設定

  1. 開啟 ~/.edgemicro/org-env-config.yaml. 另請參閱安裝 Edge Microgateway 中的「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.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 金鑰

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

2.檢查 Edge Microgateway 中的設定

  1. 開啟 ~/.edgemicro/org-env-config.yaml. 另請參閱安裝 Edge Microgateway 中的「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
    

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 設定檔。

  1. 開啟 ~/.edgemicro/org-env-config.yaml. 另請參閱安裝 Edge Microgateway 中的「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:
        - spikearrest
        - oauth 
    
  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 (分析) 資訊主頁」。如要進一步瞭解外掛程式,請參閱「使用外掛程式」一文