首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure函数:如何通过自动化设置CORS?

Azure函数:如何通过自动化设置CORS?
EN

Stack Overflow用户
提问于 2017-10-25 00:09:06
回答 3查看 3.8K关注 0票数 6

我有一个蓝色的功能应用程序,我想要建立以可重复(自动)的方式,以便我可以复制它在不同的环境/资源组。我可以通过蔚蓝的cli创建函数应用程序,但我也需要配置CORS选项,这样我就可以在浏览器中调用它。

在蔚蓝门户网站ui中,在“平台特性”选项卡(https://learn.microsoft.com/en-us/azure/azure-functions/functions-how-to-use-azure-function-app-settings#cors)中,我已经找到了在哪里这样做,但是我找不到通过azure cli修改该设置的任何地方,也找不到我在更改应用程序中的函数时设置的VSTS部署任务。

您甚至可以通过local.settisg.json为本地开发指定CORS设置,但这只适用于本地(https://learn.microsoft.com/en-us/azure/azure-functions/functions-run-local#local-settings)。如果我通过蓝色函数工具cli部署应用程序,我应该可以在部署时指定--publish-local-settings标志,但我并不是那样部署的。

似乎必须有一种方法来修改CORS配置而不使用web,难道我没有找到它吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-10-25 00:24:51

若要以编程方式设置CORS设置,请使用ARM。

下面是一个您可以遵循的示例:https://msftplayground.com/2016/08/setting-api-definition-url-cors-value-arm/

票数 6
EN

Stack Overflow用户

发布于 2017-10-27 00:21:34

Fabio的回答是正确的,Azure资源管理器模板也适用于此。因为他链接到的示例是关于逻辑应用程序而不是azure函数的,所以正确的模板需要进行一些更改,我想添加一些细节,以帮助其他人更快地实现这个目标。

为了制作模板,我最终从我手工创建的函数应用程序下载了自动化模板,然后删除了一些东西,直到达到我认为的最低限度。我用的是:

代码语言:javascript
复制
{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "function_app_name": {
      "defaultValue": "my-function-app",
      "type": "string"
    }
  },
  "variables": {},
  "resources": [
    {
      "comments": "CORS allow origins *.",
      "type": "Microsoft.Web/sites/config",
      "name": "[concat(parameters('function_app_name'), '/web')]",
      "apiVersion": "2016-08-01",
      "properties": {
        "cors": {
          "allowedOrigins": [
            "*"
          ]
        }
      },
      "dependsOn": []
    }
  ]
}

我还有一个参数文件,这个文件如下所示:

代码语言:javascript
复制
{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "function_app_name": {
            "value": null
        }
    }
}

然后,在我的发布定义中有一个Azure Resource Group Deployment步骤,根据部署到的环境,部署这个步骤并替换所需的函数应用程序名。

票数 9
EN

Stack Overflow用户

发布于 2019-08-08 09:45:19

我倾向于将函数CORS条目自动化作为部署的一部分(在函数应用资源已经在早期的管道或另一个管道中使用ARM模板构建之后)。

由于您可以在一个函数应用程序中拥有多个函数,所以我认为特定于在函数应用程序中部署的函数的CORS需求,并且我认为任何CORS条目都应该是实际功能部署过程的一部分。

我使用Azure CLI来自动化CORS设置。请参阅如何通过自动化设置Azure函数的CORS

代码语言:javascript
复制
az functionapp cors add --allowed-origins
                    [--ids]
                    [--name]
                    [--resource-group]
                    [--slot]
                    [--subscription]

还可以检查/显示现有条目,如下所示:

代码语言:javascript
复制
az functionapp cors show --name MyFunctionApp --resource-group MyResourceGroup
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46921887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档