如何在Visual Studio 2017中为Azure资源组项目添加Function App?
简便添加Function App到VS2017 Azure资源组项目的方法
我完全理解你的困扰——门户生成的自动化脚本确实冗余,里面塞满了各种默认配置和非必需依赖,梳理起来太费时间。下面是几个更高效的方法,帮你快速在VS2017的Azure资源组项目中添加Function App资源:
方法1:手动添加精简版ARM模板片段
VS2017的Azure资源组项目默认没有直接的Function App模板选项,但你可以手动添加只保留核心配置的ARM模板代码:
- 先在资源组项目里添加一个存储账户(Function App必须依赖它),右键项目→添加→新资源,搜索“存储账户”就能快速创建。
- 新建一个JSON文件(比如命名为
functionapp-resource.json),粘贴以下简化模板,记得替换掉占位符(比如<your-function-app-name>、<your-storage-account-name>):
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "resources": [ { "type": "Microsoft.Web/sites", "apiVersion": "2022-03-01", "name": "<your-function-app-name>", "location": "[resourceGroup().location]", "kind": "functionapp", "properties": { "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', '<your-app-service-plan-name>')]", "siteConfig": { "appSettings": [ { "name": "AzureWebJobsStorage", "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', '<your-storage-account-name>', ';AccountKey=', listKeys(resourceId('Microsoft.Storage/storageAccounts', '<your-storage-account-name>'), '2021-04-01').keys[0].value)]" }, { "name": "FUNCTIONS_EXTENSION_VERSION", "value": "~4" }, { "name": "FUNCTIONS_WORKER_RUNTIME", "value": "powershell" // 可根据需求修改为dotnet、python等 } ] } }, "dependsOn": [ "[resourceId('Microsoft.Web/serverfarms', '<your-app-service-plan-name>')]", "[resourceId('Microsoft.Storage/storageAccounts', '<your-storage-account-name>')]" ] } ] }
- 把这个JSON文件纳入资源组项目,部署时VS会自动合并所有模板资源。
方法2:用Azure CLI生成简化模板
如果你熟悉Azure CLI,能快速生成仅包含核心配置的Function App模板:
- 打开命令提示符,先登录Azure:
az login - 运行以下命令生成模板(替换参数值,临时资源组后续可以删除):
az functionapp create --name <your-function-app-name> --resource-group <temp-rg-name> --consumption-plan-location <region> --runtime powershell --storage-account <temp-storage-name> --generate-template > functionapp-template.json
- 打开生成的
functionapp-template.json,删掉冗余的tags、非必需的应用设置,再把精简后的内容复制到VS资源组项目中。
方法3:从独立Function项目导出模板
如果你已经有现成的Azure Function项目,可以通过以下步骤导出适配资源组项目的模板:
- 在VS2017中创建一个独立的Azure Function App项目,配置好运行时、存储账户等基础设置。
- 右键项目→发布,选择Azure目标完成一次部署(可以部署到临时资源组)。
- 登录Azure门户,找到这个已部署的Function App,进入「自动化」→「导出模板」。
- 在导出页面,取消勾选「包括参数」和「包括所有资源」,只选择Function App、存储账户和应用服务计划,然后下载模板。
- 把下载的模板文件导入到你的Azure资源组项目,调整参数和依赖关系即可。
这些方法都能帮你避开门户生成的复杂脚本,快速在VS2017的资源组项目中添加Function App,同时保留你需要的核心配置,方便后续用PowerShell部署。
内容的提问来源于stack exchange,提问作者AndrasCsanyi
相关产品推荐
相关产品推荐

