在 Visual Studio Code 中调试 Azure API 管理策略

Azure API 管理中的策略提供强大的功能,可帮助 API 发布者解决身份验证、授权、限制、缓存和转换等跨领域问题。 策略是一组语句,在请求或 API 的响应时按顺序执行。

本文介绍如何使用适用于 Visual Studio Code 的 Azure API 管理扩展调试 API 管理策略。

先决条件

限制和局限

  • 此功能仅在 API 管理的“开发人员”层中可用。 每个 API 管理实例仅支持一个并发调试会话。

  • 此功能使用内置(服务级别)所有访问订阅(显示名称“内置所有访问订阅”)进行调试。 必须在此订阅中启用“允许跟踪”设置。

警告

  • 仅允许跟踪用于调试目的的订阅。 与未经授权的用户共享允许跟踪的订阅密钥,可能会导致跟踪日志中包含的敏感信息泄露,例如密钥、访问令牌、密码、内部主机名和 IP 地址。
  • 在订阅上启用跟踪 1 小时后,API 管理会自动禁用跟踪。

启动调试会话

  1. 启动 Visual Studio Code
  2. 导航到 Azure 扩展下的 API 管理扩展
  3. 查找要调试的 API 管理实例
  4. 查找要调试的 API 和操作
  5. 右键单击操作并选择“启动策略调试”

此时,扩展将尝试与 API 管理网关启动并建立调试会话。

initiate debugging

发送测试请求

建立调试会话后,扩展将打开一个新的编辑器,让我们可以利用 REST Client 扩展创建并向该操作发送测试 HTTP 请求。

你会注意到,“Ocp-Apim-Debug”标头已经添加到请求中。 此标头是必需的,并且此值必须设置为服务级别、完全访问订阅密钥,才能触发 API 管理网关中的调试功能。

根据测试场景,在编辑器中修改 HTTP 请求。 然后单击“发送请求”,将测试请求发送到 API 管理网关。

send a test request

调试策略

发送测试 HTTP 请求后,扩展将打开显示该操作的有效策略的调试窗口,并在第一个有效策略处停止。

debug policies

若要遵循策略管道,可以单步执行各个策略,也可以在一个策略上设置一个断点并直接单步执行该策略。

在“变量”面板中,可以检查系统创建的和用户创建的变量的值。 在“断点”面板中,可以看到已设置的所有断点的列表。 在“调用堆栈”面板中,可以看到当前有效的策略范围。

如果在策略执行期间发生错误,你将在发生错误的策略处看到错误的详细信息。

exceptions

提示

请记住,完成后单击“停止”按钮退出调试会话。

后续步骤