Edge Microgate 的 CLI 参考文档

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

Edge Microgate v. 2.3.x

概览

借助 Edge Microgate CLI,您可以控制和管理 Edge Microgate 实例的各个方面。

管理证书

cert 命令可让您安装和管理公钥/私钥对,该密钥对用于对客户端用于通过 Edge Microgate 进行安全调用的不记名令牌进行签名。密钥存储在 Apigee Edge 中的安全保险柜中。Edge Microgate 使用公钥来验证已签名的不记名令牌。这些密钥会在您运行 Edgemicro 配置命令时生成,如设置和配置 Edge Microgate 中所述。如果需要,您可以使用此处所述的 cert 命令重新生成和管理这些密钥。

安装证书

使用 Apigee Edge 安全存储服务在保险柜中安装密钥,并返回公钥作为输出。键对的范围限定为指定的组织。

用法

edgemicro cert install -o [organization] -e [environment] -u [username] -p [password] --force

参数

参数 说明
-o, --org 您为 Edge Microgate 配置了 Apigee 组织。
-e, --env 您配置了 Edge Microgate 的环境。
-u, --username 您的 Apigee 用户名。您必须是指定组织的组织管理员。
-p, --password (可选)您的密码。如果您未在命令行中提供此参数,系统将提示您。
-f, --force (可选)如果某个密钥已存储在保险柜中,请强制替换该密钥。
-h, --help 输出使用情况信息。

示例

edgemicro cert install -o docs -e test -u jdoe@example.com -f

输出

current nodejs version is v6.1.0
current edgemicro version is 2.2.4-beta
password:
deleting vault
creating vault
adding private_key
adding public_key
installed cert

删除证书

删除组织的密钥对。

用法

edgemicro cert delete -o [organization] -e [environment] -u [username] -p [password]

参数

参数 说明
-o, --org 您为 Edge Microgate 配置了 Apigee 组织。
-e, --env 您配置了 Edge Microgate 的环境。
-u, --username 您的 Apigee 用户名。您必须是指定组织的组织管理员。
-p, --password (可选)您的密码。如果您未在命令行中提供此参数,系统将提示您。
-h, --help 输出使用情况信息。

示例

edgemicro cert delete -o docs -e test -u jdoe@example.com 

输出

deleting vault
Vault deleted!

检查证书

检查贵组织是否安装了证书。

用法

edgemicro cert check -o [organization] -e [environment] -u [username] -p [password]

参数

参数 说明
-o, --org 您为 Edge Microgate 配置了 Apigee 组织。
-e, --env 您配置了 Edge Microgate 的环境。
-u, --username 您的 Apigee 用户名。您必须是指定组织的组织管理员。
-p, --password (可选)您的密码。如果您未在命令行中提供此参数,系统将提示您。
-h, --help 输出使用情况信息。

示例

edgemicro cert check -o docs -e test -u jdoe@example.com

输出 (成功)

checked cert successfully

输出 (失败)

如果证书不存在,系统会返回错误。

获取公钥

返回指定组织的公钥。不需要身份验证。

用法

edgemicro cert public-key -o [organization] -e [environment]

参数

参数 说明
-o, --org 您为 Edge Microgate 配置了 Apigee 组织。
-e, --env 您配置了 Edge Microgate 的环境。
-h, --help 输出使用情况信息。

示例

edgemicro cert public-key -o docs -e test

输出 (示例)

-----BEGIN CERTIFICATE----- 

MIICpDCCAYwCCQCKpXWGum9uTjANBgkq9w0BAQsFADAUMRIwEAYDVQQDEwls
b2NhbGhvc3cNMTYxMTAyMjAxNTA2WhcNMTYxMTAzMjAxNTA2WjAUMRIwEAYD
VQQDEwlsb2Nvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDD
ETr/ne/gP47+9LgjLvBJjpbFVdaeUabZZ3wbA7sSIVnnNXWt3yPklrWSfIh+
L2+dq4k+YunsQE2+dwPdXA2x8DPGvqGcCdWPxnpZ7ix5Akbs8i/J+Ue0pXT4
jkpWbaDDftGL2tcxwP45yI+slpDYvmWRps07TFXkAPjGEHYPvCT9/v/35GkL
0h4v0S+XfpcjS5c47o7CIWlkgEM5GBosQUb17kuVR48392vGFPsnCP34iNe7
zguhiCXYg2zkOcj/N3AE4xKIhCz0QcewULy08GltWMmyjJ/30zs8P41JqoA4
RwfeEZ8RenN3rJQim1ppAAEwDQYJKoZIhvcNAQELBQADggEBAHcORIfc+ySe
2FMmqicNe6Wt5V/5zOaBMLsGQdqGOHB5cQc79sMBrk680KVhrwHXZ2nBIkVe
UEL+2qLY1VLfswBNAvcNwV9U4TwHq4eIANiD751oJK1tHmM/ujThQkwNf96o
6I7Ws+wfpGO3ppJCttRbtnATIxrwsCHN4i5lbW/tJSL7t/Zf6T1B+YSJU9AF
xuvLq22cCqyYJQdmKq2vVS55WRZdllm+mRtJrv7MLM9gfDPRxVlwrBz/eQHy
Fv+dwzxcvQjkz03RNhZUodzuD34DPJoYeK++rItsddwQ26KTahH80yYTAFzY
x9gfPf1/+qo=? 

-----END CERTIFICATE-----

 

为 Apigee Edge Cloud 配置 Edge Microgate

让 Edge Microgate 与 Apigee Edge Cloud 实例搭配使用。它会封装并执行一系列命令,以将所需的身份验证代理部署到 Edge、生成身份验证令牌和更新配置文件。如需查看完整的有效示例,请参阅设置和配置 Edge Microgate

用法

edgemicro configure -o [organization] -e [environment] -u [username] -p [password]

参数

参数 说明
-o, --org 您为 Edge Microgate 配置了 Apigee 组织。
-e, --env 您配置了 Edge Microgate 的环境。
-u, --username 您的 Apigee 用户名。您必须是指定组织的组织管理员。
-p, --password (可选)您的密码。如果您未在命令行中提供此参数,系统将提示您。
-r, --url (可选)为“组织:environment”指定虚拟主机别名。请参阅 Edge 文档以了解虚拟主机。默认值:org-env.apigee.net
-v, --virtualHosts (可选)覆盖默认的虚拟主机(即“default,secure”)。如果您为 Edge 组织(环境类型除外)指定了虚拟主机,请使用此选项。请参阅 Edge 文档以了解虚拟主机。
-d, --debug (可选)提供调试信息。
-h, --help 输出使用情况信息。

使用说明

此命令将配置信息存储在 ~/.edgemicro/org-env-config.yaml 中。

示例

edgemicro configure -o docs -e test -u jdoe@example.com

输出

成功后,该命令会返回一组密钥,您在启动 Edge Microgate 时需要使用这些密钥。

...

The following credentials are required to start edge micro
  key: d2f0a246ad52b5d2a8b04ba65b43c76348aba586691cf6185cd7bb9fb78fe9f
  secret: 59813bc1db4a7ada182705ae40893c28a6fae680c3deb42aefbf1a4db42e372

edgemicro configuration complete!

 

生成键

genkeys 命令生成一个密钥和密钥对,在将分析数据异步发布到 Apigee Edge 时,Edge Microgate 将使用它来验证自己的身份。

用法

edgemicro genkeys -o [organization] -e [environment] -u [username] -p [password]

参数

参数 说明
-o, --org 您为 Edge Microgate 配置了 Apigee 组织。
-e, --env 您配置了 Edge Microgate 的环境。
-u, --username 您的 Apigee 用户名。您必须是指定组织的组织管理员。
-p, --password (可选)您的密码。如果您未在命令行中提供此参数,系统将提示您。
-h, --help 输出使用情况信息。

使用说明

成功后,该命令将返回三个项。第一个是需要放在配置文件中的网址。另两个是启动 Edge Microgate 实例时所需的密钥对。

  • 引导加载程序网址:此网址指向一项 Apigee Edge 服务,使 Edge Microgate 实例能够将分析数据发送到 Apigee Edge。您需要将该网址复制到 Edge Microgate 配置文件中:~/.edgemicro/org-env-config.yaml
  • key:键。此密钥及其密钥在用于启动 Edge Microgate 实例的 CLI 命令时,必须提供此密钥和密钥。
  • secret:密钥。

示例

edgemicro genkeys -o docs -e test -u jdoe@example.com

输出 (示例)

成功后,该命令会返回一组密钥,您在启动 Edge Microgate 时需要使用这些密钥。

configuring host edgemicroservices-us-east-1.apigee.net for region us-east-1
Please copy the following property to the edge micro agent config
  bootstrap: https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/jdoe/environment/test

The following credentials are required to start edge micro
  key: db39324077989c75eac34c13d285772ea8e3b982b957b3f52916f3048511443f
  secret: 5bf8da39de0056f88fdd5f25a8602d22f312c1c8c870580a5fef55ac6637b7ae

finished

 

为 Apigee Edge 私有云配置 Edge Microgate

将 Edge Microgate 配置为与安装的 Apigee Edge Private Cloud 搭配使用。

用法

edgemicro private configure -o [organization] -e [environment] -u [username] -p [password]

参数

参数 说明
-o, --org 您为 Edge Microgate 配置了 Apigee 组织。
-e, --env 您配置了 Edge Microgate 的环境。
-u, --username 您的 Apigee 用户名。您必须是指定组织的组织管理员。
-p, --password (可选)您的密码。如果您未在命令行中提供此参数,系统将提示您。
-r, --runtime-url 指定私有云实例的运行时网址。
-m, --mgmt-url 私有云实例的管理服务器的网址。
-v, --virtualHosts “organization:environment”的虚拟主机列表(以英文逗号分隔)。默认值为“default,secure”。
-d, --debug (可选)提供调试信息。
-h, --help 输出使用情况信息。

使用说明

此命令将配置信息存储在 ~/.edgemicro/org-env-config.yaml 中。

示例

edgemicro private configure -o docs -e test -u jdoe@example.com -r http://192.162.55.100:9002 -m http://192.162.55.100:8080

输出

成功后,该命令会返回一组密钥,您在启动 Edge Microgate 时需要使用这些密钥。

...

The following credentials are required to start edge micro
  key: d2f0a246ad52b5d2a8b04ba65b43c76348aba586691cf6185cd7bb9fb78fe9f
  secret: 59813bc1db4a7ada182705ae40893c28a6fae680c3deb42aefbf1a4db42e372

edgemicro configuration complete!

 

启动 Edge Microgate

在启动 Edge Microgate 之前,您必须先运行 edgemicro 配置(公有云)或 edgemicro 专用配置(私有云)。config 命令返回启动 Edge Microgate 所需的密钥值和 Secret 值。

用法

edgemicro start -o [organization] -e [environment] -k [public-key] -s [secret-key]

参数

参数 说明
-o, --org 您为 Edge Microgate 配置了 Apigee 组织。
-e, --env 您配置了 Edge Microgate 的环境。
-k, --key 当您运行“edgemicro configure”命令时返回的键值对。
-s, --secret 运行“edgemicro configure”命令时返回的 Secret 值。
-p, --processes (可选)要启动的进程数。默认值:系统上的核心数。
-d, --pluginDir (可选)插件目录的绝对路径。
-r, --port (可选)替换 ~/.edgemicro/org-env-config.yaml 文件中指定的端口号。默认值:8000
-c, --cluster

(可选)以集群模式启动 Edge Microgate。

注意从 v2.3.1 开始,此选项已被移除。在 v2.3.1 及更高版本中,Edge Micro 始终以集群模式启动。

-c --config (可选)指定 default config.yaml 文件的位置。默认情况下,此文件位于 ./config/config.yaml
-d, --debug (可选)提供调试信息。
-h, --help 输出使用情况信息。

设置端口

借助 start 命令,您可以指定端口号以替换配置文件中指定的端口。您还可以使用 PORT 环境变量指定端口号。例如:

edgemicro start -o docs -e test -k abc123 -s xyz456 -p 2 --port 8002

export PORT=8002 
edgemicro start -o org -e test -k key -s secret -p 2

如果该端口正在使用中,Edge Microgate 将返回错误。

关于聚类

Edge Microgate 采用 Node.js 集群模块来实现集群。通过聚类,Edge Microgate 可以充分利用多核系统。有关详情,请参阅此 Node.js 文档

示例

edgemicro start -o docs -e test -k abc123 -s xyz456

示例输出:

...

PROCESS PID : 54709
installed plugin from analytics
installed plugin from analytics
installed plugin from oauth
installed plugin from oauth
installed plugin from analytics
installed plugin from oauth
5a86b570-a142-11e6-aa1f-6730e9065d6c edge micro listening on port 8000
5a86dc80-a142-11e6-962c-43d9cc723190 edge micro listening on port 8000
5a8751b0-a142-11e6-8241-cf1c517c91eb edge micro listening on port 8000
installed plugin from analytics
installed plugin from oauth
5a924e30-a142-11e6-8740-2944162ce275 edge micro listening on port 8000

 

管理令牌

token 命令可让您获取、解码和验证已签名的 OAuth2 访问令牌。另请参阅使用 OAuth2 访问令牌保障 API 调用的安全

解码令牌

将经过签名、编码的不记名令牌解码为纯文本 JSON JWT(Java 网络令牌)表示法。令牌用于传达提供创建令牌所用密钥的 Apigee Edge 开发者应用的相关信息,包括应用名称、client_id、产品列表等。

用法

edgemicro token decode -f [filename]

参数

参数 说明
-f, --file 包含要解码的 JWT 令牌的文件的名称。
-h, --help 输出使用情况信息。

示例

edgemicro token decode -f token.jwt

输出(示例)

{ header: { typ: 'JWT', alg: 'RS256' },

  payload:
   { application_name: 'b43342ef-86f6-4666-a121-b9ac2025d217',
     client_id: 'O9ZQRZKnn1rdgcKQgsABSMdOsKS',
     scopes: [],
     api_product_list: [ 'MicroTest' ],
     iat: 1436280566,
     exp: 1436282365 },
  signature: '' }

生成令牌

生成已签名的不记名令牌。该令牌允许客户端应用对 Edge Microgate 进行经过身份验证的 API 调用。该令牌是符合 OAuth 2.0 的 JSON Web 令牌 (JWT)。它需要输入 Apigee Edge 上已注册开发者应用的使用方密钥(客户端 ID)和使用方密钥(客户端密钥)值。另请参阅使用 OAuth2 访问令牌保障 API 调用的安全

用法

edgemicro token get -o [org] -e [env] -i [client_id] -s [client_secret]

参数

参数 说明
-o, --org 您为 Edge Microgate 配置了 Apigee 组织。
-e, --env 您配置了 Edge Microgate 的环境。
-1, --key 与 Microgate 感知代理关联的开发者应用中的客户端 ID。
-s, --secret 与 Microgate 感知代理关联的开发者应用中的客户端密钥。
-h, --help 输出使用情况信息。

示例

edgemicro token get -o docs -e test -i 5UzOwAXGoOeo60aew94PPG5MAZE3aJp -s 6vahKFGS9a3qMLwz

输出(示例)

{ token: 'eyJ0eXAiOiJKV1JhbGciOiJSUzI1NiJ9Glvbl9uYW1lIjoiNWNiMGY0NTV6TV3
EtOWMzOC00YmJjLWIzNzEtZGMxZTQzOGMxIiwiY2xpZW50X2lkIjoiNVV6T3dBWEdvSU9lbz
YwYWV3OTRQN0c1TUFaRTNhSnAiLCJzY2MiOltdLCJhcGlfcHJvZHVjdF9saXN0IjpbIkVkZ2
VNaWNyb1Rlc3RQcm9kdWN0Il0sImlhdCI3ODEyMzQ2MSwiZXhwIjoxNDc4MTI1MjYwfQ.Dx5
f5U7PXm8koNGmFX4N6VrxKMJnpndKgoJ5zWSJvBZ6Ccvhlpd85ipIIA5S2A5nx4obYWp_rpY
RJpIGYwyxP6Oq2j0rxnVjdCC4qyYMgthZjhKgEBVBe3s1ndP72GP2vV6PsSA9RQ2-yzsy9r0
TzhAZ3NJTxT1tS0XKqKngE-OhR3fJHVLAzdMDT0AmS9H0Z2NAJtQOuK6RTpCjG9B6Bc48AEM
sj7QSM-1LWiQ8LdY8k_BoC06qsTI7bCQGWwTuqL-ismbcx2bxovUxSemZIaoROfuF-dCZHG3
2aTP75WxBvvNgBBvPvQtPzbeSOtEaww' }

发出 HTTP 请求以获取令牌

您也可以发出原始 HTTP 请求来获取令牌。下面是一个 curl 示例。只需替换网址中您的组织和环境名称,并将 client_id 和 client_secret 参数替换为使用方 ID 和使用方密钥值即可:

curl -i -X POST "http://<org>-<test>.apigee.net/edgemicro-auth/token" -d '{"grant_type": "client_credentials", "client_id": "4t8X137pOUUtMR7wag3M1yZTcRxeK", "client_secret": "RAcOFVOvO0jns"}' -H "Content-Type: application/json"

验证令牌

根据为指定的组织和环境存储在 Apigee Edge 中的公钥验证已签名的不记名令牌。

用法

edgemicro token verify -o [org] -e [env] -f [filename]

参数

参数 说明
-o, --org 您为 Edge Microgate 配置了 Apigee 组织。
-e, --env 您配置了 Edge Microgate 的环境。
-f, --file 包含要验证的 JWT 的文件的名称。
-h, --help 输出使用情况信息。

示例

edgemicro token get -o docs -e test -f token.jwt

有效令牌的示例输出

{ application_name: 'b43342ef-86f6-4666-a121-b9ac2025d217',

  client_id: 'O9ZQRZKnn1rdgcKQsAZUBkQSMdOsKS',

  scopes: [],

  api_product_list: [ 'MicroTest' ],

  iat: 1436396155,

  exp: 1436397954 }

无效令牌的输出示例

{ [JsonWebTokenError: invalid token] name: 'JsonWebTokenError', message: 'invalid token' }

过期令牌的输出示例

{ [TokenExpiredError: jwt expired]

  name: 'TokenExpiredError',

  message: 'jwt expired',

  expiredAt: Tue Jul 07 2015 09:19:25 GMT-0600 (MDT) }

直接获取不记名令牌

您可能希望通过向 Apigee Edge 上的令牌端点发出 HTTP 请求来直接获取不记名令牌。实际令牌端点在通过 deploy-edge-service CLI 命令部署的代理中实现。

下面是一个 curl 示例。只需替换网址中的组织和环境名称,并将 client_idclient_secret 参数替换为从 Apigee Edge 上的开发者应用获取的使用方 ID 和使用方密钥值即可:

curl -i -X POST "http://<org>-<test>.apigee.net/edgemicro-auth/token" -d '{"grant_type": "client_credentials", "client_id": "4t8X137pOUUtMR7wag3M1yZTcRxeK", "client_secret": "RAcOFVOvO0jns"}' -H "Content-Type: application/json"

示例输出:

HTTP/1.1 200 OK

X-Powered-By: Express

Cache-Control: no-store

Pragma: no-cache

Content-Type: application/json; charset=utf-8

Content-Length: 640

ETag: W/"280-ze/g/k+c9taqp110vjYQ"

Date: Fri, 17 07 2015 15:49:24 GMT

Connection: keep-alive

"<long string of numbers and letters>"

初始化新的 Edge Microgate 配置

首次安装 Edge Microgate 后,运行此命令一次。创建一个新的默认配置文件:~/.edgemicro/default.yaml

用法

edgemicro init 

参数

参数 说明
-h, --help 输出使用情况信息。

示例

edgemicro init

输出 (成功)

config initialized to /MyHome/.edgemicro/default.yaml

验证 Edge Microgate 配置

验证 Edge Microgate 是否配置正确。

用法

edgemicro verify -o [organization] -e [environment] -k [public-key] -s [secret-key]

参数

参数 说明
-o, --org 您为 Edge Microgate 配置了 Apigee 组织。
-e, --env 您配置了 Edge Microgate 的环境。
-k, --key 当您运行“edgemicro configure”命令时返回的键值对。
-s, --secret 运行“edgemicro configure”命令时返回的 Secret 值。
-h, --help 输出使用情况信息。

示例

edgemicro verify -o docs -e test -k abc123 -s xyz456

输出 (成功)

logging to /var/tmp/edgemicro-My-Machine.local-a0c48610-a148-11e6-8466-93f081b05988
installed plugin from analytics
installed plugin from oauth
a0c48610-a148-11e6-8466-93f081b05988 edge micro listening on port 8000
verifying analytics negative case: OK
verifying bootstrap url availability:OK
verifying jwt_public_key availability: OK
verifying products availability: OK
verifying quota with configured products: OK
verifying analytics with payload: OK
verification complete

检查微网关集群状态

添加:v2.2.4-beta

默认情况下,Edge Microgate 会以集群模式启动。您可以使用此命令检查集群的状态。

用法

edgemicro status

参数

参数 说明
-h, --help 输出使用情况信息。

示例

edgemicro status

输出 (成功)

current nodejs version is v6.1.0
current edgemicro version is 2.2.4-beta
edgemicro is running with 4 workers

停止微网关集群

添加:v2.2.4-beta

停止 Edge Microgate 集群。

用法

edgemicro stop

参数

参数 说明
-h, --help 输出使用情况信息。

示例

edgemicro stop

输出 (成功)

current nodejs version is v6.1.0
current edgemicro version is 2.2.4-beta
Stop Completed Successfully

重新加载微网关集群

添加:v2.2.4-beta

在配置更改后提供零停机重启。通过提取新配置来重新加载 Edge Microgate。

用法

edgemicro reload -o [organization] -e [environment] -k [public-key] -s [secret-key]

参数

>
参数 说明
-o, --org 您为 Edge Microgate 配置了 Apigee 组织。
-e, --env 您配置了 Edge Microgate 的环境。
-k, --key 当您运行“edgemicro configure”命令时返回的键值对。
-s, --secret 运行“edgemicro configure”命令时返回的 Secret 值。
-h, --help 输出使用情况信息。

示例

edgemicro reload -o docs -e test -k abc123 -s xyz456

输出 (成功)

...

Reload Completed Successfully