问题标签 [azure-functions-proxies]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
276 浏览

azure - 是否可以通过 Azure 函数代理或 api 管理通过与该 url 相关的后端 url 端点

截至目前,据我所知,使用 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 管理能够完成的事情?

0 投票
0 回答
133 浏览

azure - Azure Functions 代理似乎正在缓存响应

我们有一个有趣的行为,我们试图理解/解决方法。

我们在一个消费主机上运行了一个 Azure 函数,它上面只有代理。其中一个代理指向 Azure CDN 终结点,该终结点又指向 Azure 存储帐户。

我们不时更新存储帐户中的文件并清除 CDN 端点。

直接从 CDN 请求文件会返回(正确的)新文件数据。但是,函数代理 url 继续返回(不正确的)旧文件数据。

浏览器缓存被禁用/清除以及所有正常的东西。我们可以看到Last-Modified标题不同,因此很明显代理正在返回旧文件。

此外,向代理 URL 添加查询字符串 - 您喜欢的任何内容(我们使用 ?v=1)都会返回(正确的)新文件。删除查询字符串让我们再次回到旧文件。

这种行为是故意的吗?我已经阅读了人们希望将缓存添加到 Functions 的 UserVoice 请求,但由于可用替代方案的数量,它被明确拒绝。不过,我看不到这种行为的其他解释。

有谁知道如何禁用/击败代理响应缓存?

0 投票
0 回答
143 浏览

c# - 用于流式传输的 Azure 函数代理和混合连接

我有一个本地运行的 asp.net 核心应用程序,我想在 Internet 上公开它。我正在使用 Azure 函数代理和混合连接。除了在无限循环中使用 WriteAsync 流式传输数据的端点之外,一切都很好。

我在一个小应用程序中重现了这个问题,并尝试解释。

控制器如下:

PushStreamResult 是:

proxies.json 是:

使用 Azure 函数代理,当我调用测试端点时响应是正确的,当我调用数字时响应等待。在while循环中放置一个断点,程序正在运行。如果我强制退出标志为true,循环停止并且所有生成的数字立即到达。

在本地运行相同的程序,数据在while循环期间到达:这也是我对 Azure Function Proxy 所做的。

我的问题是:

  • 是否可以使用 Azure Function Proxy 来实现这种目标?
  • 如果上述答案是肯定的,那么我在做什么错误?

谢谢!

0 投票
1 回答
76 浏览

azure - 具有 request.headers 值的 Azure Functions 代理 backendUri

Azure Functions 代理支持在 backendUri 中使用 AppSettings,在 requestOverrides 中使用 request.headers。

问题:是否可以在 backendUri 中使用 request.header 值?