查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
apigee-remote-service-cli
指令列介面 (CLI) 可協助您
佈建及管理 Apigee Adapter for Envoy。
繫結指令
繫結會將部署至 Istio 網格的服務與 Apigee API 產品建立關聯。 您可以使用命令列建立、移除及列出繫結。
注意:在「建立產品」 UI 中,您可以為一項產品指定一或多項服務。 這麼做等同於使用 CLI 建立繫結。新增繫結
將遠端目標繫結新增至 API 產品。
用量
適用於 Edge 公有雲:
apigee-remote-service-cli bindings add [service_name] [product_name] -o [organization] -e [environment] -u [username] -p [password] -c [config]
使用 Edge 私有雲:
apigee-remote-service-cli bindings add [service_name] [product_name] -o [organization] -e [environment] -u [username] -p [password] -r [runtime] -c [config]
Apigee Hybrid:
apigee-remote-service-cli bindings add [service_name] [product_name] -o [organization] -e [environment] -t [token]
參數
參數 | 類型 | 說明 |
---|---|---|
-c, --config
|
字串 | (必要) Apigee 遠端服務設定檔的路徑。提示:當你指定
此選項可以省略大部分的其他指令參數。詳情請參閱
使用 --config 選項。
|
-e, --env
|
字串 | (必要) 貴機構的環境。 |
-h, --help
|
顯示指令參數的說明。 | |
--insecure
|
使用 SSL 時允許不安全的伺服器連線 | |
--legacy
|
如果您使用的是 Apigee Edge Cloud,請設定這個標記。並會設定管理網址和執行階段網址 Edge Cloud 的運作方式 | |
--opdk
|
如果您使用的是適用於 Private Cloud 的 Apigee Edge,請設定這個標記。 | |
-o, --org
|
字串 | (必要) Apigee 機構。您必須是機構組織管理員。 |
-p, --password
|
字串 | (僅限基本驗證的必要欄位) 您的 Apigee 密碼。您可以選擇在 .netrc 檔案中指定密碼。這樣一來,您就不必
請在指令列提供密碼。其他參考資訊
使用 .netrc 做為憑證。
|
-r, --runtime
|
字串 | Apigee 執行階段基準網址 (混合型或 opdk 的必填)。 |
-t, --token
|
字串 | (僅限 OAuth 權杖驗證) 您產生的 OAuth 或 SAML 權杖 即可擷取您的 Apigee 帳戶資訊如要瞭解如何產生符記,請參閱 使用 get_token 和 透過 SAML 存取 Management API。 |
-u, --username
|
字串 | (僅限基本驗證的必要欄位) 您的 Apigee 使用者名稱 (通常是電子郵件地址)。
您可以視需要在 .netrc 檔案中指定使用者名稱。:
您不需要在指令列提供使用者名稱。詳情請見
以及對憑證使用 .netrc。
|
-v, --verbose
|
(選用) 產生詳細輸出。 |
範例
./apigee-remote-service-cli bindings add httpbin.org envoy-test -o myorg -e test -u user@example.com -c config.yaml -p xxxxxx product envoy-test is now bound to: httpbin.org
列出繫結
列出與遠端服務繫結的所有 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 遠端服務設定檔的路徑。提示:指定這個選項時,您可以省略大部分其他指令參數。詳情請參閱
使用 --config 選項。
|
-e, --env
|
字串 | (必要) 貴機構的環境。 |
-h, --help
|
顯示指令參數的說明。 | |
--insecure
|
使用 SSL 時允許不安全的伺服器連線 | |
--legacy
|
如果您使用的是 Apigee Edge Cloud,請設定這個標記。並會設定管理網址和執行階段網址 Edge Cloud 的運作方式 | |
--opdk
|
如果您使用的是適用於 Private Cloud 的 Apigee Edge,請設定這個標記。 | |
-o, --org
|
字串 | (必要) Apigee 機構。您必須是機構組織管理員。 |
-p, --password
|
字串 | (僅限基本驗證的必要欄位) 您的 Apigee 密碼。您也可以視需要
複製到 .netrc 檔案中的密碼這樣一來,您就不必
請在指令列提供密碼。其他參考資訊
使用 .netrc 做為憑證。
|
-r, --runtime
|
字串 | Apigee 執行階段基準網址 (混合型或 opdk 的必填)。 |
-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 產品中 Remote Service for Envoy 的繫結。
注意:您也可以移除 Edge UI 中產品的服務名稱,藉此移除 Envoy 繫結的遠端服務。用量
適用於 Edge 公有雲:
apigee-remote-service-cli bindings remove [service_name] [product_name] -o [organization] -e [environment] -u [username] -p [password] -c [config]
使用 Edge 私有雲:
apigee-remote-service-cli bindings remove [service_name] [product_name] -o [organization] -e [environment] -u [username] -p [password] -r [runtime] -c [config]
Apigee Hybrid:
apigee-remote-service-cli bindings remove [service_name] [product_name] -o [organization] -e [environment] -t [token]
參數
參數 | 類型 | 說明 |
---|---|---|
-c, --config
|
字串 | (必要) Apigee 遠端服務設定檔的路徑。提示:當你指定
此選項可以省略大部分的其他指令參數。詳情請參閱
使用 --config 選項。
|
-e, --env
|
字串 | (必要) 貴機構的環境。 |
-h, --help
|
顯示指令參數的說明。 | |
--insecure
|
使用 SSL 時允許不安全的伺服器連線 | |
--legacy
|
如果您使用的是 Apigee Edge Cloud,請設定這個標記。並會設定管理網址和執行階段網址 Edge Cloud 的運作方式 | |
--opdk
|
如果您使用的是適用於 Private Cloud 的 Apigee Edge,請設定這個標記。 | |
-o, --org
|
字串 | (必要) Apigee 機構。您必須是機構組織管理員。 |
-p, --password
|
字串 | (僅限基本驗證的必要欄位) 您的 Apigee 密碼。您也可以視需要
複製到 .netrc 檔案中的密碼這樣一來,您就不必
請在指令列提供密碼。其他參考資訊
使用 .netrc 做為憑證。
|
-r, --runtime
|
字串 | Apigee 執行階段基準網址 (混合型或 opdk 的必填)。 |
-t, --token
|
字串 | (僅限 OAuth 權杖驗證) 您產生的 OAuth 或 SAML 權杖 即可擷取您的 Apigee 帳戶資訊如要瞭解如何產生權杖,請參閱「使用 get_token」和「使用 SAML 存取管理 API」。 |
-u, --username
|
字串 | (僅限基本驗證的必要欄位) 您的 Apigee 使用者名稱 (通常是電子郵件地址)。
您可以選擇在 .netrc 檔案中指定使用者名稱。如此一來,您就不需要在指令列上提供使用者名稱。另請參閱「使用 .netrc 做為憑證」。 |
-v, --verbose
|
(選用) 產生詳細輸出內容。 |
範例
./apigee-remote-service-cli bindings remove httpbin.org envoy-test -o myorg -e test -u user@example.com -c config.yaml -p xxxxxx product envoy-test is no longer bound to: httpbin.org
說明指令
所有 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
參數
參數 | 類型 | 說明 |
---|---|---|
-c, --config
|
字串 | Apigee 遠端服務設定檔的路徑。提示:當你指定
此選項可以省略大部分的其他指令參數。詳情請參閱
使用 --config 選項。
|
-e, --environment
|
字串 | (必要) 貴機構的環境。 |
-f, --force-proxy-install
|
(選用) 如果 remote-service Proxy 已解除安裝,則強制重新安裝
已安裝於貴機構
|
|
-h, --help
|
顯示指令參數的說明。 | |
-k, --key
|
字串 | 指定從
apigee-remote-service-cli provision 指令。
|
--legacy
|
Apigee SaaS (設定管理和執行階段網址) | |
-m, --management
|
字串 | (使用 Apigee 私有雲時為必填) 您的 Apigee 管理基準網址。
預設:https://api.enterprise.apigee.com
|
-n, --namespace
|
字串 | 在指定命名空間中,將設定發出為 Envoy ConfigMap。 |
--opdk
|
字串 | Apigee OPDK。 |
-o, --organization
|
字串 | (必填) 您的 Apigee 機構。您必須是機構組織管理員。 |
-p, --password
|
字串 | (僅限基本驗證的必要欄位) 您的 Apigee 密碼。您可以選擇在 .netrc 檔案中指定密碼。這樣一來,您就不必
請在指令列提供密碼。其他參考資訊
使用 .netrc 做為憑證。
|
--rotate-int
|
攔截 | 如果 n > 0,請產生新的私密金鑰,並保留 n 個公開金鑰 (僅限混合型) |
-r, --runtime
|
字串 | Apigee 執行階段基準網址 (混合型或 opdk 的必填) |
-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
|
字串 | 覆寫預設的虛擬主機,其為「default、secure」。如果您符合以下情況,請使用這個選項 除了這些預設值之外,您必須為 Edge 機構環境指定虛擬主機。 詳情請參閱 Edge 說明文件 虛擬主機 |
--years
|
攔截 | (選填) 用於佈建之 SSL 憑證的年數 過期。預設:1 |
範例
請務必擷取使用 provision
指令的輸出內容
做為其他 Apigee Adapter for Envoy 作業的輸入內容。
Edge Public Cloud 範例:
apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
Apigee Hybrid 範例:
apigee-remote-service-cli provision --organization $ORG --environment $ENV --runtime $RUNTIME --namespace $NAMESPACE --token $TOKEN > config.yaml
符記指令
您可以使用 JWT 權杖執行通過驗證的 API Proxy 呼叫,而不使用 API 金鑰。 權杖指令可讓您基於此目的建立、檢查及輪替 JWT 權杖。
建立 JWT 權杖
您可以使用 JWT 權杖,向遠端服務目標發出經過驗證的 API Proxy 呼叫。詳情請見 以及使用 JWT 型驗證。用量
Edge Public Cloud:apigee-remote-service-cli token create -c [config_file] --id [consumer_key] --secret [consumer_secret] -o [org] -e [env]Edge Private Cloud:
apigee-remote-service-cli token create -c [config_file] --id [consumer_key] --secret [consumer_secret] -r [runtime] -o [org] -e [env]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 遠端服務設定檔的路徑。提示:指定這個選項時,您可以省略大部分其他指令參數。詳情請參閱
使用 --config 選項。
|
-e, --env
|
字串 | (必要) 貴機構的環境。 |
-h, --help
|
顯示指令參數的說明。 | |
--insecure
|
使用 SSL 時允許不安全的伺服器連線。 | |
-o, --org
|
字串 | (必要) Apigee 機構。您必須是機構組織管理員。 |
-r, --runtime
|
字串 | Apigee 執行階段基準網址 (只有混合型或 opdk 才需要)。 |
-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 Public Cloud:apigee-remote-service-cli token inspect -o [organization] -e [environment] -f [token_file]Edge Private Cloud:
apigee-remote-service-cli token inspect -o [organization] -e [environment] -f [token_file] --runtime [host_alias]Apigee hybrid:
apigee-remote-service-cli token inspect -o [organization] -e [environment] -f [token_file] --runtime [host_alias]
參數
參數 | 類型 | 說明 |
---|---|---|
-c, --config
|
字串 | (必要) Apigee 遠端服務設定檔的路徑。提示:當你指定
此選項可以省略大部分的其他指令參數。詳情請參閱
使用 --config 選項。
|
-e, --env
|
字串 | (必要) 貴機構的環境。 |
-h, --help
|
顯示指令參數的說明。 | |
--insecure
|
使用 SSL 時允許不安全的伺服器連線。 | |
-o, --org
|
字串 | (必要) Apigee 機構。您必須是機構組織管理員。 |
-r, --runtime
|
字串 | Apigee 執行階段基準網址 (只有混合型或 opdk 才需要)。 |
-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 遠端服務設定檔的路徑。提示:指定這個選項時,您可以省略大部分其他指令參數。請參閱「使用 --config 選項」。 |
-e, --env
|
字串 | (必要) 貴機構的環境。 |
-h, --help
|
顯示指令參數的說明。 | |
--insecure
|
使用 SSL 時允許不安全的伺服器連線 | |
--truncate
|
攔截 | 要在 jwks 中保留的憑證數量 (預設為 2) |
-o, --org
|
字串 | (必要) Apigee 機構。您必須是機構組織管理員。 |
-r, --runtime
|
字串 | Apigee 執行階段基準網址 (混合型或 opdk 的必填)。 |
-v, --verbose
|
(選用) 產生詳細輸出。 |
範例
apigee-remote-service-cli token rotate-cert -c config.yaml -o myorg -e test -k 2e238ffa15dc5ab6a1e97868e7581f6c60ddb8575478582c256d8b7e5b2677a8 -s 51058077223fa7b683c3bea845c5cca138340d1d5583922b6d465f9f918a4b08
輸出
certificate successfully rotated
使用 .netrc 做為憑證
如果您使用 Edge Public Cloud,且有機器api.enterprise.apigee.com
的項目,apigee-remote-service-cli
會自動從您主目錄中的 .netrc
檔案中擷取 username
和 password
(用於必要的基本驗證)。如果您使用的是 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: 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