簡體   English   中英

Azure 用於部署 SQL 和表的資源管理器 (ARM) 模板

[英]Azure Resource Manager (ARM) template to deploy SQL along with tables

我有一個 ARM 模板來部署 sql。

{
 "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
......
"resources": [
    {
      "type": "Microsoft.Sql/servers",
      "apiVersion": "2021-05-01-preview",
      "name": "[parameters('serverName')]",
      "location": "[parameters('location')]",
      "properties": {
        "administratorLogin": "[parameters('administratorLogin')]",
        "administratorLoginPassword": "[parameters('administratorLoginPassword')]"
      }
    },
    {
      "type": "Microsoft.Sql/servers/databases",
      "apiVersion": "2021-05-01-preview",
      "name": "[format('{0}/{1}', parameters('serverName'), parameters('sqlDBName'))]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard",
        "tier": "Standard"
      },
      "dependsOn": [
        "[resourceId('Microsoft.Sql/servers', parameters('serverName'))]"
      ]
    }
  ]
}

部署后,它會創建一個空的 sql 數據庫。 我們如何部署相應的模式、表、過程?

我們在本地環境中測試了以下 ARM 模板,它工作正常,以下陳述基於我們的分析。

這是我們用來創建新的 SQL 數據庫的 ARM 模板,這是一個從現有數據庫導出的表。

這是我們的 template.json 文件:

{

  "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters":
  {
    "administratorLogin":
    {
      "type": "string"
    },
    "administratorLoginPassword":
    {
      "type": "securestring"
    },
    "databaseName":
    {
      "type": "string"
    },
    "location":
    {
      "type": "string"
    },
    "_artifactsLocationSasToken":
    {
      "type": "securestring"
    }
  },
  "variables":
  {
    "collation": "SQL_Latin1_General_CP1_CI_AS",
    "edition": "Premium",
    "maxSizeBytes": "1073741824",
    "requestedServiceObjectiveName": "P1",
    "storageKeyType": "SharedAccessKey",
    "version": "12.0",
    "serverName": "[concat('sqldemo', uniqueString(resourceGroup().id))]"
  },
  "resources":
  [
    {
      "name": "[variables('serverName')]",
      "type": "Microsoft.Sql/servers",
      "apiVersion": "2015-05-01-preview",
      "location": "[parameters('location')]",
      "properties":
      {
        "administratorLogin": "[parameters('administratorLogin')]",
        "administratorLoginPassword": "[parameters('administratorLoginPassword')]",
        "version": "[variables('version')]"
      },
      "resources":
      [
        {
          "name": "AllowAllWindowsAzureIps",
          "type": "firewallrules",
          "apiVersion": "2015-05-01-preview",
          "location": "[parameters('location')]",
          "dependsOn":
          [
            "[concat('Microsoft.Sql/servers/', variables('serverName'))]"
          ],
          "properties":
          {
            "endIpAddress": "0.0.0.0",
            "startIpAddress": "0.0.0.0"
          }
        },
        {
          "name": "[parameters('databaseName')]",
          "type": "databases",
          "apiVersion": "2017-03-01-preview",
          "location": "[parameters('location')]",
          "dependsOn":
          [
            "[concat('Microsoft.Sql/servers/', variables('serverName'))]"
          ],
          "properties":
          {
            "collation": "[variables('collation')]",
            "edition": "[variables('edition')]",
            "maxSizeBytes": "[variables('maxSizeBytes')]",
            "requestedServiceObjectiveName": "[variables('requestedServiceObjectiveName')]"
          },
          "resources":
          [
            {
              "name": "Import",
              "type": "extensions",
              "apiVersion": "2014-04-01-preview",
              "dependsOn":
              [
                "[concat('Microsoft.Sql/servers/', variables('serverName'), '/databases/', parameters('databaseName'))]"
              ],
              "properties":
              {
                "storageKeyType": "[variables('storageKeyType')]",
                "storageKey": "[parameters('_artifactsLocationSasToken')]",
                "storageUri": "<Storageuri_of_exported_bacpacfile>", ##pass the bloburi of the bacpac file 
                "administratorLogin": "[parameters('administratorLogin')]",
                "administratorLoginPassword": "[parameters('administratorLoginPassword')]",
                "operationMode": "Import"
              }
            }
          ]
        }
      ]
    }
  ],
  "outputs":
  {
    "serverName":
    {
      "type": "object",
      "value": "[reference(variables('serverName'))]"
    }
  }
}

這是 template.parameters.json 文件:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
  "parameters":
  {
    "administratorLogin":
    {
      "value": "<sqlserverusername>"
    },
    "databaseName":
    {
      "value": "<dbtablename>"
    },
    "location": 
    {
      "value": "<location>"
    },
    "_artifactsLocationSasToken":{
        "value": "<SAS token of the exported bacpacfile>"
    }
      
  }
}

下面是樣本output供參考:

在此處輸入圖像描述

注意:您需要在使用上述 ARM 模板創建 sql 數據庫后,在 SQL 數據庫中使用您的公共 IP創建防火牆規則。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM