public List <Reservation> ListAllInstances() { var describeInstancesRequest = new DescribeInstancesRequest(); var describeInstancesResponse = amazonEc2.DescribeInstances(describeInstancesRequest); return(describeInstancesResponse.DescribeInstancesResult.Reservation); }
/// <summary> /// Get list of running instances in region for /// web service URL in application config /// </summary> /// <returns></returns> static private List <RunningInstance> GetRunningInstances() { AppConfig.Refresh(); AmazonEC2Config config = new AmazonEC2Config(); config.ServiceURL = AppConfig.AWSServiceURL; AmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client( AppConfig.AWSAccessKey, AppConfig.AWSSecretKey, config ); //list of running instances List <RunningInstance> runningInstancesList = new List <RunningInstance>(); DescribeInstancesResult serviceResult; if (!string.IsNullOrEmpty(AppConfig.FilterByTag)) { RunningInstance currentInstance = GetCurrentInstance(ec2); String currentInstancegroupvalue = GetCurrentInstanceGroupValue(currentInstance); // ask service for descriptions serviceResult = ec2.DescribeInstances(new DescribeInstancesRequest().WithFilter(new Filter().WithName("tag:" + AppConfig.FilterByTag).WithValue(currentInstancegroupvalue))).DescribeInstancesResult; } else { serviceResult = ec2.DescribeInstances(new DescribeInstancesRequest()).DescribeInstancesResult; } if (serviceResult.IsSetReservation()) { //reservation is a group of instances launched from the same console List <Reservation> reservationList = serviceResult.Reservation; foreach (Reservation reservation in reservationList) { if (reservation.IsSetRunningInstance()) { //with all instances in reservation //This list contains not only running instances List <RunningInstance> instancesList = reservation.RunningInstance; foreach (RunningInstance instance in instancesList) { //include in result only really running ones if (RUNNING_STATE == instance.InstanceState.Code) { runningInstancesList.Add(instance); } } } } } return(runningInstancesList); }
private RunningInstance GetRunningInstance(AmazonEC2 ec2Client, string instanceId) { var describeInstancesResponse = ec2Client.DescribeInstances(new DescribeInstancesRequest().WithInstanceId(instanceId)); return(describeInstancesResponse.DescribeInstancesResult.Reservation[0].RunningInstance.Find( r => r.InstanceId == instanceId)); }
private static RunningInstance WaitForInstanceToStartUp(AmazonEC2 ec2Client, string instanceId) { var describeRequest = new DescribeInstancesRequest() { InstanceId = new List <string>() { instanceId } }; for (int tries = 0; tries < 40; tries++) { Thread.Sleep(10 * 1000); var result = ec2Client.DescribeInstances(describeRequest).DescribeInstancesResult; if (result.Reservation.Count != 1 && result.Reservation[0].RunningInstance.Count != 1) { return(null); } RunningInstance instance = result.Reservation[0].RunningInstance[0]; // Return the updated instance object if we're out of pending if (!instance.InstanceState.Name.Equals("pending")) { return(instance); } } return(null); }
public static bool CheckConnection() { try { AmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client( App.Settings.AWSAccessKey, App.Settings.AWSSecretKey, new AmazonEC2Config { ServiceURL = App.Settings.ServiceUrl } ); ec2.DescribeInstances(new DescribeInstancesRequest()); return(true); } catch (AmazonEC2Exception ex) { string message = ex.Message + "\r\n" + "Response Status Code: " + ex.StatusCode + "\r\n" + "Error Code: " + ex.ErrorCode + "\r\n" + "Error Type: " + ex.ErrorType + "\r\n" + "Request ID: " + ex.RequestId; ExceptionDialog.Show(new AmazonEC2Exception(message, ex)); return(false); } catch (Exception ex) { ExceptionDialog.Show(ex); return(false); } }
public static List <Instance> GetInstances() { try { var result = new List <Instance>(); AmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client( App.Settings.AWSAccessKey, App.Settings.AWSSecretKey, new AmazonEC2Config { ServiceURL = App.Settings.ServiceUrl } ); var ec2Response = ec2.DescribeInstances(new DescribeInstancesRequest()); foreach (var image in ec2Response.DescribeInstancesResult.Reservation.SelectMany(a => a.RunningInstance)) { var nameTag = image.Tag.Where(t => t.Key == "Name").FirstOrDefault(); var name = nameTag != null ? nameTag.Value : image.InstanceId; var instance = new Instance() { Id = image.InstanceId, Name = name, StateName = image.InstanceState.Name, State = (InstatnceStates)image.InstanceState.Code, PublicIp = image.IpAddress, PrivateIp = image.PrivateIpAddress, InstanceType = image.InstanceType, PublicDnsName = image.PublicDnsName, PrivateDnsName = image.PrivateDnsName }; if (!Enum.IsDefined(typeof(InstatnceStates), instance.State)) { instance.State = InstatnceStates.Unknown; } result.Add(instance); } return(result.OrderBy(a => a.Name).ToList()); } catch (AmazonEC2Exception ex) { string message = ex.Message + "\r\n" + "Response Status Code: " + ex.StatusCode + "\r\n" + "Error Code: " + ex.ErrorCode + "\r\n" + "Error Type: " + ex.ErrorType + "\r\n" + "Request ID: " + ex.RequestId; throw new AmazonEC2Exception(message, ex); } }
private void WriteEC2Info() { StringBuilder output = new StringBuilder(); DescribeInstancesRequest ec2Request = new DescribeInstancesRequest(); DescribeInstancesResponse ec2Response = ec2.DescribeInstances(ec2Request); foreach (Reservation reservation in ec2Response.DescribeInstancesResult.Reservation) { foreach (RunningInstance instance in reservation.RunningInstance) { output.AppendFormat("<li>{0}</li>", instance.InstanceId); } } this.ec2Placeholder.Text = output.ToString(); }
/// <summary> /// Get current instance /// </summary> /// <returns>Current instance or NULL if instance not found</returns> public static RunningInstance GetCurrentInstance(AmazonEC2 ec2) { DescribeInstancesResult serviceResult = ec2.DescribeInstances(new DescribeInstancesRequest()).DescribeInstancesResult; foreach (Reservation reservation in serviceResult.Reservation) { // these are not only really running ones... foreach (RunningInstance instance in reservation.RunningInstance) { // deal only with really running instances if (instance.InstanceState.Code == RUNNING_STATE && CheckIpAddress(instance.PrivateIpAddress)) { return(instance); } } } return(null); }
public static string GetServiceOutput() { StringBuilder sb = new StringBuilder(1024); using (StringWriter sr = new StringWriter(sb)) { sr.WriteLine("==========================================="); sr.WriteLine("Welcome to the AWS .NET SDK!"); sr.WriteLine("==========================================="); // Print the number of Amazon EC2 instances. AmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client(); DescribeInstancesRequest ec2Request = new DescribeInstancesRequest(); try { DescribeInstancesResponse ec2Response = ec2.DescribeInstances(ec2Request); int numInstances = 0; numInstances = ec2Response.DescribeInstancesResult.Reservation.Count; sr.WriteLine("You have " + numInstances + " Amazon EC2 instance(s) running in the US-East (Northern Virginia) region."); } catch (AmazonEC2Exception ex) { if (ex.ErrorCode != null && ex.ErrorCode.Equals("AuthFailure")) { sr.WriteLine("The account you are using is not signed up for Amazon EC2."); sr.WriteLine("You can sign up for Amazon EC2 at http://aws.amazon.com/ec2"); } else { sr.WriteLine("Caught Exception: " + ex.Message); sr.WriteLine("Response Status Code: " + ex.StatusCode); sr.WriteLine("Error Code: " + ex.ErrorCode); sr.WriteLine("Error Type: " + ex.ErrorType); sr.WriteLine("Request ID: " + ex.RequestId); sr.WriteLine("XML: " + ex.XML); } } sr.WriteLine(); // Print the number of Amazon SimpleDB domains. AmazonSimpleDB sdb = AWSClientFactory.CreateAmazonSimpleDBClient(); ListDomainsRequest sdbRequest = new ListDomainsRequest(); try { ListDomainsResponse sdbResponse = sdb.ListDomains(sdbRequest); if (sdbResponse.IsSetListDomainsResult()) { int numDomains = 0; numDomains = sdbResponse.ListDomainsResult.DomainName.Count; sr.WriteLine("You have " + numDomains + " Amazon SimpleDB domain(s) in the US-East (Northern Virginia) region."); } } catch (AmazonSimpleDBException ex) { if (ex.ErrorCode != null && ex.ErrorCode.Equals("AuthFailure")) { sr.WriteLine("The account you are using is not signed up for Amazon SimpleDB."); sr.WriteLine("You can sign up for Amazon SimpleDB at http://aws.amazon.com/simpledb"); } else { sr.WriteLine("Caught Exception: " + ex.Message); sr.WriteLine("Response Status Code: " + ex.StatusCode); sr.WriteLine("Error Code: " + ex.ErrorCode); sr.WriteLine("Error Type: " + ex.ErrorType); sr.WriteLine("Request ID: " + ex.RequestId); sr.WriteLine("XML: " + ex.XML); } } sr.WriteLine(); // Print the number of Amazon S3 Buckets. AmazonS3 s3Client = AWSClientFactory.CreateAmazonS3Client(); try { ListBucketsResponse response = s3Client.ListBuckets(); int numBuckets = 0; if (response.Buckets != null && response.Buckets.Count > 0) { numBuckets = response.Buckets.Count; } sr.WriteLine("You have " + numBuckets + " Amazon S3 bucket(s) in the US Standard region."); } catch (AmazonS3Exception ex) { if (ex.ErrorCode != null && (ex.ErrorCode.Equals("InvalidAccessKeyId") || ex.ErrorCode.Equals("InvalidSecurity"))) { sr.WriteLine("Please check the provided AWS Credentials."); sr.WriteLine("If you haven't signed up for Amazon S3, please visit http://aws.amazon.com/s3"); } else { sr.WriteLine("Caught Exception: " + ex.Message); sr.WriteLine("Response Status Code: " + ex.StatusCode); sr.WriteLine("Error Code: " + ex.ErrorCode); sr.WriteLine("Request ID: " + ex.RequestId); sr.WriteLine("XML: " + ex.XML); } } sr.WriteLine("Press any key to continue..."); } return(sb.ToString()); }
/// <summary> /// This method will look up the current VPC NAT ami in the region and create an instance in the subnet specified. /// </summary> /// <param name="ec2Client">The ec2client used to create the NAT instance</param> /// <param name="request">The properties used to launch the NAT instance.</param> /// <returns></returns> public static RunningInstance LaunchNATInstance(AmazonEC2 ec2Client, LaunchNATInstanceRequest request) { if (ec2Client == null) { throw new ArgumentNullException("ec2Client"); } if (request == null) { throw new ArgumentNullException("request"); } if (string.IsNullOrEmpty(request.SubnetId)) { throw new ArgumentNullException("request.SubnetId"); } if (string.IsNullOrEmpty(request.InstanceType)) { throw new ArgumentNullException("request.InstanceType"); } List <Filter> filters = new List <Filter>() { new Filter() { Name = "architecture", Value = new List <string>() { "x86_64" } }, new Filter() { Name = "name", Value = new List <string>() { "ami-vpc-nat-*.x86_64-ebs" } } }; DescribeImagesResponse imageResponse = ec2Client.DescribeImages(new DescribeImagesRequest() { Filter = filters }); var image = ImageUtilities.FindImage(ec2Client, ImageUtilities.VPC_NAT); if (image == null) { throw new AmazonEC2Exception("No NAT image found in this region"); } RunInstancesRequest runRequest = new RunInstancesRequest() { InstanceType = request.InstanceType, KeyName = request.KeyName, ImageId = image.ImageId, MinCount = 1, MaxCount = 1, SubnetId = request.SubnetId }; RunInstancesResponse runResponse = ec2Client.RunInstances(runRequest); string instanceId = runResponse.RunInstancesResult.Reservation.RunningInstance[0].InstanceId; // Can't associated elastic IP address until the instance is available WaitForInstanceToStartUp(ec2Client, instanceId); ModifyInstanceAttributeRequest modifyRequest = new ModifyInstanceAttributeRequest() { InstanceId = instanceId, Attribute = "sourceDestCheck", Value = "false" }; ec2Client.ModifyInstanceAttribute(modifyRequest); ec2Client.CreateTags(new CreateTagsRequest() { ResourceId = new List <string>() { instanceId }, Tag = new List <Tag>() { new Tag() { Key = "Name", Value = "NAT" } } }); var allocationId = ec2Client.AllocateAddress(new AllocateAddressRequest() { Domain = "vpc" }).AllocateAddressResult.AllocationId; ec2Client.AssociateAddress(new AssociateAddressRequest() { InstanceId = instanceId, AllocationId = allocationId }); var instance = ec2Client.DescribeInstances(new DescribeInstancesRequest() { InstanceId = new List <string>() { instanceId } }).DescribeInstancesResult.Reservation[0].RunningInstance[0]; return(instance); }
/// <summary> /// This method will look up the current VPC NAT ami in the region and create an instance in the subnet specified. /// </summary> /// <param name="ec2Client">The ec2client used to create the NAT instance</param> /// <param name="request">The properties used to launch the NAT instance.</param> /// <returns></returns> public static RunningInstance LaunchNATInstance(AmazonEC2 ec2Client, LaunchNATInstanceRequest request) { if (ec2Client == null) throw new ArgumentNullException("ec2Client"); if (request == null) throw new ArgumentNullException("request"); if (string.IsNullOrEmpty(request.SubnetId)) throw new ArgumentNullException("request.SubnetId"); if (string.IsNullOrEmpty(request.InstanceType)) throw new ArgumentNullException("request.InstanceType"); List<Filter> filters = new List<Filter>() { new Filter(){Name = "architecture", Value = new List<string>(){"x86_64"}}, new Filter(){Name = "name", Value = new List<string>(){"ami-vpc-nat-*.x86_64-ebs"}} }; DescribeImagesResponse imageResponse = ec2Client.DescribeImages(new DescribeImagesRequest() { Filter = filters }); var image = ImageUtilities.FindImage(ec2Client, ImageUtilities.VPC_NAT); if (image == null) { throw new AmazonEC2Exception("No NAT image found in this region"); } RunInstancesRequest runRequest = new RunInstancesRequest() { InstanceType = request.InstanceType, KeyName = request.KeyName, ImageId = image.ImageId, MinCount = 1, MaxCount = 1, SubnetId = request.SubnetId }; RunInstancesResponse runResponse = ec2Client.RunInstances(runRequest); string instanceId = runResponse.RunInstancesResult.Reservation.RunningInstance[0].InstanceId; // Can't associated elastic IP address until the instance is available WaitForInstanceToStartUp(ec2Client, instanceId); ModifyInstanceAttributeRequest modifyRequest = new ModifyInstanceAttributeRequest() { InstanceId = instanceId, Attribute = "sourceDestCheck", Value = "false" }; ec2Client.ModifyInstanceAttribute(modifyRequest); ec2Client.CreateTags(new CreateTagsRequest() { ResourceId = new List<string>() { instanceId }, Tag = new List<Tag>() { new Tag() { Key = "Name", Value = "NAT" } } }); var allocationId = ec2Client.AllocateAddress(new AllocateAddressRequest() { Domain = "vpc" }).AllocateAddressResult.AllocationId; ec2Client.AssociateAddress(new AssociateAddressRequest() { InstanceId = instanceId, AllocationId = allocationId }); var instance = ec2Client.DescribeInstances(new DescribeInstancesRequest() { InstanceId = new List<string>() { instanceId } }).DescribeInstancesResult.Reservation[0].RunningInstance[0]; return instance; }
private static RunningInstance WaitForInstanceToStartUp(AmazonEC2 ec2Client, string instanceId) { var describeRequest = new DescribeInstancesRequest() { InstanceId = new List<string>() { instanceId } }; for (int tries = 0; tries < 40; tries++) { Thread.Sleep(10 * 1000); var result = ec2Client.DescribeInstances(describeRequest).DescribeInstancesResult; if (result.Reservation.Count != 1 && result.Reservation[0].RunningInstance.Count != 1) return null; RunningInstance instance = result.Reservation[0].RunningInstance[0]; // Return the updated instance object if we're out of pending if (!instance.InstanceState.Name.Equals("pending")) { return instance; } } return null; }
private RunningInstance GetRunningInstance(AmazonEC2 ec2Client, string instanceId) { var describeInstancesResponse = ec2Client.DescribeInstances(new DescribeInstancesRequest().WithInstanceId(instanceId)); return describeInstancesResponse.DescribeInstancesResult.Reservation[0].RunningInstance.Find( r => r.InstanceId == instanceId); }
public List <CEc2Instance> describeInstances() { List <CEc2Instance> myInstances = new List <CEc2Instance>(); try { DescribeInstancesRequest request = new DescribeInstancesRequest(); DescribeInstancesResponse response = _service.DescribeInstances(request); if (response.IsSetDescribeInstancesResult()) { DescribeInstancesResult describeInstancesResult = response.DescribeInstancesResult; List <Reservation> reservationList = describeInstancesResult.Reservation; foreach (Reservation reservation in reservationList) { List <RunningInstance> runningInstanceList = reservation.RunningInstance; foreach (RunningInstance runningInstance in runningInstanceList) { CEc2Instance inst = new CEc2Instance(); if (runningInstance.IsSetInstanceId()) { inst.instanceId = runningInstance.InstanceId; } if (runningInstance.IsSetImageId()) { inst.imageId = runningInstance.ImageId; } if (runningInstance.IsSetInstanceState()) { InstanceState instanceState = runningInstance.InstanceState; if (instanceState.IsSetName()) { inst.status = instanceState.Name; } } if (runningInstance.IsSetPublicDnsName()) { inst.publicDns = runningInstance.PublicDnsName; } if (runningInstance.IsSetKeyName()) { inst.keyPairName = runningInstance.KeyName; } if (runningInstance.IsSetInstanceType()) { inst.type = runningInstance.InstanceType; } if (runningInstance.IsSetLaunchTime()) { inst.launchTime = runningInstance.LaunchTime; } if (runningInstance.IsSetPlacement()) { if (runningInstance.Placement.IsSetAvailabilityZone()) { inst.zone = runningInstance.Placement.AvailabilityZone; } } if (runningInstance.IsSetPlatform()) { inst.platform = runningInstance.Platform; } myInstances.Add(inst); } } } } catch (AmazonEC2Exception ex) { throw new Exception("Caught Exception: " + ex.XML); } return(myInstances); }
public void launch() { //instance started. if (string.IsNullOrEmpty(_instanceId) == false) { return; } try { RunInstancesRequest request = new RunInstancesRequest(); request.ImageId = _amiId; request.MinCount = 1; request.MaxCount = 1; if (_defaultSecurityGroup == false) { request.SecurityGroup.Add(_securityGroups); } else { if (securitryGroupExistOnServer() == false) { createSecurityGroup(); } request.SecurityGroup.Add(_securityGroups); } string keyPath = CAwsConfig.Instance.getKeyFilePath(_keyPairName); if (string.IsNullOrEmpty(keyPath) == true || File.Exists(keyPath) == false) { if (keyExistOnServer() == false) { createKayPair(); } } request.KeyName = _keyPairName; RunInstancesResponse response = _service.RunInstances(request); if (response.IsSetRunInstancesResult()) { RunInstancesResult runInstancesResult = response.RunInstancesResult; if (runInstancesResult.IsSetReservation()) { if (runInstancesResult.Reservation.RunningInstance[0].IsSetInstanceId()) { _instanceId = runInstancesResult.Reservation.RunningInstance[0].InstanceId; } if (runInstancesResult.Reservation.RunningInstance[0].IsSetPublicDnsName()) { _publicDns = runInstancesResult.Reservation.RunningInstance[0].PublicDnsName; } } } if (string.IsNullOrEmpty(_instanceId) == true) { throw new Exception("No instance id is returned."); } //return after the instance started up bool pending = true; while (pending == true) { System.Threading.Thread.Sleep(5 * 1000); DescribeInstancesRequest describeRequest = new DescribeInstancesRequest(); describeRequest.InstanceId.Add(_instanceId); DescribeInstancesResponse describeResponse = _service.DescribeInstances(describeRequest); DescribeInstancesResult describeResult = describeResponse.DescribeInstancesResult; if (describeResult.Reservation.Count != 1) { throw new Exception("more than one instance with the same id"); } if (describeResult.Reservation[0].RunningInstance.Count != 1) { throw new Exception("more than one running instance has the same id"); } pending = describeResult.Reservation[0].RunningInstance[0].InstanceState.Name != "running"; } } catch (AmazonEC2Exception ex) { throw new Exception("Caught Exception: " + ex.XML); } }
/// <summary> /// The DescribeInstances operation returns information about instances that you /// own. /// If you specify one or more instance IDs, Amazon EC2 returns information for /// those instances. If you do not specify instance IDs, Amazon EC2 returns /// information for all relevant instances. If you specify an invalid instance ID, /// a fault is returned. If you specify an instance that you do not own, it will /// not be included in the returned results. /// Recently terminated instances might appear in the returned results. This /// interval is usually less than one hour. /// /// </summary> /// <param name="service">Instance of AmazonEC2 service</param> /// <param name="request">DescribeInstancesRequest request</param> public static void InvokeDescribeInstances(AmazonEC2 service, DescribeInstancesRequest request) { try { DescribeInstancesResponse response = service.DescribeInstances(request); Console.WriteLine ("Service Response"); Console.WriteLine ("============================================================================="); Console.WriteLine (); Console.WriteLine(" DescribeInstancesResponse"); if (response.IsSetResponseMetadata()) { Console.WriteLine(" ResponseMetadata"); ResponseMetadata responseMetadata = response.ResponseMetadata; if (responseMetadata.IsSetRequestId()) { Console.WriteLine(" RequestId"); Console.WriteLine(" {0}", responseMetadata.RequestId); } } if (response.IsSetDescribeInstancesResult()) { Console.WriteLine(" DescribeInstancesResult"); DescribeInstancesResult describeInstancesResult = response.DescribeInstancesResult; List<Reservation> reservationList = describeInstancesResult.Reservation; foreach (Reservation reservation in reservationList) { Console.WriteLine(" Reservation"); if (reservation.IsSetReservationId()) { Console.WriteLine(" ReservationId"); Console.WriteLine(" {0}", reservation.ReservationId); } if (reservation.IsSetOwnerId()) { Console.WriteLine(" OwnerId"); Console.WriteLine(" {0}", reservation.OwnerId); } if (reservation.IsSetRequesterId()) { Console.WriteLine(" RequesterId"); Console.WriteLine(" {0}", reservation.RequesterId); } List<String> groupNameList = reservation.GroupName; foreach (String groupName in groupNameList) { Console.WriteLine(" GroupName"); Console.WriteLine(" {0}", groupName); } List<RunningInstance> runningInstanceList = reservation.RunningInstance; foreach (RunningInstance runningInstance in runningInstanceList) { Console.WriteLine(" RunningInstance"); if (runningInstance.IsSetInstanceId()) { Console.WriteLine(" InstanceId"); Console.WriteLine(" {0}", runningInstance.InstanceId); } if (runningInstance.IsSetImageId()) { Console.WriteLine(" ImageId"); Console.WriteLine(" {0}", runningInstance.ImageId); } if (runningInstance.IsSetInstanceState()) { Console.WriteLine(" InstanceState"); InstanceState instanceState = runningInstance.InstanceState; if (instanceState.IsSetCode()) { Console.WriteLine(" Code"); Console.WriteLine(" {0}", instanceState.Code); } if (instanceState.IsSetName()) { Console.WriteLine(" Name"); Console.WriteLine(" {0}", instanceState.Name); } } if (runningInstance.IsSetPrivateDnsName()) { Console.WriteLine(" PrivateDnsName"); Console.WriteLine(" {0}", runningInstance.PrivateDnsName); } if (runningInstance.IsSetPublicDnsName()) { Console.WriteLine(" PublicDnsName"); Console.WriteLine(" {0}", runningInstance.PublicDnsName); } if (runningInstance.IsSetStateTransitionReason()) { Console.WriteLine(" StateTransitionReason"); Console.WriteLine(" {0}", runningInstance.StateTransitionReason); } if (runningInstance.IsSetKeyName()) { Console.WriteLine(" KeyName"); Console.WriteLine(" {0}", runningInstance.KeyName); } if (runningInstance.IsSetAmiLaunchIndex()) { Console.WriteLine(" AmiLaunchIndex"); Console.WriteLine(" {0}", runningInstance.AmiLaunchIndex); } List<String> productCodeList = runningInstance.ProductCode; foreach (String productCode in productCodeList) { Console.WriteLine(" ProductCode"); Console.WriteLine(" {0}", productCode); } if (runningInstance.IsSetInstanceType()) { Console.WriteLine(" InstanceType"); Console.WriteLine(" {0}", runningInstance.InstanceType); } if (runningInstance.IsSetLaunchTime()) { Console.WriteLine(" LaunchTime"); Console.WriteLine(" {0}", runningInstance.LaunchTime); } if (runningInstance.IsSetPlacement()) { Console.WriteLine(" Placement"); Placement placement = runningInstance.Placement; if (placement.IsSetAvailabilityZone()) { Console.WriteLine(" AvailabilityZone"); Console.WriteLine(" {0}", placement.AvailabilityZone); } } if (runningInstance.IsSetKernelId()) { Console.WriteLine(" KernelId"); Console.WriteLine(" {0}", runningInstance.KernelId); } if (runningInstance.IsSetRamdiskId()) { Console.WriteLine(" RamdiskId"); Console.WriteLine(" {0}", runningInstance.RamdiskId); } if (runningInstance.IsSetPlatform()) { Console.WriteLine(" Platform"); Console.WriteLine(" {0}", runningInstance.Platform); } } } } } catch (AmazonEC2Exception ex) { Console.WriteLine("Caught Exception: " + ex.Message); Console.WriteLine("Response Status Code: " + ex.StatusCode); Console.WriteLine("Error Code: " + ex.ErrorCode); Console.WriteLine("Error Type: " + ex.ErrorType); Console.WriteLine("Request ID: " + ex.RequestId); Console.WriteLine("XML: " + ex.XML); } }