public LogAutoscalingEvent(IElasticLowLevelClient es, IAmazonAutoScaling asg, LogToElasticsearch logToEs) : base(request => (from asgEvent in Observable.Return(request) let asgName = asgEvent.SelectToken("detail.AutoScalingGroupName")?.Value <string>() where !string.IsNullOrEmpty(asgName) let describeRequest = new DescribeAutoScalingGroupsRequest { AutoScalingGroupNames = new List <string> { asgName } } from describeResponse in asg.DescribeAutoScalingGroupsAsync(describeRequest) from description in describeResponse.AutoScalingGroups let tags = description.Tags let app = tags.GetValue("repo") ?? tags.GetValue("Application") ?? tags.GetValue("app") let env = tags.GetValue("env") ?? tags.GetValue("Environment") let sha = tags.GetValue("sha") let log = new { Name = asgEvent["detail-type"]?.Value <string>(), RequestId = asgName, Message = asgEvent } let time = asgEvent["time"].Value <DateTime>() let alteredLog = new AlteredLog { Time = time, Repo = app, Env = env, Sha = sha, Log = JObject.FromObject(log, AlteredJson.DefaultJsonSerializer) } from response in logToEs.Execute(alteredLog) select response).ToTask()) { }
public AutoScalingGroupSource(IAmazonAutoScaling client) { if (client == null) { throw new ArgumentNullException(nameof(client)); } _client = client; }
internal AZFailover(string vpcId, string azId, Amazon.RegionEndpoint region = null) { this.vpcId = vpcId; this.azName = azId; if (region == null) { region = Amazon.RegionEndpoint.USEast2; } ec2Client = new AmazonEC2Client(region); rdsClient = new AmazonRDSClient(region); asClient = new AmazonAutoScalingClient(region); }
public static void GetTopology() { IAmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client(); IAmazonAutoScaling asg = AWSClientFactory.CreateAmazonAutoScalingClient(); IAmazonElasticLoadBalancing elb = AWSClientFactory.CreateAmazonElasticLoadBalancingClient(); DescribeVpcsResponse vpcResponse = ec2.DescribeVpcs(); WriteFile("vpcs.csv", vpcResponse.Vpcs); DescribeInstancesResponse instanceResponse = ec2.DescribeInstances(); var reservationIndex = 0; foreach (var reservation in instanceResponse.Reservations) { if (reservationIndex == 0) { WriteFile("instances.csv", reservation.Instances); } else { AppendFile("instances.csv", reservation.Instances); } reservationIndex++; } DescribeNetworkAclsResponse naclResponse = ec2.DescribeNetworkAcls(); WriteFile("nacls.csv", naclResponse.NetworkAcls); Amazon.EC2.Model.DescribeTagsResponse tagsResponse = ec2.DescribeTags(); WriteFile("tags.csv", tagsResponse.Tags); DescribeVolumesResponse volumesResponse = ec2.DescribeVolumes(); WriteFile("volumes.csv", volumesResponse.Volumes); DescribeLoadBalancersResponse elbResponse = elb.DescribeLoadBalancers(); WriteFile("elbs.csv", elbResponse.LoadBalancerDescriptions); DescribeInternetGatewaysResponse igResponse = ec2.DescribeInternetGateways(); WriteFile("igs.csv", igResponse.InternetGateways); }
private Amazon.AutoScaling.Model.PutWarmPoolResponse CallAWSServiceOperation(IAmazonAutoScaling client, Amazon.AutoScaling.Model.PutWarmPoolRequest request) { Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "AWS Auto Scaling", "PutWarmPool"); try { #if DESKTOP return(client.PutWarmPool(request)); #elif CORECLR return(client.PutWarmPoolAsync(request).GetAwaiter().GetResult()); #else #error "Unknown build edition" #endif } catch (AmazonServiceException exc) { var webException = exc.InnerException as System.Net.WebException; if (webException != null) { throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException); } throw; } }
public static void InvokeDescribeAutoScalingGroups() { NameValueCollection appConfig = ConfigurationManager.AppSettings; // Print the number of Auto Scaling triggers. IAmazonAutoScaling autoscaling = AWSClientFactory.CreateAmazonAutoScalingClient(RegionEndpoint.USWest2); try { DescribeAutoScalingGroupsResponse asResponse = autoscaling.DescribeAutoScalingGroups(new DescribeAutoScalingGroupsRequest()); int numAutoScalingGroups = 0; if (asResponse.AutoScalingGroups != null) { numAutoScalingGroups = asResponse.AutoScalingGroups.Count; } Console.WriteLine("You have " + numAutoScalingGroups + " Auto Scaling group(s)."); } catch (AmazonAutoScalingException ex) { if (ex.ErrorCode.Equals("OptInRequired")) { Console.WriteLine("You are not signed for Amazon EC2."); Console.WriteLine("You can sign up at http://aws.amazon.com/ec2."); } else { Console.WriteLine("Caught Exception: " + ex.Message); Console.WriteLine("Response Status Code: " + ex.StatusCode); Console.WriteLine("Error Code: " + ex.ErrorCode); Console.WriteLine("Error Type: " + ex.ErrorType); Console.WriteLine("Request ID: " + ex.RequestId); } } Console.WriteLine(); }
internal DescribeTagsPaginator(IAmazonAutoScaling client, DescribeTagsRequest request) { this._client = client; this._request = request; }
internal DescribeNotificationConfigurationsPaginator(IAmazonAutoScaling client, DescribeNotificationConfigurationsRequest request) { this._client = client; this._request = request; }
internal AutoScalingPaginatorFactory(IAmazonAutoScaling client) { this.client = client; }
protected override void ProcessRecord() { base.ProcessRecord(); Client = CreateClient(_CurrentCredentials, _RegionEndpoint); }
internal DescribeScheduledActionsPaginator(IAmazonAutoScaling client, DescribeScheduledActionsRequest request) { this._client = client; this._request = request; }
public LaunchConfigurationService(IAmazonAutoScaling autoScalingClient) { _autoScalingClient = autoScalingClient; }