我有一个蓝色的功能应用程序,我想要建立以可重复(自动)的方式,以便我可以复制它在不同的环境/资源组。我可以通过蔚蓝的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,难道我没有找到它吗?
发布于 2017-10-25 00:24:51
若要以编程方式设置CORS设置,请使用ARM。
下面是一个您可以遵循的示例:https://msftplayground.com/2016/08/setting-api-definition-url-cors-value-arm/
发布于 2017-10-27 00:21:34
Fabio的回答是正确的,Azure资源管理器模板也适用于此。因为他链接到的示例是关于逻辑应用程序而不是azure函数的,所以正确的模板需要进行一些更改,我想添加一些细节,以帮助其他人更快地实现这个目标。
为了制作模板,我最终从我手工创建的函数应用程序下载了自动化模板,然后删除了一些东西,直到达到我认为的最低限度。我用的是:
{
"$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": []
}
]
}我还有一个参数文件,这个文件如下所示:
{
"$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步骤,根据部署到的环境,部署这个步骤并替换所需的函数应用程序名。
发布于 2019-08-08 09:45:19
我倾向于将函数CORS条目自动化作为部署的一部分(在函数应用资源已经在早期的管道或另一个管道中使用ARM模板构建之后)。
由于您可以在一个函数应用程序中拥有多个函数,所以我认为特定于在函数应用程序中部署的函数的CORS需求,并且我认为任何CORS条目都应该是实际功能部署过程的一部分。
我使用Azure CLI来自动化CORS设置。请参阅如何通过自动化设置Azure函数的CORS
az functionapp cors add --allowed-origins
[--ids]
[--name]
[--resource-group]
[--slot]
[--subscription]还可以检查/显示现有条目,如下所示:
az functionapp cors show --name MyFunctionApp --resource-group MyResourceGrouphttps://stackoverflow.com/questions/46921887
复制相似问题