public async Task <ViewResult> CreateWithModel(AmazonWebServiceModel model) { var instanceStartResult = StartAmazonElasticContainer2Instance(model); if (!instanceStartResult.IsSuccessful) { ViewBag.ErrorMessage = instanceStartResult.ErrorMessage; } return(View("Index", FormViewModel.From(model))); }
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} )" }); } }