0

截至目前,据我所知,使用 Azure 函数代理的唯一方法是重新路由现有的 api,即直接调用该 api。例如:

后端网址

https://gateway-api.com/api/getSomething

路线模板

/api

代理网址

https://gateway.azurewebsites.net/api

我想要的是让后端 URL 通过相对于主端点的任何端点。

实际上是这样的:

后端网址

https://gateway-api.com/*或者我什至试过这个https://gateway-api.com/{*restOfPath}

这样,遵循核心域 URL 的任何 api 仍将按预期工作。

这是上面示例的重写:

后端网址 2

https://gateway-api.com/*

路线模板 2

/*

代理 URL 2

https://gateway.azurewebsites.net/api/getSomething

当我这样做时,我无法让它工作,甚至无法到达调试器来记录任何内容。

这是可能的吗?如果不是,这是否是 Azure API 管理能够完成的事情?

4

1 回答 1

0

你能提供你的配置文件吗?这是我的:

代理.json:

{
  "$schema": "http://json.schemastore.org/proxies",
  "proxies": {
    "proxy1": {
      "matchCondition": {
        "methods": [ "GET" ],
        "route": "/{test}"
      },
      "backendUri": "http://localhost:7071/abc/Function1"
    }
  }
}

主机.json:

{
  "version": "2.0",
  "extensions": {
    "http": {
      "routePrefix": "abc"
    }
  },
  "logging": {
    "applicationInsights": {
      "samplingExcludedTypes": "Request",
      "samplingSettings": {
        "isEnabled": true
      }
    }
  }
}

这是我的函数的后端 url 和代理:

在此处输入图像描述

他们都工作正常。

如果你改变路由模板,我认为后端 url 不会有/api,除非你给/apiroutePrefix。

无论如何,请显示有关如何配置代理和路由模板的文件。

于 2020-05-29T06:27:29.357 回答