參考資料

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

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

繫結指令

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

列出繫結

列出與遠端服務繫結的所有 API 產品。

用量

適用於 Edge 公有雲:

apigee-remote-service-cli bindings list -o [organization] -e [environment] -u [username] -p [password]

使用 Edge 私有雲:

apigee-remote-service-cli bindings list -o [organization] -e [environment] -u [username] -p [password] -r [runtime] 

參數

參數 類型 說明
-c, --config 字串 (必要) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分的其他指令參數,因為 CLI 可以從設定檔提取這些變數。詳情請參閱 使用 --config 選項
-e, --env 字串 (必要) 貴機構的環境。
-h, --help 顯示指令參數的說明。
--insecure 使用 SSL 時允許不安全的伺服器連線
--legacy 如果您使用的是 Apigee Edge Cloud,請設定這個標記。並會設定管理網址和執行階段網址 Edge Cloud 的運作方式
--mfa Apigee 多重要素授權權杖 (僅與 --legacy 搭配使用)
--opdk 如果您使用的是適用於 Private Cloud 的 Apigee Edge,請設定這個標記。
-o, --org 字串 (必要) Apigee 機構。您必須是機構組織管理員。
-p, --password 字串 (僅限基本驗證的必要欄位) 您的 Apigee 密碼。您也可以視需要 複製到 .netrc 檔案中的密碼這樣一來,您就不必 請在指令列提供密碼。其他參考資訊 使用 .netrc 做為憑證
-r, --runtime 字串 (僅限 Private Cloud) 指定 Private Cloud 執行個體的執行階段網址。
-t, --token 字串 (僅限 OAuth 權杖驗證) 您產生的 OAuth 或 SAML 權杖 即可擷取您的 Apigee 帳戶資訊如要瞭解如何產生符記,請參閱 使用 get_token透過 SAML 存取 Management API
-u, --username 字串 (僅限基本驗證的必要欄位) 您的 Apigee 使用者名稱 (通常是電子郵件地址)。 您可以視需要在 .netrc 檔案中指定使用者名稱。: 您不需要在指令列提供使用者名稱。詳情請見 以及對憑證使用 .netrc
-v, --verbose (選用) 產生詳細輸出。

範例

apigee-remote-service-cli bindings list -o myorg -e test -u user@example.com -c config.yaml -p abc123
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 產品及其相關聯的開發人員應用程式也具備遠端設定 或服務產品等項目如未指定 API 產品名稱,則 這個指令會檢查所有繫結的產品。

用量

適用於 Edge 公有雲:

apigee-remote-service-cli bindings verify [product_name]  -o [organization] -e [environment] -u [username] -p [password] -c [config]

使用 Edge 私有雲:

apigee-remote-service-cli bindings verify [product_name]  -o [organization] -e [environment] -u [username] -p [password] -r [runtime] -c [config]

其中的 product_name 為選填項目。如果沒有指定產品名稱,所有繫結的產品都會 已勾選。

參數

參數 類型 說明
-c, --config 字串 (必要) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分的其他指令參數,因為 CLI 可以從設定檔提取這些變數。詳情請參閱 使用 --config 選項
-e, --env 字串 (必要) 貴機構的環境。
-h, --help 顯示指令參數的說明。
--insecure 使用 SSL 時允許不安全的伺服器連線
--legacy 如果您使用的是 Apigee Edge Cloud,請設定這個標記。並會設定管理網址和執行階段網址 Edge Cloud 的運作方式
--mfa Apigee 多重要素授權權杖 (僅與 --legacy 搭配使用)
--opdk 如果您使用的是適用於 Private Cloud 的 Apigee Edge,請設定這個標記。
-o, --org 字串 (必要) Apigee 機構。您必須是機構組織管理員。
-r, --runtime 字串 (僅限 Private Cloud) 指定 Private Cloud 執行個體的執行階段網址。
-t, --token 字串 (僅限 OAuth 權杖驗證) 您產生的 OAuth 或 SAML 權杖 即可擷取您的 Apigee 帳戶資訊如要瞭解如何產生符記,請參閱 使用 get_token透過 SAML 存取 Management API
-v, --verbose (選用) 產生詳細輸出。

範例

./apigee-remote-service-cli bindings verify my-product -o myorg -e test -u user@example.com -c config.yaml -p xxxxxx
  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 Adapter

用量

如果使用 Edge Public Cloud:

apigee-remote-service-cli provision -o $ORG -e $ENV -u $USERNAME -p $PASSWORD

如果使用 Edge Private Cloud:

apigee-remote-service-cli provision --opdk -o $ORG -e $ENV -u $USERNAME --management $MGMT_SERVER_URL --runtime $RUNTIME_URL -p $PASSWORD

參數

參數 類型 說明
--analytics-sa 字串 適用於透過 Google Cloud 安裝的 Apigee Hybrid 和 Apigee。

使用此旗標指定 Google Cloud 服務帳戶金鑰檔案的路徑,其中 服務帳戶具備 Apigee Analytics Agent 角色系統會使用 SA ,即可將數據分析資料直接上傳至 Apigee。如果您使用的是 Apigee Hybrid 這個選項可讓您在一個叢集和轉接器中安裝混合型執行階段 另一個叢集的可執行映像檔

-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 Cloud,請設定這個標記。並會設定管理網址和執行階段網址 Edge Cloud 的運作方式
--mfa Apigee 多重要素授權權杖 (僅與 --legacy 搭配使用)
-m, --management 字串 (使用 Apigee 私有雲時為必填) 您的 Apigee 管理基準網址。 預設:https://api.enterprise.apigee.com
-n, --namespace 字串 在指定命名空間中以 Envoy ConfigMap 發出設定。預設:Apigee
--opdk 字串 Apigee OPDK。
-o, --organization 字串 (必填) 您的 Apigee 機構。您必須是機構組織管理員。
-p, --password 字串 (僅限基本驗證的必要欄位) 您的 Apigee 密碼。您也可以視需要 複製到 .netrc 檔案中的密碼這樣一來,您就不必 請在指令列提供密碼。其他參考資訊 使用 .netrc 做為憑證
--rotate-int 攔截 如果「n」>0,請產生新的私密金鑰並保留 n 個公開金鑰 (僅限混合型)
-r, --runtime 字串 (僅限 Private Cloud) 指定 Private Cloud 執行個體的執行階段網址。
-s, --secret 字串 指定從 apigee-remote-service-cli provision 傳回的密鑰 指令
--strength 攔截 (選用) 指定用於佈建 轉接頭。預設 2048
-t, --token 字串 (僅限混合型) Apigee OAuth 或 SAML 權杖。
-u, --username 字串 (僅限基本驗證的必要欄位) 您的 Apigee 使用者名稱 (通常是電子郵件地址)。 您可以視需要在 .netrc 檔案中指定使用者名稱。 另請參閱針對憑證使用 .netrc
-v, --verbose (選用) 產生詳細輸出。
--virtual-hosts 字串 覆寫預設的虛擬主機,也就是 default,secure。如果您符合以下情況,請使用這個選項 除了這些預設值之外,您必須為 Edge 機構環境指定虛擬主機。 詳情請參閱 Edge 說明文件 虛擬主機
--years 攔截 (選填) 用於佈建之 SSL 憑證的年數 過期。預設:1

範例

請務必擷取使用 provision 指令的輸出內容 做為其他 Apigee Adapter for Envoy 作業的輸入內容。

Edge Public Cloud 範例:

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,指令會取得目標服務主機和所需名稱 叢集內的 Pod也會為遠端服務設定自訂 SSL 連線,從 Envoy Proxy 到遠端服務 透過 --tls 提供含有 tls.keytls.crt 的資料夾。

如果您使用的是 Istio,其中 Envoy Proxy 會做為補充資訊,如果目標未指定, 系統會產生 httpbin 範例。否則就必須自行負責準備 設定檔。

參數

參數 類型 說明
-c, --config 字串 (必要) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分的其他指令參數,因為 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

清單可用的範本選項

列出可與 --templates 參數搭配使用的選項。

用量

apigee-remote-service-cli samples templates

參數

無。

範例

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

權杖指令

您可以使用 JWT 權杖執行通過驗證的 API Proxy 呼叫,而不使用 API 金鑰。 權杖指令可讓您基於此目的建立、檢查及輪替 JWT 權杖。

建立 JWT 權杖

您可以使用 JWT 權杖,向遠端服務目標發出通過驗證的 API Proxy 呼叫。詳情請見 以及使用 JWT 型驗證

用量

適用於 Edge 公有雲:
apigee-remote-service-cli token create -c [config_file] --id [consumer_key] --secret [consumer_secret] -o [org] -e [env]
敬上 使用 Edge 私有雲:
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 字串 (僅限 Private Cloud) 指定 Private Cloud 執行個體的執行階段網址。
-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 權杖。另請參閱「檢查權杖」。

用量

適用於 Edge 公有雲:
apigee-remote-service-cli token inspect -o [organization] -e [environment] -f [token_file]
敬上 使用 Edge 私有雲:
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 字串 (僅限 Private Cloud) 指定 Private Cloud 執行個體的執行階段網址。
-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 後不久,您可能需要變更公開/私密金鑰 配對。藉此產生 稱為金鑰輪替輪替金鑰時,新的私密金鑰/公開金鑰組 產生及儲存於「istio」Apigee Edge 機構/環境中的 KVM。 此外,舊的公開金鑰及其原始金鑰 ID 值一併保留。

用量

如果使用 Edge Public Cloud:
apigee-remote-service-cli token rotate-cert -c [config_file] -o [organization] -e [environment] -k [provision_key] -s [provision_secret] --kid [new_key_id]
敬上 如果使用 Edge Private Cloud:
apigee-remote-service-cli token rotate-cert -o [organization] -e [environment] -u [username] -p [password] -k [provision_key] -s [provision_secret] --kid [new_key_id]

參數

參數 類型 說明
-c, --config 字串 (必要) Apigee 遠端服務設定檔的路徑。
提示:這個標記可讓您省略大部分的其他指令參數,因為 CLI 可以從設定檔提取這些變數。詳情請參閱 使用 --config 選項
-e, --env 字串 (必要) 貴機構的環境。
-h, --help 顯示指令參數的說明。
--insecure 使用 SSL 時允許不安全的伺服器連線
--truncate 攔截 要在 jwks 中保留的憑證數量 (預設為 2 個)
-o, --org 字串 (必要) Apigee 機構。您必須是機構組織管理員。
-r, --runtime 字串 (僅限 Private Cloud) 指定 Private Cloud 執行個體的執行階段網址。
-v, --verbose (選用) 產生詳細輸出。

範例

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

輸出

certificate successfully rotated

使用 .netrc 做為憑證

apigee-remote-service-cli 會自動取得usernamepassword (在需要時用於進行基本驗證) 來自 .netrc 並在主目錄中找到 機器 api.enterprise.apigee.com。如果您使用的是 Apigee 私有雲 機器值與您的 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: 1m
  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
  jwt_provider_key: https://org-test.apigee.net/remote-service/token