An example code in .net of AWS EC2
来源:互联网 发布:linux deploy使用教程 编辑:程序博客网 时间:2024/05/12 10:03
using System;using System.Configuration;using System.Collections.Specialized;using System.IO;using System.Linq;using System.Text;using Amazon;using Amazon.EC2;using Amazon.EC2.Model;using Amazon.SimpleDB;using Amazon.SimpleDB.Model;using Amazon.S3;using Amazon.S3.Model;using System.Collections.Generic;using System.Threading;namespace ec2TestforAE{ class Program { public static void Main(string[] args) { //Console.Write(GetServiceOutput()); ec2test(); Console.Read(); } public static void ec2test() { String instanceID = ""; NameValueCollection appConfig = ConfigurationManager.AppSettings; AmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client(appConfig["AWSAccessKey"],appConfig["AWSSecretKey"]); // describe existed instance DescribeInstancesRequest ec2DescribeInstancesRequest = new DescribeInstancesRequest(); try { DescribeInstancesResponse ec2DescribeInstancesResponse = ec2.DescribeInstances(ec2DescribeInstancesRequest); int numOfInstances = ec2DescribeInstancesResponse.DescribeInstancesResult.Reservation.Count; Console.WriteLine("Num of instance:" + numOfInstances); } catch (Exception ex) { Console.WriteLine("Error:" + ex.ToString()); } Console.WriteLine("sleep 2s"); Thread.Sleep(2000); // run instance String imageID = ""; // here should set up imageid RunInstancesRequest ec2RunInstancesRequest = new RunInstancesRequest().WithImageId(imageID); try { RunInstancesResponse ec2RunInstancesResponse = ec2.RunInstances(ec2RunInstancesRequest); instanceID = ec2RunInstancesResponse.RunInstancesResult.Reservation.ReservationId; } catch (Exception ex) { Console.WriteLine("Error:" + ex.ToString()); } Console.WriteLine("sleep 20s"); Thread.Sleep(20000); // start an instance StartInstancesRequest ec2StartInstancesRequest = new StartInstancesRequest().WithInstanceId(instanceID); try { StartInstancesResponse ec2StartInstancesResponse = ec2.StartInstances(ec2StartInstancesRequest); StartInstancesResult ec2StartInstancesResult = ec2StartInstancesResponse.StartInstancesResult; if (ec2StartInstancesResult.IsSetStartingInstances()) { List<InstanceStateChange> instances = ec2StartInstancesResult.StartingInstances; foreach (InstanceStateChange instance in instances) { instanceID = instance.InstanceId; } } Console.WriteLine("Instance is started with instance ID:" + instanceID); } catch (Exception ex) { Console.WriteLine("Error:" + ex.ToString()); } Console.WriteLine("sleep 120s"); Thread.Sleep(120000); // check running instance RunningInstance runningInstance = new RunningInstance().WithInstanceId(instanceID); try { Console.WriteLine("Private IP Address:" + runningInstance.PrivateIpAddress); Console.WriteLine("Public DNS Address:" + runningInstance.PublicDnsName); } catch(Exception ex) { Console.WriteLine("Error:" + ex.ToString()); } Console.WriteLine("sleep 20s"); Thread.Sleep(20000); // shutdown the instance StopInstancesRequest ec2StopInstancesRequest = new StopInstancesRequest().WithInstanceId(instanceID); try { StopInstancesResponse ec2StopInstancesResponse = ec2.StopInstances(ec2StopInstancesRequest); StopInstancesResult ec2StopInstancesResult = ec2StopInstancesResponse.StopInstancesResult; if (ec2StopInstancesResult.IsSetStoppingInstances()) { List<InstanceStateChange> instances = ec2StopInstancesResult.StoppingInstances; foreach (InstanceStateChange instance in instances) { instanceID = instance.InstanceId; } Console.WriteLine("Instance is stopped with instance ID:" + instanceID); } } catch (Exception ex) { Console.WriteLine("Error:" + ex.ToString()); } Console.WriteLine("sleep 60s"); Thread.Sleep(60000); //check number of instance ec2DescribeInstancesRequest = new DescribeInstancesRequest(); try { DescribeInstancesResponse ec2DescribeInstancesResponse = ec2.DescribeInstances(ec2DescribeInstancesRequest); int numOfInstances = ec2DescribeInstancesResponse.DescribeInstancesResult.Reservation.Count; Console.WriteLine("Num of instance:" + numOfInstances); } catch (Exception ex) { Console.WriteLine("Error:" + ex.ToString()); } Console.WriteLine("This is the end of EC2 test."); } }}