本页面适用于 Apigee 和 Apigee Hybrid。
查看 Apigee Edge 文档。
apigee-remote-service-cli
命令行界面 (CLI) 可帮助您预配和管理 Envoy 的 Apigee 适配器。
使用 ‑‑config
选项简化 CLI 命令
‑‑config
选项可指定 provision
命令生成的 config.yaml
文件的位置。此选项的好处是,您可以跳过大多数其他命令参数,因为 CLI 会直接从 config.yaml
文件中拉取这些参数。
请注意,任何指定的命令行参数都会替换 config.yaml
文件中的值。
- 组织
- 环境
- 运行时
- 管理
- 不安全
- 命名空间
- 旧版
- opdk
您可以在升级适配器时使用此选项;但在这种情况下,您仍必须添加 --force-proxy-install
标志。例如,您可以执行 provision
命令,如下所示:
apigee-remote-service-cli provision --config='old-config.yaml' > new-config.yaml
请注意,如果您不更改旧配置文件中的任何值,则无需保存新文件,因为它与原始文件相同。
列出绑定命令
列出绑定到远程服务的所有 API 产品。
用法
apigee-remote-service-cli bindings list [flags]
参数
参数 | Presence | 与产品搭配使用 | 说明 |
---|---|---|---|
-c,
|
可选 | 全部 | (字符串)Apigee 远程服务配置文件的路径。 提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 ‑‑config 选项。 |
-e,
|
如果存在 --config ,则此参数为可选;否则为必需。 |
全部 | (字符串)您的组织中的环境。 |
-h,
|
可选 | 全部 | 显示命令参数的帮助。 |
‑‑insecure
|
可选 | 全部 | 使用 SSL 时允许不安全的服务器连接。 |
‑‑legacy
|
不适用 | 仅限 Edge Public Cloud | 此参数不适用于 Apigee 安装。 |
-m,
|
不适用 | 仅限 Edge Private Cloud | 此参数不适用于 Apigee 安装。 |
‑‑mfa
| 不适用 | 仅限 Edge Public Cloud | 此参数不适用于 Apigee 安装。 |
‑‑opdk
| 不适用 | 仅限 Edge Private Cloud | 此参数不适用于 Apigee 安装。 |
-o,
|
如果存在 --config ,则此参数为可选;否则为必需。 |
全部 | (字符串)Apigee 组织。您必须是组织管理员。 |
-p,
|
不适用 (仅限基本身份验证) |
仅限 Edge Public 和 Private Cloud | 此参数不适用于 Apigee 安装。 |
-r,
|
如果存在 --config ,则此参数为可选;否则为必需。 |
仅限 Apigee Hybrid | (字符串)指定 Private Cloud 或 Apigee Hybrid 实例的运行时网址。该网址必须以 https:// 开头。例如:https://apitest.example.net |
|
不适用 | 仅限 Edge Private Cloud | 此参数不适用于 Apigee 安装。 |
-t,
|
必需 (仅限 OAuth 令牌身份验证) |
全部 | (字符串)您通过 Apigee 账号信息生成的 OAuth 或 SAML 令牌。替换任何其他提供的凭据。 |
-u,
|
不适用 (仅限基本身份验证) |
仅限 Edge Public 和 Private Cloud | 此参数不适用于 Apigee 安装。 |
-v,
|
可选 | 全部 | (可选)生成详细输出。 |
示例
apigee-remote-service-cli bindings list -o myorg -e test --token $TOKEN \ -c config.yaml
输出示例
API 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:
帮助命令
所有 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 Edge 组织中安装两个 API 代理,设置证书,并且生成您需要用来配置 Apigee Adapter for Envoy 的凭据。
用法
apigee-remote-service-cli provision [flags]
参数
参数 | Presence | 与产品搭配使用 | 说明 |
---|---|---|---|
‑‑analytics-sa
|
可选 | 仅限 Apigee Hybrid 和 Apigee |
(字符串)使用此标志可指定 Google Cloud 服务账号密钥文件的路径,其中服务账号具有 |
-c,
|
可选 | 全部 | (字符串)Apigee 远程服务配置文件的路径。 提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 --config 选项。 |
-e,
|
如果存在 --config ,则此参数为可选;否则为必需。 |
全部 | (字符串)您的组织中的环境。 |
-f, ‑‑force-proxy-install
|
可选 | 全部 | (可选)如果已在您的组织中重新安装 remote-service 代理,则强制重新安装。 |
-h,
|
可选 | 全部 | 显示命令参数的帮助。 |
‑‑insecure
|
可选 | 全部 | 使用 SSL 时允许不安全的服务器连接。 |
‑‑legacy
|
不适用 | 仅限 Edge Public Cloud | 此参数不适用于 Apigee 安装。 |
-m,
|
不适用 | 仅限 Edge Private Cloud | 此参数不适用于 Apigee 安装。 |
‑‑mfa
| 不适用 | 仅限 Edge Public Cloud | 此参数不适用于 Apigee 安装。 |
-n, ‑‑namespace
|
如果存在 --config ,则此参数为可选;默认值为 apigee 。 |
仅适用于 Kubernetes 部署 | (字符串)在指定的命名空间中将配置作为 Envoy ConfigMap 发出默认:apigee
|
‑‑opdk
| 不适用 | 仅限 Edge Private Cloud | 此参数不适用于 Apigee 安装。 |
-o,
|
如果存在 --config ,则此参数为可选;否则为必需。 |
全部 | (字符串)Apigee 组织。您必须是组织管理员才能进行预配。 |
-p,
|
不适用 (仅限基本身份验证) |
仅限 Edge Public 和 Private Cloud | 此参数不适用于 Apigee 安装。 |
‑‑rotate
|
可选 | 仅限 Apigee Hybrid | (整数)如果 n > 0,则生成新的私钥并保留 n 个公钥(仅限 Hybrid) |
-r,
|
如果存在 --config ,则此参数为可选;否则为必需。 |
仅限 Apigee Hybrid | (字符串)指定 Apigee Hybrid 实例的运行时网址。该网址必须以 https:// 开头。例如:https://apitest.example.net |
|
不适用 | 仅限 Edge Private Cloud | 此参数不适用于 Apigee 安装。 |
-t,
|
必需 (仅限 OAuth 令牌身份验证) |
全部 | (字符串)您通过 Apigee 账号信息生成的 OAuth 或 SAML 令牌。替换任何其他提供的凭据。 |
-u,
|
不适用 (仅限基本身份验证) |
仅限 Edge Public 和 Private Cloud | 此参数不适用于 Apigee 安装。 |
-v,
|
可选 | 全部 | (可选)生成详细输出。 |
‑‑virtual-hosts
|
无 | 仅限 Edge Private Cloud | 此参数不适用于 Apigee 安装。 |
示例
如以下示例所示,请务必将 provision
命令的输出捕获到一个文件中,并将它用作其他 Apigee Adapter for Envoy 操作的输入。
示例:
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,该命令会获取目标服务主机及其集群所需的名称。如果通过 --tls
提供包含 tls.key
和 tls.crt
的文件夹,则该命令还将设置从 Envoy 代理到远程服务集群的自定义 SSL 连接。
如果您使用的是 Istio 代理(其中 Envoy 代理充当辅助资源),而且未指定目标,则系统会生成 httpbin
示例。否则,您需要准备与目标服务部署相关的配置文件。
参数
参数 | Presence | 与产品搭配使用 | 说明 |
---|---|---|---|
‑‑adapter‑host
|
仅用于 Envoy 模板 | 全部 | (字符串)适配器主机名(默认值:localhost ) |
-c, ‑‑config
|
必需 | 全部 | (字符串)Apigee 远程服务配置文件的路径。 提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 --config 选项。 |
-f, ‑‑force
|
可选 | 全部 | 强制覆盖现有目录。 |
-h, ‑‑help
|
可选 | 全部 | 显示命令参数的帮助。 |
‑‑host |
仅用于 Envoy 模板 | 全部 | (字符串)目标服务主机(默认为 httpbin.org ) |
-n, ‑‑name |
可选 | 全部 | (字符串)目标服务名称(默认为 httpbin.org ) |
‑‑out
|
可选 | 全部 | (字符串)在其中创建示例配置文件的目录。 默认值: ./samples |
‑‑tag
|
仅用于 Istio 模板 | 全部 | (字符串)Envoy 适配器映像的版本标记。默认值:当前发布版本 |
-t, ‑‑template
|
可选 | 全部 | (字符串)Envoy 或 Istio 模板名称。如需查看可用的模板列表,请执行 apigee-remote-service samples templates 命令。 默认值:istio-1.9 。默认值适用于所有 1.9+ 版本的 Istio。 |
‑‑tls
|
可选,仅适用于 Envoy 模板 | 全部 | (字符串)包含用于适配器服务的 tls.key 和 tls.crt 文件的目录。 |
示例
apigee-remote-service-cli samples create -c ./config.yaml
列出可用的模板选项
列出可用于 samples
命令的 --templates
参数的模板。
用法
apigee-remote-service-cli samples templates
参数
无。
示例
apigee-remote-service-cli samples templates
Supported templates (native is deprecated): envoy-1.15 envoy-1.16 envoy-1.17 istio-1.7 istio-1.8 istio-1.9
令牌命令
您可以使用 JWT 令牌(而不是使用 API 密钥)进行经过身份验证的 API 代理调用。您可以使用令牌命令创建、检查并轮替 JWT 令牌以实现此目的。
创建 JWT 令牌
您可以使用 JWT 令牌对远程服务目标进行经过身份验证的 API 代理调用。另请参阅 使用基于 JWT 的身份验证。用法
apigee-remote-service-cli token create [flags]
参数
参数 | Presence | 与产品搭配使用 | 说明 |
---|---|---|---|
-c,
|
必需 | 全部 | (字符串)Apigee 远程服务配置文件的路径。 提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 --config 选项。 |
-e,
|
如果存在 --config ,则此参数为可选;否则为必需。 |
全部 | (字符串)您的组织中的环境。 |
-h,
|
可选 | 全部 | 显示命令参数的帮助。 |
--i, --id
|
必需 | 全部 | (字符串)如如何获取 API 密钥中所述,在 Apigee 开发者应用中找到的密钥凭据。 |
‑‑insecure
|
可选 | 全部 | 使用 SSL 时允许不安全的服务器连接。 |
‑‑legacy
|
不适用 | 仅限 Edge Public Cloud | 此参数不适用于 Apigee 安装。 |
‑‑opdk
| 不适用 | 仅限 Edge Private Cloud | 此参数不适用于 Apigee 安装。 |
-o,
|
如果存在 --config ,则此参数为可选;否则为必需。 |
全部 | (字符串)Apigee 组织。您必须是组织管理员。 |
-r,
|
如果存在 --config ,则此参数为可选;否则为必需。 |
仅限 Apigee Hybrid | (字符串)指定 Private Cloud 或 Apigee Hybrid 实例的运行时网址。该网址必须以 https:// 开头。例如:https://apitest.example.net |
--s, ‑‑secret
|
必需 | 全部 | (字符串)如如何获取 API 密钥中所述,在 Apigee 开发者应用中找到的 Secret 凭据。 |
|
不适用 | 仅限 Edge Private Cloud | 此参数不适用于 Apigee 安装。 |
-v,
|
可选 | 全部 | (可选)生成详细输出。 |
示例
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-remote-service-cli token inspect [flags]
参数
参数
参数 | Presence | 与产品搭配使用 | 说明 |
---|---|---|---|
-c,
|
必需 | 全部 | (字符串)Apigee 远程服务配置文件的路径。 提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 ‑‑config 选项。 |
-e,
|
如果存在 --config ,则此参数为可选;否则为必需。 |
全部 | (字符串)您的组织中的环境。 |
-f,
|
必需 | 全部 | (字符串)令牌文件(默认值:使用 stdin ) |
-h,
|
可选 | 全部 | 显示命令参数的帮助。 |
‑‑insecure
|
可选 | 全部 | 使用 SSL 时允许不安全的服务器连接。 |
‑‑legacy
|
不适用 | 仅限 Edge Public Cloud | 此参数不适用于 Apigee 安装。 |
‑‑opdk
| 不适用 | 仅限 Edge Private Cloud | 此参数不适用于 Apigee 安装。 |
-o,
|
如果存在 --config ,则此参数为可选;否则为必需。 |
全部 | (字符串)Apigee 组织。您必须是组织管理员。 |
-r,
|
如果存在 --config ,则此参数为可选;否则为必需。 |
仅限 Apigee Hybrid | (字符串)指定 Private Cloud 或 Apigee Hybrid 实例的运行时网址。该网址必须以 https:// 开头。例如:https://apitest.example.net |
|
不适用 | 仅限 Edge Private Cloud | 此参数不适用于 Apigee 安装。 |
-v,
|
可选 | 全部 | (可选)生成详细输出。 |
示例
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 值会保留下来。用法
apigee-remote-service-cli token rotate-cert [flags]
参数
参数 | Presence | 与产品搭配使用 | 说明 |
---|---|---|---|
-c,
|
必需 | 全部 | (字符串)Apigee 远程服务配置文件的路径。 提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 --config 选项。 |
-e,
|
如果存在 --config ,则此参数为可选;否则为必需。 |
全部 | (字符串)您的组织中的环境。 |
-h,
|
不适用 | 仅限 Edge Public 和 Private Cloud | 显示命令参数的帮助。 |
--k, --key
|
不适用 | 仅限 Edge Public 和 Private Cloud | (字符串)预配密钥。 |
‑‑insecure
|
不适用 | 仅限 Edge Public 和 Private Cloud | 使用 SSL 时允许不安全的服务器连接。 |
‑‑legacy
|
不适用 | 仅限 Edge Public Cloud | 如果您使用的是 Apigee Edge for Public Cloud,则必须设置此标志。设置 Apigee Edge for Public Cloud 的管理和运行时网址。 |
‑‑opdk
| 不适用 | 仅限 Edge Private Cloud | 如果您使用的是 Apigee Edge for Private Cloud,则必须设置此标志。 |
-o,
|
如果存在 --config ,则此参数为可选;否则为必需。 |
仅限 Edge Public 和 Private Cloud | (字符串)Apigee 组织。您必须是组织管理员。 |
-r,
|
不适用 | 仅限 Edge Private Cloud | (字符串)指定 Private Cloud 或 Apigee Hybrid 实例的运行时网址。该网址必须以 https:// 开头。例如:https://apitest.example.net |
--s, ‑‑secret
|
必需 | 全部 | (字符串)预配 Secret。 |
|
不适用 | 仅限 Edge Private Cloud | (字符串)指定 mTLS 连接的客户端 TLS 证书、私钥和根 CA。 |
--t, ‑‑truncate
|
必需 | 全部 | (整数)要保留在 JWKS 中的证书数量(默认值 2)。 |
-v,
|
可选 | 全部 | (可选)生成详细输出。 |
示例
apigee-remote-service-cli token rotate-cert -c config.yaml -o myorg -e test \ -k 2e238ffa15dc5ab6a1e97868e7581f6c60ddb8575478582c256d8b7e5b2677a8 \ -s 51058077223fa7b683c3bea845c5cca138340d1d5583922b6d465f9f918a4b08
输出
certificate successfully rotated
创建内部令牌
创建 JWT 令牌,以授权远程服务 API 调用。用法
apigee-remote-service-cli token internal [flags]
参数
参数
参数 | Presence | 与产品搭配使用 | 说明 |
---|---|---|---|
-c,
|
必需 | 仅限 Apigee Hybrid | (字符串)Apigee 远程服务配置文件的路径。 提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 --config 选项。 |
-d,
|
必需 | 仅限 Apigee Hybrid | (字符串)从创建时间算起的内部 JWT 的有效时间(默认值:10m0s (10 分钟))。 |
-e,
|
如果存在 --config ,则此参数为可选;否则为必需。 |
仅限 Apigee Hybrid | (字符串)您的组织中的环境。 |
-h,
|
可选 | 仅限 Apigee Hybrid | 显示命令参数的帮助。 |
‑‑insecure
|
可选 | 仅限 Apigee Hybrid | 使用 SSL 时允许不安全的服务器连接。 |
-o,
|
如果存在 --config ,则此参数为可选;否则为必需。 |
仅限 Apigee Hybrid | (字符串)Apigee 组织。您必须是组织管理员。 |
-r,
|
如果存在 --config ,则此参数为可选;否则为必需。 |
仅限 Apigee Hybrid | (字符串)指定 Apigee Hybrid 实例的运行时网址。该网址必须以 https:// 开头。例如:https://apitest.example.net |
-v,
|
可选 | 仅限 Apigee Hybrid | (可选)生成详细输出。 |
版本命令
打印 CLI 版本
apigee-remote-service-cli version
配置文件
本部分提供了包含所有可用选项的示例配置文件。
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 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 products: refresh_rate: 2m analytics: legacy_endpoint: false file_limit: 1024 send_channel_size: 10 collection_interval: 10s auth: api_key_claim: claim api_key_cache_duration: 30m api_key_header: x-api-key api_header: :authority allow_unauthorized: false jwt_provider_key: https://org-test.apigee.net/remote-token/token append_metadata_headers: true