您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
Edge Microgateway v. 2.4.x
概览
本教程将引导您完成使 Edge Microgateway 实例正常运行所需的步骤。
完成此处的步骤后,您将拥有一个完全配置且可正常运行的 Edge Microgateway 安装,能够处理 API 请求。您将通过 Edge Microgateway 向后端目标发出安全的 API 调用,以测试设置。您还将学习如何向微网关添加突峰抑制插件。
本指南分为以下几个部分:
- 前提条件: 安装 Edge Microgateway
- 第 1 部分: 配置 Edge Microgateway
- 第 2 部分: 在 Apigee Edge 上创建实体
- 第 3 部分: 运行 Edge Microgateway
- 第 4 部分: 保护 Edge Microgateway
- 第 5 部分: 添加 Spike Arrest 插件
- 第 6 部分: 在 Apigee Edge 上查看分析数据
前提条件:安装 Edge Microgateway
按照安装 Edge Microgateway 中的说明操作。完成安装后,您就可以按照本教程中的步骤操作了。
完成安装后,请继续执行下一部分“第 1 部分:配置 Edge Microgateway”。
第 1 部分:配置 Edge Microgateway
在此部分中,您将使用命令行界面 (CLI) 命令来配置 Edge Microgateway,使其与 Apigee Edge 通信。如果您使用的是 Apigee Edge Cloud,请按照 Apigee Edge Cloud 配置步骤操作。如果您使用的是 Apigee Private Cloud,请按照 Apigee Edge Private Cloud 的步骤操作。
Apigee Edge Cloud 配置步骤
如需将 Edge Microgateway 与 Apigee Edge Cloud 搭配使用,请按以下步骤操作:
- 如果您之前未执行此操作,请初始化 Edge Microgateway(此步骤只需执行一次):
edgemicro init
- (可选)打印 edgemicro configure 命令的帮助信息:
edgemicro configure -h
- 执行以下命令以配置 Edge Microgateway:
edgemicro configure -o [org] -e [env] -u [username]
其中:
org是您的 Edge 组织名称(您必须是组织管理员)。env是您组织中的环境(例如测试环境或生产环境)。username是与您的 Apigee 账号相关联的电子邮件地址。
示例
edgemicro configure -o docs -e test -u jdoe@example.com
输出
./edgemicro configure -o docs -e test -u jdoe@apigee.com password: current nodejs version is v6.1.0 current edgemicro version is 2.2.3-beta password: file doesn't exist, setting up Give me a minute or two... this can take a while... App edgemicro-auth deployed. creating vault adding private_key adding public_key configuring host edgemicroservices-us-east-1.apigee.net for region us-east-1 saving configuration information to: /Home/.edgemicro/wwitman-test-config.yaml vault info: -----BEGIN CERTIFICATE----- MIICpDCCAYwCCQCaDpaTttaDANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDEwls b2NhbGhvc3QwHhcNMTYxAxMjA0NzIyWhcNMTYxMTAyMjA0NzIyWjAUMRIwEAYD VQQDEwlsb2NhbGhvcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDA YbtbsFe50GgBrI8QTih5yzxxxvCfdubGrLWmovwwCCFthno3u8lS54ekOL9jQu JTJsocJfNhZxvnXifDsCk5Muwx87Z/D0BYLw9ZhM8TMyA2MCkXgC6RfKT69IdJ jT3X+3D0s+apr3lACsDhgOfaeQfeHAm1SSwH/VemaJqdImGkQMtM8uscMDwG6k vBbCSNS+hh6ZH1m3tAkcKXqvj/E1hbrHNTWr+uiYFRByUzeo1I607daQD4Lxid il4Ng3hr3LC1gEzvobWgVyhQ2ovYB57T886H7dGghTnOUxLm2y/TwmQya+44SL JSsDwauArMF38cRKZZ7VAgMBAAEwDQYJKoZIhvcNAQELBQADEBAHwwu+gOn8Tq jKOYBTXtOX11HPMTxmyvZ/I57R4roE7Z/lXg/DXwbiFpFG2uamXNKq7yTDJH2i iiqdERZOGfv7TJMjRlxEnfVHoCV7UKguKq4zeeAEU2x55yFwpWNrarx0kMXRwI v3WgGfo2bimFQrCjDCNIkDKmYYt4SXIF5zUJmBWPCaK9aJoQb7ARXQO9s2zoOI XZ5bCUDbehQZ+6LyqC0hgDXiIZYy7R0j93yCbQgoHaHUMEprJEEjE24SHdsWBO nxGZxB20JLq5AHTm8lbZp7XtvbU0jVpxyrBo2/olFnmpvBVOq9eIp042IVD7nT J4rPejdK6C4= -----END CERTIFICATE----- The following credentials are required to start edge micro key: e88ec9d5da17cd88ca338d532b7c7a8c4f43ddd3da139d95955ab345af30352d secret: d7f64854eb6889d06b809dd7c161dba5eeba4a2657277fd819921bf992221a8f edgemicro configuration complete!
Apigee Private Cloud 配置步骤
如需将 Edge Microgateway 与 Apigee Private Cloud 搭配使用,请按以下步骤操作:
- 输出 edgemicro private configure 命令的帮助信息。您可以采用这种方式输出任何 Edge Microgateway CLI 命令或命令选项的帮助信息。
edgemicro private configure -h
- 执行以下命令:
它需要有关 Apigee Edge Private Cloud 账号的标准信息:组织名称、环境名称、用户名(电子邮件地址)、密码、管理服务器 IP 和路由器 IP。您必须是 Edge 组织管理员,才能使用此命令:
edgemicro private configure -o [org] -e [env] -u [username] -r [runtime_url] -m [mgmt_url] -v [virtual_host]
其中:
org是您的 Edge 组织名称(您必须是组织管理员)。env是您组织中的环境(例如测试环境或生产环境)。runtime_url是私有云实例的运行时网址。mgmt_url是私有云实例的管理服务器的网址。username是与您的 Apigee 账号相关联的电子邮件地址。-
virtual_host是以英文逗号分隔的虚拟主机名列表。默认值为default,secure
示例
edgemicro private configure -o docs -e test -u jdoe@example.com -r http://192.162.52.106:9001 -m http://192.162.52.106:8080 -v default
或者,如果您有 myorg-test.mycompany.com 的虚拟主机别名,则可以使用如下命令:
edgemicro private configure -o docs -e test -u jdoe@example.com -r myorg-test.mycompany.com -m http://192.162.52.106:8080 -v default
输出
delete cache config checking for previously deployed proxies configuring edgemicro internal proxy deploying edgemicro internal proxy deploying edgemicro-auth app copy auth app into tmp dir copy config into tmp deer Give me a minute or two... this can take a while... App edgemicro-auth added to your org. Now adding resources. checking org for existing vault creating vault adding private_key adding public_key configuring host http://192.168.52.106:9001 for region dc-1 saving configuration information to: /Users/ApigeeCorporation/.edgemicro/jdoe-test-config.yaml vault info: -----BEGIN CERTIFICATE----- MIICpDCCAYwCCQDpIvWlpaZJGDANBgkqhkiG9w0BAQFADAUMRIwEAYDVQQDEwls b2NhbGhvc3QwHhcNMTYwNDA3MTcxNTM5WhcNMTYwND4MTcxNTM5WjAUMRIwEAYD VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAUAA4IBDwAwggEKAoIBAQD3 OAQ+kf5FH0S0yuj05ITqUODuUJspBPberRMbqOZYHcFswhB0Yvg6JKWxKWBDP9o Xl96dtgH7xPFRqIU0zI452jkMQ1fPz2mSaGwik245yfBku7olooXKRKTRKOUoXa q3Hld/RPxGSsWtiyyYtKex7tuFdq0Knm1EhowdTRGIgjNvudeYMka/XPRXuykhd xIDxWj4rdX+4GPx9qT2eTQC5nOAC7XHVL7ys4KqsAiv28vw10u400KstFFS8Qho 7FaE0bOKLolKKadKyA60ha1XIw/uSTD6ZQFWQ+XM3OaRbXePWXnSZioSxXcZT7L hMUKbsRXw/TCvRB51LgNAgMBAAEwDQYJKoZIhvcNAQELBQADgEBAOuR1OmE/W6j gRAarJB5EQuTEpI/9Zpg5c5RAGjzLhkazsycn7pal+IymUjCV7D0oIxTVuTM8ZZ 57kR5hF/C1ZypDN9i+KGP2ovX8WOCCXYtIQECgZPB/L/7/k7BDuKN4vFBvWUe3X s2oyjnVWy+ASqsW8gHfj8ekhe22bP240Oqkbyg9SZP9ol1tvJX6+M0thYwcTwAd ft929Icey/MOTQC0jB2qm0gnIx/7KInFXfS5KoFRJoGrWDeckr3RdBo2LhnPaeZ 1gPYIqphZ3HfisF5KlBXoR8oT/Ilym/nq5COlv+3L4tMIk18F7BQZB60SRazifz pFkIxepyr/0= -----END CERTIFICATE----- The following credentials are required to start edge micro key: a3f8f3dfe39158fc3c50b274f0af2234246e0d5f6ea4dd09389b645147151ba3 secret: 3e9904802fb3c0e8ca408128a11119cf13546d54dac30ace944c097a726a1263 edgemicro configuration complete!
验证安装
运行以下命令以验证安装。如果没有报告任何错误,则表明一切都已正确设置,您可以成功启动 Edge Microgateway。
edgemicro verify -o [org] -e [env] -k [key] -s [secret]
其中:
org是您的 Edge 组织名称(您必须是组织管理员)。env是您组织中的环境(例如测试环境或生产环境)。key是之前由配置命令返回的密钥。secret是之前由配置命令返回的密钥。
示例
edgemicro verify -o docs -e test -k 93b01fd21d86331459ae52f664ae9aeb13eb94767ce40a4f621d172cdfb7e8e6 -s c8c755be97cf56c21f8b0556d7132afbd03625bbd85dc34ebfefae4f23fbcb3c
配置简介
到目前为止完成的所有配置都允许 Edge Microgateway 自启动到 Apigee Edge。引导成功后,Edge Microgateway 会从 Apigee Edge 检索包含其他配置信息的载荷。
此配置信息有何用处?正如我们将在本教程的下一部分中了解到的那样,Edge Microgateway 在启动时需要从 Apigee Edge 接收一个 Edge Microgateway 感知 API 代理的特殊列表。在本教程的下一部分中,您将创建一个支持 Microgateway 的代理。Edge Microgateway 会限制客户端只能调用由这些 Microgateway 感知 API 代理代理的 API,并且(默认情况下)客户端每次调用都需要提供有效的安全令牌。如需详细了解这些代理,请参阅“您需要了解的有关支持 Edge Microgateway 的代理”。
作为 Edge 组织管理员,您可能想知道,与 Edge Microgateway 兼容的代理可以像任何其他代理一样添加到 Edge 产品中。通过使用产品和开发者应用,您可以生成特定于客户端的安全令牌,以控制对通过 Edge Microgateway 调用的 API 的访问权限。同样,所涉及的模式与在 Apigee Edge 上使用任何 API 代理、产品和开发者应用时完全相同。如果您想了解产品,请先阅读 Edge 文档中的什么是 API 产品?。
接下来,我们将逐步介绍如何创建 Edge Microgateway 感知代理,然后启动 Edge Microgateway 并测试设置。
第 2 部分:在 Apigee Edge 上创建实体
在本部分中,您将在 Edge 上创建以下实体:
- 微网关感知代理 - 这是一种特殊代理,Edge Microgateway 可以在启动时发现它。支持微网关的代理具有您必须遵循的命名惯例:名称必须以
edgemicro_开头。例如edgemicro_hello或edgemicro_userinfo。 Edge Microgateway 启动时,会从 Edge 中检索您在启动 Edge Microgateway 时指定的同一 Edge 组织和环境中的微网关感知型代理列表。
对于每个 Edge Microgateway 感知代理,Edge Microgateway 会检索该代理的目标网址及其基本路径。此外,感知微网关的代理还提供了一种便捷的方式,可将 Edge Microgateway 生成的分析数据与 Edge 平台上的代理相关联。当 Microgateway 处理 API 调用时,它会以异步方式将分析数据推送到 Edge。分析数据将显示在 Edge Analytics 界面中,位于支持微网关的代理名称下,就像任何其他代理一样。
- 产品、开发者和开发者应用 - Edge Microgateway 使用产品、开发者和开发者应用来启用 OAuth2 访问令牌或 API 密钥安全性。Edge Microgateway 启动时,会从 Apigee Edge 组织下载所有产品配置。它会使用此信息来验证通过 Edge Microgateway 使用 API 密钥或 OAuth2 访问令牌进行的 API 调用。
了解详情:另请参阅“您需要了解哪些有关支持 Edge Microgateway 的代理的信息”。
1. 在 Edge 上创建 Edge Microgateway 感知 API 代理
- 登录您在 Apigee Edge 中的组织。
- 点击切换到经典版,前往 Edge 经典版界面。
- 在顶部菜单中依次选择 API > API 代理。
- 在“API 代理”页面中,点击 + API 代理。
- 在“构建代理”向导中,选择反向代理(最常见) (Reverse proxy (most common))。
- 点击下一步。
- 在向导的“详情页面”中,按如下方式配置。请务必完全按照所示方式填写向导:
- 代理名称:edgemicro_hello
- 代理基本路径:/hello
- 现有 API:http://mocktarget.apigee.net/
- 点击下一步。
- 在向导的“安全性”页面中,选择直通(无)。
- 点击下一步。
- 在向导的“虚拟主机”页面中,接受默认设置。
- 点击下一步。
- 在向导的“构建”页面中,查看您的代理设置。确保已选择测试环境。
- 点击 Build and Deploy。
2. 创建产品
创建包含两个代理的产品:
- 您的支持微网关的代理:edgemicro_hello
- 由 Edge Microgateway 安装的身份验证代理:edgemicro-auth。
- 在 Edge 界面(经典版)中,前往发布 > 产品。
- 在“商品”页面中,点击 + 商品。根据下表填写“产品详情”页面:
- 名称:EdgeMicroTestProduct
- 显示名:EdgeMicroTestProduct
- 环境:测试和生产
- 访问权限:公开
- 密钥审批类型:自动
-
资源:
- API 代理:选择 edgemicro_hello
- 修订版本:1
- 资源路径: /**
- 点击导入资源。
- 在“资源”中,点击 +API 代理
- 选择 edgemicro-auth
- 点击保存。
3. (可选)创建测试开发者
在本教程中,您可以使用任何现有开发者来执行下一步,即创建开发者应用。不过,如果您愿意,也可以立即创建一个测试开发者:
- 前往发布 > 开发者。
- 在“产品”页面中,点击 + 开发者。
- 填写对话框以创建测试开发者。
4. 创建开发者应用
您将使用此应用的客户端凭据通过 Edge Microgateway 进行安全的 API 调用:
- 前往发布 > 开发者应用。
- 在“开发者应用”页面中,点击 + 开发者应用。
- 根据下表填写开发者应用页面:
- 名称:EdgeMicroTestApp
- 显示名称:EdgeMicroTestApp
- 开发者:如果您创建了测试开发者,请选择该开发者。或者,您可以使用任何现有开发者来学习本教程。
-
凭据:
- 选择“过期时间”:永不。
- 点击 + 商品,然后选择 EdgeMicroTestProduct(您刚刚创建的商品)
- 点击保存。
- 您会返回到“开发者应用”列表页面。
- 选择您刚刚创建的应用 EdgeMicroTestApp。
- 点击使用方密钥和使用方密钥旁边的显示。

第 3 部分:运行 Edge Microgateway
现在,您已在 Edge 上配置 Edge Microgateway 并至少有一个 Edge Microgateway 感知代理,接下来可以启动 Edge Microgateway 了。Edge Microgateway HTTP 服务器将在本地机器上运行,您将直接向该服务器发出 API 调用。
1. 启动 Edge Microgateway
使用 edgemicro start 命令启动 Edge Microgateway。
- 请确保您拥有之前运行 edgemicro configure 命令时返回的密钥。该输出结果如下所示:
You need key and secret while starting edgemicro instance key: da4778e7c240a5d4585fc559eaba5083328828ac9f3a7f583e8b73e secret: 3aad7439708b4aeb38ee08e87189921ad00e6fc1ba8a8ae9f929ee2
- (可选)打印
edgemicro start命令的帮助信息。
edgemicro start -h
- 如需启动 Edge Microgateway,请执行以下命令:
edgemicro start -o [org] -e [env] -k [key] -s [secret]
其中:
org是您的 Edge 组织名称(您必须是组织管理员)。env是您组织中的环境(例如测试环境或生产环境)。key是之前由配置命令返回的密钥。secret是之前由配置命令返回的密钥。
示例
edgemicro start -o docs -e test -k 701e70e718ce6dc1880616b3c39177d64a88754d615c7a4e1f78b6181d000723 -s 05c14356e42d136b83dd135cf8a18531ff52d7299134677e30ef4e34ab0cc824
输出
启动命令会从 Apigee Edge 检索大量配置信息(这些信息会滚动显示在终端窗口中)。在输出中,您会看到已发现的微网关感知代理和产品列表。在输出的末尾,您应该会看到如下内容:
... PROCESS PID : 9757 installed plugin from analytics installed plugin from oauth eb725020-a2b0-11e6-8a52-6de156e3a6e2 edge micro listening on port 8000 installed plugin from analytics installed plugin from oauth installed plugin from analytics installed plugin from oauth installed plugin from analytics installed plugin from oauth eb77ce60-a2b0-11e6-8a88-b96278c0c198 edge micro listening on port 8000 eb78b8c0-a2b0-11e6-bf36-717b986c91fe edge micro listening on port 8000 eb77f570-a2b0-11e6-883e-472b9104351e edge micro listening on port 8000
这是怎么回事?
查看运行 edgemicro config 命令的终端。 向上滚动标准输出,您会看到该命令从 Apigee Edge 检索到 Edge Microgateway 配置信息的载荷。此类信息包括:
- 我们之前创建并存储在加密的键值对映射 (KVM) 中的公钥。
- 组织/环境中所有支持 Edge Microgateway 的代理的 JSON 表示形式。这些都是以 edgemicro_ 为前缀命名的代理。
- 组织/环境中所有 API 产品的 JSON 表示形式。
有了这些信息,Edge Microgateway 便知道允许处理哪些代理和代理路径。它会使用商品信息来强制执行安全性(与 Apigee Edge 上的任何 API 代理完全相同,其中开发者应用密钥与产品相关联)。我们稍后会介绍保护 Edge Microgateway 的步骤。
2. 测试 Edge Microgateway
在 Edge Microgateway 运行的情况下,您可以调用代理。当您启动 Edge Microgateway 时,系统会从 Edge 下载 edgemicro_hello 代理的配置。请注意,代理基本路径为 /hello。
为了测试 Edge Microgateway,我们从基本路径开始,然后添加资源路径 /echo。请注意,基本路径之后的所有内容(包括任何查询参数)都会直接传递到后端目标:
curl -i http://localhost:8000/hello/echo
{"error":"missing_authorization","error_description":"Missing Authorization header"}出现此错误的原因是您未在请求中发送有效的 API 密钥或访问令牌。默认情况下,Edge Microgateway 要求每次 API 调用都必须提供 API 密钥或访问令牌。在本教程的下一步中,我们将妥善保护此 API,并向您展示如何获取有效的访问令牌并将其包含在请求中。
4. 停止 Edge Microgateway
- 在另一个终端窗口中,
cd到启动 Edge Microgateway 的同一目录。 - 输入停止命令:
edgemicro stop
第 4 部分:保护 Edge Microgateway
您可以使用 API 密钥或访问令牌来保护通过 Edge Microgateway 发出的 API 调用。
使用 OAuth2 访问令牌保护 API 调用
如果您想使用 OAuth2 访问令牌对 API 调用进行身份验证,请按以下步骤操作:
1. 获取所需密钥
- 在 Edge 界面中,按照第 2 部分:在 Apigee Edge 上创建实体中所述,找到您之前创建的开发者应用。应用的名称为 EdgeMicroTestApp。
- 在“开发者应用”页面中,显示使用方密钥和使用方密钥令牌,然后复制它们。您需要这些值才能在下一步中获取访问令牌。
2. 获取访问令牌
获取访问令牌的方式有两种。下面我们将介绍这两种方法。
使用 CLI 获取访问令牌
第一种方法很方便,并且遵循了我们在整个教程中使用的模式。第二种方法通常更适合需要请求令牌的客户端应用开发者。实际的令牌端点是在配置 Edge Microgateway 时部署的 edgemicro-auth 代理中实现的。
- (可选)查看 token get 命令的相关帮助:
edgemicro token get -h
- 生成令牌,将您在 Apigee Edge 上创建的开发者应用中的使用方密钥和使用方 Secret 值替换为 -i 和 -s 参数:
edgemicro token get -o [org] -e [env] -i [consumer_key] -s [consumer_secret]
其中:
org是您的 Edge 组织名称(您必须是组织管理员)。env是您组织中的环境(例如测试环境或生产环境)。consumer_id是您之前创建的开发者应用中的消费者 ID。consumer_secret是您之前创建的开发者应用中的 Consumer Secret。
示例
edgemicro token get -o docs -e test -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
输出(示例)
current nodejs version is v4.4.4 { token: 'eyJ0eXAiOiJKV1QiLCJhbGciSUzI1NiJ9.eyJhcHBsaWNhdGl vbl9uYW1lIjoiNWNiMGY0tOWMzOC00YmJjLWIzNzEtZGMxZTQzOGYxZGMxI iwiY2xpZW50X2lkIjoiNVVdBWEdvSU9lbzYwYWV3OTRQN0c1TUFaRTNhSnA iLCJzY29wZXMiOltdLCJhcGlfcHJvjdF9saXN0IjpbIkVkZ2VNaWNyb1Rlc 3RQcm9kdWN0IlmlhdCI6MTQ3ODIwODMzMiwiZXhwIjoxNDc4MjEwMTMxfQ. v3Q8Rs0W9FO_XpERwIAMMXhjGamRmmmWgrAy1wJv0-99oajx5ASI5qjNubM nCF14xxwlVXHcz1VfedA8Nx7Ih145zhWWuPKL9muzhXXnVBRFeBMeeLqJk4 QQ7Bhst7xH_68nJSTE20Egu95DHOCUemfrepDFH0VggY4BmzvwLkBNfz_te E_YqwKZbpGOLMdKK1vMk0fk0x19SieIMS_aJYeOAklrzUhnFxWJFrsAWsax NLx_BbQcZzYfK1JSDUrhRNVBuPHMnGjNA_oHw2J4qa6Hsp62PfchG-DIW_t -0BFnYf3rYXmqyNORqFrOMdl4VxqQ' }
(可选)使用 API 获取令牌
如果您习惯使用 curl 或其他 HTTP 客户端调用 Edge 代理,那么您会很高兴地知道,您可以直接调用令牌端点,而无需使用 edgemicro token 命令。以下是一个 curl 示例。只需将网址中的组织和环境名称替换为您自己的名称,然后在基本身份验证标头中传递以英文冒号分隔的使用方密钥:使用方密码值:
curl -i -X POST "http://[org]-[env].apigee.net/edgemicro-auth/token" -d '{ "client_id": "your consumer key", "client_secret": "your consumer secret", "grant_type": "client_credentials" }' -H "Content-Type: application/json"
其中:
org是您的 Edge 组织名称(您必须是组织管理员)。env是您组织中的环境(例如测试环境或生产环境)。client_id是您之前创建的开发者应用中的消费者 ID。client_secret是您之前创建的开发者应用中的 Consumer Secret。
输出 (示例)
无论您是使用 edgemicro token CLI 命令还是使用 curl 调用端点,该命令都会返回一个签名访问令牌,可用于进行客户端调用。如下所示:
MIICpDCCAYwCCQDpIvWlpaZJGDANBgkqhkiG9w0BAQFADAUMRIwEAYDVQQDEwls
b2NhbGhvc3QwHhcNMTYwNDA3MTcxNTM5WhcNMTYwND4MTcxNTM5WjAUMRIwEAYD
VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAUAA4IBDwAwggEKAoIBAQD3
OAQ+kf5FH0S0yuj05ITqUODuUJspBPberRMbqOZYHcFswhB0Yvg6JKWxKWBDP9o
Xl96dtgH7xPFRqIU0zI452jkMQ1fPz2mSaGwik245yfBku7olooXKRKTRKOUoXa
q3Hld/RPxGSsWtiyyYtKex7tuFdq0Knm1EhowdTRGIgjNvudeYMka/XPRXuykhd
xIDxWj4rdX+4GPx9qT2eTQC5nOAC7XHVL7ys4KqsAiv28vw10u400KstFFS8Qho
7FaE0bOKLolKKadKyA60ha1XIw/uSTD6ZQFWQ+XM3OaRbXePWXnSZioSxXcZT7L
hMUKbsRXw/TCvRB51LgNAgMBAAEwDQYJKoZIhvcNAQELBQADgEBAOuR1OmE/W6j
gRAarJB5EQuTEpI/9Zpg5c5RAGjzLhkazsycn7pal+IymUjCV7D0oIxTVuTM8ZZ
57kR5hF/C1ZypDN9i+KGP2ovX8WOCCXYtIQECgZPB/L/7/k7BDuKN4vFBvWUe3X
s2oyjnVWy+ASqsW8gHfj8ekhe22bP240Oqkbyg9SZP9ol1tvJX6+M0thYwcTwAd
ft929Icey/MOTQC0jB2qm0gnIx/7KInFXfS5KoFRJoGrWDeckr3RdBo2LhnPaeZ
1gPYIqphZ3HfisF5KlBXoR8oT/Ilym/nq5COlv+3L4tMIk18F7BQZB60SRazifz
pFkIxepyr/0=
3. 检查 Edge Microgateway 中的配置
- 打开文件 ~
/.edgemicro/org-env-config.yaml.另请参阅 Edge Microgateway 安装在何处。 - 确保这些 OAuth 插件属性设置为 false。它们默认值为 false,但最好仔细检查一下:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false
- 同样在
org-env-config.yaml文件中,确保已将 oauth 插件添加到plugins:sequence元素中,如下所示:plugins: dir: ../plugins sequence: - oauth
- 如果您对文件进行了任何更改,请将这些更改重新加载到正在运行的 Edge Microgateway 实例中。此命令会重新配置 Edge Microgateway,实现零停机时间:
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
其中:
org是您的 Edge 组织名称(您必须是组织管理员)。env是您组织中的环境(例如测试环境或生产环境)。key是之前由配置命令返回的密钥。secret是之前由配置命令返回的密钥。
示例
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
4. 安全地调用 API
获得访问令牌后,您现在可以安全地进行 API 调用了。例如:
curl -i -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhcHBsaWNhdGlvbl 9uYW1lIjoiYmU2YmZjYjAtMWQ0Ni00Y2IxLWFiNGQtZTMxNzRlNTAyMDZkIiwiY2xpZW50X2lkIjoiOGxTTTVIRHdyM VhIT1ZwbmhURExhYW9FVG5STVpwWk0iLCJzY29wZXMiOltdLCJhcGlfcHJvZHVjdF9saXN0IjpbIk1pY3JvZ2F0ZXdh eVRlQcm9kdWN0Il0sImCI6MTQzNTM0NzY5MiwiZXhwIjoxNDM1MzQ5NDkxfQ.PN30Y6uK1W1f2ONPEsBDB_BT31c6 IsjWGfwpz-p6Vak8r767tAT4mQAjuBpQYv7_IU4DxSrnxXQ_q536QYCP4p4YKfBvyqbnW0Rb2CsPFziy_n8HIczsWO s0p4czcK63SjONaUpxV9DbfGVJ_-WrSdqrqJB5syorD2YYJPSfrCcgKm-LpJc6HCylElFDW8dHuwApaWcGRSV3l5Wx 4A8Rr-WhTIxDTX7TxkrfI4THgXAo37p3au3_7DPB_Gla5dWTzV4j93xLbXPUbwTHzpaUCFzmPnVuYM44FW5KgvBrV0 64RgPmIFUxSqBWGQU7Z1w2qFmWuaDljrMDoLEreI2g" http://localhost:8000/hello/echo
该 API 会返回模拟服务器中的标头和其他信息。
使用 API 密钥保护 API
如果您希望使用 API 密钥进行授权,请按以下步骤操作:
1. 获取 API 密钥
- 在 Edge 界面中,按照第 2 部分:在 Apigee Edge 上创建实体中所述,找到您之前创建的开发者应用。应用的名称为 EdgeMicroTestApp。
- 在“开发者应用”页面中,显示使用方密钥并复制该密钥。此值是 API 密钥。您将使用此密钥进行经过身份验证的 API 调用。
2. 检查 Edge Microgateway 中的配置
- 打开文件 ~
/.edgemicro/org-env-config.yaml.另请参阅 Edge Microgateway 安装在何处。 - 确保这些 OAuth 插件属性设置为 false。它们默认值为 false,但最好仔细检查一下:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false
- 同样在
org-env-config.yaml文件中,确保已将 oauth 插件添加到plugins:sequence元素中,如下所示:plugins: dir: ../plugins sequence: - oauth - 如果您对文件进行了任何更改,请将这些更改重新加载到正在运行的 Edge Microgateway 实例中。此命令会重新配置 Edge Microgateway,实现零停机时间:
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
其中:
org是您的 Edge 组织名称(您必须是组织管理员)。env是您组织中的环境(例如测试环境或生产环境)。key是之前由配置命令返回的密钥。secret是之前由配置命令返回的密钥。
示例
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
3. 使用 API 密钥安全地调用 API
使用 x-api-key 标头调用 API,如下所示。您从开发者应用复制的使用方密钥值就是 API 密钥。默认情况下,Edge Microgateway 要求您在名为 x-api-key 的标头中传递密钥,如下所示:
curl -i http://localhost:8000/hello/echo -H "x-api-key: [apikey]"
其中:
apikey是从 EdgeMicroTestApp 中提取的使用方密钥值。
例如:
curl -i http://localhost:8000/hello/echo -H 'x-api-key: XsU1R4zGXz2ERxa0ilYQ5szwuljr5bB'
现在,您已拥有一个功能齐全且安全的 Edge Microgateway。在本教程的下一部分中,我们将介绍可为 Edge Microgateway 添加功能的插件。
第 5 部分:添加 Spike Arrest 插件
在此部分中,我们将向 Edge Microgateway 实例添加一项名为“突峰抑制”的速率限制功能。
什么是插件?
插件是一种 Node.js 模块,可为 Edge Microgateway 添加功能。插件模块遵循一致的模式,并存储在 Edge Microgateway 已知的位置,从而使微网关能够自动发现并加载它们。如需详细了解插件,请参阅使用插件。
添加 Spike Arrest 插件
Spike Arrest 可防范流量高峰。它会限制 Edge Microgateway 实例处理的请求数。
在 Edge Microgateway 中,突发流量拦截功能以插件模块的形式实现。如需启用此功能,您需要将其添加到 Edge Microgateway 配置文件中。
- 打开文件 ~
/.edgemicro/org-env-config.yaml.另请参阅 Edge Microgateway 安装在何处。 - 添加以下元素。您可以将其添加到文件的任意位置。
spikearrest: timeUnit: minute allow: 10 buffersize: 0 - 向
edgemicro:sequence元素添加spikearrest,如下所示。sequence 配置属性用于告知 Edge Microgateway 插件模块的执行顺序。edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 plugins: dir: ../plugins sequence: - spikearrest - oauth
- 保存配置文件。
- 使用 reload 命令重新加载 Edge Microgateway。您必须从启动 Edge Microgateway 的目录运行此命令。
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
其中:
org是您的 Edge 组织名称(您必须是组织管理员)。env是您组织中的环境(例如测试环境或生产环境)。key是之前由配置命令返回的密钥。secret是之前由配置命令返回的密钥。
示例
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
- 尝试快速连续多次调用 API。在第二次调用后,Edge Microgateway 会返回以下错误:
{"message":"SpikeArrest engaged","status":503}
原因是,峰值抑制功能可平滑指定时间单位内可进行的调用次数。因此,在这种情况下,您可以在 1 分钟内拨打 10 次电话,即每 6 秒拨打一次。
如需了解详情,请参阅使用插件中的“峰值抑制功能如何运作?”。
加分题:添加配额插件
按照用于配置峰值抑制的相同模式,您可以添加其他插件,例如配额插件。与突峰流量限制一样,配额插件包含在每个 Edge Microgateway 安装中。配额指定应用在指定时间间隔(分钟或小时)内允许提交到 API 的请求消息的数量。
如需了解配额的工作原理,请参阅使用插件中的“使用配额插件”。
第 6 部分:在 Apigee Edge 上查看分析
我们现在有了一个功能齐全的 Edge Microgateway 实例,让我们看看它在做什么! 默认情况下,分析插件模块会添加到 Edge Micro。此模块会以静默方式将分析数据从 Edge Micro 推送到 Apigee Edge,供 Edge Analytics 系统使用。 我们来看看:
- 登录您在 Apigee Edge 中的组织。
- 依次选择分析 > 代理性能。
- 在“代理性能”信息中心内,选择 edgemicro_hello 代理。
- 该图表会显示代理的流量模式相关信息,例如总流量、平均响应时间、平均目标响应时间等。
如需详细了解 Edge Analytics 信息中心,请参阅 Edge 文档中的“Analytics 信息中心”首页。如需详细了解插件,请参阅使用插件