我有一个Azure资源组,其中包含调用Azure函数的Azure逻辑应用程序。如何在Azure ARM json模板中使Azure函数代码可读
我将此资源组导出为ARM模板,以便我可以将资源重新导入到另一个Azure订阅。这工作正常,但问题是,Azure功能代码(100 +行C#文件)全部包含在JSON ARM模板文件的一行中。这使得很难从模板本身读取或修改Azure功能。
有没有简单的方法来解决这个问题?理想情况下,我的Azure函数将在它自己的文件(run.csx)中,而Azure JSON ARM模板只会引用该外部文件。
这是我的ARM模板中的函数资源的JSON blob。包含关键run.csx的行是我关心的问题,我怎样才能让这段代码更具可读性并易于开发人员编辑?
{
"apiVersion": "2015-08-01",
"name": "[concat(parameters('test_site_name'),'\/ProvisionUser')]",
"type": "Microsoft.Web\/sites\/functions",
"properties": {
"config": {
"bindings": [
{
"authLevel": "function",
"name": "req",
"type": "httpTrigger",
"direction": "in"
},
{
"name": "return",
"direction": "out",
"type": "http"
}
]
},
"files": {
"run.csx": "LOTS OF C# CODE HERE - LOTS OF C# CODE HERE FROM MY AZURE FUNCTION - LOTS OF C# CODE HERE FROM MY AZURE FUNCTION - LOTS OF C# CODE HERE FROM MY AZURE FUNCTION - LOTS OF C# CODE HERE FROM MY AZURE FUNCTION - LOTS OF C# CODE HERE FROM MY AZURE FUNCTION - LOTS OF C# CODE HERE FROM MY AZURE FUNCTION - ",
"project.json": "{\r\n \"frameworks\": {\r\n \"net46\": {\r\n \"dependencies\": {\r\n \"Microsoft.IdentityModel.Clients.ActiveDirectory\": \"3.13.8\",\r\n \"Newtonsoft.Json\": \"10.0.2\",\r\n \"Microsoft.Sdk.CoreAssemblies\" : \"8.2.0.2\"\r\n }\r\n }\r\n }\r\n}"
}
}
}
最好使用msdeploy提供程序通过某些云托管zip部署功能文件,例如,像[this](https://github.com/davidebbo/AzureWebsitesSamples/blob/master/ARMTemplates/FunctionsWebDeploy.json) –
此外,您可以通过源代码控制引用进行部署,例如此示例(函数和逻辑应用程序)https:// github .com/Azure/azure-quickstart-templates/tree/master/101-logic-app-and-function-app – jeffhollan
谢谢,这些看起来很有用,会研究这些选项。 –