如何通过ARM模板部署Synapse Serverless数据库?
简介
我正尝试通过Azure Pipelines部署ARM模板,先部署Synapse Workspace,再创建Synapse Serverless Database。请注意,这不是专用SQL池(Dedicated SQL Pool),而是Synapse无服务器数据库。
手动操作的步骤如下:

现有模板
我已有一个可成功创建Synapse Workspace的ARM模板:
{ "type": "Microsoft.Synapse/workspaces", "apiVersion": "2021-06-01", "name": "[variables('synapseName')]", "location": "[parameters('location')]", "tags": "[parameters('tags')]", "identity": { "type": "SystemAssigned" }, "properties": { "defaultDataLakeStorage": { "resourceId": "[resourceId('Microsoft.Storage/storageAccounts', variables('storageName'))]", "createManagedPrivateEndpoint": true, "accountUrl": "[concat('https://', variables('storageName'),'.dfs.core.windows.net')]", "filesystem": "[concat('lake', parameters('project'))]" }, "encryption": {}, "managedResourceGroupName": "[variables('synapseManager')]", "managedVirtualNetwork": "default", "sqlAdministratorLogin": "[variables('adminusername')]", "sqlAdministratorLoginPassword": "[parameters('sec_syn')]", "privateEndpointConnections": [], "publicNetworkAccess": "Enabled", "managedVirtualNetworkSettings": { "preventDataExfiltration": false, "allowedAadTenantIdsForLinking": [] }, "cspWorkspaceAdminProperties": { "initialWorkspaceAdminObjectId": "[parameters('cliid')]" }, "trustedServiceBypassEnabled": true, "azureADOnlyAuthentication": false }, "resources": [ { "condition": true, "type": "firewallRules", "apiVersion": "2021-06-01", "name": "AllowAllConnections", "properties": { "startIpAddress": "0.0.0.0", "endIpAddress": "255.255.255.255" }, "dependsOn": [ "[resourceId('Microsoft.Synapse/workspaces', variables('synapseName'))]" ] }, { "condition": true, "type": "firewallRules", "apiVersion": "2021-06-01", "name": "AllowAllWindowsAzureIps", "properties": { "startIpAddress": "0.0.0.0", "endIpAddress": "0.0.0.0" }, "dependsOn": [ "[resourceId('Microsoft.Synapse/workspaces', variables('synapseName'))]" ] }, { "condition": true, "type": "integrationRuntimes", "apiVersion": "2021-06-01", "name": "AutoResolveIntegrationRuntime", "properties": { "type": "Managed", "typeProperties": { "computeProperties": { "location": "AutoResolve" } } }, "dependsOn": [ "[resourceId('Microsoft.Synapse/workspaces', variables('synapseName'))]" ] } ], "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts/blobServices/containers', variables('storageName'), 'default', concat('lake', parameters('project')))]" ] }
创建Synapse Serverless SQL数据库的可选方案
不过,文档中显示有两种创建数据库的方式,我都尝试过,如下所示:
- sqlDatabase
{ "type": "sqlDatabases", "apiVersion": "2020-04-01-preview", "name": "laketestdb", "location": "[parameters('location')]", "properties": { "collation": "Latin1_General_100_BIN2_UTF8" }, "dependsOn": [ "[resourceId('Microsoft.Synapse/workspaces', variables('synapseName'))]" ] }
该方法无论是嵌套在Synapse资源模板中,还是在后续管道任务中单独运行,都会出现相同错误导致部署失败:
- sqlPool
{ "type": "Microsoft.Synapse/workspaces/sqlPools", "apiVersion": "2021-06-01", "name": "string", "location": "string", "tags": { "tagName1": "tagValue1", "tagName2": "tagValue2" }, "sku": { "capacity": "int", "name": "string", "tier": "string" }, "properties": { "collation": "string", "createMode": "string", "maxSizeBytes": "int", "provisioningState": "string", "recoverableDatabaseId": "string", "restorePointInTime": "string", "sourceDatabaseDeletionDate": "string", "sourceDatabaseId": "string", "storageAccountType": "string" } }
对于该方法,我不清楚哪个服务层级或SKU可创建无服务器数据库,网上现有示例均为数据仓库配置(如"DW2000c"),尝试多次仍无法成功。
Azure Shell尝试
我还尝试使用Azure Shell命令:
New-AzSynapseSqlDatabase -ResourceGroupName rg_admin -WorkspaceName synjmi -Name testazpssqldb
得到与部署时相同的错误:
New-AzSynapseSqlDatabase: Operation returned an invalid status code 'BadRequest' Specified edition or service level objective is not supported

我完全不清楚问题所在,网上也找不到足够的文档或故障排查资料,恳请提供帮助。
内容的提问来源于stack exchange,提问作者JMoss84
相关产品推荐
相关产品推荐

