Exemplo n.º 1
0
        public static CreateInstancesResponse Unmarshall(UnmarshallerContext _ctx)
        {
            CreateInstancesResponse createInstancesResponse = new CreateInstancesResponse();

            createInstancesResponse.HttpResponse = _ctx.HttpResponse;
            createInstancesResponse.RequestId    = _ctx.StringValue("CreateInstances.RequestId");
            createInstancesResponse.OrderId      = _ctx.StringValue("CreateInstances.OrderId");

            List <string> createInstancesResponse_instanceIds = new List <string>();

            for (int i = 0; i < _ctx.Length("CreateInstances.InstanceIds.Length"); i++)
            {
                createInstancesResponse_instanceIds.Add(_ctx.StringValue("CreateInstances.InstanceIds[" + i + "]"));
            }
            createInstancesResponse.InstanceIds = createInstancesResponse_instanceIds;

            return(createInstancesResponse);
        }
        /// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            CreateInstancesResponse response = new CreateInstancesResponse();

            context.Read();
            int targetDepth = context.CurrentDepth;

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.TestExpression("operations", targetDepth))
                {
                    var unmarshaller = new ListUnmarshaller <Operation, OperationUnmarshaller>(OperationUnmarshaller.Instance);
                    response.Operations = unmarshaller.Unmarshall(context);
                    continue;
                }
            }

            return(response);
        }
Exemplo n.º 3
0
        public void TestCreateInstance()
        {
            InstanceSpec instanceSpec = new InstanceSpec();

            instanceSpec.Az           = "cn-north-1a";
            instanceSpec.InstanceType = "g.s1.micro";
            instanceSpec.ImageId      = "98d44a0f-88c1-451a-8971-f1f769073b6c";
            instanceSpec.Name         = "dotnet-sdk-test";
            instanceSpec.Description  = "dotnet-sdk";

            // 主网卡
            NetworkInterfaceSpec networkInterfaceSpec = new NetworkInterfaceSpec();

            networkInterfaceSpec.SubnetId = "subnet-j0yka3pkcu";
            networkInterfaceSpec.Az       = "cn-north-1a";
            InstanceNetworkInterfaceAttachmentSpec instanceNetworkInterfaceAttachmentSpec = new InstanceNetworkInterfaceAttachmentSpec();

            instanceNetworkInterfaceAttachmentSpec.NetworkInterface = networkInterfaceSpec;
            instanceSpec.PrimaryNetworkInterface = instanceNetworkInterfaceAttachmentSpec;

            // 系统盘
            InstanceDiskAttachmentSpec systemDisk = new InstanceDiskAttachmentSpec();

            systemDisk.DiskCategory = "local";
            instanceSpec.SystemDisk = systemDisk;

            // 数据盘
            InstanceDiskAttachmentSpec dataDisk1 = new InstanceDiskAttachmentSpec();

            dataDisk1.DiskCategory             = "cloud";
            dataDisk1.AutoDelete               = true;
            dataDisk1.CloudDiskSpec            = new DiskSpec();
            dataDisk1.CloudDiskSpec.Name       = "sdk-test-disk1";
            dataDisk1.CloudDiskSpec.DiskSizeGB = 50;
            dataDisk1.CloudDiskSpec.DiskType   = "premium-hdd";

            InstanceDiskAttachmentSpec dataDisk2 = new InstanceDiskAttachmentSpec();

            dataDisk2.DiskCategory             = "cloud";
            dataDisk2.AutoDelete               = true;
            dataDisk2.CloudDiskSpec            = new DiskSpec();
            dataDisk2.CloudDiskSpec.Name       = "sdk-test-disk2";
            dataDisk2.CloudDiskSpec.DiskSizeGB = 40;
            dataDisk2.CloudDiskSpec.DiskType   = "ssd";

            List <InstanceDiskAttachmentSpec> dataDisks = new List <InstanceDiskAttachmentSpec>();

            dataDisks.Add(dataDisk1);
            dataDisks.Add(dataDisk2);
            instanceSpec.DataDisks = dataDisks;

            // 公网IP
            ElasticIpSpec elasticIpSpec = new ElasticIpSpec();

            elasticIpSpec.BandwidthMbps = 2;
            elasticIpSpec.Provider      = "BGP";
            instanceSpec.ElasticIp      = elasticIpSpec;

            // 计费方式
            ChargeSpec chargeSpec = new ChargeSpec();

            chargeSpec.ChargeMode = "postpaid_by_duration";

            // 请求创建
            CreateInstancesRequest request = new CreateInstancesRequest();

            request.RegionId     = "cn-north-1";
            request.InstanceSpec = instanceSpec;
            request.MaxCount     = 1;

            var vmClient = GetVmClient();
            CreateInstancesResponse response = vmClient.CreateInstances(request);


            Console.WriteLine(JsonConvert.SerializeObject(response));
            // Console.WriteLine();
        }