答えて
あなたはAzureのPowerShellを使用することができます。ここにPowerShellスクリプトがあります。
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
このスクリプトは$mySite
から$mySite2
にアプリの設定をコピーします。 Webアプリケーションにスロットが含まれている場合、$props
の場合は、代わりに次のコマンドを使用してください。
$props = (Invoke-AzureRmResourceAction -ResourceGroupName $myResourceGroup `
-ResourceType Microsoft.Web/sites/slots/Config -Name $mySite/$slot/appsettings `
-Action list -ApiVersion 2015-08-01 -Force).Properties
そして、それはゴミの無駄な山だという意味、SetAzureRmWebAppSlot
に設定の順番を与えるする方法はないように見える代わりにSet-AzureRMWebApp
Set-AzureRMWebAppSlot -ResourceGroupName $myResourceGroup2 `
-Name $mySite2 -Slot $slot -AppSettings $hash
これは素晴らしい答えです。現在のサイトから別のサイトにコピーします。同じ設定ですべてのサイトを展開することが目標である場合は、ARMテンプレートを使用することをお勧めします。 –
@Jack曽 私はランブックとしてあなたのコードを実行しようとしましたが、エラーが発生しました、 http://stackoverflow.com/questions/35486796/azure-runbook-powershell-script-to-copy-all-webapp-settings – Xerxes
これは最高です! –
のSet-AzureRMWebAppSlot
を使用しています。幸いにも、別の種類のクラウドシェルがあります。
srcResourceGroup=$1
srcName=$2
dstResourceGroup=$3
dstName=$4
settingsToBeRemoved=$(az webapp config appsettings list --resource-group $dstResourceGroup --name $dstName | jq '.[] | .name' -r)
if [[ ! -z $settingsToBeRemoved ]]; then
az webapp config appsettings delete --resource-group $dstResourceGroup --name $dstName --setting-names $settingsToBeRemoved > /dev/null
fi
settingsToBeCopied=$(az webapp config appsettings list --resource-group $srcResourceGroup --name $srcName | jq '.[] | .name+"="+.value' -r)
if [[ ! -z $settingsToBeCopied ]]; then
az webapp config appsettings set --resource-group $dstResourceGroup --name $dstName --settings $settingsToBeCopied > /dev/null
fi
echo "Copied settings from $srcName to $dstName."
ARMテンプレートを使用してみましたか?ここで私のサイトのノードバージョンを設定するサンプルをチェックしてください:https://github.com/christopheranderson/parse-server-example/blob/master/azuredeploy.json#L99 –