參考資料

本頁適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

apigee-remote-service-cli 指令列介面 (CLI) 可協助您佈建及管理 Envoy 的 Apigee 轉接器。

使用 ‑‑config 選項簡化 CLI 指令

‑‑config 選項會指定 provision 指令產生的 config.yaml 檔案位置。這個選項的實用之處在於,CLI 會直接從 config.yaml 檔案擷取參數,因此您可以略過大部分其他指令參數。

請注意,任何指定的指令列參數都會覆寫 config.yaml 檔案中的值。

這些選項包括:
  • 機構
  • 環境
  • 執行階段
  • 管理
  • 不安全
  • 命名空間
  • 舊版
  • opdk

您可以在升級轉接器時使用這個選項,但在這種情況下,您仍必須加入 --force-proxy-install 旗標。舉例來說,您可以執行 provision 指令,如下所示:

apigee-remote-service-cli provision --config='old-config.yaml' > new-config.yaml

請注意,如果您未在舊設定檔中變更任何值,則不必儲存新的設定檔,因為新設定檔會與原始設定檔相同。

列出繫結指令

列出已綁定至遠端服務的所有 API 產品。

用量

apigee-remote-service-cli bindings list [flags]

參數

參數 存在必要性 與產品搭配使用 說明
-c,
‑‑config
選用 全部 (字串) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔提取這些參數。請參閱「 使用 ‑‑config 選項」。
-e,
‑‑environment
如果已提供 --config,則為選用屬性;否則為必要屬性。 全部 (字串) 貴機構中的環境。
-h,
‑‑help
選用 全部 顯示指令參數的說明。
‑‑insecure 選用 全部 使用 SSL 時允許不安全的伺服器連線。
‑‑legacy 不適用 僅限 Edge Public Cloud 這個參數不適用於 Apigee 安裝。
-m,
‑‑management
不適用 僅限 Edge Private Cloud 這個參數不適用於 Apigee 安裝。
‑‑mfa 不適用 僅限 Edge Public Cloud 這個參數不適用於 Apigee 安裝。
‑‑opdk 不適用 僅限 Edge Private Cloud 這個參數不適用於 Apigee 安裝。
-o,
‑‑organization
如果已提供 --config,則為選用屬性;否則為必要屬性。 全部 (字串) Apigee 機構。您必須是機構組織管理員。
-p,
‑‑password
不適用
(僅限基本驗證)
僅限 Edge 公有雲和私有雲 這個參數不適用於 Apigee 安裝。
-r,
‑‑runtime
如果已提供 --config,則為選用屬性;否則為必要屬性。 僅限 Apigee Hybrid (字串) 指定私人雲端或 Apigee 混合型執行個體的執行階段網址。網址開頭必須是 https://。例如:https://apitest.example.net
‑‑tls‑cert
‑‑tls‑key
‑‑tls‑ca
不適用 僅限 Edge Private Cloud 這個參數不適用於 Apigee 安裝。
-t,
‑‑token
必要
(僅限 OAuth 權杖驗證)
全部 (字串) 您從 Apigee 帳戶資訊產生的 OAuth 或 SAML 權杖。會覆寫先前提供的任何其他憑證。
-u,
‑‑username
不適用
(僅限基本驗證)
僅限 Edge 公有雲和私有雲 這個參數不適用於 Apigee 安裝。
-v,
‑‑verbose
選用 全部 (選用) 產生詳細輸出內容。

範例

apigee-remote-service-cli bindings list -o myorg -e test --token $TOKEN \
-c config.yaml

輸出內容範例

API Products
============
Bound
-----
envoy-test:
  Quota: 5 requests every 1 minute
  Target bindings:
    httpbin.org
  Paths:
httpbin:
  Quota: 5 requests every 1 minute
  Target bindings:
    httpbin.org
  Paths:
    /httpbin
    /

Unbound
-------
product-1:
  Quota: 100 requests every 1 hour
product-2:
  Quota: 1000 requests every 1 month
product-3:
product-4:

說明指令

所有 apigee-remote-service-cli 指令都提供線上說明。只要輸入:

apigee-remote-service-cli help

如需任何指令的說明,請輸入:

apigee-remote-service-cli [command] help

例如:

apigee-remote-service-cli provision help

佈建指令

apigee-remote-service-cli provision 指令會在 Apigee Edge 機構中安裝兩個 API Proxy,設定憑證,並產生設定 Envoy 的 Apigee 轉接器所需的憑證。

用量

apigee-remote-service-cli provision [flags]

參數

參數 存在必要性 與產品搭配使用 說明
‑‑analytics-sa 選用 Apigee Hybrid 和 Apigee

(字串) 使用這個標記指定 Google Cloud 服務帳戶金鑰檔案的路徑,其中服務帳戶具有 Apigee Analytics Agent 角色。轉接程式會使用 SA,直接將分析資料上傳至 Apigee。這個選項可讓轉接程式上傳 Analytics 資料,而不需要在主機上設定應用程式的預設憑證。如果您未指定這個選項,轉接器會使用預設服務帳戶憑證

-c,
‑‑config
選用 全部 (字串) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔提取這些參數。請參閱「 使用 --config 選項」。
-e,
‑‑environment
如果已提供 --config,則為選用屬性;否則為必要屬性。 全部 (字串) 貴機構中的環境。
-f, ‑‑force-proxy-install 選用 全部 (選用) 如果貴機構已安裝 remote-service Proxy,則強制重新安裝。
-h,
‑‑help
選用 全部 顯示指令參數的說明。
‑‑insecure 選用 全部 使用 SSL 時允許不安全的伺服器連線。
‑‑legacy 不適用 僅限 Edge Public Cloud 這個參數不適用於 Apigee 安裝。
-m,
‑‑management
不適用 僅限 Edge Private Cloud 這個參數不適用於 Apigee 安裝。
‑‑mfa 不適用 僅限 Edge Public Cloud 這個參數不適用於 Apigee 安裝。
-n, ‑‑namespace 如果有 --config,則為選用屬性;預設為 apigee 僅適用於 Kubernetes 部署 (字串) 將設定以 Envoy ConfigMap 的形式在指定命名空間中發出。預設值:apigee
‑‑opdk 不適用 僅限 Edge Private Cloud 這個參數不適用於 Apigee 安裝。
-o,
‑‑organization
如果已提供 --config,則為選用屬性;否則為必要屬性。 全部 (字串) Apigee 機構。您必須是機構組織管理員才能進行佈建。
-p,
‑‑password
不適用
(僅限基本驗證)
僅限 Edge 公有雲和私有雲 這個參數不適用於 Apigee 安裝。
‑‑rotate 選用 僅限 Apigee Hybrid(整數) 如果 n 大於 0,系統會產生新的私密金鑰,並保留 n 個公開金鑰 (僅限混合型)
-r,
‑‑runtime
如果已提供 --config,則為選用屬性;否則為必要屬性。 僅限 Apigee Hybrid (字串) 指定 Apigee Hybrid 執行個體的執行階段網址。網址開頭必須是 https://。例如:https://apitest.example.net
‑‑tls‑cert
‑‑tls‑key
‑‑tls‑ca
不適用 僅限 Edge Private Cloud 這個參數不適用於 Apigee 安裝。
-t,
‑‑token
必要
(僅限 OAuth 權杖驗證)
全部 (字串) 您從 Apigee 帳戶資訊產生的 OAuth 或 SAML 權杖。會覆寫先前提供的任何其他憑證。
-u,
‑‑username
不適用
(僅限基本驗證)
僅限 Edge 公有雲和私有雲 這個參數不適用於 Apigee 安裝。
-v,
‑‑verbose
選用 全部 (選用) 產生詳細輸出內容。
‑‑virtual-hosts N/A 僅限 Edge Private Cloud 這個參數不適用於 Apigee 安裝。

範例

如以下範例所示,請務必在檔案中擷取 provision 指令的輸出內容,以便用於其他 Apigee Adapter for Envoy 作業的輸入內容。

範例:

apigee-remote-service-cli provision --legacy --mfa $MFA --username $USER --password $PASSWORD \
--organization $ORG --environment $ENV > config.yaml

「發現」指令

建立及列出設定檔範例。

建立設定檔範例

為原生 Envoy 和 Istio 部署作業建立設定檔範例。

用量

apigee-remote-service-cli samples create [flags]

說明

這個指令需要有效的 config.yaml 檔案做為輸入內容。這個輸入檔案是透過佈建作業產生的檔案。根據預設,系統會將範例檔案輸出至名為 ./samples 的目錄。這個指令會為您建立這個目錄。

如果您使用的是原生 Envoy,指令會採用目標服務主機和叢集的所需名稱。如果透過 --tls 提供含有 tls.keytls.crt 的資料夾,也會設定從 Envoy Proxy 到遠端服務叢集的自訂 SSL 連線。

如果您使用的是 Istio,其中 Envoy 代理程式會做為附屬程式運作,如果未指定目標,系統會產生 httpbin 範例。否則,您必須負責準備與目標服務部署作業相關的設定檔。

參數

參數 存在必要性 與產品搭配使用 說明
‑‑adapter‑host 僅用於 Envoy 範本 全部 (字串) 轉接卡主機名稱 (預設值:localhost)
-c, ‑‑config 必要 全部 (字串) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔提取這些參數。請參閱「 使用 --config 選項」。
-f, ‑‑force 選用 全部 強制覆寫現有目錄。
-h, ‑‑help 選用 全部 顯示指令參數的說明。
‑‑host 僅用於 Envoy 範本 全部 (字串) 目標服務主機 (預設為 httpbin.org)
-n, ‑‑name 選用 全部 (字串) 目標服務名稱 (預設為 httpbin.org)
‑‑out 選用 全部 (字串) 用於建立範例設定檔的目錄。
預設值:./samples
‑‑tag 僅用於 Istio 範本 全部 (字串) Envoy 轉接器映像檔的版本標記。預設:目前的發布版本
-t, ‑‑template 選用 全部 (字串) Envoy 或 Istio 範本名稱。如要查看可用的範本清單,請執行 apigee-remote-service samples templates 指令。預設值:istio-1.9。預設值適用於所有 1.9 以上版本的 Istio。
‑‑tls 選用,僅適用於 Envoy 範本 全部 (字串) 包含用於轉接器服務的 tls.keytls.crt 檔案的目錄。

範例

apigee-remote-service-cli samples create -c ./config.yaml

列出可用的範本選項

列出可搭配 samples 指令的 --templates 參數可用範本。

用量

apigee-remote-service-cli samples templates

參數

範例

apigee-remote-service-cli samples templates
Supported templates (native is deprecated):
  envoy-1.15
  envoy-1.16
  envoy-1.17
  istio-1.7
  istio-1.8
  istio-1.9

符記指令

您可以使用 JWT 權杖來發出經過驗證的 API Proxy 呼叫,而非使用 API 金鑰。您可以使用符記指令建立、檢查及輪替 JWT 符記,以便執行這項操作。

建立 JWT 權杖

您可以使用 JWT 權杖,向遠端服務目標發出經過驗證的 API Proxy 呼叫。另請參閱「使用以 JWT 為基礎的驗證」。

用量

apigee-remote-service-cli token create [flags]

參數

參數 存在必要性 與產品搭配使用 說明
-c,
‑‑config
必填 全部 (字串) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔提取這些參數。請參閱「 使用 --config 選項」。
-e,
‑‑environment
如果已提供 --config,則為選用屬性;否則為必要屬性。 全部 (字串) 貴機構中的環境。
-h,
‑‑help
選用 全部 顯示指令參數的說明。
--i, --id 必填 全部 (字串) 在 Apigee 開發人員應用程式中找到的 金鑰憑證,如「如何取得 API 金鑰」一文所述。
‑‑insecure 選用 全部 使用 SSL 時允許不安全的伺服器連線。
‑‑legacy 不適用 僅限 Edge Public Cloud 這個參數不適用於 Apigee 安裝。
‑‑opdk 不適用 僅限 Edge Private Cloud 這個參數不適用於 Apigee 安裝。
-o,
‑‑organization
如果已提供 --config,則為選用屬性;否則為必要屬性。 全部 (字串) Apigee 機構。您必須是機構組織管理員。
-r,
‑‑runtime
如果已提供 --config,則為選用屬性;否則為必要屬性。 僅限 Apigee Hybrid (字串) 指定私人雲端或 Apigee 混合型執行個體的執行階段網址。網址開頭必須是 https://。例如:https://apitest.example.net
--s, ‑‑secret 必填 全部 (字串) 在 Apigee 開發人員應用程式中找到的 Secret 憑證,如「如何取得 API 金鑰」一文所述。
‑‑tls‑cert
‑‑tls‑key
‑‑tls‑ca
不適用 僅限 Edge Private Cloud 這個參數不適用於 Apigee 安裝。
-v,
‑‑verbose
選用 全部 (選用) 產生詳細輸出內容。

範例

apigee-remote-service-cli token create -o myorg -e test -i YUmlZAcBKNsTAelJqPZFl3sh58ObATX9 \
-s icTARgaKHqvUH1dq -c config.yaml

輸出

成功後,您會看到類似以下的 JST 權杖輸出內容:
eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJhY2Nlc3NfdG9rZW4iOiJ0a2tlVzVKQTY2a0pZYTB4bFV1cVBsUW1BMU43IiwiYXVkIjoiaXN0aW8iLCJuYmYiOjE1MzAxMzg1OTEsImFwaV9wcm9kdWN0X2xpc3QiOlsiaXN0aW8tcHJvZHVjdCJdLCJhcHBsaWNhdGlvbl9uYW1lIjoiaXN0aW8tYXBwIiwiZGV2ZWxvcGVyX2VtYWlsIjoicFluZ2Zsb3lkQGdvb2dsZS5jb20iLCJpc3MiOiJodHRwczovL2FwaWdlZXNlYXJjaC10ZXN0LmFwaWdlZS5uZXQvaXN0aW8tYXV0aC90b2tlbiIsImV4cCI6MTUzMDEzOTQ5MSwiaWF0IjoxNTMwMTM4NTkxLCJqdGkiOiIxODgzMzViZi0wMmE4LTRjZGUsOGFkOS0yMWJmNDZjNmRjZDkiLCJjbGllbnRfaWQiOiJZVW1sWkFjQktOc1RBZWxKcVBZRmwzc2g1OE9iQVRYOSJ9.AL7pKSTmond-NSPRNNHVbIzTdAnZjOXcjQ-BbOJ_8lsQvF7PuiOUrGIhY5XTcJusisKgbCdtIxBl8Wq1EiQ_fKnUc3JYYOqzpTB5bGoFy0Yqbfu96dneuWyzgZnoQBkqwZkbQTIg7WNTGx1TJX-UTePvBPxAefiAbaEUcigX9tTsXPoRJZOTrm7IOeKpxpB_gQYkxQtV1_NbERxjTPyMbHdMWal9_xRVzSt7mpTGudMN9OR-VtQ1uXA67GOqhZWcOzq57qImOiCMbaoKnKUADevyWjX_VscN5ZZUtzQUQhTrmv8aR69-uVhMIPKp9juMyYKaYn2IsYZEeCWfhfV45Q

檢查 JWT 權杖

您可以使用這個指令檢查 JWT 權杖。另請參閱「檢查權杖」。

用量

apigee-remote-service-cli token inspect [flags]

參數

參數

參數 存在必要性 與產品搭配使用 說明
-c,
‑‑config
必填 全部 (字串) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔提取這些參數。請參閱「 使用 ‑‑config 選項」。
-e,
‑‑environment
如果已提供 --config,則為選用屬性;否則為必要屬性。 全部 (字串) 貴機構中的環境。
-f,
‑‑file
必填 全部 (字串) 符記檔案 (預設為使用 stdin)
-h,
‑‑help
選用 全部 顯示指令參數的說明。
‑‑insecure 選用 全部 使用 SSL 時允許不安全的伺服器連線。
‑‑legacy 不適用 僅限 Edge Public Cloud 這個參數不適用於 Apigee 安裝。
‑‑opdk 不適用 僅限 Edge Private Cloud 這個參數不適用於 Apigee 安裝。
-o,
‑‑organization
如果已提供 --config,則為選用屬性;否則為必要屬性。 全部 (字串) Apigee 機構。您必須是機構組織管理員。
-r,
‑‑runtime
如果已提供 --config,則為選用屬性;否則為必要屬性。 僅限 Apigee Hybrid (字串) 指定私人雲端或 Apigee 混合型執行個體的執行階段網址。網址開頭必須是 https://。例如:https://apitest.example.net
‑‑tls‑cert
‑‑tls‑key
‑‑tls‑ca
不適用 僅限 Edge Private Cloud 這個參數不適用於 Apigee 安裝。
-v,
‑‑verbose
選用 全部 (選用) 產生詳細輸出內容。

範例

apigee-remote-service-cli token inspect -c config.yaml <<< $TOKEN

輸出

成功執行後,您會看到類似以下的輸出內容:
{
	"aud": [
		"remote-service-client"
	],
	"exp": 1591741549,
	"iat": 1591740649,
	"iss": "https://apigee-docs-test.apigee.net/remote-service/token",
	"jti": "99325d2e-6440-4278-9f7f-b252a1a79e53",
	"nbf": 1591740649,
	"access_token": "VfzpXzBGAQ07po0bPMKY4JgQjus",
	"api_product_list": [
		"httpbin"
	],
	"application_name": "httpbin",
	"client_id": "GYDGHy5TRpV8AejXCOlreP7dPVepA8H",
	"developer_email": "user@example.com",
	"scope": ""
}
verifying...
token ok.

輪替 JWT 權杖

在您初次產生 JWT 後的某個時間點,可能需要變更 Apigee 在其加密鍵/值對應 (KVM) 中儲存的公開/私密金鑰組。產生新金鑰組的程序稱為金鑰輪替。輪替金鑰時,系統會產生新的私密/公開金鑰組,並儲存在 Apigee 機構/環境中的「istio」KVM。此外,舊版公開金鑰會連同原始金鑰 ID 值保留。

用量

apigee-remote-service-cli token rotate-cert [flags]

參數

參數 存在必要性 與產品搭配使用 說明
-c,
‑‑config
必填 全部 (字串) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔提取這些參數。請參閱「 使用 --config 選項」。
-e,
‑‑environment
如果已提供 --config,則為選用屬性;否則為必要屬性。 全部 (字串) 貴機構中的環境。
-h,
‑‑help
不適用 僅限 Edge 公有雲和私有雲 顯示指令參數的說明。
--k, --key 不適用 僅限 Edge 公有雲和私有雲 (字串) 預留鍵。
‑‑insecure 不適用 僅限 Edge 公有雲和私有雲 使用 SSL 時允許不安全的伺服器連線。
‑‑legacy 不適用 僅限 Edge Public Cloud 如果您使用的是 Apigee Edge for Public Cloud,則必須設定這個旗標。設定 Apigee Edge for Public Cloud 的管理和執行階段網址。
‑‑opdk 不適用 僅限 Edge Private Cloud 如果您使用的是私人雲端的 Apigee Edge,就必須設定這個標記。
-o,
‑‑organization
如果已提供 --config,則為選用屬性;否則為必要屬性。 僅限 Edge 公有雲和私有雲 (字串) Apigee 機構。您必須是機構組織管理員。
-r,
‑‑runtime
不適用 僅限 Edge Private Cloud (字串) 指定私人雲端或 Apigee 混合型執行個體的執行階段網址。網址開頭必須是 https://。例如:https://apitest.example.net
--s, ‑‑secret 必填 全部 (字串) 佈建密鑰。
‑‑tls‑cert
‑‑tls‑key
‑‑tls‑ca
不適用 僅限 Edge Private Cloud (字串) 指定用於 mTLS 連線的用戶端 TLS 憑證、私密金鑰和根 CA。
--t, ‑‑truncate 必填 全部 (整數) 要保留在 JWKS 中的憑證數量 (預設為 2)。
-v,
‑‑verbose
選用 全部 (選用) 產生詳細輸出內容。

範例

apigee-remote-service-cli token rotate-cert -c config.yaml -o myorg -e test \
-k 2e238ffa15dc5ab6a1e97868e7581f6c60ddb8575478582c256d8b7e5b2677a8 \
-s 51058077223fa7b683c3bea845c5cca138340d1d5583922b6d465f9f918a4b08

輸出

certificate successfully rotated

建立內部權杖

建立 JWT 權杖,用於授權遠端服務 API 呼叫。

用量

apigee-remote-service-cli token internal [flags]

參數

參數

參數 存在必要性 與產品搭配使用 說明
-c,
‑‑config
必填 僅限 Apigee Hybrid (字串) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔提取這些參數。請參閱「 使用 --config 選項」。
-d,
‑‑duration
必填 僅限 Apigee Hybrid (字串) 內部 JWT 從建立到失效的時間 (預設值:10m0s (10 分鐘))。
-e,
‑‑environment
如果已提供 --config,則為選用屬性;否則為必要屬性。 僅限 Apigee Hybrid (字串) 貴機構中的環境。
-h,
‑‑help
選用 僅限 Apigee Hybrid 顯示指令參數的說明。
‑‑insecure 選用 僅限 Apigee Hybrid 使用 SSL 時允許不安全的伺服器連線。
-o,
‑‑organization
如果已提供 --config,則為選用屬性;否則為必要屬性。 僅限 Apigee Hybrid (字串) Apigee 機構。您必須是機構組織管理員。
-r,
‑‑runtime
如果已提供 --config,則為選用屬性;否則為必要屬性。 僅限 Apigee Hybrid (字串) 指定 Apigee Hybrid 執行個體的執行階段網址。網址開頭必須是 https://。例如:https://apitest.example.net
-v,
‑‑verbose
選用 僅限 Apigee Hybrid (選用) 產生詳細輸出內容。

版本指令

列印 CLI 版本。

apigee-remote-service-cli version

設定檔

本節將顯示設定檔範例,其中包含所有可用的選項。

global:
  temp_dir: /tmp/apigee-istio
  keep_alive_max_connection_age: 10m
  api_address: :5000
  metrics_address: :5001
  tls:
    cert_file: tls.crt
    key_file: tls.key
tenant:
  internal_api: https://istioservices.apigee.net/edgemicro
  remote_service_api: https://org-test.apigee.net/remote-service
  org_name: org
  env_name: env
  key: mykey
  secret: mysecret
  client_timeout: 30s
  tls:
    ca_file: /opt/apigee/tls/ca.crt
    cert_file: /opt/apigee/tls/tls.crt
    key_file: /opt/apigee/tls/tls.key
    allow_unverified_ssl_cert: false
products:
  refresh_rate: 2m
analytics:
  legacy_endpoint: false
  file_limit: 1024
  send_channel_size: 10
  collection_interval: 10s
auth:
  api_key_claim: claim
  api_key_cache_duration: 30m
  api_key_header: x-api-key
  api_header: :authority
  allow_unauthorized: false
  jwt_provider_key: https://org-test.apigee.net/remote-token/token
  append_metadata_headers: true