您正在查看 Apigee Edge 文档。
请查看 Apigee X 文档。
Edge Microgate 版本 2.5.x
概览
完成此设置指南中的步骤后,您将完成一个完全配置且可正常运行的 Edge Microgate 安装,能够处理 API 请求。您将通过 Edge Microgate 对后端目标进行安全的 API 调用,以便测试设置。以及如何向 Microgate 添加高峰控制插件。
本指南分为以下部分:
- 前提条件:安装 Edge Microgate
- 第 1 部分:配置 Edge Microgate
- 第 2 部分:在 Apigee Edge 上创建实体
- 第 3 部分:运营 Edge Microgate
- 第 4 部分:安全边缘微网关
- 第 5 部分:添加 Spike Arrest 插件
- 第 6 部分:在 Apigee Edge 上查看 Analytics 数据
前提条件:安装 Edge Microgate
按照安装 Edge Microgate 中的说明操作。完成安装后,您就可以按照本教程中的步骤进行操作了。
第 1 部分:配置 Edge Microgate
在本部分中,您将使用命令行界面 (CLI) 命令将 Edge Microgate 配置为 与 Apigee Edge 通信。
- 如果您使用的是 Apigee Edge Cloud,请按照 Apigee Edge Cloud 配置步骤操作。
- 如果您使用的是 Apigee Private Cloud,请按照 Apigee Edge 私有云步骤操作。
Apigee Edge Cloud 配置步骤
如需将 Edge Microgate 与 Apigee Edge Cloud 搭配使用,请按以下步骤操作:
- 初始化 Edge Microdoor(你只需执行一次此步骤):
edgemicro init
- 名为
default.yaml
的配置文件位于主目录中名为.edgemicro
的子目录中。请立即检查以确保此文件存在:ls ~/.edgemicro default.yaml
注意 :在 Edge Microgate 文档中,我们引用了包含波浪线 (
~
) 的主目录,它是一个 UNIX 快捷方式。在 Windows 上,如果您运行的 shell 不支持波浪线,则需要在引用主目录的命令中用波形符代替相应的环境变量。例如:%USERPROFILE%/.edgemicro
。 - 所有 CLI 命令都有一个帮助函数。针对 edgemicro configure 命令输出帮助:
edgemicro configure -h
- 执行以下命令,以配置 Edge Microgate:
edgemicro configure -o [org] -e [env] -u [username]
其中:
org:
您的 Edge 组织名称(您必须是组织管理员)。env:
组织中的环境(例如测试或生产环境)。username:
与您的 Apigee 帐号相关联的电子邮件地址。
注意:configure 命令允许使用其他参数。如需查看完整列表,请参阅为 Apigee Edge Cloud 配置 Edge Microgate。
示例
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.9.1 current edgemicro version is 2.5.4 password: file doesn't exist, setting up Give me a minute or two... this can take a while... App edgemicro-auth deployed. checking org for existing KVM error checking for cert. Installing new cert. creating KVM 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/docs-test-config.yaml vault info: -----BEGIN CERTIFICATE----- MIICpDCCAYwCCQCQ2mJZJGbPPTANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDEwls b2NhbGhvc3QwHhcNMTcwOTA3MjA0ODA4WhcNMTcwOTA4MjA0ODA4WjAUMRIwEAYD VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDw yzmqi5CelqqtTr6IaFe1ssrMXEDnNtkBh95U6F5zHLsNQhJcyNUAO9um6FLMSqSd fTztXfWUZzDgmbb6sfbx/9cqpvQ8TIjxyIz8xGM9H4legRQmsCQoYGkLjpPE5ZOa wZrI5IaVm8LY6vbopPFwxgKOQ9bphx6k9Na055DmNyZAOTMD+4I0m/RdsrnZnYih 3DaFj1tXHKZI1jfAt/QOif5Nmk4+JckYwF+9HBysWUbbvj/gnBjVYF2Isb7q7oFD lPGhwFoIebMqHMWD8lG7+9RJDO9dDV6f1g1/9waIrq1D+MoVXos9VMstNrPp0cKF Ue+lAkct8tylH+2MosF7AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAJMRdcQh3ayy csVVT4TYwxV7MKWRfhDRz6X+MM9frB+Z7sI4+ZoZbXKOoZI2hSjmbdLpkNR/m9eJ +1Uk0JKmpSY7Q+1rRrvcHsWNysGf4z+zDJXYECTrtSnXKBXtb9SJ8JAfoZOQD0lA zmKuJjQMLTdiYMHOBR6ZWnaKaRvrQwGHcQrheJm4a90XgZF6jcRR8CPrBzkmsbCp IU/Ux3E17wDGYPxjJs5otyQG8rN/88RGyaSeXK8rjKr9D4KFGJeasXBKmTG2afAr yfBvS4h6s42FCOR/eLpmMllVoO9up71Fa3EtV+aK+FNNY9uMbgUHeLQE7z9nn06q PTmvExZLkLQ= -----END CERTIFICATE----- The following credentials are required to start edge micro key: 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb secret: 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47
Apigee 私有云配置步骤
如需将 Edge Microgate 与 Apigee Private Cloud 搭配使用,请按以下步骤操作:
- 初始化 Edge Microdoor(你只需执行一次此步骤):
edgemicro init
- 输出 edgemicro private configure 命令的帮助信息。通过这种方式,您可以为任何 Edge Microgate CLI 命令或命令选项输出帮助。
edgemicro private configure -h
- 执行以下命令:
它需要有关您 Apigee Edge 私有云帐号的标准信息:组织名称、环境名称、用户名(电子邮件地址)、密码、管理服务器 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 KVM error checking for cert. Installing new cert. creating KVM adding private_key adding public_key configuring host http://192.168.52.106:9001 for region dc-1 saving configuration information to: $HOME/.edgemicro/jdoe-test-config.yaml vault info: -----BEGIN CERTIFICATE----- MIICpDCCAYwCCQDpIvWlpaZJGDANBgkqhkiG9w0BAQFADAUMRIwEAYDVQQDEwls b2NhbGhvc3QwHhcNMTYwNDA3MTcxNTM5WhcNMTYwND4MTcxNTM5WjAUMRIwEAYD VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAUAA4IBDwAwggEKAoIBAQD3 OAQ+kf5FH0S0yuj05ITqUODuUJspBPberRMbqOZYHcFswhB0Yvg6JKWsKWBDP9o 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: a3f8f3dfe39158fc3c50b274f0af2234246e0d5f6ea4ad09389b645147151ba3 secret: 3e9904802fb3c0e8ca408128a11119cf13546d54dac10ace944c097a726a1263 edgemicro configuration complete!
验证安装
运行以下命令以验证安装情况。如果没有报告任何错误,则表明一切都设置正确,而且您将能够成功启动 Edge Microgate。
edgemicro verify -o [org] -e [env] -k [key] -s [secret]
其中:
org
是您的 Edge 组织名称(您必须是组织管理员)。env
是您组织中的环境(例如测试或生产环境)。key
是 configure 命令之前返回的键。secret
是 configure 命令之前返回的键。
示例
edgemicro verify -o docs -e test -k 93b01fd21d86331459ae52f624ae9aeb13eb94767ce40a4f621d172cdfb7e8e6 -s c8c755be97cf56c21f8b0156d7132afbd03625bbd85dc34ebfefae4f23fbcb3c
关于配置
到目前为止,所有配置都允许 Edge Microgate 自行引导到 Apigee Edge。引导成功后,Edge Microgate 从 Apigee Edge 中检索其他配置信息的载荷。
此配置信息有什么用途?如本教程的下一部分所述,在边缘微网关启动时,它需要从 Apigee Edge 接收特殊的 Edge Microgate 感知 API 代理列表。在本教程的下一部分,您将创建一个微网关感知代理。Edge Microgate 限制客户端只能调用这些 Microgate 感知 API 代理支持的 API。默认情况下,客户端需要为每个调用提供有效的安全令牌。如需详细了解这些代理,请参阅 Edge Microgate 概览中的“您需要了解的关于 Edge Microgate 感知代理的信息”。
作为 Edge 组织管理员,您需要了解 Edge Microgate 感知代理可以添加到边缘产品,就像添加其他代理一样。通过使用产品和开发者应用,您可以生成特定于客户端的安全令牌来控制对通过 Edge Microgate 调用的 API 的访问权限。同样,涉及的模式与在 Apigee Edge 上与任何 API 代理、产品和开发者应用相同。如果您想详细了解产品,请先参阅 Edge 文档中的什么是 API 产品?。
接下来,我们将介绍如何创建 Edge Microgate 感知代理,然后启动 Edge Microgate 并测试设置。
第 2 部分:在 Apigee Edge 上创建实体
在本部分中,您将在 Edge 中创建以下实体:
-
微网关感知代理 - 它是 Edge Microgate 在启动时可以发现的特殊代理。Microgate 感知型代理必须遵循以下命名惯例:名称必须使用
edgemicro_
。例如,edgemicro_hello
或edgemicro_userinfo
。当 Edge Microgate 启动时,它会从 Edge 检索您在启动 Edge Microgate 时指定的同一 Edge 组织和环境中的微网关感知代理列表。
对于每个微网关感知的代理,Edge Microgatway 会检索代理的目标网址及其基准路径。Microgate-aware 代理还提供了一种便捷的方式来将 Edge Microgate 生成的分析数据与 Edge 平台上的代理相关联。在 Microgate 处理 API 调用时,它会将分析数据异步推送到 Edge。与任何其他代理一样,Analytics 数据会显示在 Edge Analytics 界面中的微网关感知代理名称下。
- 产品、开发者和开发者应用 - Edge Microgate 使用产品、开发者和开发者应用来启用 OAuth2 访问令牌或 API 密钥安全性。当 Edge Microgate 启动时,会从您的 Apigee Edge 组织下载所有产品配置。它使用此信息验证通过 API 密钥或 OAuth2 访问令牌通过 Edge Microgate 进行的 API 调用。
1. 在 Edge 上创建 Edge Microgate-aware API 代理
- 在 Apigee Edge 上登录您的组织。
- 在侧边导航菜单中依次选择开发 > API 代理。
- 点击 + 代理。系统会调用“构建代理”向导。
- 在第一个向导页面中,选择反向代理(最常见)。
- 点击下一步。
- 在向导的“Details”(详细信息)页面中,进行如下配置。请务必按照如下所示填写向导中的内容:
- 代理名称:edgemicro_hello
- 代理基本路径:/hello
- 现有 API:http://mocktarget.apigee.net/
- 点击下一步。
- 在向导的“Security”(安全性)页面中,选择 Passthrough (none)(直通(无)。)
- 点击下一步。
- 在向导的“Virtual Hosts”页面中,接受默认设置。
- 点击下一步。
- 在向导的“Build”(构建)页面中,查看代理设置。确保已选择测试环境。
- 点击构建和部署。
2. 创建产品
- 在侧边导航菜单中选择发布 > API 产品。
- 点击 + API 产品。系统会显示“产品详情”页面。
- 填写“商品详情”页面,如下所示:
- 名称:EdgeMicroTestProduct
- 显示名称:EdgeMicroTestProduct
- 环境:测试和生产环境
- 访问权限:公开
- 密钥审批类型:自动
- 在“资源”中,点击 +API 代理
- 选择 edgemicro-auth
- 再次点击 +API 代理。
- 选择 edgemicro_hello
- 选择 + 自定义资源
- 输入 /**
- 再次选择 + 自定义资源。
- 输入 /
- 点击保存。
3. (可选)创建测试开发者
在本教程中,您可以在下一步中使用任何现有的开发者,创建一个开发者应用。但是,如果您愿意,可以立即创建一个测试开发者:
- 在侧边导航菜单中选择发布 > 开发者。
- 点击 + 开发者。
- 填写对话框以创建测试开发者。
4. 创建开发者应用
您将使用此应用中的客户端凭据,通过 Edge Microgate 进行安全的 API 调用:
- 在侧边导航菜单中选择发布 > 应用。
- 点击 + 应用。系统随即会显示“开发者应用详情”页面。
- 填写“开发者应用”页面,如下所示:
- 名称:EdgeMicroTestApp
- 显示名称:EdgeMicroTestApp
- 开发者:如果您创建了测试开发者,请选择该开发者。或者,您也可以使用本教程中现有的任何开发者。
-
凭据:
- 选择“到期:永不”。
- 点击 + 产品,然后选择 EdgeMicroTestProduct(您刚刚创建的产品)
- 点击保存。
- 您已返回“应用列表”页面。
- 选择您刚刚创建的应用 EdgeMicroTestApp。
- 点击使用方密钥和使用方密钥旁边的显示。
第 3 部分:运行 Edge Microgate
现在,您已经在边缘上配置了 Edge Microgate 和至少一个 Edge Microgate-aware 代理,是时候启动 Edge Microgate。Edge Microgate HTTP 服务器将在本地计算机上运行,您将直接向该服务器发出 API 调用。
1. 启动 Edge Microgate
使用 edgemicro start 命令启动 Edge Microgate。
- 确保您拥有在运行 edgemicro configure 命令时返回的密钥。该输出如下所示:
You need key and secret while starting edgemicro instance key: da4778e7c240a5d4585fc559eaba5083328828bc9f3a7f583e8b73e secret: 3aad7439708b4aeb38ee08e82189921ad00e6fc1ba8a8ae9f929ee2
- (可选)输出
edgemicro start
命令的帮助信息。
edgemicro start -h
- 如需启动 Edge Microgate,请执行如下命令:
edgemicro start -o [org] -e [env] -k [key] -s [secret]
其中:
org
是您的 Edge 组织名称(您必须是组织管理员)。env
是您组织中的环境(例如测试或生产环境)。key
是 configure 命令之前返回的键。secret
是 configure 命令之前返回的键。
示例
edgemicro start -o docs -e test -k 701e70e718ce6dc1880616b3c39177d64a88754d615c7a4e1f78b6181d000723 -s 05c14356e42d136b83dd135cf8a18531ff52d7299134677e30ef4e34ab0cc824
输出
start 命令会从 Apigee Edge(检索到终端窗口)中检索大量配置信息。在输出中,您将看到已发现的微网关感知代理和产品列表。在输出的末尾,您应该会看到如下所示的内容:
... current nodejs version is v6.9.1 current edgemicro version is 2.5.4 info: jwk_public_keys download from null returned 200 undefined info: jwt_public_key download from https://docs-test.apigee.net/edgemicro-auth/publicKey returned 200 OK info: products download from https://docs-test.apigee.net/edgemicro-auth/products returned 200 OK info: config download from https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test returned 200 OK PROCESS PID : 17991
- 检查微网关状态。在另一个终端窗口中,转到您启动 Edge Micro 的同一目录,然后输入以下命令:
edgemicro status current nodejs version is v6.9.1 current edgemicro version is 2.5.4 edgemicro is running with 8 workers
发生了什么情况?
Edge Microgate 配置信息的载荷从 Apigee Edge 下载,并在本地缓存。此类信息包括:
- 我们之前创建并存储在加密的键值对映射 (KVM) 中的公钥。
- 表示组织/环境中存在的所有 Edge Microgate 感知代理。所有这些代理都以 edgemicro_ 为前缀。
- 表示组织/环境中存在的所有 API 产品的表示法。
了解此信息后,Edge Microgate 就知道它允许处理哪些代理和代理路径。它使用产品信息来强制执行安全性(与 Apigee Edge 中任何 API 代理的工作方式相同,在前者中,开发者应用密钥与产品相关联)。我们很快将介绍保护 Edge Microgate 的步骤。
2. 测试 Edge Microgate
运行 Edge Microgate 时,您可以调用代理。当您启动 Edge Microgate 时,已从 Edge 下载 edgemicro_hello 代理的配置。请记住,代理基路径为 /hello。
为了测试 Edge Microgate,我们先从基本路径添加资源路径 /echo。请注意,基本路径后的所有内容(包括任何查询参数)都会直接传递到后端目标:
curl -i http://localhost:8000/hello/echo {"error":"missing_authorization","error_description":"Missing Authorization header"}
出现此错误是因为您没有随该请求发送一个有效的 API 密钥或访问令牌。默认情况下,Edge Microgate 需要在每次 API 调用时提供 API 密钥或访问令牌。在本教程的下一步中,我们将正确保护此 API,并向您展示如何获取有效的访问令牌并将其包含在请求中。
4. 停止 Edge Microgate
- 在一个单独的终端窗口中,
cd
至您启动 Edge Microgate 的同一目录。 - 输入停止命令:
edgemicro stop
第 4 部分:安全边缘 Microgate
您可以使用 API 密钥或访问令牌,保护通过 Edge Microgate 进行 API 调用。
使用 OAuth2 访问令牌来保护 API 调用
如果您想使用 OAuth2 访问令牌对 API 调用进行身份验证,请按以下步骤操作:
1. 获取所需的密钥
- 在 Edge 界面中,转到您之前创建的开发者应用。应用的名称是 EdgeMicroTestApp。
- 在“开发者应用”页面中,显示消费者密钥和消费者密钥,然后复制它们。 在下一步中需要获取这些值才能获取访问令牌。
2. 获取访问令牌
获取访问令牌的方法有两种。我们将向您介绍这两种方法。
使用 CLI 获取访问令牌
第一种方法使用方便,并遵循我们在整个教程中使用的模式。第二种方法通常更适合需要请求令牌的客户端应用开发者。实际令牌端点是在配置 Edge Microgate 时部署的 edgemicro-auth 代理中实现的。
- (可选)查看有关 token get 命令的帮助:
edgemicro token get -h
- 生成令牌,在 -i 和 -s 参数中替换您在 Apigee Edge 上创建的开发者应用中的消费者密钥和消费者密钥值:
edgemicro token get -o [org] -e [env] -i [consumer_key] -s [consumer_secret]
其中:
org
是您的 Edge 组织名称(您必须是组织管理员)。env
是您组织中的环境(例如测试或生产环境)。consumer_id
是您之前创建的开发者应用中的消费者 ID。consumer_secret
是您之前创建的开发者应用中的使用方密钥。
示例
edgemicro token get -o docs -e test -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
输出(示例)
current nodejs version is v6.9.1 { token: 'eyJ0eXAiOiJKV1QiLCJhbGciSUzI1NiJ9.eyJhcHBsaWNhdGl vbl9uYW1lIjoiNWNiMGY0tOWMzOC00YmJjLWIzNzEtZGMxZTQzOGYxZGMxI iwiY2xpZW50X2lkIjoiNVVdBWEdvSU9lbzYwYWV3OTRQN0c1TUFaRTNhSnA iLCJzY29wZXMiOltdLCJhcGlfcHJvjdF9saXN0IjpbIsVkZ2VNaWNyb1Rlc 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
是您之前创建的开发者应用中的使用方密钥。
输出 (示例)
无论您使用 edgemicro 令牌 CLI 命令还是使用 curl 调用端点,该命令都会返回可用于进行客户端调用的已签名访问令牌。示例如下:
MIICpDCCAYwCCQDpIvWlpaZJGDANBgkqhkiG9w0BAQFADAUMRIwEAYDVQQDEwls b2NhbGhvc3QwHhcNMTYwNDA3MTcxNTM5WhcNMTYwND4MTcxNTM5WjAUMRIwEAYD VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAUAA4IBDwAwggEKAoIBAQD3 OAQ+kf5FH0S0yuj05ITqUODuUJspBPberRMbqOZYHcFsnhB0Yvg6JKWxKWBDP9o Xl96dtgH7xPFRqIU0zI452jkMQ1fPz2mSaGwik241yfBku7olooXKRKTRKOUoXa 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 Microgate 中检查配置
- 打开文件
$HOME/.edgemicro/org-env-config.yaml.
如果您找不到此文件,请参阅 Edge Microgate 安装在哪里。 - 确保将这些 OAuth 插件属性设置为 false。默认为 false,但建议您仔细检查:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false
- 同样在
org-env-config.yaml
文件中,确保将 OAuth 插件添加到plugins:sequence
元素中,如下所示:plugins: dir: ../plugins sequence: - oauth
- 如果您对文件进行任何更改,请将更改重新加载到正在运行的 Edge Microgate 实例中。此命令可使用零停机时间重新配置 Edge Microgate:
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
其中:
org
是您的 Edge 组织名称(您必须是组织管理员)。env
是您组织中的环境(例如测试或生产环境)。key
是 configure 命令之前返回的键。secret
是 configure 命令之前返回的键。
示例
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
4. 安全地调用该 API
有了访问令牌后,您现在可以安全地进行 API 调用了。例如:
curl -i -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhcHBsaWNhdGlvbl 9uYW1lIjoiYmU2YmZjYjAtMWQ0Ni00Y2IxLWFiNGQtZTMxNzRlNTAyMDZkIiwiY2xpZW50X2lkIjoiOGxTTTVIRHdyM VhIT1ZwbmhURExhYW9FVG5STVpwWk0iLCJzY29wZXMiOltdLCJhcGlfcHJvZHVjdF9saXN0IjpbIk1pY3JvZ2F0ZXdh eVRlQcm9kdWN0Il0sImCI6MTQzNTM0NzY5MiwiZXhwIjoxNDM1MzQ5NDkxfQ.PL30Y6uK1W1f2ONPEsBDB_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 界面中,转到您之前创建的开发者应用。应用的名称是 EdgeMicroTestApp。
- 在“开发者应用”页面中,显示并复制使用方密钥。此值是 API 密钥。您将使用此密钥进行经过身份验证的 API 调用。
2. 在 Edge Microgate 中检查配置
- 打开文件
$HOME/.edgemicro/org-env-config.yaml.
如果您找不到此文件,请参阅 Edge Microgate 安装在哪里。 - 确保将这些 OAuth 插件属性设置为 false。默认情况下为 false,但您可以根据需要仔细检查:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false
- 同样在
org-env-config.yaml
文件中,确保将 OAuth 插件添加到plugins:sequence
元素中,如下所示:plugins: dir: ../plugins sequence: - oauth
- 如果您对文件进行任何更改,请将更改重新加载到正在运行的 Edge Microgate 实例中。此命令可使用零停机时间重新配置 Edge Microgate:
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
其中:
org
是您的 Edge 组织名称(您必须是组织管理员)。env
是您组织中的环境(例如测试或生产环境)。key
是 configure 命令之前返回的键。secret
是 configure 命令之前返回的键。
示例
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c30177d64a88754d615c74e1f78b6181d
3. 使用 API 密钥安全地调用 API
使用 x-api-key 标头调用该 API,如下所示。您从开发者应用复制的使用方密钥值就是 API 密钥。默认情况下,Edge Microgate 要求您在名为 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: XsU1R4zGXz2ERxd0ilYQ5szwuljr5bB'
现在,您已拥有一个功能强大且安全的 Edge Microgate。在本教程的下一部分,我们将介绍为 Edge Microgate 添加功能的插件。
第 5 部分:添加 Spike Arrest 插件
在本部分中,我们将向 Edge Microgate 实例添加一个名为“峰值限制”的速率限制功能。
什么是插件?
插件是向 Edge Microgate 添加功能的 Node.js 模块。插件模块遵循一致的模式,并存储在 Edge Microgate 已知的位置,让 microgate 能够自动发现和加载它们。您可以参阅使用插件,详细了解插件。
添加激增逮捕插件
高峰控制插件可防止流量激增。它会限制 Edge Microgate 实例处理的请求数量。
在 Edge Microgate 中,高峰控制以插件模块的形式实现。如需启用此功能,您需要将其添加到 Edge Microgate 配置文件。
- 如果您找不到此文件,请打开文件
$HOME/.edgemicro/org-env-config.yaml.
Edge Microgate 已安装在哪里。 - 添加以下元素。您可以将其添加到文件的任何位置。
spikearrest: timeUnit: minute allow: 10 buffersize: 0
- 将
spikearrest
添加到edgemicro:sequence
元素,如下所示。序列配置属性会告知 Edge Microgate 执行插件模块的顺序。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: - oauth - spikearrest
- 保存配置文件。
- 使用 reload 命令重新加载 Edge Microgate。您必须从启动 Edge Microgate 的目录运行此命令。
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
其中:
org
是您的 Edge 组织名称(您必须是组织管理员)。env
是您组织中的环境(例如测试或生产环境)。key
是 configure 命令之前返回的键。secret
是 configure 命令之前返回的键。
示例
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
- 尝试快速连续调用多次 API。第二次调用后,Edge Microgate 会返回以下错误:
{"message":"SpikeArrest engaged","status":503}
原因在于,高峰控制会清空在指定时间单位内可以发出的调用次数。因此,在这种情况下,每分钟调用 10 次,或每 6 秒调用一次。
额外赠金:添加配额插件
遵循与配置高峰控制相同的模式,您可以添加其他插件,例如配额插件。与高峰限制一样,每次安装 Microgate 时都会包含配额插件。配额用于指定允许应用在指定的时间间隔(分钟或小时)内向 API 提交的请求消息的数量。
第 6 部分:查看 Apigee Edge 的分析数据
现在,我们有了功能完善的 Edge Microgate 实例,我们来看看发生了什么! 默认情况下,Analytics 插件模块会添加到 Edge Micro。此模块以静默方式将分析数据从 Edge Micro 推送到 Apigee 边缘,在边缘边缘由 Analytics 系统使用。我们来看一下:
- 在 Apigee Edge 上登录您的组织。
- 选择分析 > 代理性能。
- 在“代理性能”信息中心内,选择 edgemicro_hello Proxy。
- 该图表会显示代理的流量模式的相关信息,例如总流量、平均响应时间、平均目标响应时间等。
您可以在 Edge 文档的 Google Analytics(分析)信息中心首页中详细了解 Edge Analytics 信息中心。如需详细了解插件,请参阅使用插件