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.");        }    }}


原创粉丝点击