我想使用Azure在单个ResourceGroup
下为包含以下内容的客户端创建环境:
理想情况下,数据库将托管在属于不同资源组的服务器上,因此我可以在多个客户端之间利用弹性池。
当我尝试使用New-AzureRmResourceGroupDeployment
来执行此操作时,收到一条错误消息,指出找不到父SqlServer。
我已经通过PowerShell创建了SqlServer:
New-AzureRmSqlServer -servername "MyServer" -ResourceGroupName "Common" -Location "South Central US"
然后我尝试通过以下方式部署ClientA:
New-AzureRmResourceGroup -Name 'ClientA' -Location "South Central US"
New-AzureRmResourceGroupDeployment -ResourceGroupName 'ClientA' -TemplateFile azure.ClientDeployment.json -Client 'ClientA'
我的部署配置是:
{
"parameters": { ... }
"variables": { ... }
"resources": [
{
"name": "MySqlServer/ClientA",
"type": "Microsoft.Sql/servers/databases",
"location": "[resourceGroup().location]",
"apiVersion": "2014-04-01",
"tags": {},
"location": "[resourceGroup().location]",
"properties": {
"edition": "Basic"
},
}
],
"outputs": { }
}
导致错误消息:
New-AzureRmResourceGroupDeployment : 5:04:33 PM - Resource Microsoft.Sql/servers/databases 'MySqlServer/ClientA' failed with message '{
"code": "NotFound",
"message": "Server 'MySqlServer' does not exist in resource group 'ClientA' in subscription '{...}'.",
"target": null,
"details": [],
"innererror": []
}
请注意,两个资源组(Common和ClientA)都位于相同的订阅和位置。
是否可能有一个资源组的SqlServer部分和另一个资源组的SqlDatabase部分?
答案 0 :(得分:0)
到目前为止,无法将具有一个订阅(位置)的SQLServer与其数据库分离到另一个订阅。
中查看类似的问题Azure资源组也被定义为以下对象的强大容器 它的资源,它定义了它们的身份(查看所有资源的URI Azure资源),以及基于角色的访问权限的传播,以及 控制资源生存期-从而授予对资源组的访问权限 授予其资源的权限,删除资源组将删除 它包含的资源。
结合以上内容意味着包含 服务器还必须包含在该服务器上托管/嵌套的数据库。
即使您尝试在单个预订中创建所有数据库,然后尝试将特定的SQLDB资源组移到之后。不允许这样做(在门户网站中)
对于您的情况,我想在一个通用订阅中创建所有服务,在该订阅中,所有客户可以共享或轻松访问该位置。
您可以使用AzureSpeed从当前位置获取所有位置的延迟,并尝试在对所有客户端延迟最小的公共位置创建订阅。