コード例 #1
0
        public async Task <ViewResult> CreateWithModel(AmazonWebServiceModel model)
        {
            var instanceStartResult = StartAmazonElasticContainer2Instance(model);

            if (!instanceStartResult.IsSuccessful)
            {
                ViewBag.ErrorMessage = instanceStartResult.ErrorMessage;
            }
            return(View("Index", FormViewModel.From(model)));
        }
コード例 #2
0
        private OperationResult StartAmazonElasticContainer2Instance(AmazonWebServiceModel model)
        {
            try
            {
                BasicAWSCredentials credentials = new BasicAWSCredentials(model.AcessKey, model.SecretKey);
                var awsConnection = new AmazonEC2Client(credentials, RegionEndpoint.USEast1);
                var amazonImageId = "ami-0472e9821a913b9b9";
                var keyPairName   = "Teste";
                var groups        = new List <string>()
                {
                    "sg-0f4b34f09a4cdb524"
                };
                var subnetId = "subnet-f7cf54d6";

                var elasticNetworkInterfaces = new List <InstanceNetworkInterfaceSpecification>()
                {
                    new InstanceNetworkInterfaceSpecification()
                    {
                        DeviceIndex = 0,
                        SubnetId    = subnetId,
                        Groups      = groups,
                        AssociatePublicIpAddress = true
                    }
                };


                var launchRequest = new RunInstancesRequest()
                {
                    ImageId           = amazonImageId,
                    InstanceType      = "t2.micro",
                    MinCount          = 1,
                    MaxCount          = 1,
                    KeyName           = keyPairName,
                    NetworkInterfaces = elasticNetworkInterfaces
                };

                awsConnection.RunInstancesAsync(launchRequest);
                ViewBag.errorMessage = "Instance initiated";
                return(new OperationResult()
                {
                    IsSuccessful = true
                });
            }
            catch (Exception e)
            {
                return(new OperationResult()
                {
                    IsSuccessful = false,
                    ErrorMessage = $"Instance failed ( Error: {e.Message} )"
                });
            }
        }