本页面适用于 Apigee 和 Apigee Hybrid。
查看 Apigee Edge 文档。
apigee-remote-service-cli
命令行界面 (CLI) 可帮助您预配和管理 Envoy 的 Apigee 适配器。
绑定命令
绑定会将部署到 Istio 网格的服务与 Apigee API 产品相关联。您可以利用 CLI 创建、移除和列出绑定。
注意:在“创建产品”界面中,您可以用产品指定一种或多种服务。此操作等同于使用 CLI 创建绑定。添加绑定
将远程目标绑定添加到 API 产品
用法
对于 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 Cloud,请设置此标志。为 Edge Cloud 设置管理和运行时网址。 | |
--opdk
|
如果您使用的是 Apigee for Private Cloud,请设置此标志。 | |
-o, --org
|
字符串 | (必需)Apigee 组织。您必须是组织管理员。 |
-p, --password
|
字符串 | (仅进行基本身份验证时必须提供)您的 Apigee 密码。您可以选择在 .netrc 文件中指定密码。如果您这样做,则无需在命令行中提供密码。另请参阅 使用 .netrc 作为凭据。 |
-r, --runtime
|
字符串 | Apigee 运行时基准网址(用于混合或 opdk)。 |
-t, --token
|
字符串 | (仅 OAuth 令牌身份验证是必需的)您通过 Apigee 账号信息生成的 OAuth 或 SAML 令牌。如需了解如何生成令牌,请参阅获取 OAuth 2.0 访问令牌和 SAML 概览。 |
-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 产品。
用法
参数
参数 | 类型 | 说明 |
---|---|---|
-c, --config
|
字符串 | (必需)Apigee 远程服务配置文件的路径。提示:指定此选项时,您可以省略大多数其他命令参数。请参阅 使用 --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
|
字符串 | Apigee 运行时基准网址(用于混合或 opdk)。 |
-t, --token
|
字符串 | (仅 OAuth 令牌身份验证是必需的)您通过 Apigee 账号信息生成的 OAuth 或 SAML 令牌。如需了解如何生成令牌,请参阅获取 OAuth 2.0 访问令牌和 SAML 概览。 |
-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 产品中移除 Envoy 远程服务的绑定。
注意:您还可以通过从界面的产品中移除服务名称,移除 Envoy 绑定的远程服务。用法
对于 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 Cloud,请设置此标志。为 Edge Cloud 设置管理和运行时网址。 | |
--opdk
|
如果您使用的是 Apigee for Private Cloud,请设置此标志。 | |
-o, --org
|
字符串 | (必需)Apigee 组织。您必须是组织管理员。 |
-p, --password
|
字符串 | (仅进行基本身份验证时必须提供)您的 Apigee 密码。您可以选择在 .netrc 文件中指定密码。如果您这样做,则无需在命令行中提供密码。另请参阅 使用 .netrc 作为凭据。 |
-r, --runtime
|
字符串 | Apigee 运行时基准网址(用于混合或 opdk)。 |
-t, --token
|
字符串 | (仅 OAuth 令牌身份验证是必需的)您通过 Apigee 账号信息生成的 OAuth 或 SAML 令牌。如需了解如何生成令牌,请参阅获取 OAuth 2.0 访问令牌和 SAML 概览。 |
-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 组织中安装代理,设置证书,并生成配置 Apigee Adapter for Envoy 所需的凭据。
用法
参数
参数 | 类型 | 说明 |
---|---|---|
-c, --config
|
字符串 | Apigee 远程服务配置文件的路径。提示:指定此选项时,您可以省略大多数其他命令参数。请参阅 使用 --config 选项。 |
-e, --environment
|
字符串 | (必需)您的组织中的环境。 |
-f, --force-proxy-install
|
(可选)如果已在您的组织中重新安装 remote-service 代理,则强制重新安装。 |
|
-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 |
--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
|
整数 | (可选)指定预配适配器中使用的 SSL 证书的加密强度。默认 2048 |
-t, --token
|
字符串 | (仅限混合式)Apigee OAuth 或 SAML 令牌。 |
-u, --username
|
字符串 | (仅进行基本身份验证时是必需的)您的 Apigee 用户名(通常是电子邮件地址)。您可以选择在 .netrc 文件中指定用户名。另请参阅 使用 .netrc 作为凭据。 |
-v, --verbose
|
(可选)生成详细输出。 | |
--virtual-hosts
|
字符串 | 替换默认虚拟主机。 |
--years
|
整数 | (可选)配置中使用的 SSL 证书的到期时间。默认:1 |
示例
请确保捕获文件中 provision
命令的输出,该文件用作其他 Apigee 适配器的 Envoy 操作输入。
Apigee Hybrid 示例
apigee-remote-service-cli provision --organization $ORG --environment $ENV --runtime $RUNTIME --namespace $NAMESPACE --token $TOKEN > config.yaml
令牌命令
您可以使用 JWT 令牌(而不是使用 API 密钥)进行经过身份验证的 API 代理调用。您可以使用令牌命令创建、检查并轮替 JWT 令牌以实现此目的。
创建 JWT 令牌
您可以使用 JWT 令牌对远程服务目标进行经过身份验证的 API 代理调用。另请参阅 使用基于 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 远程服务配置文件的路径。提示:指定此选项时,您可以省略大多数其他命令参数。请参阅 使用 --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 令牌。另请参阅 检查令牌。用法
对于 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 之后的一段时间内,您可能需要更改在加密键值对映射 (KVM) 中由 Apigee 存储的私钥/公钥对。生成新密钥对的过程称为密钥轮替。轮替密钥时,系统会生成一个新的私钥/公钥对,并将其存储在 Apigee 组织/环境中的“istio”KVM 中。此外,旧的公钥及其原始密钥 ID 值会保留下来。用法
参数
参数 | 类型 | 说明 |
---|---|---|
-c, --config
|
字符串 | (必需)Apigee 远程服务配置文件的路径。提示:指定此选项时,您可以省略大多数其他命令参数。请参阅 使用 --config 选项。 |
-e, --env
|
字符串 | (必需)您的组织中的环境。 |
-h, --help
|
显示命令参数的帮助。 | |
--insecure
|
使用 SSL 时允许不安全的服务器连接 | |
--truncate
|
整数 | jwk 中的证书数量(默认值为 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 凭据
如果您使用的是 Apigee,并且apigee-remote-service-cli
会从您的主目录的 .netrc
文件中自动选取 username
和 password
(用于基本身份验证)并且有机器 api.enterprise.apigee.com
的条目。如果您使用的是 Apigee Private Cloud,则机器值与您的 management
网址相同(例如 http://192.162.55.100
)。版本命令
打印 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