参考资料

您正在查看 Apigee Edge 文档。
前往 Apigee X 文档
信息

apigee-remote-service-cli 命令行界面 (CLI) 可帮助您预配和管理 Envoy 的 Apigee 适配器。

列出绑定命令

列出绑定到远程服务的所有 API 产品。

用法

apigee-remote-service-cli bindings list [flags]

参数

参数 状态 与产品搭配使用 说明
-c,
‑‑config
必需 全部 (字符串)Apigee 远程服务配置文件的路径。
提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 ‑‑config 选项
-e,
‑‑environment
必需 全部 (字符串)您的组织中的环境。
-h,
‑‑help
可选 全部 显示命令参数的帮助。
‑‑insecure 可选 全部 使用 SSL 时允许不安全的服务器连接。
‑‑legacy 必需 仅限 Edge Public Cloud 如果您使用的是 Apigee Edge for Public Cloud,则必须设置此标志。设置 Apigee Edge for Public Cloud 的管理和运行时网址。
-m,
‑‑management
必需 仅限 Edge Private Cloud (字符串)Apigee Edge for Private Cloud 安装的管理基准网址。默认:https://api.enterprise.apigee.com
‑‑mfa 必需 仅限 Edge Public Cloud (字符串)Apigee Edge for Public Cloud 的多重身份验证令牌。仅当在您的 Apigee Edge 账号上设置了 MFA 时才需要。
‑‑opdk 必需 仅限 Edge Private Cloud 如果您使用的是 Apigee Edge for Private Cloud,则必须设置此标志。
-o,
‑‑organization
必需 全部 (字符串)Apigee 组织。您必须是组织管理员。
-p,
‑‑password
必需
(仅限基本身份验证)
仅限 Edge Public 和 Private Cloud (字符串)您的 Apigee 密码。您可以选择在 .netrc 文件中指定密码。另请参阅 使用 .netrc 作为凭据
-r,
‑‑runtime
必需 仅限 Edge Private Cloud 和 Apigee Hybrid (字符串)指定 Private Cloud 或 Apigee Hybrid 实例的运行时网址。该网址必须以 https:// 开头。例如:https://apitest.apigee-hybrid-docs.net
‑‑tls‑cert
‑‑tls‑key
‑‑tls‑ca
可选 仅限 Edge Private Cloud (字符串)指定 mTLS 连接的客户端 TLS 证书、私钥和根 CA。
-t,
‑‑token
必需
(仅限 OAuth 令牌身份验证)
全部 (字符串)您通过 Apigee 账号信息生成的 OAuth 或 SAML 令牌。替换任何其他提供的凭据。
-u,
‑‑username
必需
(仅限基本身份验证)
仅限 Edge Public 和 Private Cloud (字符串)您的 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:

帮助命令

所有 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]

参数

参数 状态 与产品搭配使用 说明
‑‑analytics-sa 可选 仅限 Apigee Hybrid 和 Apigee X

(字符串)使用此标志可指定 Google Cloud 服务账号密钥文件的路径,其中服务账号具有 Apigee Analytics Agent 角色。适配器使用 SA 直接将分析数据上传到 Apigee。如果您使用的是 Apigee Hybrid,则此选项允许您在一个集群中安装 Hybrid 运行时,并在另一个集群中安装适配器。

-c,
‑‑config
必需 全部 (字符串)Apigee 远程服务配置文件的路径。
提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 ‑‑config 选项
-e,
‑‑environment
必需 全部 (字符串)您的组织中的环境。
-f, ‑‑force-proxy-install 可选 全部 (可选)如果已在您的组织中重新安装 remote-service 代理,则强制重新安装。
-h,
‑‑help
可选 全部 显示命令参数的帮助。
‑‑insecure 可选 全部 使用 SSL 时允许不安全的服务器连接。
‑‑legacy 必需 仅限 Edge Public Cloud 如果您使用的是 Apigee Edge for Public Cloud,则必须设置此标志。设置 Apigee Edge for Public Cloud 的管理和运行时网址。
-m,
‑‑management
必需 仅限 Edge Private Cloud (字符串)Apigee Edge for Private Cloud 安装的管理基准网址。默认:https://api.enterprise.apigee.com
‑‑mfa 必需 仅限 Edge Public Cloud Apigee Edge for Public Cloud 的多重身份验证令牌。仅当在您的 Apigee Edge 账号上设置了 MFA 时才需要。
-n, ‑‑namespace 可选 全部 (字符串)在指定的命名空间中将配置作为 Envoy ConfigMap 发出默认:apigee
‑‑opdk 必需 仅限 Edge Private Cloud 如果您使用的是 Apigee Edge for Private Cloud,则必须设置此标志。
-o,
‑‑organization
必需 全部 (字符串)Apigee 组织。您必须是组织管理员才能进行预配。
-p,
‑‑password
必需
(仅限基本身份验证)
仅限 Edge Public 和 Private Cloud (字符串)您的 Apigee 密码。您可以选择在
.netrc 文件中指定密码。如果您这样做,则无需在命令行中提供密码。另请参阅 使用 .netrc 作为凭据
‑‑rotate-int 可选 仅限 Apigee Hybrid(整数)如果 n > 0,则生成新的私钥并保留 n 个公钥(仅限 Hybrid)
-r,
‑‑runtime
必需 仅限 Edge Private Cloud 和 Apigee Hybrid (字符串)指定 Private Cloud 或 Apigee Hybrid 实例的运行时网址。该网址必须以 https:// 开头。例如:https://apitest.apigee-hybrid-docs.net
‑‑tls‑cert
‑‑tls‑key
‑‑tls‑ca
可选 仅限 Edge Private Cloud (字符串)指定 mTLS 连接的客户端 TLS 证书、私钥和根 CA。
-t,
‑‑token
必需
(仅限 OAuth 令牌身份验证)
全部 (字符串)您通过 Apigee 账号信息生成的 OAuth 或 SAML 令牌。替换任何其他提供的凭据。
-u,
‑‑username
必需
(仅限基本身份验证)
仅限 Edge Public 和 Private Cloud (字符串)您的 Apigee 用户名(通常是电子邮件地址)。您可以选择在 .netrc 文件中指定用户名。另请参阅 使用 .netrc 作为凭据
-v,
‑‑verbose
可选 全部 (可选)生成详细输出。
‑‑virtual-hosts 可选 仅限 Edge Private Cloud (字符串)替换默认虚拟主机,即 default,secure。如果您为 Edge 组织环境指定的虚拟主机除外,请使用此选项。

示例

如以下示例所示,请务必将 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 的文件夹,它还将自定义 SSL 连接从 Envoy 代理设置为远程服务集群。

如果您使用的是 Istio 代理(其中 Envoy 代理充当辅助资源),而且未指定目标,则系统会生成 httpbin 示例。否则,您需要准备与目标服务部署相关的配置文件。

参数

参数 状态 与产品搭配使用 说明
‑‑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 适配器映像的版本标记。默认:v2.0.0
-t, ‑‑template 必填 全部 (字符串)Envoy 或 Istio 模板名称。如需查看可用的模板列表,请执行 apigee-remote-service samples templates 命令。
‑‑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]

参数

参数 状态 与产品搭配使用 说明
-c,
‑‑config
必需 全部 (字符串)Apigee 远程服务配置文件的路径。
提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 ‑‑config 选项
-e,
‑‑environment
必需 全部 (字符串)您的组织中的环境。
-h,
‑‑help
可选 全部 显示命令参数的帮助。
--i, --id 必需 全部 (字符串)如如何获取 API 密钥中所述,在 Apigee 开发者应用中找到的密钥凭据。
‑‑insecure 可选 全部 使用 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
必需 全部 (字符串)Apigee 组织。您必须是组织管理员。
-r,
‑‑runtime
必需 仅限 Edge Private Cloud 和 Apigee Hybrid (字符串)指定 Private Cloud 或 Apigee Hybrid 实例的运行时网址。该网址必须以 https:// 开头。例如:https://apitest.apigee-hybrid-docs.net
--s, ‑‑secret 必需 全部 (字符串)如如何获取 API 密钥中所述,在 Apigee 开发者应用中找到的 Secret 凭据。
‑‑tls‑cert
‑‑tls‑key
‑‑tls‑ca
可选 仅限 Edge Private Cloud (字符串)指定 mTLS 连接的客户端 TLS 证书、私钥和根 CA。
-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]

参数

参数

参数 状态 与产品搭配使用 说明
-c,
‑‑config
必需 全部 (字符串)Apigee 远程服务配置文件的路径。
提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 ‑‑config 选项
-e,
‑‑environment
必需 全部 (字符串)您的组织中的环境。
-f,
‑‑file
必需 全部 (字符串)令牌文件(默认值:使用 stdin
-h,
‑‑help
可选 全部 显示命令参数的帮助。
‑‑insecure 可选 全部 使用 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
必需 全部 (字符串)Apigee 组织。您必须是组织管理员。
-r,
‑‑runtime
必需 仅限 Edge Private Cloud 和 Apigee Hybrid (字符串)指定 Private Cloud 或 Apigee Hybrid 实例的运行时网址。该网址必须以 https:// 开头。例如:https://apitest.apigee-hybrid-docs.net
‑‑tls‑cert
‑‑tls‑key
‑‑tls‑ca
可选 仅限 Edge Private Cloud (字符串)指定 mTLS 连接的客户端 TLS 证书、私钥和根 CA。
-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]

参数

参数 状态 与产品搭配使用 说明
-c,
‑‑config
必需 全部 (字符串)Apigee 远程服务配置文件的路径。
提示:借助此标志,您可以省略大多数其他命令参数,因为 CLI 可以直接从配置文件中拉取这些参数。请参阅使用 ‑‑config 选项
-e,
‑‑environment
必需 全部 (字符串)您的组织中的环境。
-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
必需 仅限 Edge Public 和 Private Cloud (字符串)Apigee 组织。您必须是组织管理员。
-r,
‑‑runtime
必需 仅限 Edge Private Cloud (字符串)指定 Private Cloud 或 Apigee Hybrid 实例的运行时网址。该网址必须以 https:// 开头。例如:https://apitest.apigee-hybrid-docs.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]

参数

参数

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

版本命令

打印 CLI 版本

apigee-remote-service-cli version

使用 .netrc 凭据

如果您使用的是 Edge Public Cloud,并且 apigee-remote-service-cli 会从您的主目录中的 .netrc 文件中自动选取 usernamepassword(用于基本身份验证)并且有机器 api.enterprise.apigee.com 的条目。如果您使用的是 Apigee Private Cloud,则机器值与您的 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

使用 ‑‑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
  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