2017-08-24 7 views
4

通常のmsdeploy(Visual StudioまたはVSTS公開で使用されるWebDeploy)を使用してAzure Web App(Azure App Service)にデプロイすると、 でない宛先の既存のファイルを削除します。既存のファイルを削除せずにARM/msdeployを使用してAzure Webアプリケーションにデプロイ

ただし、ARM extensions/msdeployプロバイダ(ARMテンプレートなど)を使用する場合、既存のファイルはデフォルトで常に削除されます。これを上書きして既存のファイルを吹き飛ばす方法はありますか?

答えて

4

Azure Web AppがDoNotDeleteRuleをサポートする方法は、addOnPackagesスキーマ要素を使用します。

addOnPackages暗黙のうちにDoNotDeleteルールを使用します。したがって、既存のサイトのファイルを削除せずにパッケージを適用する場合は、addOnPackages配列に指定してから、を外側のMSDeployオブジェクトに定義しないでください。例えば:も単一場合msdeploy ARMテンプレートに複数のパッケージを可能

{ 
    "properties": { 
     "parameters": { 
      "appName": { 
       "value": "mysite" 
      }, 
      "location":{ 
       "value": "USAAnywhere" 
      } 
     }, 
     "template": { 
      "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", 
      "contentVersion": "1.0.0-r188+188.764a8a7798ecc6ebb752343c6f8e6be2903ba711", 
      "parameters": { 
       "appName": { 
        "type": "string" 
       }, 
       "location": { 
        "type": "string" 
       } 
      }, 
      "resources": [ 
       { 
        "apiVersion": "2016-08-01", 
        "name": "[parameters('appName')]", 
        "location": "[parameters('location')]", 
        "type": "Microsoft.Web/sites", 
        "resources": [ 
         { 
          "apiVersion": "2016-08-01", 
          "name": "MSDeploy", 
          "type": "Extensions", 
          "dependsOn": [ 
           "[concat('Microsoft.Web/Sites/', parameters('appName'))]" 
          ], 
          "properties": { 
           "addOnPackages" : [ 
            { 
             "packageUri": "https://mystorageblob.blob.core.windows.net/package/my_webdeploy_package.zip", 
             "AppOffline": true, 
             "setParameters": { 
              "IIS Web Application Name": "[parameters('appName')]", 
             } 
            } 
           ] 
          } 
         } 
        ], 
        "properties" : {} 
       } 
      ] 
     }, 
     "mode": "Incremental" 
    } 
} 

addOnPackages。外側のものは既存のサイトのファイルを削除し、addOnPackagesは追加的なもので、外側のパッケージは削除しません。例:

{ 
    "properties": { 
     "parameters": { 
      "appName": { 
       "value": "mysite" 
      }, 
      "location":{ 
       "value": "USAAnywhere" 
      } 
     }, 
     "template": { 
      "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", 
      "contentVersion": "1.0.0-r188+188.764a8a7798ecc6ebb752343c6f8e6be2903ba711", 
      "parameters": { 
       "appName": { 
        "type": "string" 
       }, 
       "location": { 
        "type": "string" 
       } 
      }, 
      "resources": [ 
       { 
        "apiVersion": "2016-08-01", 
        "name": "[parameters('appName')]", 
        "location": "[parameters('location')]", 
        "type": "Microsoft.Web/sites", 
        "resources": [ 
         { 
          "apiVersion": "2016-08-01", 
          "name": "MSDeploy", 
          "type": "Extensions", 
          "dependsOn": [ 
           "[concat('Microsoft.Web/Sites/', parameters('appName'))]" 
          ], 
          "properties": { 
           "packageUri": "https://mystorageblob.blob.core.windows.net/package/my_webdeploy_package.zip", 
           "dbType": "None", 
           "connectionString": "", 
           "AppOffline": true, 
           "SkipAppData": true, 
           "setParameters": { 
            "IIS Web Application Name": "[parameters('appName')]" 
           }, 
           "addOnPackages" : [ 
            { 
             "packageUri": "https://mystorageblob.blob.core.windows.net/package/my_first_add_on_package.zip", 
             "AppOffline": true, 
             "setParameters": { 
              "IIS Web Application Name": "[parameters('appName')]", 
             } 
            }, 
            { 
             "packageUri": "https://mystorageblob.blob.core.windows.net/package/my_second_add_on_package.zip", 
             "setParameters": { 
              "IIS Web Application Name": "[parameters('appName')]", 
             } 
            } 
           ] 
          } 
         } 
        ], 
        "properties" : {} 
       } 
      ] 
     }, 
     "mode": "Incremental" 
    } 
} 
+0

AppOfflineとSkipAppDataのパラメータは何を意味しますか? – juvchan

+0

@juvchan: '' appOffline ':true'は、msdeploy '-enableRule:AppOffline'コマンドラインオプションと同等です。デフォルトでは 'false'(オフ)です。 '" skipAppData ":true'は、msdeploy' -skip:objectname = 'dirPath'、absolutepath = App_Data'に相当します。 – DropPhone

関連する問題