【问题标题】:Allow CORS requests Azure Function hosted in Kubernetes允许 CORS 请求托管在 Kubernetes 中的 Azure 函数
【发布时间】:2019-07-21 11:29:04
【问题描述】:

在本地开发人员或 Web 上的 Azure 中运行 Azure Functions 应用程序时,配置 CORS 有很多帮助。

但我们目前在我们自己的 Kubernetes 集群中托管这些函数,我尝试将环境变量“Host”设置为“{"CORS":"*"}',看起来就像 Azure 所做的那样, 但这似乎没有添加 CORS 标头。

这是因为如果环境变量不在本地或 Azure 中托管,它会忽略环境变量吗?在这种情况下,我是否需要使用func 在生产环境中运行,以便将允许的来源参数传递给命令行应用程序? (Dockerfile MS 给你使用 dotnetWebHost.dll - 我不确定在哪里可以找到该命令的选项)。

【问题讨论】:

  • CORS 请求在 Azure Functions 运行时之外处理。因此,仅适用于 Azure 环境,而不是托管在其他地方。

标签: azure kubernetes cors azure-functions


【解决方案1】:

我在another SO post 中为 Raspberry Pi 做出了类似的响应,这也适用于此处。 这是相同的答案供参考

CORS 基本上只是在您的响应中发送适当的标头。

在 Azure 上,这由平台本身负责,但由于您将直接从容器运行/访问函数运行时,您只需在响应对象上设置它们即可。

例如,如果您的函数使用 NodeJS/JavaScript,请使用 context.res 设置标头

context.res = {
  status: 200,
  headers: {
    'Access-Control-Allow-Credentials': 'true',
    'Access-Control-Allow-Origin': '*', // Or the origins you want to allow requests from
    'Content-Type': 'application/json'
  },
  body: {
    just: 'some data'
  }
};

此外,执行 CORS 的另一种方法是使用反向代理来为您添加标头,尤其是如果您的所有函数都相同,则可以使事情变得更容易。

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 2018-07-28
    • 1970-01-01
    • 2021-03-21
    • 2019-08-09
    • 2015-03-09
    • 2021-01-26
    • 2020-12-29
    • 2023-03-14
    相关资源
    最近更新 更多