private static async Task <List <EcsTask> > DescribeTasks( AmazonECSClient ecsClient, string cluster, List <string> taskArns, CancellationToken token) { var include = new List <string> { TaskField.TAGS }; var accumulator = new List <EcsTask>(); // split batch into chunks of 100 requests var lists = taskArns .Select((value, index) => new { value, index }) .GroupBy(x => x.index / 100) .Select(x => x.Select(v => v.value).ToList()); foreach (var arns in lists) { var response = await ecsClient.DescribeTasksAsync(new DescribeTasksRequest { Cluster = cluster, Tasks = arns, Include = include }, token); accumulator.AddRange(response.Tasks); } return(accumulator); }
public void ECSRegisterTaskDefinition() { #region to-register-a-task-definition-1470764550877 var client = new AmazonECSClient(); var response = client.RegisterTaskDefinition(new RegisterTaskDefinitionRequest { ContainerDefinitions = new List <ContainerDefinition> { new ContainerDefinition { Name = "sleep", Command = new List <string> { "sleep", "360" }, Cpu = 10, Essential = true, Image = "busybox", Memory = 10 } }, Family = "sleep360", TaskRoleArn = "", Volumes = new List <Volume> { } }); TaskDefinition taskDefinition = response.TaskDefinition; #endregion }
private static async Task <List <EcsTask> > ResolveTasks( AmazonECSClient ecsClient, string cluster, string serviceName, List <Tag> tags, CancellationToken token) { var taskArns = await ListTaskArns(ecsClient, cluster, serviceName, token); var tasks = await DescribeTasks(ecsClient, cluster, taskArns, token); var tasksWithTags = tasks.Where(task => { foreach (var tag in tags) { if (task.Tags.Any(t => t.Key == tag.Key && t.Value == tag.Value)) { return(false); } } return(true); } ).ToList(); return(tasksWithTags); }
private static async Task <List <string> > ListTaskArns( AmazonECSClient ecsClient, string cluster, string serviceName, CancellationToken token) { var listTaskRequest = new ListTasksRequest { Cluster = cluster, ServiceName = serviceName, DesiredStatus = DesiredStatus.RUNNING }; var accumulator = new List <string>(); do { var listTaskResult = await ecsClient.ListTasksAsync(listTaskRequest, token); accumulator.AddRange(listTaskResult.TaskArns); listTaskRequest.NextToken = listTaskResult.NextToken; } while (listTaskRequest.NextToken != null); return(accumulator); }
private string RunNewTask(string input) { string result = "Success - "; try { //Create task request RunTaskRequest taskRequest = CreateTaskRequest(); taskRequest.Overrides.ContainerOverrides[0].Name = CONTAINER_NAME;// "BatchService"; taskRequest.Overrides.ContainerOverrides[0].Environment.Add(new Amazon.ECS.Model.KeyValuePair() { Name = "APP_PARAM", Value = input }); //Run the task AmazonECSClient ecsClient = new AmazonECSClient(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY); Task <RunTaskResponse> response = ecsClient.RunTaskAsync(taskRequest); //Collect response data result += BuildResponseData(response); } catch (Exception ex) { result = "Fail - msg:" + ex.Message + " stack:" + ex.StackTrace + " source:" + ex.Source + " data:" + ex.ToString(); } return(result); }
public WebAppWithDockerFileTests() { _httpHelper = new HttpHelper(); var cloudFormationClient = new AmazonCloudFormationClient(); _cloudFormationHelper = new CloudFormationHelper(cloudFormationClient); var ecsClient = new AmazonECSClient(); _ecsHelper = new ECSHelper(ecsClient); var serviceCollection = new ServiceCollection(); serviceCollection.AddCustomServices(); serviceCollection.AddTestServices(); var serviceProvider = serviceCollection.BuildServiceProvider(); _app = serviceProvider.GetService <App>(); Assert.NotNull(_app); _interactiveService = serviceProvider.GetService <InMemoryInteractiveService>(); Assert.NotNull(_interactiveService); _testAppManager = new TestAppManager(); }
public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems) { AmazonECSConfig config = new AmazonECSConfig(); config.RegionEndpoint = region; ConfigureClient(config); AmazonECSClient client = new AmazonECSClient(creds, config); ListServicesResponse resp = new ListServicesResponse(); do { ListServicesRequest req = new ListServicesRequest { NextToken = resp.NextToken , MaxResults = maxItems }; resp = client.ListServices(req); CheckError(resp.HttpStatusCode, "200"); foreach (var obj in resp.ServiceArns) { AddObject(obj); } }while (!string.IsNullOrEmpty(resp.NextToken)); }
internal static void WriteContainers(DateTime captureTime, string accountId, RegionEndpoint regionEndPoint) { try { var ecsClient = new AmazonECSClient(regionEndPoint); var listClusterResponse = ecsClient.ListClusters(new ListClustersRequest { MaxResults = 100 }); foreach (var cluster in listClusterResponse.ClusterArns) { var ecsResponse = ecsClient.DescribeContainerInstances(new DescribeContainerInstancesRequest { Cluster = cluster }); foreach (var ecs in ecsResponse.ContainerInstances) { string ecsJson = JsonConvert.SerializeObject(ecs); Common.UpdateTopology(captureTime, accountId, regionEndPoint.SystemName, "ecs", ecs.Ec2InstanceId, ecsJson, "UPDATE"); } } } catch (Exception ex) { //Log.Error("Exception occured while reading containers", ex); Log.InfoFormat("Error reading containers: {0}", ex.Message); } }
/// <summary> /// Gets cluster instances AWS arns /// </summary> /// <returns></returns> private async Task <List <string> > GetAwsClusterInstancesArns() { string awsRegion = context.AppSettings.SettingsConfig.AwsRegion; string awsCluster = context.AppSettings.SettingsConfig.AwsClusterName; AmazonECSClient ecs = new AmazonECSClient(Amazon.RegionEndpoint.GetBySystemName(awsRegion)); ecsModel.ListContainerInstancesRequest clusterRequest = new ecsModel.ListContainerInstancesRequest(); clusterRequest.Cluster = awsCluster; var items = await ecs.ListContainerInstancesAsync(clusterRequest); return(items.ContainerInstanceArns); }
public void ECSListTaskDefinitions() { #region b381ebaf-7eba-4d60-b99b-7f6ae49d3d60 var client = new AmazonECSClient(); var response = client.ListTaskDefinitions(new ListTaskDefinitionsRequest { }); List <string> taskDefinitionArns = response.TaskDefinitionArns; #endregion }
public void ECSListTaskDefinitionFamilies() { #region b5c89769-1d94-4ca2-a79e-8069103c7f75 var client = new AmazonECSClient(); var response = client.ListTaskDefinitionFamilies(new ListTaskDefinitionFamiliesRequest { }); List <string> families = response.Families; #endregion }
public void ECSListServices() { #region 1d9a8037-4e0e-4234-a528-609656809a3a var client = new AmazonECSClient(); var response = client.ListServices(new ListServicesRequest { }); List <string> serviceArns = response.ServiceArns; #endregion }
public void ECSListClusters() { #region e337d059-134f-4125-ba8e-4f499139facf var client = new AmazonECSClient(); var response = client.ListClusters(new ListClustersRequest { }); List <string> clusterArns = response.ClusterArns; #endregion }
/// <summary> /// Gets a list of instance ids from a cluster and instance arns /// </summary> /// <param name="arns"></param> /// <returns></returns> private async Task <List <string> > GetAwsClusterInstancesIds(List <string> arns) { string awsRegion = context.AppSettings.SettingsConfig.AwsRegion; string awsCluster = context.AppSettings.SettingsConfig.AwsClusterName; AmazonECSClient ecs = new AmazonECSClient(Amazon.RegionEndpoint.GetBySystemName(awsRegion)); ecsModel.DescribeContainerInstancesRequest clusterRequest = new ecsModel.DescribeContainerInstancesRequest(); clusterRequest.Cluster = awsCluster; clusterRequest.ContainerInstances = arns; var items = await ecs.DescribeContainerInstancesAsync(clusterRequest); return(items.ContainerInstances.Where(t => t.RunningTasksCount > 0).Select(t => t.Ec2InstanceId).ToList()); }
public void ECSDeleteService() { #region e8183e38-f86e-4390-b811-f74f30a6007d var client = new AmazonECSClient(); var response = client.DeleteService(new DeleteServiceRequest { Service = "my-http-service" }); #endregion }
public void ECSListTasks() { #region 9a6ec707-1a77-45d0-b2eb-516b5dd9e924 var client = new AmazonECSClient(); var response = client.ListTasks(new ListTasksRequest { Cluster = "default" }); List <string> taskArns = response.TaskArns; #endregion }
public void ECSCreateCluster() { #region to-create-a-new-cluster-1472514079365 var client = new AmazonECSClient(); var response = client.CreateCluster(new CreateClusterRequest { ClusterName = "my_cluster" }); Cluster cluster = response.Cluster; #endregion }
protected IAmazonECS CreateClient(AWSCredentials credentials, RegionEndpoint region) { var config = new AmazonECSConfig { RegionEndpoint = region }; Amazon.PowerShell.Utils.Common.PopulateConfig(this, config); this.CustomizeClientConfig(config); var client = new AmazonECSClient(credentials, config); client.BeforeRequestEvent += RequestEventHandler; client.AfterResponseEvent += ResponseEventHandler; return(client); }
public void ECSDescribeTaskDefinition() { #region 4c21eeb1-f1da-4a08-8c44-297fc8d0ea88 var client = new AmazonECSClient(); var response = client.DescribeTaskDefinition(new DescribeTaskDefinitionRequest { TaskDefinition = "hello_world:8" }); TaskDefinition taskDefinition = response.TaskDefinition; #endregion }
public void ECSListAccountSettings() { #region to-view-your-account-settings-1549524118170 var client = new AmazonECSClient(); var response = client.ListAccountSettings(new ListAccountSettingsRequest { EffectiveSettings = true }); List <Setting> settings = response.Settings; #endregion }
public void ECSListContainerInstances() { #region 62a82a94-713c-4e18-8420-1d2b2ba9d484 var client = new AmazonECSClient(); var response = client.ListContainerInstances(new ListContainerInstancesRequest { Cluster = "default" }); List <string> containerInstanceArns = response.ContainerInstanceArns; #endregion }
public void ECSListTagsForResource() { #region to-list-the-tags-for-a-cluster-1540582700259 var client = new AmazonECSClient(); var response = client.ListTagsForResource(new ListTagsForResourceRequest { ResourceArn = "arn:aws:ecs:region:aws_account_id:cluster/dev" }); List <Tag> tags = response.Tags; #endregion }
public void ECSListTaskDefinitionFamilies() { #region 8a4cf9a6-42c1-4fe3-852d-99ac8968e11b var client = new AmazonECSClient(); var response = client.ListTaskDefinitionFamilies(new ListTaskDefinitionFamiliesRequest { FamilyPrefix = "hpcc" }); List <string> families = response.Families; #endregion }
public void ECSDeleteAccountSetting() { #region to-delete-the-account-setting-for-your-user-account-1549524548115 var client = new AmazonECSClient(); var response = client.DeleteAccountSetting(new DeleteAccountSettingRequest { Name = "serviceLongArnFormat" }); Setting setting = response.Setting; #endregion }
public void ECSUpdateService() { #region 9581d6c5-02e3-4140-8cc1-5a4301586633 var client = new AmazonECSClient(); var response = client.UpdateService(new UpdateServiceRequest { DesiredCount = 10, Service = "my-http-service" }); #endregion }
public void ECSUpdateService() { #region cc9e8900-0cc2-44d2-8491-64d1d3d37887 var client = new AmazonECSClient(); var response = client.UpdateService(new UpdateServiceRequest { Service = "my-http-service", TaskDefinition = "amazon-ecs-sample" }); #endregion }
public void ECSListTaskDefinitions() { #region 734e7afd-753a-4bc2-85d0-badddce10910 var client = new AmazonECSClient(); var response = client.ListTaskDefinitions(new ListTaskDefinitionsRequest { FamilyPrefix = "wordpress" }); List <string> taskDefinitionArns = response.TaskDefinitionArns; #endregion }
public void ECSDeleteCluster() { #region to-delete-an-empty-cluster-1472512705352 var client = new AmazonECSClient(); var response = client.DeleteCluster(new DeleteClusterRequest { Cluster = "my_cluster" }); Cluster cluster = response.Cluster; #endregion }
public void ECSRunTask() { #region 6f238c83-a133-42cd-ab3d-abeca0560445 var client = new AmazonECSClient(); var response = client.RunTask(new RunTaskRequest { Cluster = "default", TaskDefinition = "sleep360:1" }); List <Task> tasks = response.Tasks; #endregion }
public void ECSDeleteAccountSetting() { #region to-delete-the-account-setting-for-a-specific-iam-user-or-iam-role-1549524612917 var client = new AmazonECSClient(); var response = client.DeleteAccountSetting(new DeleteAccountSettingRequest { Name = "containerInstanceLongArnFormat", PrincipalArn = "arn:aws:iam::<aws_account_id>:user/principalName" }); Setting setting = response.Setting; #endregion }