// snippet-end:[ec2.dotnet.spot_instance_cancel_spot_request] // snippet-start:[ec2.dotnet.spot_instance_terminate_spot_request] /* Terminates a spot instance request * Takes two args: * AmazonEC2Client ec2Client is the EC2 client through which the spot instance is terminated * string spotRequestId is the ID of the spot instance * * See https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/EC2/MEC2TerminateInstancesTerminateInstancesRequest.html */ private static void TerminateSpotInstance( AmazonEC2Client ec2Client, string spotRequestId) { var describeRequest = new DescribeSpotInstanceRequestsRequest(); describeRequest.SpotInstanceRequestIds.Add(spotRequestId); // Retrieve the request we want to monitor. var describeResponse = ec2Client.DescribeSpotInstanceRequestsAsync(describeRequest); if (SpotInstanceState.Active == describeResponse.Result.SpotInstanceRequests[0].State) { string instanceId = describeResponse.Result.SpotInstanceRequests[0].InstanceId; var terminateRequest = new TerminateInstancesRequest(); terminateRequest.InstanceIds = new List <string>() { instanceId }; try { ec2Client.TerminateInstancesAsync(terminateRequest); } catch (AmazonEC2Exception ex) { // Check the ErrorCode to see if the instance does not exist. if ("InvalidInstanceID.NotFound" == ex.ErrorCode) { Console.WriteLine("Instance {0} does not exist.", instanceId); } else { // The exception was thrown for another reason, so re-throw the exception. throw; } } } }
public virtual void failover() { try { DescribeInstancesResponse describeInstancesResult = EC2_CLIENT.DescribeInstancesAsync(new DescribeInstancesRequest() { Filters = new List <Filter> { new Filter { Name = "vpc-id", Values = new List <string> { vpcId } }, new Filter { Name = "instance-state-name", Values = new List <string> { "running" } } } }).GetAwaiter().GetResult(); // Note: This assumes there is one reservation with an instance in it for readability. string instanceId = describeInstancesResult.Reservations[0].Instances[0].InstanceId; Console.WriteLine("Terminating instanceId " + instanceId); var instanceIdentifier = new List <string> { instanceId }; TerminateInstancesRequest terminateInstancesRequest = new TerminateInstancesRequest(); terminateInstancesRequest.InstanceIds = instanceIdentifier; EC2_CLIENT.TerminateInstancesAsync(terminateInstancesRequest); } catch (Exception exception) { Console.WriteLine("Unkown exception occured " + exception.Message); } }
public void TerminateInstance(string instanceId) { var request = new TerminateInstancesRequest(); request.InstanceIds = new List <string>() { instanceId }; try { var response = ec2Client.TerminateInstances(request); foreach (InstanceStateChange item in response.TerminatingInstances) { Console.WriteLine("Terminated instance: " + item.InstanceId); Console.WriteLine("Instance state: " + item.CurrentState.Name); } } catch (AmazonEC2Exception ex) { } }
/// <summary> /// terminates an instance /// </summary> /// <param name="instanceId"></param> /// <param name="ec2Client"></param> /// <returns></returns> private bool TerminateInstance(string instanceId) { bool returnValue = false; using (AmazonEC2Client ec2Client = new AmazonEC2Client()) { TerminateInstancesRequest terminateRequest = new TerminateInstancesRequest(); terminateRequest.InstanceIds = new List <string>() { instanceId }; try { TerminateInstancesResponse terminateResponse = ec2Client.TerminateInstancesAsync(terminateRequest).Result; foreach (InstanceStateChange stateChange in terminateResponse.TerminatingInstances) { if (stateChange.InstanceId.Equals(instanceId, StringComparison.OrdinalIgnoreCase)) { returnValue = true; break; } } } catch (AmazonEC2Exception ec2Error) { if (ec2Error.ErrorCode.CaseInsensitiveContains("InvalidInstanceID.NotFound")) { returnValue = false; } else { throw; } } return(returnValue); } }
public string TerminateInstance(IAmazonEC2 ec2, string instidstr) //terminate ec2 instance { TerminateInstancesRequest Terminatereq; TerminateInstancesResponse TerminateInstancesResponse = null; try { Terminatereq = new TerminateInstancesRequest { InstanceIds = new List <string>() { instidstr } }; TerminateInstancesResponse = ec2.TerminateInstances(Terminatereq); return("Done"); } catch (Exception ex) { return(ex.Message + "\n" + ex.StackTrace); } }
public void TerminateInstances(TerminateInstancesRequest request) { Util.RetryMethod(() => DoTerminateInstances(request), RetryCount); }
public static void TerminateInstance() { List <string> instanceId = new List <string>(); string input = Console.ReadLine(); if (input == "") { Console.WriteLine("Please enter the instance ID then hit 'enter' "); input = Console.ReadLine(); instanceId.Add(input); } while (input != "exit") { Console.WriteLine("Please enter another instance ID then hit 'enter' to enter another ID , if you finished the IDs and want to proceed please type ' exit '"); input = Console.ReadLine(); if (input == "exit") { foreach (string value in instanceId) { Console.WriteLine("The IDs that was entered are : " + " " + value); } Console.WriteLine("please hit enter "); Console.ReadLine(); } else { instanceId.Add(input); } } var ec2Client = new AmazonEC2Client(); var request = new TerminateInstancesRequest(); request.InstanceIds = new List <string>(); request.InstanceIds = instanceId; try { var response = ec2Client.TerminateInstances(request); foreach (InstanceStateChange item in response.TerminatingInstances) { Console.WriteLine("Terminated instance: " + item.InstanceId); Console.WriteLine("Instance state: " + item.CurrentState.Name); } } catch (AmazonEC2Exception ex) { // Check the ErrorCode to see if the instance does not exist. if ("InvalidInstanceID.NotFound" == ex.ErrorCode) { Console.WriteLine("Instance {0} does not exist.", instanceId); } else { // The exception was thrown for another reason, so re-throw the exception. throw; } } }
/// <summary> /// Terminate Instances /// </summary> /// <param name="request">Terminate Instances request</param> /// <returns>Terminate Instances Response from the service</returns> /// <remarks> /// The TerminateInstances operation shuts down one or more instances. This /// operation is idempotent; if you terminate an instance more than once, each call /// will succeed. /// Terminated instances will remain visible after termination (approximately one /// hour). /// /// </remarks> public TerminateInstancesResponse TerminateInstances(TerminateInstancesRequest request) { return(Invoke <TerminateInstancesResponse>("TerminateInstancesResponse.xml")); }