Bjo*_*cus 3 azure cors azure-rm-template azure-functions
我有一个azure函数应用程序,我想以可重复(自动)的方式进行设置,以便可以在不同的环境/资源组中复制它。我可以通过azure cli创建功能应用程序,但是我还需要配置CORS选项,以便可以从浏览器中调用它。
我已经在azure门户网站的web ui中的“平台功能”选项卡中找到了要执行的操作(https://docs.microsoft.com/zh-cn/azure/azure-functions/functions-how-to-use -azure-function-app-settings#cors),但是我找不到关于通过azure cli修改该设置的任何内容,也无法找到我在更改应用程序中的功能时已设置为发布的VSTS部署任务。
似乎您甚至可以通过local.settisg.json为本地开发指定CORS设置,但这仅在本地适用(https://docs.microsoft.com/zh-cn/azure/azure-functions/functions-run- local#local-settings)。我是通过azure功能工具cli部署应用程序的吗?我可以--publish-local-settings在部署时指定该标志,但是我没有那样部署。
似乎必须有一种无需使用Web UI即可修改CORS配置的方法,我只是找不到它吗?
要以编程方式设置 CORS 设置,您需要使用 ARM。
这是您可以遵循的示例:https : //msftplayground.com/2016/08/setting-api-definition-url-cors-value-arm/
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": []
}
]
}
Run Code Online (Sandbox Code Playgroud)
我还有一个与此类似的参数文件:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"function_app_name": {
"value": null
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后Azure Resource Group Deployment在发布定义中进行一个步骤,以部署此代码并根据要部署到的环境替换所需的功能应用程序名称。
| 归档时间: |
|
| 查看次数: |
1507 次 |
| 最近记录: |