繁体   English   中英

Azure REST API-通过编程在elasticPoll内创建数据库

[英]Azure REST API - Create, through programming, a database within an elasticPoll

我需要通过编程在elasticPoll中创建一个数据库。

为此,我使用的API版本为2014-04-01,如“ Azure REST API> SQL数据库>数据库> 创建或更新 ”中所述。

我创建一个新的HttpWebRequest对象并启动.Create()方法

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(string.Format("https://management.azure.com/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.Sql/servers/{2}/databases/{3}?api-version={4}", VariabiliGlobali.SubscriptionID, VariabiliGlobali.ResourceGroup, VariabiliGlobali.SqlServerName, databaseName, VariabiliGlobali.APIVersion));

并编译属性:

request.Headers["Authorization"] = "Bearer" + token;
request.ContentType = "application/json; charset = utf-8";
request.Method = "PUT"

我创建一个新的StreamWriter对象

using (var streamWriter = new StreamWriter(request.GetRequestStream()))
        {
            streamWriter.Write(json);
            streamWriter.Flush();
            //streamWriter.Close();
        }

和.Write()方法参数,分配模型的完整Json代码,如下面的“数据库-创建或更新”示例所示。

            string json =
            "{" +
   "\"parameters\": {" +
        "\"subscriptionId\": \"" + VariabiliGlobali.SubscriptionID + "\"," +
        "\"resourceGroupName\": \"" + VariabiliGlobali.ResourceGroup + "\"," +
        "\"serverName\": \"" + VariabiliGlobali.SqlServerName + "\"," +
        "\"databaseName\": \"" + databaseName + "\"," +
        "\"api-version\": \"" + VariabiliGlobali.APIVersion + "\"," +
        "\"parameters\": {" +
                    "\"properties\": {" +
                "\"elasticPoolName\": \"" + elasticPoolName + "\"" +

            "}," +
                    "\"location\": \"West Europe\"" +

        "}" +
        "}," +
"\"responses\": {" +
            "\"200\": {" +
                "\"body\": {" +
                    "\"id\": \"/subscriptions/" + VariabiliGlobali.SubscriptionID + "/resourceGroups/" + VariabiliGlobali.ResourceGroup + "/providers/Microsoft.Sql/servers/" + VariabiliGlobali.SqlServerName + "/databases/" + databaseName + "\"," +
            "\"name\": \"" + databaseName + "\"," +
            "\"type\": \"Microsoft.Sql/servers/databases\"," +
            "\"location\": \"West Europe\"," +
            "\"kind\": \"v12.0,user\"," +
            "\"properties\": {" +
                        "\"edition\": \"Standard\"," +
                "\"status\": \"Online\"," +
            "\"serviceLevelObjective\": \"S0\"," +
            "\"collation\": \"SQL_Latin1_General_CP1_CI_AS\"," +
            "\"creationDate\": \"2017-02-24T22:39:46.547Z\"," +
            "\"maxSizeBytes\": \"268435456000\"," +
            "\"currentServiceObjectiveId\": \"f1173c43-91bd-4aaa-973c-54e79e15235b\"," +
            "\"requestedServiceObjectiveId\": \"f1173c43-91bd-4aaa-973c-54e79e15235b\"," +
            "\"requestedServiceObjectiveName\": \"S0\"," +
            "\"sampleName\": null," +
            "\"defaultSecondaryLocation\": \"Japan West\"," +
            "\"earliestRestoreDate\": \"2017-02-10T01:52:52.923Z\"," +
            "\"elasticPoolName\": null," +
            "\"containmentState\": 2," +
            "\"readScale\": \"Disabled\"," +
            "\"failoverGroupId\": null" +

            "}" +
                "}" +
            "}," +
    "\"201\": {" +
                "\"body\": {" +
                    "\"id\": \"/subscriptions/" + VariabiliGlobali.SubscriptionID + "/resourceGroups/" + VariabiliGlobali.ResourceGroup + "/providers/Microsoft.Sql/servers/" + VariabiliGlobali.SqlServerName + "/databases/" + databaseName + "\"," +
            "\"name\": \"" + databaseName + "\"," +
            "\"type\": \"Microsoft.Sql/servers/databases\"," +
            "\"location\": \"West Europe\"," +
            "\"kind\": \"v12.0,user\"," +
            "\"properties\": {" +
                                "\"edition\": \"Standard\"," +
                    "\"status\": \"Online\"," +
                    "\"serviceLevelObjective\": \"S0\"," +
                    "\"collation\": \"SQL_Latin1_General_CP1_CI_AS\"," +
                    "\"creationDate\": \"2017-02-24T22:39:46.547Z\"," +
                    "\"maxSizeBytes\": \"268435456000\"," +
                    "\"currentServiceObjectiveId\": \"f1173c43-91bd-4aaa-973c-54e79e15235b\"," +
                    "\"requestedServiceObjectiveId\": \"f1173c43-91bd-4aaa-973c-54e79e15235b\"," +
                    "\"requestedServiceObjectiveName\": \"S0\"," +
                    "\"sampleName\": null," +
                    "\"defaultSecondaryLocation\": \"Japan West\"," +
                    "\"earliestRestoreDate\": \"2017-02-10T01:52:52.923Z\"," +
                    "\"elasticPoolName\": null," +
                    "\"containmentState\": 2," +
                    "\"readScale\": \"Disabled\"," +
                    "\"failoverGroupId\": null" +

                "}" +
                "}" +
            "}," +
    "\"202\": { }" +
        "}" +
    "}";

启动HttpWebRequest对象的.GetResponse()方法

var httpResponse = (HttpWebResponse)request.GetResponse();

作为响应,我得到以下错误:

{'Error': {"code": "InvalidRequestContent", "message": "The request content was invalid and could not be deserialized: 'Could not find member' parameters on object of type 'ResourceDefinition' , Line 1, position 14. '. "}}

我哪里错了?

提前致谢。

我认为该文档不正确。 正确的请求有效负载应为:

{"properties": {"elasticPoolName": "XXXXX"},"location": "West Europe"}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM