设置和配置 Edge Microgate

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

Edge Microgateway v. 2.3.x

概览

本教程将为您介绍启动 Edge Microgateway 实例所需的步骤 运行状态

完成此处的步骤后,您将拥有全面配置且正常运行的 Edge Microgateway 处理 API 请求的安装。您将通过进行安全的 API 调用来测试设置 通过 Edge Microgateway 连接到后端目标。你还将学习如何添加尖峰逮捕 Microgateway 插件。

本指南分为以下部分:

前提条件:安装 Edge Microgateway

请按照安装 Edge 中的说明操作 Microgateway。完成安装后,您就可以按照此 教程。

完成安装后,继续进行下一部分“第 1 部分:配置 Edge Microgateway”。

第 1 部分:配置 Edge Microgateway

在本部分中,您将使用命令行界面 (CLI) 命令配置 Edge Microgateway 与 Apigee Edge 进行通信如果您使用的是 Apigee Edge Cloud,请按照 Apigee Edge Cloud 配置步骤。如果您已开启 Apigee 私有云,请按照 Apigee Edge Private 相关步骤进行操作 Cloud

Apigee Edge Cloud 配置步骤

请按照以下步骤将 Edge Microgateway 与 Apigee Edge Cloud 搭配使用:

  1. 如果您之前没有执行此操作,请初始化 Edge Microgateway(您只需执行此操作) 执行一次步骤):
    edgemicro init
  2. (可选)输出 edgemicro configure 命令的帮助信息:
    edgemicro configure -h
  3. 执行以下命令以配置 Edge Microgateway:
    edgemicro configure -o [org] -e [env] -u [username] 

    其中:

    • org 是您的 Edge 组织名称(您必须是 组织管理员)。
    • env 是贵组织中的一种环境(例如测试或 prod)。
    • username 是与您的 Google 账号关联的电子邮件地址 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 私有云配置步骤

请按照以下步骤将 Edge Microgateway 与 Apigee 私有云搭配使用:

  1. 输出 edgemicro private 的帮助信息 configure 命令中。您可以通过这种方式为任何 Edge Microgateway CLI 输出帮助内容 命令或命令选项
    edgemicro private configure -h
  2. 执行以下命令: 您需要提供有关 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是贵组织中的一种环境(例如测试或 prod)。
    • runtime_url 是您的私有 Cloud 实例。
    • mgmt_url 是以下项目的管理服务器的网址: 私有云实例。
    • username 是与您的 Google 账号关联的电子邮件地址 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 是贵组织中的一种环境(例如测试或 prod)。
  • key 是配置之前返回的键 命令。
  • secret 是配置之前返回的键 命令。

示例

edgemicro verify -o docs -e test -k 93b01fd21d86331459ae52f664ae9aeb13eb94767ce40a4f621d172cdfb7e8e6 -s c8c755be97cf56c21f8b0556d7132afbd03625bbd85dc34ebfefae4f23fbcb3c

关于配置

到目前为止完成的所有配置都允许 Edge Microgateway 自行引导到 Apigee 中 Edge。引导成功后,Edge Microgateway 会检索 配置信息。

此配置信息的用途是什么?我们将在本课程的下一部分 Edge Microgateway 启动时,需要收到一系列特殊的 Edge 消息, 来自 Apigee Edge 的 Microgateway 感知 API 代理。在本教程的下一部分中,您将 创建支持 Microgateway 的代理。Edge Microgateway 将客户端限制为仅调用 API 采用 Microgateway 感知型 API 代理时,客户端需要(默认情况下) 提供有效的安全令牌。要详细了解这些代理,请参阅 请参阅 Edge 概览 Microgateway

作为 Edge 组织管理员,您一定想知道 添加到 Edge 产品中,就像其他任何代理一样。通过使用产品和开发者的方式 应用,您可以生成客户端特定的安全令牌来控制对通过 Edge Microgateway。同样,其中涉及的模式与使用任何 API 代理的操作完全相同, 和开发者应用等。如果您想详细了解产品,不妨先学习 Edge 中的什么是 API 产品? 文档。

接下来,我们将介绍如何创建支持 Edge Microgateway 的代理,之后, 启动 Edge Microgateway 并测试设置。

第 2 部分:创建实体 在 Apigee Edge 上

在本部分中,您将在 Edge 上创建以下实体:

  • microgateway 感知型代理 - 这是一个特殊的 Edge Microgateway 在启动时可以发现的代理。Microgateway 感知代理具有 命名惯例:名称必须是 尽在 edgemicro_。对于 示例 edgemicro_helloedgemicro_userinfo。 Edge Microgateway 启动时,会从 Edge 检索 microgateway 感知型代理列表。 您在启动 Edge 时指定的 Edge 组织和环境 Microgateway。

    对于每个支持 microgateway 的代理,Edge Microgatway 会检索代理的目标网址,然后 其基路径。Microgateway 感知型代理还提供了一种将分析结果相关联的便捷方式 由 Edge Microgateway 在 Edge 平台上使用代理生成的数据。作为 Microgateway 处理 API 调用、将分析数据异步推送到 Edge。Google Analytics 数据 在 Edge Analytics 界面中,在支持微网关的代理名称下显示,就像在其他任何情况下一样 代理。
  • 一款产品、开发者和开发者应用 - Edge Microgateway 使用 产品、开发者和开发者应用,以启用 OAuth2 访问令牌或 API 密钥安全性。 Edge Microgateway 启动时,会从 Apigee 中下载所有产品配置 边缘组织。它会使用此信息来验证通过 Edge Microgateway 进行的 API 调用 API 密钥或 OAuth2 访问令牌。

了解详情:另请参阅“您需要了解的 Edge Microgateway 感知功能” 指标”请参阅 Edge 概览 Microgateway

1. 创建 Edge 上的 Edge Microgateway 感知 API 代理

  1. 在 Apigee Edge 上登录您的组织。
  2. 点击切换到传统版即可转到 Edge 传统版界面。
  3. 选择 API >API 代理
  4. 在“API 代理”页面中,点击 + API 代理
  5. 在“构建代理”向导中,选择反向代理(最常见) (Reverse proxy (most common))。
  6. 点击下一步
  7. 在向导的“Details”(详细信息)页面中,按如下方式进行配置。请确保在向导中填写 完全如下所示:
    • 代理名称:edgemicro_hello
    • 代理基本路径:/hello
    • 现有 API:http://mocktarget.apigee.net/
  8. 点击下一步
  9. 在向导的“Security”(安全)页面中,选择 Pass through (none)(通过(无))。
  10. 点击下一步
  11. 在向导的 Virtual Hosts 页面中,接受默认值。
  12. 点击下一步
  13. 在向导的“Build”(构建)页面中,查看您的代理设置。请确保 选择 test 环境。
  14. 点击 Build and Deploy

2. 创建产品

创建包含两个代理的产品:

  • 您的 microgateway 感知代理:edgemicro_hello
  • Edge 安装的身份验证代理 Microgateway:edgemicro-auth
  1. 在 Edge 界面(传统版)中,依次点击发布 >商品
  2. 在“商品”页面中,点击 + 商品。填写商品详情 页面,如下所示: <ph type="x-smartling-placeholder">
      </ph>
    • 名称:EdgeMicroTestProduct
    • 显示名称:EdgeMicroTestProduct
    • 环境:测试和生产
    • 访问权限:公开
    • 密钥审批类型:自动
    • 资源: <ph type="x-smartling-placeholder">
        </ph>
      • API 代理:选择 edgemicro_hello
      • 修订版本:1
      • 资源路径:/**
  3. 点击 Import Resource
  4. 在“资源”中,点击 +API 代理
  5. 选择 edgemicro-auth
  6. 点击保存

3. (可选)创建 测试开发者

在本教程中,您可以在下一步中与任何现有开发者合作, 创建开发者应用但如果您愿意,现在就创建一个测试开发者:

  1. 点击发布 >开发者
  2. 在“产品”页面中,点击 + 开发者
  3. 填写对话框中,创建测试开发者。

4. 创建开发者应用

您将使用此应用中的客户端凭据通过 Edge Microgateway:

  1. 点击发布 >开发者应用
  2. 在“开发者应用”页面中,点击 + 开发者应用
  3. 填写“开发者应用”页面,如下所示: <ph type="x-smartling-placeholder">
      </ph>
    1. 名称:EdgeMicroTestApp
    2. 显示名:EdgeMicroTestApp
    3. 开发者:如果您创建了测试开发者,请选择相应开发者。或者,您 可以使用任何现有开发者来学习本教程
    4. 凭据: <ph type="x-smartling-placeholder">
        </ph>
      1. 选择“到期设置”:永不
      2. 点击 + 产品, 选择 EdgeMicroTestProduct(您刚刚刚刚 创建)
  4. 点击保存
  5. 您会返回到开发者应用列表页面。
  6. 选择您刚刚创建的应用 EdgeMicroTestApp
  7. 点击 Consumer(使用方)旁边的显示(显示) 密钥和使用方密钥

第 3 部分:运维 Edge Microgateway

现在,您已经配置了 Edge Microgateway 和至少一个 Edge Microgateway 感知型 Edge Microgateway 那么可以启动 Edge Microgateway 了。Edge Microgateway HTTP 服务器将运行 并且您需要直接向该服务器发出 API 调用

1. 启动 Edge Microgateway

使用 edgemicro start 命令启动 Edge Microgateway。

  1. 请确保您拥有之前在运行应用时返回的键 edgemicro configure 命令。输出类似于 :
    You need key and secret while starting edgemicro instance
    
    key: da4778e7c240a5d4585fc559eaba5083328828ac9f3a7f583e8b73e
    secret: 3aad7439708b4aeb38ee08e87189921ad00e6fc1ba8a8ae9f929ee2
  2. (可选)输出 edgemicro start 命令的帮助信息。
    edgemicro start -h
  3. 如需启动 Edge Microgateway,请执行以下命令:
    edgemicro start -o [org] -e [env] -k [key] -s [secret]

    其中:

    • org 是您的 Edge 组织名称(您必须是 组织管理员)。
    • env 是贵组织中的一种环境(例如测试或 prod)。
    • key 是配置之前返回的键 命令。
    • secret 是 configure 命令中

    示例

    edgemicro start -o docs -e test -k 701e70e718ce6dc1880616b3c39177d64a88754d615c7a4e1f78b6181d000723 -s 05c14356e42d136b83dd135cf8a18531ff52d7299134677e30ef4e34ab0cc824

    输出

    start 命令会从 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 配置信息。此类信息包括:

  • 我们之前在 Apigee 保险柜中创建和存储的公钥。
  • 以 JSON 表示 组织/环境。这些代理均以 前缀 edgemicro_
  • 此 JSON 中以 JSON 表示 组织/环境。

通过这些信息,Edge Microgateway 了解允许哪些代理和代理路径访问 过程。它使用产品信息来加强安全性(与任何 API 采用完全相同的方式) 代理在 Apigee Edge(其中开发者应用密钥与产品相关联)上执行的操作。我们将前往 逐步介绍确保 Edge Microgateway 的安全。

2. 测试 Edge Microgateway

在 Edge Microgateway 运行后,您可以调用代理。此配置 edgemicro_hello 代理是在您启动容器时从 Edge 下载的 Edge Microgateway。请注意,代理基本路径为 /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

  1. 在单独的终端窗口中,cd改为 目录中
  2. 输入停止命令:
    edgemicro stop

第 4 部分:安全边缘 Microgateway

您可以使用 API 密钥或访问权限来保护通过 Edge Microgateway 进行的 API 调用 令牌。

借助以下工具保护 API 调用: OAuth2 访问令牌

如果要使用 OAuth2 访问令牌对 API 调用进行身份验证,请按以下步骤操作:

1. 获取所需的密钥

  1. 在 Edge 界面中,按照说明前往您之前创建的开发者应用 第 2 篇:在 Apigee Edge 上创建实体中介绍的内容。应用的名称是 EdgeMicroTestApp。
  2. 在“开发者应用”页面中,显示使用方密钥和使用方密钥,然后复制 。在下一个 操作。

2. 获取访问令牌

获取访问令牌的方法有两种。我们将向您介绍这两种方法。

使用 CLI 获取访问令牌

第一种方法很方便,并遵循我们曾用过的模式 完整说明。第二种方法通常更实用 。实际的令牌端点在 配置 Edge 时部署的 edgemicro-auth 代理 Microgateway。

  1. (可选)查看 token get 命令的帮助:
    edgemicro token get -h
  2. 生成令牌,用 您在 Apigee Edge 上创建的开发者应用 -i-s 参数:
    edgemicro token get -o [org] -e [env] -i [consumer_key] -s [consumer_secret]

    其中:

    • org 是您的 Edge 组织名称(您必须是 组织管理员)。
    • env 是贵组织中的一种环境(例如测试或 prod)。
    • consumer_id 是开发者应用中的消费者 ID 创建 Deployment 清单
    • 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 示例。直接替换 您的组织和环境名称,并将 Consumer Key:Consumer(使用方密钥:使用方)以英文冒号分隔 基本身份验证标头中的 Secret 值:

curl -i -X POST --user [client_id]:[client_secret] "http://[org]-[env].apigee.net/edgemicro-auth/token" -d '{"grant_type": "client_credentials"}' -H "Content-Type: application/json"

其中:

  • org 是您的 Edge 组织名称(您必须是组织) 管理员)。
  • env 是贵组织中的一种环境(例如测试或 prod)。
  • client_id 是您在开发者应用中的消费者 ID 创建 Deployment
  • client_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 中的配置

  1. 打开文件 ~/.edgemicro/org-env-config.yaml. 另请参阅“Edge 在哪里” Microgateway 已安装”参见安装 Edge Microgate 网关。
  2. 确保以下 OAuth 插件属性设置为 false。它们是 false,但最好仔细检查一下:
    oauth:
       allowNoAuthorization: false
       allowInvalidAuthorization: false
  3. 同样在 org-env-config.yaml 文件中,请确保 OAuth 插件 添加到 plugins:sequence 元素中,如下所示:
    plugins:
       dir: ../plugins
       sequence:
       - oauth
  4. 如果您对文件进行任何更改,请将更改重新加载到 运行 Edge Microgateway 实例。此命令会将 Edge Microgateway 重新配置为 零停机时间:
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]

    其中:

    • org 是您的 Edge 组织名称(您必须是 组织管理员)。
    • env 是贵组织中的一种环境(例如测试或 prod)。
    • key 是配置之前返回的键 命令。
    • secret 是 configure 命令中

    示例

    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 密钥

  1. 在 Edge 界面中,按照说明前往您之前创建的开发者应用 第 2 篇:在 Apigee Edge 上创建实体中介绍的内容。应用的名称是 EdgeMicroTestApp。
  2. 在“开发者应用”页面中,显示并复制使用方密钥。此值 API 密钥。您将使用此密钥来进行经过身份验证的 API 调用。

2. 检查 Edge Microgateway 中的配置

  1. 打开文件 ~/.edgemicro/org-env-config.yaml. 另请参阅“Edge 在哪里” Microgateway 已安装”参见安装 Edge Microgateway
  2. 确保以下 OAuth 插件属性设置为 false。它们是 false,但最好仔细检查一下:
    oauth:
       allowNoAuthorization: false
       allowInvalidAuthorization: false
  3. 同样在 org-env-config.yaml 文件中,请确保 OAuth 插件 添加到 plugins:sequence 元素中,如下所示:
    plugins:
       dir: ../plugins
       sequence:
       - oauth
        
  4. 如果您对文件进行任何更改,请将更改重新加载到 运行 Edge Microgateway 实例。此命令会将 Edge Microgateway 重新配置为 零停机时间:
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]

    其中:

    • org 是您的 Edge 组织名称(您必须是 组织管理员)。
    • env 是贵组织中的一种环境(例如测试或 prod)。
    • key 是配置之前返回的键 命令。
    • secret 是 configure 命令中

    示例

    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 部分:添加尖刺扣杀 插件

在本部分中,我们将向您的 Edge 实例添加一项名为“高峰控制”的速率限制功能 Microgateway。

什么是插件?

插件是一个 Node.js 模块,可以为 Edge Microgateway 添加功能。插件模块 遵循一致的模式并存储在 Edge Microgateway 已知的位置,使 Microgateway 可以自动发现和加载这些网络。如需详细了解插件,请参阅 使用插件

添加尖峰逮捕 插件

Spike Arrest 可防范交通高峰。它会限制 Edge Microgateway 实例。

在 Edge Microgateway,高峰控制是以插件模块的形式实现的。要启用它,您需要 以将其添加到 Edge Microgateway 配置文件中。

  1. 打开文件 ~/.edgemicro/org-env-config.yaml. 另请参阅“Edge 在哪里” Microgateway 已安装”参见安装 Edge Microgate 网关。
  2. 添加以下元素。您可以将此文件添加到文件中的任意位置。
       spikearrest:
          timeUnit: minute   
          allow: 10   
          buffersize: 0   
  3. 将“spikearrest”添加到 edgemicro: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 
  4. 保存配置文件。
  5. 使用以下命令重新加载 Edge Microgateway reload 命令。您必须从 您启动 Edge Microgateway 的目录。
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]

    其中:

    • org 是您的 Edge 组织名称(您必须是 组织管理员)。
    • env 是贵组织中的一种环境(例如测试或 prod)。
    • key 是配置之前返回的键 命令。
    • secret 是 configure 命令中

    示例

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
  6. 快速连续地多次调用该 API。第二次通话后,Edge Microgateway 会返回以下错误:
    {"message":"SpikeArrest engaged","status":503}

原因在于,高峰时段的扣留会平稳通过 指定的时间单位。在此示例中,您可以在一分钟内拨打 10 次调用,或每 6 次调用 1 次 。

如需了解更多信息,请参阅“高峰逮捕是如何运作的?”请参阅使用插件一文。

额外好处:添加 配额插件

您可以按照用于配置高峰控制的相同模式添加其他插件,例如 配额插件。与高峰控制一样,每个 Edge Microgateway 都包含配额插件 安装。配额指定允许应用提交的请求消息数量 在指定的时间间隔(分钟或小时)内向 API 发送事件。

如需了解配额的工作原理,请参阅“使用配额插件”请参阅使用插件

第 6 部分:查看 Apigee Edge 上的分析功能

我们现在已经拥有了一个功能齐全的 Edge Microgateway 实例,我们来看看它做了什么! 默认情况下,分析插件模块会添加到 Edge Micro。此模块以静默方式 从 Edge Micro 到 Apigee Edge,均由 Edge Analytics 系统使用。 我们来看看:

  1. 在 Apigee Edge 上登录您的组织。
  2. 选择数据分析 >代理性能
  3. 在代理性能信息中心内,选择 edgemicro_hello 代理
  4. 该图表会显示有关代理流量模式的信息,例如总流量和 流量、平均响应时间、平均目标响应时间等。

如需详细了解 Edge Analytics 信息中心,请访问 Analytics 信息中心首页 Edge 文档。如需详细了解插件,请参阅使用插件