參考資料

本頁內容適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

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

使用 ‑‑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 Public 和 Private Cloud 這個參數不適用於 Apigee 安裝作業。
-r,
‑‑runtime
如果已使用 --config,這個屬性則變成選用屬性。 僅限 Apigee Hybrid (字串) 指定 Private Cloud 或 Apigee Hybrid 執行個體的執行階段 URL。 網址開頭必須是 https://。例如:https://apitest.example.net
‑‑tls‑cert
‑‑tls‑key
‑‑tls‑ca
不適用 僅限 Edge Private Cloud 這個參數不適用於 Apigee 安裝作業。
-t,
‑‑token
必要
(僅限 OAuth 權杖驗證)
全部 (字串) 您從 Apigee 帳戶資訊產生的 OAuth 或 SAML 權杖。覆寫先前提供的任何其他憑證。
-u,
‑‑username
不適用
(僅限基本驗證)
僅限 Edge Public 和 Private Cloud 這個參數不適用於 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、設定憑證,並產生設定 Apigee Adapter for Envoy 時所需的憑證。

用量

apigee-remote-service-cli provision [flags]

參數

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

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

-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 Public 和 Private Cloud 這個參數不適用於 Apigee 安裝作業。
‑‑rotate 選填 僅限 Apigee Hybrid (整數) 如果 n > 0,請產生新的私密金鑰,並保留 n 個公開金鑰 (僅限混合式)
-r,
‑‑runtime
如果已使用 --config,這個屬性則變成選用屬性。 僅限 Apigee Hybrid (字串) 指定 Apigee Hybrid 執行個體的執行階段 URL。 網址開頭必須是 https://。例如:https://apitest.example.net
‑‑tls‑cert
‑‑tls‑key
‑‑tls‑ca
不適用 僅限 Edge Private Cloud 這個參數不適用於 Apigee 安裝作業。
-t,
‑‑token
必要
(僅限 OAuth 權杖驗證)
全部 (字串) 您從 Apigee 帳戶資訊產生的 OAuth 或 SAML 權杖。覆寫先前提供的任何其他憑證。
-u,
‑‑username
不適用
(僅限基本驗證)
僅限 Edge Public 和 Private Cloud 這個參數不適用於 Apigee 安裝作業。
-v,
‑‑verbose
選用 全部 (選用) 產生詳細輸出內容。
‑‑virtual-hosts 不適用 僅限 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

Samples 指令

建立及列出範例設定檔。

建立設定檔範例

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

用量

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

說明

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

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

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

參數

參數 存在必要性 搭配使用的產品 說明
‑‑adapter‑host 僅適用於 Envoy 範本 全部 (字串) 配接卡主機名稱 (預設值:localhost)
-c, ‑‑config 必要 全部 (字串) Apigee Remote Service 設定檔的路徑。
提示:這個標記可讓您省略大部分其他指令參數,因為 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 (字串) 指定 Private Cloud 或 Apigee Hybrid 執行個體的執行階段 URL。 網址開頭必須是 https://。例如:https://apitest.example.net
--s, ‑‑secret 必填 全部 (字串) Apigee 開發人員應用程式中的「密鑰」憑證,如「如何取得 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 (字串) 指定 Private Cloud 或 Apigee Hybrid 執行個體的執行階段 URL。 網址開頭必須是 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 Public 和 Private Cloud 顯示指令參數的說明。
--k, --key 不適用 僅限 Edge Public 和 Private Cloud (String) 佈建金鑰。
‑‑insecure 不適用 僅限 Edge Public 和 Private Cloud 使用 SSL 時允許不安全的伺服器連線。
‑‑legacy 不適用 僅限 Edge Public Cloud 如果您使用 Apigee Edge Public Cloud,就必須設定這個旗標。設定 Apigee Edge Public Cloud 的管理和執行階段網址。
‑‑opdk 不適用 僅限 Edge Private Cloud 如果您使用 Apigee Edge for Private Cloud,就必須設定這個標記。
-o,
‑‑organization
如果已使用 --config,這個屬性則變成選用屬性。 僅限 Edge Public 和 Private Cloud (字串) Apigee 機構。您必須是機構管理員。
-r,
‑‑runtime
不適用 僅限 Edge Private Cloud (字串) 指定 Private Cloud 或 Apigee Hybrid 執行個體的執行階段 URL。 網址開頭必須是 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 執行個體的執行階段 URL。 網址開頭必須是 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