參考資料

本頁適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

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

繫結指令

繫結會將部署至 Istio 網格的服務與 Apigee API 產品建立關聯。您可以使用 CLI 建立、移除、列出及驗證繫結。

新增繫結

將遠端服務目標繫結新增至 API 產品。

用量

Apigee Hybrid:

apigee-remote-service-cli bindings add [target_name] [product_name] -o [organization] -e [environment] -r [runtime] -t [token]

其中:

  • target_name 是綁定至產品的遠端服務目標名稱。
  • product_name 是繫結服務的產品名稱。

旗標

參數 類型 說明
-c, --config 字串 (必要) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔提取這些參數。請參閱「 使用 --config 選項」。
-e, --env 字串 (必要) 貴機構中的環境。
-h, --help 顯示指令參數的說明。
--insecure 使用 SSL 時允許不安全的伺服器連線
--legacy 如果您使用的是 Apigee Cloud,請設定這個旗標。它會設定 Edge Cloud 的管理和執行階段網址。
--opdk 如果您使用的是 Apigee for Private Cloud,請設定這個標記。
-o, --org 字串 (必要) Apigee 機構。您必須是機構組織管理員。
-p, --password 字串 (僅適用於基本驗證,不適用於混合式驗證) 您的 Apigee 密碼。您可以選擇在 .netrc 檔案中指定密碼。這樣一來,您就不需要在指令列上提供密碼。另請參閱「使用 .netrc 憑證」。
-r, --runtime 字串 混合型設定中定義的虛擬主機的網址,其中包含 hostAlias。網址開頭必須是 https://。例如:https://apitest.apigee-hybrid-docs.net
-t, --token 字串 (必要) 存取權杖。
-u, --username 字串 (僅適用於基本驗證,混合驗證不適用) 您的 Apigee 使用者名稱 (通常是電子郵件地址)。 您可以選擇在 .netrc 檔案中指定使用者名稱。這樣一來,您就不需要在指令列上提供使用者名稱。另請參閱「使用 .netrc 憑證」。
-v, --verbose (選用) 產生詳細輸出內容。

範例

./apigee-remote-service-cli bindings add httpbin.org my_product -o $ORG -e $ENV \
-c config.yaml -r $RUNTIME -t $TOKEN
product my_product is now bound to: httpbin.org

列出繫結

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

用量

Apigee Hybrid:

apigee-remote-service-cli bindings list -o [organization] -e [environment] -t [token] -r [runtime]

參數

參數 類型 說明
-c, --config 字串 (必要) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔提取這些參數。請參閱「 使用 --config 選項」。
-e, --env 字串 (必要) 貴機構中的環境。
-h, --help 顯示指令參數的說明。
--insecure 使用 SSL 時允許不安全的伺服器連線
--legacy 如果您使用的是 Apigee Cloud,請設定這個旗標。它會設定 Edge Cloud 的管理和執行階段網址。
--opdk 如果您使用的是 Apigee for Private Cloud,請設定這個標記。
-o, --org 字串 (必要) Apigee 機構。您必須是機構組織管理員。
-p, --password 字串 (僅適用於基本驗證,不適用於混合式驗證) 您的 Apigee 密碼。您可以選擇在 .netrc 檔案中指定密碼。如此一來,您就不需要在指令列上提供密碼。另請參閱「使用 .netrc 憑證」。
-r, --runtime 字串 混合型設定中定義的虛擬主機的網址,其中包含 hostAlias。網址開頭必須是 https://。例如:https://apitest.apigee-hybrid-docs.net
-t, --token 字串 (必要) 存取權杖。
-u, --username 字串 (僅適用於基本驗證,混合驗證不適用) 您的 Apigee 使用者名稱 (通常是電子郵件地址)。 您可以選擇在 .netrc 檔案中指定使用者名稱。這樣一來,您就不需要在指令列上提供使用者名稱。另請參閱「使用 .netrc 憑證」。
-v, --verbose (選用) 產生詳細輸出內容。

範例

apigee-remote-service-cli bindings list -o myorg -e test -c config.yaml \
-r $RUNTIME -t $TOKEN
PI 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:

移除繫結

從 API 產品中移除 Envoy 的 Remote Service 繫結。

用量

Apigee Hybrid:

apigee-remote-service-cli bindings remove [target_name] [product_name]  -o [organization] -e [environment] -r [runtime] -t [token]

其中:

  • target_name 是從產品中解除繫結的遠端服務目標名稱。
  • product_name 是您要從中解除綁定目標的產品名稱。

參數

參數 類型 說明
-c, --config 字串 (必要) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔提取這些參數。請參閱「 使用 --config 選項」。
-e, --env 字串 (必要) 貴機構中的環境。
-h, --help 顯示指令參數的說明。
--insecure 使用 SSL 時允許不安全的伺服器連線
--legacy 如果您使用的是 Apigee Cloud,請設定這個旗標。它會設定 Edge Cloud 的管理和執行階段網址。
--opdk 如果您使用的是 Apigee for Private Cloud,請設定這個標記。
-o, --org 字串 (必要) Apigee 機構。您必須是機構組織管理員。
-p, --password 字串 (僅適用於基本驗證,不適用於混合式驗證) 您的 Apigee 密碼。您可以選擇在 .netrc 檔案中指定密碼。如此一來,您就不需要在指令列上提供密碼。另請參閱「使用 .netrc 憑證」。
-r, --runtime 字串 混合型設定中定義的虛擬主機的網址,其中包含 hostAlias。網址開頭必須是 https://。例如:https://apitest.apigee-hybrid-docs.net
-t, --token 字串 (必要) 存取權杖。
-u, --username 字串 (僅適用於基本驗證,混合驗證不適用) 您的 Apigee 使用者名稱 (通常是電子郵件地址)。 您可以選擇在 .netrc 檔案中指定使用者名稱。這樣一來,您就不需要在指令列上提供使用者名稱。另請參閱「使用 .netrc 憑證」。
-v, --verbose (選用) 產生詳細輸出內容。

範例

./apigee-remote-service-cli bindings remove httpbin.org my_product -o $ORG -e $ENV \
-c config.yaml -r $RUNTIME -t $TOKEN
product envoy-test is no longer bound to: httpbin.org

驗證繫結

請確認指定的已繫結 API 產品及其相關聯的開發人員應用程式,也具有相關聯的遠端服務產品。如果您未指定 API 產品名稱,指令會檢查所有已綁定的產品。

用量

Apigee Hybrid:

apigee-remote-service-cli bindings verify [product_name]  -o [organization] -e [environment] -r [runtime] -t [token]

product_name 為選填欄位。如果未指定產品名稱,系統會檢查所有已綁定的產品。

參數

參數 類型 說明
-c, --config 字串 (必要) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔提取這些參數。請參閱「 使用 --config 選項」。
-e, --env 字串 (必要) 貴機構中的環境。
-h, --help 顯示指令參數的說明。
--insecure 使用 SSL 時允許不安全的伺服器連線
--legacy 如果您使用的是 Apigee Cloud,請設定這個旗標。它會設定 Edge Cloud 的管理和執行階段網址。
--opdk 如果您使用的是 Apigee for Private Cloud,請設定這個標記。
-o, --org 字串 (必要) Apigee 機構。您必須是機構組織管理員。
-r, --runtime 字串 混合型設定中定義的虛擬主機的網址,其中包含 hostAlias。網址開頭必須是 https://。例如:https://apitest.apigee-hybrid-docs.net
-t, --token 字串 (必要) 存取權杖。
-v, --verbose (選用) 產生詳細輸出內容。

範例

/apigee-remote-service-cli bindings verify my_product -o $ORG -e $ENV \
-c config.yaml -r $RUNTIME -t $TOKEN

Verifying apps associated with product my-product:
  app my-app associated with product my-product is verified

說明指令

所有 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 機構中安裝 Proxy、設定憑證,並產生您為 Envoy 設定 Apigee 轉接器所需的憑證。

用量

Apigee Hybrid:

apigee-remote-service-cli provision  -o $ORG -e $ENV -r $RUNTIME -t $TOKEN

參數

參數 類型 說明
--analytics-sa 字串 使用這個旗標指定 Google Cloud 服務帳戶金鑰檔案的路徑,其中服務帳戶具有 Apigee Analytics Agent 角色。轉接程式會使用 SA,直接將分析資料上傳至 Apigee。如果您使用的是 Apigee hybrid,這個選項可讓您在一個叢集中安裝混合式執行階段,並在另一個叢集中安裝轉接程式。這個標記僅適用於 Apigee 混合式和 Apigee 在 Google Cloud 的建置作業。
-c, --config 字串 Apigee 遠端服務設定檔的路徑。另請參閱「 使用 --config 選項」。
-e, --environment 字串 (必要) 貴機構中的環境。
-f, --force-proxy-install (選用) 如果貴機構已安裝 remote-service Proxy,則強制重新安裝。
-h, --help 顯示指令參數的說明。
-k, --key 字串 指定 apigee-remote-service-cli provision 指令傳回的鍵。
--legacy Apigee Edge (設定管理和執行階段網址)
-m, --management 字串 (如果您使用的是 Apigee Private Cloud,則為必填項目) Apigee 管理基礎網址。預設值:https://api.enterprise.apigee.com
-n, --namespace 字串 在指定命名空間中,將設定以 Envoy ConfigMap 的形式輸出。預設:apigee
--opdk 字串 如果您使用的是 Apigee for Private Cloud,請設定這個標記。
-o, --organization 字串 (必要) 您的 Apigee 機構。您必須是機構組織管理員。
-p, --password 字串 (僅適用於基本驗證,不適用於混合式驗證) 您的 Apigee 密碼。您可以選擇在 .netrc 檔案中指定密碼。如此一來,您就不需要在指令列上提供密碼。另請參閱「使用 .netrc 憑證」。
--rotate-int int 如果 n > 0,請產生新的私密金鑰,並保留 n 個公開金鑰 (僅限混合式)
-r, --runtime 字串 混合型設定中定義的虛擬主機的網址,其中包含 hostAlias。網址開頭必須是 https://。例如:https://apitest.apigee-hybrid-docs.net
-s, --secret 字串 指定從 apigee-remote-service-cli provision 指令傳回的秘密。
--strength int (選用) 指定用於佈建轉接程式時使用的 SSL 憑證的加密強度。預設值為 2048
-t, --token 字串 Apigee OAuth 或 SAML 權杖。
-u, --username 字串 (僅適用於基本驗證,混合驗證不適用) 您的 Apigee 使用者名稱 (通常是電子郵件地址)。 您可以選擇在 .netrc 檔案中指定使用者名稱。另請參閱「使用 .netrc 做為憑證」。
-v, --verbose (選用) 產生詳細輸出內容。
--virtual-hosts 字串 覆寫預設虛擬主機。
--years int (選用) 在佈建作業中使用的 SSL 憑證到期前的年數。預設值:1

範例

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

Apigee Hybrid 範例:

apigee-remote-service-cli provision --organization $ORG --environment $ENV --runtime $RUNTIME \
--namespace $NAMESPACE --token $TOKEN > 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 範例。否則,您必須負責準備與目標服務部署作業相關的設定檔。

參數

參數 類型 說明
-c, --config 字串 (必要) Apigee Remote Service 設定檔的路徑。
提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔提取這些參數。請參閱「 使用 --config 選項」。
-f, --force 強制覆寫現有目錄。
-h, --help 顯示指令參數的說明。
--host 目標服務主機 (預設為「httpbin.org」)
-n, --name 目標服務名稱 (預設為「httpbin」)
--out 建立設定檔範例的目錄。預設值:./samples
-t, --template

範本名稱。如果您要進行 Istio 部署作業 (僅限混合式),請選取其中一個可用的 Istio 選項。請使用原生選項進行原生 Envoy 部署。可用的選項如下:

  • istio-1.6 (預設)
  • istio-1.7
  • native
--tls 儲存 TLS 金鑰和 CRT 檔案的目錄。

範例

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

符記指令

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

建立 JWT 權杖

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

用量

Apigee Hybrid:
apigee-remote-service-cli token create -c [config_file] --id [consumer_key] --secret [consumer_secret] -r [runtime] -o [org] -e [env]

參數

參數 類型 說明
-c, --config 字串 (必要) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔提取這些參數。請參閱「 使用 --config 選項」。
-e, --env 字串 (必要) 貴機構中的環境。
-h, --help 顯示指令參數的說明。
--insecure 使用 SSL 時允許不安全的伺服器連線。
-o, --org 字串 (必要) Apigee 機構。您必須是機構組織管理員。
-r, --runtime 字串 混合型設定中定義的虛擬主機的網址,其中包含 hostAlias。網址開頭必須是 https://。例如:https://apitest.apigee-hybrid-docs.net
-v, --verbose (選用) 產生詳細輸出內容。

範例

./apigee-remote-service-cli token create -o $ORG -e $ENV -i YUmlZAcBKNsTAelJqPZFl3sh58ObATX9 \
-s icTARgaKHqvUH1dq -c config.yaml -r $RUNTIME -t $TOKEN

輸出

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

檢查 JWT 權杖

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

用量

Apigee Hybrid:
apigee-remote-service-cli token inspect -o [organization] -e [environment] -f [token_file] --runtime [host_alias]

參數

參數 類型 說明
-c, --config 字串 (必要) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔提取這些參數。請參閱「 使用 --config 選項」。
-e, --env 字串 (必要) 貴機構中的環境。
-h, --help 顯示指令參數的說明。
--insecure 使用 SSL 時允許不安全的伺服器連線。
-o, --org 字串 (必要) Apigee 機構。您必須是機構組織管理員。
-r, --runtime 字串 混合型設定中定義的虛擬主機的網址,其中包含 hostAlias。網址開頭必須是 https://。例如:https://apitest.apigee-hybrid-docs.net
-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 Hybrid

apigee-remote-service-cli token rotate-cert -o [organization] -e [environment] -t [token] -r [runtime] -k [provision_key] -s [provision_secret] --kid [new_key_id]

參數

參數 類型 說明
-c, --config 字串 (必要) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔提取這些參數。請參閱「 使用 --config 選項」。
-e, --env 字串 (必要) 貴機構中的環境。
-h, --help 顯示指令參數的說明。
--insecure 使用 SSL 時允許不安全的伺服器連線
--truncate int 要在 jwks 中保留的憑證數量 (預設為 2)
-o, --org 字串 (必要) Apigee 機構。您必須是機構組織管理員。
-r, --runtime 字串 混合型設定中定義的虛擬主機的網址,其中包含 hostAlias。網址開頭必須是 https://。例如:https://apitest.apigee-hybrid-docs.net
-v, --verbose (選用) 產生詳細輸出內容。

範例

./apigee-remote-service-cli token create -o $ORG -e $ENV -i YUmlZAcBKNsTAelJqPZFl3sh58ObATX9 \
-s icTARgaKHqvUH1dq -c config.yaml -r $RUNTIME -t $TOKEN

輸出

certificate successfully rotated

使用 .netrc 憑證

如果您使用 Edge Public Cloud,且有機器 api.enterprise.apigee.com 的項目,apigee-remote-service-cli 會自動從主目錄中的 .netrc 檔案中挑選 usernamepassword (用於必要的基本驗證)。如果您使用的是 Apigee Private Cloud,機器值會與 management 網址相同 (例如:http://192.162.55.100)。 舉例來說,在 Edge Public Cloud 中:
machine api.enterprise.apigee.com
login jdoe@google.com
password abc123
舉例來說,在 Edge Private Cloud 中:
machine http://192.162.55.100
login jdoe@google.com
password abc123

版本指令

列印 CLI 版本。

apigee-remote-service-cli version

使用 --config 指令選項

--config 選項會指定 provision 指令產生的設定檔位置。這個選項的實用優點是,您可以略過 CLI 從設定檔擷取的大部分其他指令參數。這些選項包括:
  • 機構
  • 環境
  • 執行階段
  • 管理
  • 不安全
  • 命名空間
  • 舊版
  • opdk

舉例來說,您可以執行 provision 指令,如下所示:

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

設定檔

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

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
  allow_unverified_ssl_cert: false
products:
  refresh_rate: 2m
analytics:
  legacy_endpoint: false
  file_limit: 1024
  send_channel_size: 10
  collection_interval: 10s
  fluentd_endpoint: apigee-udca-myorg-test.apigee.svc.cluster.local:20001
  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
auth:
  api_key_claim: claim
  api_key_cache_duration: 30m
  api_key_header: x-api-key
  api_target_header: :authority
  reject_unauthorized: true
  jwks_poll_interval: 0s