迁移 Azure 函数应用设置的几种方法
问题描述
当用户新建函数的应用程序设置需求与现有应用的应用程序设置相同,可以使用以下几种工具快速将应用设置迁移至新应用。
解决方案
通过 Azure PowerShell 迁移应用设置
使用 Azure PowerShell 登录订阅:
Login-AzureRmAccount –Environment AzureChinaCloud
将以下脚本的变量改为用户相应的参数,并且运行:
# 从原应用获取应用程序设置 $resource = Invoke-AzureRmResourceAction -ResourceGroupName <资源组名称> -ResourceType Microsoft.Web/sites/config -ResourceName "<函数应用名>/appsettings" -Action list -ApiVersion 2016-08-01 -Force # 使用 $resource.Properties 来更新目标应用 New-AzureRmResource -PropertyObject $resource.Properties -ResourceGroupName <目标函数资源组名称> -ResourceType Microsoft.Web/sites/config -ResourceName "<目标函数应用名>/appsettings" -ApiVersion 2016-08-01 –Force
通过 Azure CLI 迁移应用设置
安装 Azure CLI。
安装用于处理 JSON 的 JQ 命令行。
运行 Azure CLI 将云环境改为中国并登录订阅:
az cloud set -n AzureChinaCloud az login
将以下脚本的变量改为用户相应的参数,并且运行:
$srcResourceGroup="<资源组名称>" $srcName="<函数应用名>" $dstResourceGroup="<目标函数资源组名称>" $dstName="<目标函数应用名>" $settingsToBeRemoved=az functionapp config appsettings list --resource-group $dstResourceGroup --name $dstName | jq '.[] | .name' -r az functionapp config appsettings delete --resource-group $dstResourceGroup --name $dstName --setting-names $settingsToBeRemoved $settingsToBeCopied=az functionapp config appsettings list --resource-group $srcResourceGroup --name $srcName | jq '.[] | .name+\"=\"+.value' -r az functionapp config appsettings set --resource-group $dstResourceGroup --name $dstName --settings $settingsToBeCopied