如何导出和导入Azure功能"应用程序设置"

时间:2018-02-27 04:24:33

标签: azure azure-functions

如何导出和导入Azure功能"应用程序设置" ?我添加了密钥,需要转移到新的功能应用程序。请指导。

3 个答案:

答案 0 :(得分:19)

你在这里几乎没有选择:

手动

您可以通过以下方式手动完成:

  1. 转到https://resources.azure.com
  2. 搜索应用设​​置所在的应用。
  3. 转到"应用设置"查看并复制属性中的所有JSON
  4. enter image description here

    1. 转到新应用,然后导航至“应用设置”。然后单击“编辑”,并将所有内容放在属性集合中。
    2. 自动化:

      您可以使用azure-cli,powershell或azure-functions-core-tools来实现相同的目标。

      Powershell的:

      使用Azure Powershell模块https://docs.microsoft.com/en-us/powershell/azure/overview?view=azurermps-5.4.0

      # get the app settings from app1
      $resource = Invoke-AzureRmResourceAction -ResourceGroupName <yourResourceGroupName> -ResourceType Microsoft.Web/sites/config -ResourceName "<yourFunctionAppName>/appsettings" -Action list -ApiVersion 2016-08-01 -Force
      
      # update the other app with $resource.Properties
      New-AzureRmResource -PropertyObject $resource.Properties -ResourceGroupName <targetResourceGroupName> -ResourceType Microsoft.Web/sites/config -ResourceName "<targetAppName>/appsettings" -ApiVersion 2016-08-01 -Force
      

      天青函数核工具:

      该工具的文档位于https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local

      您可以通过运行

      来执行相同的操作
      func azure login
      func init myFunctionApp
      cd myFunctionApp
      # this will fetch your settings and put them in local.settings.json
      func azure functionapp fetch-app-settings <yourAppName>
      func azure functionapp publish <yourTargetApp> --publish-settings-only
      

      如果您只想发布设置,最后一个开关--publish-settings-only对于不覆盖文件非常重要。

      天蓝-CLI:

      https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest

      此页面应包含一些有关如何使用cli https://docs.microsoft.com/en-us/azure/app-service/scripts/app-service-cli-app-service-storage?toc=%2fcli%2fazure%2ftoc.json

      检索和设置应用设置的文档

答案 1 :(得分:2)

目前,这是不可能的。您可以查看此feedback

一个解决方案,您可以克隆您的网络应用,请参阅此link。克隆应用程序时,还会克隆应用程序设置。

另一种解决方案是,您可以使用Power Shell导入应用程序设置并将应用程序复制到新的Web应用程序,使用以下示例:

try{
    $acct = Get-AzureRmSubscription
}
catch{
    Login-AzureRmAccount
}

$myResourceGroup = '<your resource group>'
$mySite = '<your web app>'
$myResourceGroup2 = '<another resource group>'
$mySite2 = '<another web app>'

$props = (Invoke-AzureRmResourceAction -ResourceGroupName $myResourceGroup `
        -ResourceType Microsoft.Web/sites/Config -Name $mySite/appsettings `
        -Action list -ApiVersion 2015-08-01 -Force).Properties

$hash = @{}
$props | Get-Member -MemberType NoteProperty | % { $hash[$_.Name] = $props.($_.Name) }

Set-AzureRMWebApp -ResourceGroupName $myResourceGroup2 `
        -Name $mySite2 -AppSettings $hash

有关此问题的详情,请查看此answer

答案 2 :(得分:0)

您也可以通过 Azure 门户获取它们:

  1. 在 Azure 门户中选择您的 Functions 应用。
  2. 点击顶部栏中的下载应用内容
  3. 选择在下载中包含应用设置
  4. 在下载中找到文件 local.settings.json