参考资料

本页面适用于 ApigeeApigee 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,
‑‑config
可选 全部 (字符串)Apigee 远程服务配置文件的路径。
提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 ‑‑config 选项
-e,
‑‑environment
如果存在 --config,则此参数为可选;否则为必需。 全部 (字符串)您的组织中的环境。
-h,
‑‑help
可选 全部 显示命令参数的帮助。
‑‑insecure 可选 全部 使用 SSL 时允许不安全的服务器连接。
‑‑legacy 不适用 仅限 Edge Public Cloud 此参数不适用于 Apigee 安装。
-m,
‑‑management
不适用 仅限 Edge Private Cloud 此参数不适用于 Apigee 安装。
‑‑mfa 不适用 仅限 Edge Public Cloud 此参数不适用于 Apigee 安装。
‑‑opdk 不适用 仅限 Edge Private Cloud 此参数不适用于 Apigee 安装。
-o,
‑‑organization
如果存在 --config,则此参数为可选;否则为必需。 全部 (字符串)Apigee 组织。您必须是组织管理员。
-p,
‑‑password
不适用
(仅限基本身份验证)
仅限 Edge Public 和 Private Cloud 此参数不适用于 Apigee 安装。
-r,
‑‑runtime
如果存在 --config,则此参数为可选;否则为必需。 仅限 Apigee Hybrid (字符串)指定 Private Cloud 或 Apigee Hybrid 实例的运行时网址。该网址必须以 https:// 开头。例如:https://apitest.example.net
‑‑tls‑cert
‑‑tls‑key
‑‑tls‑ca
不适用 仅限 Edge Private Cloud 此参数不适用于 Apigee 安装。
-t,
‑‑token
必需
(仅限 OAuth 令牌身份验证)
全部 (字符串)您通过 Apigee 账号信息生成的 OAuth 或 SAML 令牌。替换任何其他提供的凭据。
-u,
‑‑username
不适用
(仅限基本身份验证)
仅限 Edge Public 和 Private Cloud 此参数不适用于 Apigee 安装。
-v,
‑‑verbose
可选 全部 (可选)生成详细输出。

示例

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 服务账号密钥文件的路径,其中服务账号具有 Apigee Analytics Agent 角色。适配器使用 SA 直接将分析数据上传到 Apigee。此选项允许适配器在主机上没有应用默认凭据的情况下上传分析。如果未指定此选项,适配器会使用默认服务账号凭据

-c,
‑‑config
可选 全部 (字符串)Apigee 远程服务配置文件的路径。
提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 --config 选项
-e,
‑‑environment
如果存在 --config,则此参数为可选;否则为必需。 全部 (字符串)您的组织中的环境。
-f, ‑‑force-proxy-install 可选 全部 (可选)如果已在您的组织中重新安装 remote-service 代理,则强制重新安装。
-h,
‑‑help
可选 全部 显示命令参数的帮助。
‑‑insecure 可选 全部 使用 SSL 时允许不安全的服务器连接。
‑‑legacy 不适用 仅限 Edge Public Cloud 此参数不适用于 Apigee 安装。
-m,
‑‑management
不适用 仅限 Edge Private Cloud 此参数不适用于 Apigee 安装。
‑‑mfa 不适用 仅限 Edge Public Cloud 此参数不适用于 Apigee 安装。
-n, ‑‑namespace 如果存在 --config,则此参数为可选;默认值为 apigee 仅适用于 Kubernetes 部署 (字符串)在指定的命名空间中将配置作为 Envoy ConfigMap 发出默认:apigee
‑‑opdk 不适用 仅限 Edge Private Cloud 此参数不适用于 Apigee 安装。
-o,
‑‑organization
如果存在 --config,则此参数为可选;否则为必需。 全部 (字符串)Apigee 组织。您必须是组织管理员才能进行预配。
-p,
‑‑password
不适用
(仅限基本身份验证)
仅限 Edge Public 和 Private Cloud 此参数不适用于 Apigee 安装。
‑‑rotate 可选 仅限 Apigee Hybrid(整数)如果 n > 0,则生成新的私钥并保留 n 个公钥(仅限 Hybrid)
-r,
‑‑runtime
如果存在 --config,则此参数为可选;否则为必需。 仅限 Apigee Hybrid (字符串)指定 Apigee Hybrid 实例的运行时网址。该网址必须以 https:// 开头。例如:https://apitest.example.net
‑‑tls‑cert
‑‑tls‑key
‑‑tls‑ca
不适用 仅限 Edge Private Cloud 此参数不适用于 Apigee 安装。
-t,
‑‑token
必需
(仅限 OAuth 令牌身份验证)
全部 (字符串)您通过 Apigee 账号信息生成的 OAuth 或 SAML 令牌。替换任何其他提供的凭据。
-u,
‑‑username
不适用
(仅限基本身份验证)
仅限 Edge Public 和 Private Cloud 此参数不适用于 Apigee 安装。
-v,
‑‑verbose
可选 全部 (可选)生成详细输出。
‑‑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.keytls.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.keytls.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,
‑‑config
必需 全部 (字符串)Apigee 远程服务配置文件的路径。
提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 --config 选项
-e,
‑‑environment
如果存在 --config,则此参数为可选;否则为必需。 全部 (字符串)您的组织中的环境。
-h,
‑‑help
可选 全部 显示命令参数的帮助。
--i, --id 必需 全部 (字符串)如如何获取 API 密钥中所述,在 Apigee 开发者应用中找到的密钥凭据。
‑‑insecure 可选 全部 使用 SSL 时允许不安全的服务器连接。
‑‑legacy 不适用 仅限 Edge Public Cloud 此参数不适用于 Apigee 安装。
‑‑opdk 不适用 仅限 Edge Private Cloud 此参数不适用于 Apigee 安装。
-o,
‑‑organization
如果存在 --config,则此参数为可选;否则为必需。 全部 (字符串)Apigee 组织。您必须是组织管理员。
-r,
‑‑runtime
如果存在 --config,则此参数为可选;否则为必需。 仅限 Apigee Hybrid (字符串)指定 Private Cloud 或 Apigee Hybrid 实例的运行时网址。该网址必须以 https:// 开头。例如:https://apitest.example.net
--s, ‑‑secret 必需 全部 (字符串)如如何获取 API 密钥中所述,在 Apigee 开发者应用中找到的 Secret 凭据。
‑‑tls‑cert
‑‑tls‑key
‑‑tls‑ca
不适用 仅限 Edge Private Cloud 此参数不适用于 Apigee 安装。
-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-remote-service-cli token inspect [flags]

参数

参数

参数 Presence 与产品搭配使用 说明
-c,
‑‑config
必需 全部 (字符串)Apigee 远程服务配置文件的路径。
提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 ‑‑config 选项
-e,
‑‑environment
如果存在 --config,则此参数为可选;否则为必需。 全部 (字符串)您的组织中的环境。
-f,
‑‑file
必需 全部 (字符串)令牌文件(默认值:使用 stdin
-h,
‑‑help
可选 全部 显示命令参数的帮助。
‑‑insecure 可选 全部 使用 SSL 时允许不安全的服务器连接。
‑‑legacy 不适用 仅限 Edge Public Cloud 此参数不适用于 Apigee 安装。
‑‑opdk 不适用 仅限 Edge Private Cloud 此参数不适用于 Apigee 安装。
-o,
‑‑organization
如果存在 --config,则此参数为可选;否则为必需。 全部 (字符串)Apigee 组织。您必须是组织管理员。
-r,
‑‑runtime
如果存在 --config,则此参数为可选;否则为必需。 仅限 Apigee Hybrid (字符串)指定 Private Cloud 或 Apigee Hybrid 实例的运行时网址。该网址必须以 https:// 开头。例如:https://apitest.example.net
‑‑tls‑cert
‑‑tls‑key
‑‑tls‑ca
不适用 仅限 Edge Private Cloud 此参数不适用于 Apigee 安装。
-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 值会保留下来。

用法

apigee-remote-service-cli token rotate-cert [flags]

参数

参数 Presence 与产品搭配使用 说明
-c,
‑‑config
必需 全部 (字符串)Apigee 远程服务配置文件的路径。
提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 --config 选项
-e,
‑‑environment
如果存在 --config,则此参数为可选;否则为必需。 全部 (字符串)您的组织中的环境。
-h,
‑‑help
不适用 仅限 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,
‑‑organization
如果存在 --config,则此参数为可选;否则为必需。 仅限 Edge Public 和 Private Cloud (字符串)Apigee 组织。您必须是组织管理员。
-r,
‑‑runtime
不适用 仅限 Edge Private Cloud (字符串)指定 Private Cloud 或 Apigee Hybrid 实例的运行时网址。该网址必须以 https:// 开头。例如:https://apitest.example.net
--s, ‑‑secret 必需 全部 (字符串)预配 Secret。
‑‑tls‑cert
‑‑tls‑key
‑‑tls‑ca
不适用 仅限 Edge Private Cloud (字符串)指定 mTLS 连接的客户端 TLS 证书、私钥和根 CA。
--t, ‑‑truncate 必需 全部 (整数)要保留在 JWKS 中的证书数量(默认值 2)。
-v,
‑‑verbose
可选 全部 (可选)生成详细输出。

示例

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,
‑‑config
必需 仅限 Apigee Hybrid (字符串)Apigee 远程服务配置文件的路径。
提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 --config 选项
-d,
‑‑duration
必需 仅限 Apigee Hybrid (字符串)从创建时间算起的内部 JWT 的有效时间(默认值:10m0s(10 分钟))。
-e,
‑‑environment
如果存在 --config,则此参数为可选;否则为必需。 仅限 Apigee Hybrid (字符串)您的组织中的环境。
-h,
‑‑help
可选 仅限 Apigee Hybrid 显示命令参数的帮助。
‑‑insecure 可选 仅限 Apigee Hybrid 使用 SSL 时允许不安全的服务器连接。
-o,
‑‑organization
如果存在 --config,则此参数为可选;否则为必需。 仅限 Apigee Hybrid (字符串)Apigee 组织。您必须是组织管理员。
-r,
‑‑runtime
如果存在 --config,则此参数为可选;否则为必需。 仅限 Apigee Hybrid (字符串)指定 Apigee Hybrid 实例的运行时网址。该网址必须以 https:// 开头。例如:https://apitest.example.net
-v,
‑‑verbose
可选 仅限 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