<ph type="x-smartling-placeholder"></ph>
您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 信息
使用入门
- 如何安装 Edge Microgateway?
- 请参阅安装 Edge Microgateway。
- 如何运行 Edge Microgateway?
- 请参阅 设置和配置 Edge Microgateway。
- 我是否需要使用数据库来运行 Microgateway?
- 通过 Edge Microgateway 代理的 API 可以与作为目标的一部分运行的数据库交互 服务。但是,Edge Microgateway 独立于任何数据库或后端数据运行 商店。
操作
- Edge 上的变化 需要重启 Edge Microgateway?
- Edge Microgateway 会自动轮询在 Apigee Edge 上所做的更改,例如对
可感知 microgateway 的代理、产品或开发者
。默认轮询间隔为 600 秒;不过,您可以使用
config_change_poll_interval
配置设置。 请参阅 Edgemicro 属性。 。
- 如果您不想等待轮询间隔,请使用
edgemicro reload
命令来获取最新的更改。请参阅 <ph type="x-smartling-placeholder"></ph> 重新加载 microgateway 集群。 - 如何区分 Edge 上部署的代理和 Edge Microgateway 上部署的代理?
- 配置 Edge Microgateway 时,系统会在 Apigee 上部署支持 microgateway 的代理列表
Edge 会下载到 Edge Microgateway 的本地配置。可感知 Microgateway 的代理
是以
edgemicro_
前缀命名的应用。 - 使用 Edge Microgateway 进行日志记录时,我可以选择哪些选项?
- Edge Microgateway 具有内置的日志记录功能。有关详情,请参阅 管理日志文件。 。
- 您也可以撰写 <ph type="x-smartling-placeholder"></ph> 自定义插件,将第三方日志记录服务与 Edge Microgateway 搭配使用。原因 Edge Microgateway 可用,您无法使用 Apigee Edge 消息日志记录政策 为 Edge Microgateway 记录消息。另请参阅 <ph type="x-smartling-placeholder"></ph> 适用于 Microgateway 的 Logging 插件社区文章。
- 我可以在 Edge Microgateway 实例之间重复使用密钥/密钥组合吗?
- 只要 Microgateway 实例的组织和环境相同,您就可以 重复使用在配置过程中生成的密钥/密钥对。
- 如何将 Edge Microgateway 配置为在生产环境中启动?
- 您可以为启动命令参数设置环境变量,例如
EDGEMICRO_KEY
,EDGEMICRO_SECRET
、EDGEMICRO_ORG
和EDGEMICRO_ENV
。 利用这些(和其他)变量,您可以开始 包含单个命令edgemicro start
的 Edge Microgateway。另请参阅 设置环境变量。 - 我能不能 通过 Edge Microgateway 使用自定义产品或开发者应用属性?
- 不会。默认情况下,Edge Microgateway 仅对与基本路由和
安全性。不过,您可以采用以下方法作为临时解决方法:
<ph type="x-smartling-placeholder">
- </ph>
-
向 Edge Microgateway 部署到 Apigee 的
edgemicro-auth
代理添加自定义属性 Edge。使用 API 密钥或 OAuth 令牌安全性时,这些属性将可用。 - 修改 OAuth 插件以处理这些属性。
-
向 Edge Microgateway 部署到 Apigee 的
- 请求标头大小是否有限制?
- 如果您将 Node.js 升级到 v8.14.0 或更高版本,请注意,请求允许的标头大小上限已从 80KB 减少到 8KB。 超过 8KB 的标头会导致 HTTP 431 错误。 。
- Node.js v11.6.0 中添加了 Node.js 配置选项,支持更改默认的最大值
标头大小。此参数 (
--max-http-header-size
) 可让您指定 HTTP 标头的大小上限(以字节为单位)。 。
- 如需更改默认配置,请设置
NODE_OPTIONS
环境的值 变量,如下所示:NODE_OPTIONS=--max-http-header-size=NUM_BYTES
例如:
NODE_OPTIONS=--max-http-header-size=80000
Edge Microgateway 使用哪些管理 API?
以下 Edge Microgateway 命令会调用 Apigee Edge 管理 API 来完成其工作, 如中所述 Edge Microgateway 的 CLI 参考文档:
edgemicro configure
edgemicro upgradeauth
edgemicro upgradekvm
edgemicro rotatekey
edgemicro cert check
edgemicro cert delete
edgemicro cert install
以下部分列出了每个命令使用的 Management API 调用。
edgemicro configure
和 upgradeauth
命令调用
以下管理 API:
- (列出部署)
GET: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/deployments
- (获取部署信息)
GET: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth
- (上传资源)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=java&name=micro-gateway-products-javacallout-2.0.0.jar
- (上传资源)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=adjust-quota.js
- (上传资源)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=generate-jwk.js
- (上传资源)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=generate-verify-jwt.js
- (上传资源)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=jsrsasign-all-min.js
- (上传资源)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=jwt-initialization.js
- (上传资源)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-jwk-response.js
- (上传资源)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-product-list.js
- (上传资源)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-public-key.js
- (上传资源)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-jwt-variables.js
- (上传资源)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-quota-variables.js
- (上传资源)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-response.js
- (上传资源)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=validate-params.js
- (创建 API 代理)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis?action=import&validate=false&name=edgemicro-auth
- (上传政策)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/policies
- (上传代理)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/proxies?name=default
- (部署代理)
POST: https://api.enterprise.apigee.com/v1/o/[org]/e/[env]/apis/edgemicro-auth/revisions/1/deployments
upgradekvm
命令会调用以下 Management API:
PUT: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway
rotatekey
命令会调用以下 Management API:
GET: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway/entries/private_key
cert check
命令会调用以下 Management API:
GET: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway
cert delete
命令会调用以下 Management API:
DELETE: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway
cert install
命令会调用以下 Management API:
POST: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps
部署
- 我可以部署吗 运行目标服务的同一台服务器上的 Edge Microgateway ?
- 能。Edge Microgateway 是一个轻量级进程,可以在目标服务附近运行,包括 同一台机器。
- 我可以将现有的 Edge 代理软件包部署为 Edge Microgateway 部署吗?
- 不会。Edge Microgateway 感知代理具有特定要求,并不支持所有功能 标准 Edge 代理。请参阅 2:在 Apigee Edge 上创建实体
- 我可以在 Edge 代理软件包之间启用故障切换吗 部署和 Edge Microgateway 部署)?
- 不会。Edge Microgateway 不了解 Apigee 上的非 microgateway API 代理部署 Edge。
- 什么是 Edge Microgateway 的高可用性部署模型有哪些?
- 如需详细讨论如何使用 NGINX 作为负载平衡器来运行 Edge Microgateway,请参阅 <ph type="x-smartling-placeholder"></ph> 使用 Apigee Edge Microgateway 和 NGINX 管理 API。
- 我可以将哪些负载平衡器与 Edge Microgateway 搭配使用?
- Edge Microgateway 可与任何负载平衡器搭配使用。
- 我可以部署的 Edge Microgateway 代理数量是否有限制?
- 请参考针对以下产品指定的产品配置限制: 常规 Edge 代理。您可以在 Apigee Edge 中部署可识别微网关的代理的数量 组织和环境以及通过 Edge Microgateway 进行的调用必须符合相同的限制。
- 我能不能 将 Edge Microgateway 部署与特定组织和环境相关联?
- 配置 Edge Microgateway 实例时,必须将其与特定的 Edge 组织和环境。
- 我可以将 Edge Microgateway 部署与特定区域相关联(如果我为多区域客户)吗?
- Edge Microgateway 会自动选择最适合与 Apigee Edge 交互的区域。 您可以在要提供服务的每个区域中部署 Edge Microgateway 实例。
管理
- 是否只有组织管理员才能配置和部署 Edge Microgateway?
- 能。您需要拥有组织管理员凭据才能配置和部署 Edge Microgateway。
- 只有组织管理员才能运行 Edge Microgateway?
- 不会。Edge Microgateway 是一个
Node.js
应用,可供具有 以便在指定机器上运行此类应用的权限。 - 我的组织中的任何人是否可以 用户使用 Edge Microgateway?
- 您无需是 Apigee Edge 组织用户,即可通过 Edge 进行 API 调用 Microgateway。但是,您必须拥有组织级权限,才能创建或更改 Edge Microgateway 部署在 Edge 上的可识别代理。
性能
- 使用 Edge Microgateway 时有哪些性能注意事项?
- 如果运行 Edge Microgateway 与目标应用并置,请确保服务器 容量足够大。
- 大规模运行 Edge Microgateway 的最佳做法有哪些?
- Apigee 建议在前端的不同服务器上运行多个 Edge Microgateway 实例 NGINX 等负载平衡器访问 Cloud Storage 中的资源。另请参阅 <ph type="x-smartling-placeholder"></ph> 使用 Apigee Edge Microgateway 和 NGINX 管理 API 和 纵向横向扩缩。
- 什么是 Edge Microgateway TPS 默认以及 Microgateway 实例
- 使用 Edge Microgateway 很难衡量硬件要求和 TPS 测量结果。视情况而定 包括对 Edge Microgateway、插件使用、自定义插件 以及配置 TLS 等其他功能Apigee 通常建议您了解 对各项内容进行组合,并根据您的具体设置进行性能测试。
私有云部署
- 边缘 Microgateway 与用于私有云的 Edge 配合使用?
- 能。有关详情,请参阅 Apigee 私有云配置步骤。
插件
- 如何在 Edge 中强制执行配额 Microgateway?
- 您可以选择向 Edge Microgateway 实例添加配额插件。有关详情,请参阅 使用配额 插件。
- 斯派克被逮捕情况如何 是否强制执行了 Edge Microgateway?
- 您可以选择向 Edge Microgateway 实例添加高峰控制插件。对于 有关详情,请参阅使用 arrest 插件。
- 是
除了
Node.js
之外,还有其他方法可以为 Edge Microgateway 编写插件吗? - 不会。插件必须使用
Node.js
编写。 - 如果 Edge Microgateway 无法将 Analytics 数据上传到 Edge 会发生什么情况?
- Edge Microgateway 具有内存缓冲区。如果缓冲区填满,系统会丢弃较旧的载荷 来让 API 流量平稳流动
- 我可以向 Edge 添加政策吗 Microgateway?
- 如果您将常规 Apigee Edge 政策附加到 microgateway-aware
则会被忽略。相反,Edge Microgateway 使用插件来提供
提供类似于 Edge 中政策的功能,例如配额、高峰控制、API 密钥安全性以及
OAuth2 安全性。您还可以编写自定义插件。请参阅
使用插件和
开发自定义插件。
以下 Apigee 社区帖子和博客讨论了其他插件用例:
- <ph type="x-smartling-placeholder"></ph> 如何替换 Edge Microgateway 上的默认网址
- <ph type="x-smartling-placeholder"></ph> 如何在 Edge Microgateway 中使用配额
- <ph type="x-smartling-placeholder"></ph> 向 Edge Microgateway 添加日志记录器插件
安全
- 如何保护
/products
资源? - 概览
- 配置 Edge Microgateway 时,
部署了一个名为
edgemicro-auth
的 API 代理 到 Apigee Edge 上的组织:environment。此代理公开了一个/products
端点,该端点会返回 API 产品列表。如果您在 2018 年 10 月 5 日当天或之前安装了 Edge Microgateway,Apigee 建议您 您应该采取措施保护此端点 包含在您的 Apigee 中创建和修改 API 产品的开发者的电子邮件地址 组织。 。
- 您可以通过升级 Edge Microgateway 或配置双向 TLS 来保护端点。两者都有 具体如下所述。
- 检查
/products
端点是否受保护 -
如果您不确定
/products
端点是否受到保护,请转到此部分 验证/products
资源是否受保护,然后执行相应步骤 然后再继续。方法 1:升级 Edge Microgateway
如果您在 2018 年 10 月 5 日当天或之前安装了 Edge Microgateway,Apigee 建议您升级到 最新版本的 Edge Microgateway。按照 <ph type="x-smartling-placeholder"></ph> 如果您有互联网连接,请升级 Edge Microgateway。
如果您目前无法升级,请转到方法 2。
方法 2:配置双向 TLS
如果您目前无法升级 Edge Microgateway,Apigee 建议保护 Edge Microgateway 与
edgemicro-auth
代理之间相互通信时, TLS(也称为双向 TLS)。- 打开
$HOME/.edgemicro/org-env-config.yaml
文件。请参阅 如果找不到此文件,应将 Edge Microgateway 安装到哪里。 - 将以下
tlsOptions
代码块添加到org-env-config.yaml
文件,用于启用 Edge Microgateway 和 Apigee Edge:edge_config: bootstrap: >- https://domain/edgemicro/bootstrap/organization/org/environment/env jwt_public_key: 'https://domain/edgemicro-auth/publicKey' managementUri: 'https://api.enterprise.apigee.com' tlsOptions: agentOptions: requestCert: true cert: 'path/to/cert' key: 'path/to/key'
例如:
tlsOptions: agentOptions: requestCert: true cert: '/Users/jdoe/twowayssl/ssl/client.key' key: '/Users/jdoe/twowayssl/ssl/ca.crt'
您还可以添加以下可选的
agentOptions
参数:ca
:指定证书授权机构的路径。pfx
:如果您想要使用 p12/pfx 文件,而不是证书和密钥,请添加此属性。passphrase
:pfx 文件的密码。ciphers
:指定 TLS 加密。
- 确保部署
edgemicro-auth
代理的虚拟主机启用了双向 TLS。 如需了解详情,请参阅为双向 TLS 定义虚拟主机 。以下屏幕截图显示了如何在 Apigee Edge 界面中在虚拟主机上启用双向 TLS:
- 请查看 Edge 界面中的
edgemicro-auth
API 代理,并确保 代理配置中指定了正确的虚拟主机。例如,如果您创建了已启用 TLS 的 名为mutualtls
的虚拟主机,代理的HTTPProxyConnection
节 应如下所示:<HTTPProxyConnection> <BasePath>/edgemicro-auth</BasePath> <Properties/> <VirtualHost>mutualtls</VirtualHost> </HTTPProxyConnection>
- 打开
/products
资源是否受到保护/products
资源是否受到保护。完成这些步骤后,请务必执行此测试
(方法 1 或方法 2)以保护资源。您可以使用 c网址 执行此操作,例如:
curl -v https://your_domain/edgemicro-auth/products
/products
端点处于受保护状态:
{ "error":"unauthorized", "error_description": "authentication failed" }
或
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number
如果您看到类似这样的响应,则表示 /products
资源未受到保护
和开发者电子邮件地址:
{ "apiProduct":[ { "apiResources":[ "/", "/**" ], "approvalType":"auto", "attributes":[ ], "createdAt":1537374680948, "createdBy":"jdoe@foo.com", "description":"", "displayName":"mock", "environments":[ "test" ], "lastModifiedAt":1537374680948, "lastModifiedBy":"test@test.com", "name":"mock", "proxies":[ "edgemicro-auth", "edgemicro_mock" ], "quota":"null", "quotaInterval":"null", "quotaTimeUnit":"null", "scopes":[ "" ] } ] }
Apigee 还建议您测试 HTTP 虚拟主机:
例如:
curl -v http://your_domain/edgemicro-auth/products
如果 c网址 调用返回 API 产品列表,则开发者电子邮件地址可能
。如果您不希望使用此非 TLS 虚拟主机公开端点,请务必将其从
edgemicro-auth
HTTPProxyConnection 配置。
如需保护资源,请执行以下操作之一:
目前,您无法为指定的 Edge Microgateway 实例续订 JWT 令牌。
临时解决方法:
每个 JWT 令牌都有一个 exp 属性,用于指明令牌的失效日期。应用可以
计算过期时间,并通过直接调用 API 来请求新令牌,
edgemicro-auth
令牌端点。例如,您可以进行如下 API 调用:
POST https: //{your_org}-{your_env}.apigee.net/edgemicro-auth/token
且 JSON 正文如下所示:
{ "client_id": {your_id}, "client_secret": {your_secret},
"grant_type": "client_credentials" }
另请参阅:
目前,系统仅会检查基本路径,以确定 API 是否已获准用于 API 产品 特定 OAuth 令牌相关联。
例如:
- 您使用基本路径和目标创建带有
edgemicro_
前缀的代理。 - 您可以将此代理添加到产品。将其命名为
edgemicro-prod1
。 - 使用 API 密钥或 OAuth 通过 Edge Microgateway 进行 API 调用时
Edge Microgateway 会检查 API 的基本路径是否与
edgemicro_*
代理(已获准用于针对相应键批准的产品列表),或 令牌。
只有默认的 Apigee SSL cert。目前不支持自定义 SSL 证书。
权宜解决方法:
如果您想要使用自定义(非 Apigee 默认)SSL 证书,有以下选项:
-
使用非 SSL
jwt_public_key
端点。修改 Edge Microgateway 配置 文件以使用http://{org}-{env}.apigee.net/edgemicro-auth/publicKey
,或者 -
在启动 Edge Microgateway 之前,请设置以下环境变量:export
NODE_TLS_REJECT_UNAUTHORIZED ="0"
edgemicro-auth
代理部署到 Edge,而此
需要组织管理员凭据。您可以使用自己的令牌,但必须先关闭 Edge 的内置授权 Microgateway。具体操作步骤如下:
- 打开 Edge Microgateway 的配置文件。
-
将两个 OAuth 设置更改为 true,如下所示:
oauth: allowNoAuthorization: true allowInvalidAuthorization: true
edgemicro start -o [org] -e [env] -k [key] -s [secret]
测试和调试
- 如何 我防止出现“打开过多文件”的情况错误?
-
在某些情况下,您的系统可能会遇到打开文件连接过多的情况, 这可能会导致 Edge Micro 崩溃。默认日志记录需要两个 HTTP 连接, 通过 Microgateway 实现传入和传出事务。
出于测试和基准化分析目的,Apigee 建议您设置系统的 ulimit 命令 到无限制:
ulimit -n unlimited
。另请参阅 Edge Apigee 社区上的负载测试期间出现 Microgateway 错误。 - 快速提示 开发和调试
-
如果您正在为 Edge Microgateway 开发插件,可能会发现支持快速 发展有限。
目前,我们在下面提供了一些提示:
- 如需启动 Edge Microgateway,您可以设置环境变量 EDGEMICRO_KEY 和 EDGEMICRO_SECRET 添加到 Microgateway 启动命令所需的密钥/密钥对。 这样,您无需在命令中输入密钥/密钥即可启动 Edge Microgateway 行。另请参阅 设置环境变量。
-
以调试模式启动 Edge Microgateway,以在命令终端中查看其他输出:
DEBUG=* edgemicro start -o [org] -e [env] -k [key] -s [secret]
业务和许可
- Apigee-127 和 Edge Microgateway 支持模型之间有什么关系?
-
Apigee-127 是一个开源模型支持的开源软件项目。这样 您可以在 GitHub 项目中提出问题,并在尝试修复问题时发出拉取请求 什么。Apigee-127 不要求或包含任何与 Apigee。
另一方面,Edge Microgateway 是一款 Enterprise 产品,Apigee 支持 Apigee 客户。也就是说,Apigee 客户可以创建支持服务工单、功能请求和 bug 使用 Google Cloud Apigee Edge 支持报告。