设置和配置 Edge Microgate

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

Edge Microgateway v. 3.3.x

概览

完成本设置指南中的步骤后,您将获得一个全面配置且正常运行的 Edge 安装了能够处理 API 请求的 Microgateway。您将测试设置 通过 Edge Microgateway 向后端目标进行安全的 API 调用。您还将学习如何添加 Microgateway。

本指南分为以下部分:

前提条件:安装 Edge Microgateway

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

第 1 部分:配置 Edge Microgateway

在本部分中,您将使用命令行界面 (CLI) 命令配置 Edge Microgateway 发送至 与 Apigee Edge 通信

Apigee Edge Cloud 配置步骤

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

  1. 初始化 Edge Microgateway(您只需执行一次此步骤):
    edgemicro init
    
  2. 名为 default.yaml 的配置文件已放入您的住宅 位于名为 .edgemicro 的子目录中。请立即检查以确保此文件 存在:
    ls ~/.edgemicro
    default.yaml
    

    注意 :在 Edge Microgateway 文档中,我们引用主目录。 替换为波浪号 (~),后者是 UNIX 快捷键。如果您使用的是 Windows 如果您在运行不支持波浪号的 shell,则需要将相应的 引用主目录的命令中波浪号的环境变量。对于 示例:%USERPROFILE%/.edgemicro

  3. 所有 CLI 命令都有一个帮助函数。打印 edgemicro 帮助 configure 命令:
    edgemicro configure -h
    
  4. 执行以下命令以配置 Edge Microgateway:
    edgemicro configure -o [org] -e [env] -u [username] 
    

    其中:

    • org: 您的 Edge 组织名称(您必须是组织) 管理员)。
    • env: 贵组织的环境(例如测试或 prod)。
    • username: 与您的 Google Ads 账号 Apigee 账号。

      注意:configure 命令允许使用其他参数。有关 请参阅为 Apigee Edge Cloud 配置 Edge Microgateway

示例

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 v12.5.0
current edgemicro version is 3.1.0
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 Microgateway 与 Apigee 私有云搭配使用:

  1. 初始化 Edge Microgateway(您只需执行一次此步骤):
    edgemicro init
    
  2. 输出 edgemicro private configure 命令的帮助信息。您 可以通过这种方式针对任何 Edge Microgateway CLI 命令或命令选项输出帮助信息。
    edgemicro private configure -h
    
  3. 执行以下命令: 您需要提供有关 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 是您的私有云的运行时网址 实例。
    • 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 Microgateway。

edgemicro verify -o [org] -e [env] -k [key] -s [secret]

其中:

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

示例

edgemicro verify -o docs -e test -k 93b01fd21d86331459ae52f624ae9aeb13eb94767ce40a4f621d172cdfb7e8e6 -s c8c755be97cf56c21f8b0156d7132afbd03625bbd85dc34ebfefae4f23fbcb3c

关于配置

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

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

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

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

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

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

  • microgateway-aware 代理 - 这是一个特殊代理,Edge Microgateway 可以在 启动。Microgateway 感知型代理有一个命名惯例,您必须遵循:名称 必须以 edgemicro_ 开头。例如 edgemicro_helloedgemicro_userinfo。Edge Microgateway 启动时,它会检索 来自 Edge 的同一 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 下载所有产品配置 组织。它使用这些信息来验证通过 Edge Microgateway 进行的 API 调用, API 密钥或 OAuth2 访问令牌。

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

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

2. 创建 API 产品

<ph type="x-smartling-placeholder">
  1. 在侧边导航菜单中选择发布 > API 产品
  2. 点击 + API Product(+ API 产品)。
  3. 输入下表中显示的商品详情:
    字段 说明
    名称 EdgeMicroTestProduct
    显示名称 Edge Microgatway 测试产品
    环境 测试
    访问 公开
    密钥审批类型 自动
  4. 在“API 资源”部分中,添加您刚刚创建的 API 代理和 edgemicro-auth 代理: <ph type="x-smartling-placeholder">
      </ph>
    • edgemicro_hello
    • edgemicro-auth
  5. 点击保存

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. 点击 + Product,然后选择 EdgeMicroTestProduct (您刚刚创建的商品)
  4. 点击保存
  5. 您会返回到“应用”列表页面。
  6. 选择您刚刚创建的应用 EdgeMicroTestApp
  7. 点击使用方密钥使用方旁边的显示 Secret。

第 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: da4778e7c240a5d4585fc559eaba5083328828bc9f3a7f583e8b73e
    secret: 3aad7439708b4aeb38ee08e82189921ad00e6fc1ba8a8ae9f929ee2
    
  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 是配置之前返回的键 命令。

    示例

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

    输出

    start 命令会从 Apigee Edge( 滚动到终端窗口)。在输出中,您会看到可感知微网关的列表 指标和产品。在输出内容的最后,您应该会看到一些内容 如下所示:

    ...
    
    current nodejs version is v12.5.0
    current edgemicro version is 3.1.0
    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
    
  4. 检查微网关状态。在另一个终端窗口中,使用 cd 命令转到同一目录 您启动了 Edge Micro,然后输入以下命令:
    edgemicro status
    current nodejs version is v12.5.0
    current edgemicro version is 3.1.0
    edgemicro is running with 8 workers
    

发生了什么情况?

Edge 的载荷 Microgateway 配置信息从 Apigee Edge 下载并缓存在本地。此类信息包括:

  • 我们之前创建并存储在加密键值对映射 (KVM) 中的公钥。
  • 集群中存在的所有 Edge Microgateway 感知代理的表示 组织/环境。这些代理都是以 edgemicro_
  • 此代表 组织/环境。

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

2. 测试 Edge Microgateway

在 Edge Microgateway 运行后,您可以调用代理。该 启动 Edge 时从 Edge 下载了 edgemicro_hello 代理 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 到其中的同一目录 您启动了 Edge Microgateway。
  2. 输入停止命令:
    edgemicro stop
    

第 4 部分:安全边缘 Microgateway

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

使用 OAuth2 访问令牌保护 API 调用

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

1. 获取所需的密钥

  1. 在 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 是 Developer 中的使用方密钥 您之前创建的应用。

    示例

    edgemicro token get -o docs -e test -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
    

    输出(示例)

    current nodejs version is v12.5.0
    { 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 示例。只需将贵组织的名称和环境名称替换为 并将 Consumer Key:Consumer Secret 值(以英文冒号分隔)传递给基本 身份验证标头:

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 是贵组织中的一种环境(例如测试或 prod)。
  • client_id 是您创建的开发者应用中的消费者 ID 。
  • client_secret 是您开发应用的使用方密钥 创建 Deployment

输出(示例)

无论您使用的是 edgemicro token CLI 命令还是调用了 端点,则会返回可用于进行客户端调用的已签名访问令牌。 示例如下:

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 Microgateway 中的配置

  1. 打开 $HOME/.edgemicro/org-env-config.yaml 文件。请参阅 如果找不到此文件,应将 Edge Microgateway 安装到哪里。
  2. 确保以下 OAuth 插件属性设置为 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 是配置之前返回的键 命令。

    示例

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

  1. 在 Edge 界面中,前往您之前创建的开发者应用。应用的名称 是 EdgeMicroTestApp。
  2. 在“开发者应用”页面中,显示并复制使用方密钥。这个值是 API 键。您将使用此密钥来进行经过身份验证的 API 调用。

2. 检查 Edge Microgateway 中的配置

  1. 打开文件$HOME/.edgemicro/org-env-config.yaml. 查看位置 已安装 Edge Microgateway
  2. 确保以下 OAuth 插件属性设置为 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 是配置之前返回的键 命令。

    示例

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c30177d64a88754d615c74e1f78b6181d
    

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: XsU1R4zGXz2ERxd0ilYQ5szwuljr5bB'

您现在已经拥有了一个功能齐全且安全的 Edge Microgateway。在本课程的下一部分 我们来看看可为 Edge Microgateway 添加功能的插件。

第 5 部分:添加尖刺扣杀 插件

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

什么是插件?

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

添加高峰控制插件

一个峰值 arrest 插件可以防范流量高峰。它会限制系统处理的请求数 由 Edge Microgateway 实例访问。

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

  1. 打开文件$HOME/.edgemicro/org-env-config.yaml. 已安装 Edge Microgateway
  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:
        - oauth
        - spikearrest
    
  4. 保存配置文件。
  5. 使用 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 都会附带配额插件。答 配额指定允许应用程序通过 指定时间间隔(分钟或小时)。

第 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 文档。如需详细了解插件,请参阅使用插件