gpt4 book ai didi

azure - 如何使 Azure Function 代码在 Azure ARM json 模板中可读

转载 作者:行者123 更新时间:2023-12-03 05:04:41 26 4
gpt4 key购买 nike

我有一个 Azure 资源组,其中包含调用 Azure 函数的 Azure 逻辑应用。

我将此资源组导出为 ARM 模板,以便可以将资源重新导入到另一个 Azure 订阅。这工作正常,但问题是,Azure 函数代码(100 多行 c# 文件)全部包含在 JSON ARM 模板文件的一行中。这使得从模板本身读取或修改 Azure Functions 变得非常困难。

有没有简单的方法可以解决这个问题?理想情况下,我的 Azure Function 将位于它自己的文件 (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}"
}
}
}

最佳答案

您有一些选择:

  1. 快速解决您的问题:通过某些代码格式化程序运行您的 ARM 模板。如果您尝试将模板复制粘贴到 Visual Studio 中的 json 文件中,然后按 CTRL-K、CTRL-D 自动设置格式,您可能会很幸运。我没有尝试过这个,但它可能会起作用。您还可以使用多种在线格式化工具中的任何一种或使用 Visual Studio 剪切代码并对其进行格式化。

  2. source control system 部署您的功能。分开对待您的基础设施和代码。 IE。从 ARM 模板创建函数 PaaS 服务,然后使用 CI/CD 流程部署代码和配置(函数)。

  3. 将代码包装到程序集中,将程序集部署到函数宿主并在函数中引用它。这称为外部引用 ( documentation here ),并将限制函数中的代码量,并将逻辑保存在单独的程序集中。您仍然需要弄清楚如何通过脚本或 CI/CD 流程部署程序集。

简而言之,根据您问题的评论,您需要从开发过程的角度更加勤勉地支持您的 Azure 功能开发。如果您有许多开发人员致力于您的功能,这一点就变得更加重要。

祝你好运!

关于azure - 如何使 Azure Function 代码在 Azure ARM json 模板中可读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47106003/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com