本頁內容適用於 Apigee 和 Apigee Hybrid。
查看
Apigee Edge 說明文件。
apigee-remote-service-cli
指令列介面 (CLI) 可協助您佈建及管理 Apigee Adapter for Envoy。
繫結指令
繫結會將部署至 Istio 網格的服務與 Apigee API 產品建立關聯。 您可以使用 CLI 建立、移除、列出及驗證繫結。
列出繫結
列出繫結至遠端服務的所有 API 產品。
用量
Apigee Hybrid:
apigee-remote-service-cli bindings list -o [organization] -e [environment] -t [token] -r [runtime]
參數
參數 | 類型 | 說明 |
---|---|---|
-c, --config
|
String | (必要) Apigee 遠端服務設定檔的路徑。 提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔中擷取這些參數。請參閱「 使用 --config 選項」。 |
-e, --env
|
String | (必填) 貴機構中的環境。 |
-h, --help
|
顯示指令參數的說明。 | |
--insecure
|
使用 SSL 時允許不安全的伺服器連線 | |
--legacy
|
如果您使用 Apigee Cloud,請設定這個旗標。並設定 Edge Cloud 的管理和執行階段網址。 | |
--opdk
|
如果您使用 Apigee for Private Cloud,請設定這個旗標。 | |
-o, --org
|
String | (必要) Apigee 機構。您必須是機構管理員。 |
-p, --password
|
String | (僅限基本驗證,不適用於混合式) 您的 Apigee 密碼。您也可以視需要使用 .netrc 檔案指定密碼。如果這麼做,您就不需要在指令列上提供密碼。另請參閱「使用 .netrc 取得憑證」。 |
-r, --runtime
|
String | 網址,其中包含混合式設定中定義的虛擬主機 hostAlias 。網址開頭必須是 https:// 。
例如:https://apitest.apigee-hybrid-docs.net
|
-t, --token
|
String | (必要) 存取權杖。 |
-u, --username
|
String | (僅限基本驗證,不適用於混合式) 您的 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:
驗證繫結
這項指令已淘汰。在 1.4 版中,開發人員應用程式不再需要與搭配遠端服務目標使用的 API 產品建立關聯。
說明指令
所有 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、設定憑證,並產生設定 Apigee Adapter for Envoy 時所需的憑證。
用量
Apigee Hybrid:
apigee-remote-service-cli provision -o $ORG -e $ENV -r $RUNTIME -t $TOKEN
參數
參數 | 類型 | 說明 |
---|---|---|
--analytics-sa
|
String | 使用這個旗標指定 Google Cloud 服務帳戶金鑰檔案的路徑,其中服務帳戶具有 Apigee Analytics Agent 角色。轉接程式會使用 SA,直接將 Analytics 資料上傳至 Apigee。如果您使用 Apigee Hybrid,可以透過這個選項在一個叢集中安裝 Hybrid 執行階段,並在另一個叢集中安裝介面卡。這個標記僅適用於 Apigee Hybrid 和 Google Cloud 上的 Apigee 安裝作業。
|
-c, --config
|
String | Apigee Remote Service 設定檔的路徑。另請參閱「
使用 --config 選項」。 |
-e, --environment
|
String | (必填) 貴機構中的環境。 |
-f, --force-proxy-install
|
(選用) 如果機構已安裝 remote-service Proxy,這個選項會強制重新安裝。 |
|
-h, --help
|
顯示指令參數的說明。 | |
-k, --key
|
String | 指定從 apigee-remote-service-cli provision 指令傳回的金鑰。 |
--legacy
|
Apigee Edge (設定管理和執行階段網址) | |
-m, --management
|
String | (如果您使用 Apigee Private Cloud,則為必填) 您的 Apigee 管理基本網址。
預設值:https://api.enterprise.apigee.com
|
-n, --namespace
|
String | 在指定命名空間中,以 Envoy ConfigMap 形式發出設定。預設值:apigee |
--opdk
|
String | 如果您使用 Apigee for Private Cloud,請設定這個旗標。 |
-o, --organization
|
String | (必填) 您的 Apigee 機構。 |
-p, --password
|
String | (僅限基本驗證,不適用於混合式) 您的 Apigee 密碼。您也可以視需要使用 .netrc 檔案指定密碼。如果這麼做,您就不需要在指令列上提供密碼。另請參閱「使用 .netrc 取得憑證」。 |
--rotate-int
|
int | 如果 n > 0,請產生新的私密金鑰,並保留 n 個公開金鑰 (僅限混合式) |
-r, --runtime
|
String | 網址,其中包含混合式設定中定義的虛擬主機 hostAlias 。網址開頭必須是 https:// 。
例如:https://apitest.apigee-hybrid-docs.net
|
-s, --secret
|
String | 指定 apigee-remote-service-cli provision 指令傳回的密碼。
|
--strength
|
int | (選用) 指定用於佈建介面的 SSL 憑證加密強度。預設值 2048 |
-t, --token
|
String | Apigee OAuth 或 SAML 權杖。 |
-u, --username
|
String | (僅限基本驗證,不適用於混合式) 您的 Apigee 使用者名稱 (通常是電子郵件地址)。
您也可以在 .netrc 檔案中指定使用者名稱。
另請參閱「使用 .netrc 取得憑證」。
|
-v, --verbose
|
(選用) 產生詳細輸出內容。 | |
--virtual-hosts
|
String | 覆寫預設虛擬主機。 |
--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
Samples 指令
建立設定檔範例
為原生 Envoy 或 Istio 部署作業建立範例設定檔。
用量
apigee-remote-service-cli samples create [flags]
說明
這項指令需要透過佈建程序產生的有效 config.yaml
檔案。
根據預設,範例檔案會輸出至名為 ./samples
的目錄。這個指令會為您建立這個目錄。
如果您使用的是原生 Envoy,這項指令會採用目標服務主機和叢集的所需名稱。如果透過 --tls
提供包含 tls.key
和 tls.crt
的資料夾,系統也會設定從 Envoy Proxy 到遠端服務叢集的自訂 SSL 連線。
如果您使用 Istio,其中 Envoy Proxy 會做為 Sidecar,如果未指定目標,系統會產生 httpbin
範例。否則,您必須負責準備與目標服務部署作業相關的設定檔。
參數
參數 | 類型 | 說明 |
---|---|---|
-c, --config
|
String | (必要) Apigee Remote Service 設定檔的路徑。 提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔中擷取這些參數。請參閱「 使用 --config 選項」。 |
-f, --force
|
強制覆寫現有目錄。 | |
-h, --help
|
顯示指令參數的說明。 | |
--host
|
目標服務主機 (預設為「httpbin.org」) | |
-n, --name
|
目標服務名稱 (預設為「httpbin」) | |
--out
|
要建立設定檔範例的目錄。預設值:./samples
|
|
-t, --template
|
範本名稱。如果您要部署 Istio (僅限混合式),請選取其中一個可用的 Istio 選項。如要部署原生 Envoy,請使用原生選項。可用選項包括:
|
|
--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 為基礎的驗證機制。用量
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
|
String | (必要) Apigee 遠端服務設定檔的路徑。 提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔中擷取這些參數。請參閱「 使用 --config 選項」。 |
-e, --env
|
String | (必填) 貴機構中的環境。 |
-h, --help
|
顯示指令參數的說明。 | |
--insecure
|
使用 SSL 時允許不安全的伺服器連線。 | |
-o, --org
|
String | (必要) Apigee 機構。您必須是機構管理員。 |
-r, --runtime
|
String | 網址,其中包含混合式設定中定義的虛擬主機 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
|
String | (必要) Apigee 遠端服務設定檔的路徑。 提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔中擷取這些參數。請參閱「 使用 --config 選項」。 |
-e, --env
|
String | (必填) 貴機構中的環境。 |
-h, --help
|
顯示指令參數的說明。 | |
--insecure
|
使用 SSL 時允許不安全的伺服器連線。 | |
-o, --org
|
String | (必要) Apigee 機構。您必須是機構管理員。 |
-r, --runtime
|
String | 網址,其中包含混合式設定中定義的虛擬主機 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
|
String | (必要) Apigee 遠端服務設定檔的路徑。 提示:這個標記可讓您省略大部分其他指令參數,因為 CLI 可以直接從設定檔中擷取這些參數。請參閱「 使用 --config 選項」。 |
-e, --env
|
String | (必填) 貴機構中的環境。 |
-h, --help
|
顯示指令參數的說明。 | |
--insecure
|
使用 SSL 時允許不安全的伺服器連線 | |
--truncate
|
int | 要在 jwks 中保留的憑證數量 (預設為 2) |
-o, --org
|
String | (必要) Apigee 機構。您必須是機構管理員。 |
-r, --runtime
|
String | 網址,其中包含混合式設定中定義的虛擬主機 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
檔案擷取 username
和 password
(視需要用於基本驗證)。如果您使用 Apigee Private Cloud,機器值與 management
URL 相同 (例如:http://192.162.55.100
)。
Edge Public Cloud 範例:
machine api.enterprise.apigee.com login jdoe@google.com password abc123
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