簡體   English   中英

Azure ARM 模板 - SQL 故障轉移組錯誤 FailoverGroupCreateOrUpdateRequestReadOnlyPropertyModified

[英]Azure ARM Template - SQL Failover Group Error FailoverGroupCreateOrUpdateRequestReadOnlyPropertyModified

已從 ARM 模板成功部署具有預期故障轉移組的主要和輔助 Azure SQL 服務器。 在后續部署中部署 ARM 模板會返回以下錯誤消息:

  "error": {
    "code": "FailoverGroupCreateOrUpdateRequestReadOnlyPropertyModified",
    "message": "The create or update failover group request body should not modify the read-only property 'location'."
  }
} undefined

我們沒有對錯誤消息中指示的主服務器或輔助服務器的位置屬性進行任何更改。

來自 ARM 模板的代碼片段:

    {
      "comments": "Azure SQL Server Failover Group",
      "condition": "[parameters('isProduction')]",
      "type": "Microsoft.Sql/servers/failoverGroups",
      "apiVersion": "2015-05-01-preview",
      "name": "[concat(variables('sqlServerPrimaryName'), '/', variables('sqlServerFailoverName'))]",
      "location": "[parameters('sqlServerPrimaryLocation')]",
      "dependsOn": [
        "[resourceId('Microsoft.Sql/servers', variables('sqlServerPrimaryName'))]",
        "[resourceId('Microsoft.Sql/servers', variables('sqlServerSecondaryName'))]",
        "[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerPrimaryName'), variables('adminDbName'))]",
        "[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerPrimaryName'), variables('trxnDbName'))]",
        "[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerPrimaryName'), variables('dbaDbName'))]"
      ],
      "properties": {
        "readWriteEndpoint": {
          "failoverPolicy": "Automatic",
          "failoverWithDataLossGracePeriodMinutes": 60
        },
        "readOnlyEndpoint": {
          "failoverPolicy": "Disabled"
        },
        "partnerServers": [
          {
            "id": "[resourceId('Microsoft.Sql/servers', variables('sqlServerSecondaryName'))]"
          }
        ],
        "databases": [
          "[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerPrimaryName'), variables('adminDbName'))]",
          "[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerPrimaryName'), variables('trxnDbName'))]",
          "[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerPrimaryName'), variables('dbaDbName'))]"
        ]
      }
    }

正如@Leon Yu 的評論所說:

一旦部署了 arm 模板,就會創建並存在故障轉移組。 正如錯誤所說,位置是只讀的。 當我們部署兩次時,即使你沒有設置位置值,它仍然會更新它,從而導致錯誤。

第二次部署時無法更新location屬性,需要移動該屬性。

如果可能,然后從 ARM 模板中刪除該位置,因為您已經在故障轉移組創建名稱中提供了 sqlServerPrimaryName,它采用 sqlServerPrimaryName 的位置。

暫無
暫無

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

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