Q3BBjw3PR1WHrjSKd517Filter ASGs: Identify ASGs that are associated with a Launch Configuration
Filter ASGs: Identify ASGs that are associated with a Launch Configuration
There was a problem that the LLM was not able to address. Please rephrase your prompt and try again.
This task involves identifying which ASGs are configured to use launch configurations as their instance management template. This is crucial for assessing the deployment strategy, as launch configurations are immutable and often need to be replaced with updated configurations or migrated to the more flexible launch templates. This helps in managing instance configurations and scaling policies efficiently.
inputs
outputs
import boto3
from botocore.exceptions import ClientError
# Load AWS credentials from a secure source
creds = _get_creds(cred_label)['creds']
access_key = creds['username']
secret_key = creds['password']
def filter_asgs_with_launch_configs(asg_list):
"""
Filter ASGs that are associated with a Launch Configuration.
:param asg_list: List of ASGs fetched from an upstream task.
:return: Filtered list of ASGs with Launch Configurations.
"""
asg_details = []
for asg in asg_list:
if 'LaunchConfigurationName' in asg:
asg_details.append({
'AutoScalingGroupName': asg['AutoScalingGroupName'],
'LaunchConfigurationName': asg['LaunchConfigurationName'],
'Region': asg['Region']
})
return asg_details
def display_asg_details(data):
"""
Display details of ASGs in a structured table format.
:param data: List of filtered ASGs.
"""
if not data:
print("No Auto Scaling Groups with Launch Configurations found.")
return
# Assuming 'context.newtable' creates a new table context in your environment
table = context.newtable()
table.title = "ASG with Launch Configurations"
table.num_cols = 3
table.num_rows = 1
table.has_header_row = True
# Define header names
headers = ["AutoScalingGroupName", "LaunchConfigurationName", "Region"]
for col_num, header in enumerate(headers):
table.setval(0, col_num, header)
# Populate the table with ASG data
for row_num, asg in enumerate(data, start=1):
table.num_rows += 1
values = [
asg["AutoScalingGroupName"],
asg["LaunchConfigurationName"],
asg["Region"]
]
for col_num, value in enumerate(values):
table.setval(row_num, col_num, value)
# Filtering ASGs with Launch Configurations
filtered_asgs = filter_asgs_with_launch_configs(asg_list)
display_asg_details(filtered_asgs)
context.skip_sub_tasks = True
copied
- 1HBJ0gDH9Wt26YazBFB5PDelete AWS EC2 Auto Scaling Groups (ASGs)
1
Delete AWS EC2 Auto Scaling Groups (ASGs)
There was a problem that the LLM was not able to address. Please rephrase your prompt and try again.This task involves removing specified ASGs from the AWS environment. This operation is critical for cleaning up unused or unnecessary resources, managing costs, or decommissioning services.
inputsoutputsimport boto3 from botocore.exceptions import ClientError creds = _get_creds(cred_label)['creds'] access_key = creds['username'] secret_key = creds['password'] def delete_auto_scaling_groups(filtered_asgs): """ Deletes a list of auto scaling groups provided in filtered_asgs. Each ASG dict must contain 'AutoScalingGroupName' and 'Region'. """ for asg in filtered_asgs: region = asg['Region'] asg_name = asg['AutoScalingGroupName'] try: # Initialize the boto3 client for AutoScaling in the specified region client = boto3.client('autoscaling', aws_access_key_id=access_key,aws_secret_access_key=secret_key,region_name=region) # Delete the Auto Scaling group client.delete_auto_scaling_group(AutoScalingGroupName=asg_name, ForceDelete=True) print(f"Successfully requested deletion of ASG: {asg_name} in {region}") except ClientError as e: print(f"Failed to delete ASG: {asg_name} in {region}. Error: {e}") # Example filtered_asgs list #filtered_asgs = [{"AutoScalingGroupName":"test1-asg","AutoScalingGroupARN":"arn:aws:autoscaling:us-east-1:188379622596:autoScalingGroup:4f564e69-b9f3-4d3f-8cfc-5ee7468f1396:autoScalingGroupName/test1-asg","MixedInstancesPolicy":{"LaunchTemplate":{"LaunchTemplateSpecification":{"LaunchTemplateId":"lt-0b4e1233a5006c59b","LaunchTemplateName":"test1-asg-template","Version":"$Default"},"Overrides":[{"InstanceType":"t3.micro"},{"InstanceType":"t3a.micro"}]},"InstancesDistribution":{"OnDemandAllocationStrategy":"prioritized","OnDemandBaseCapacity":0,"OnDemandPercentageAboveBaseCapacity":0,"SpotAllocationStrategy":"price-capacity-optimized"}},"MinSize":0,"MaxSize":0,"DesiredCapacity":0,"DefaultCooldown":300,"AvailabilityZones":["us-east-1a","us-east-1b","us-east-1c"],"LoadBalancerNames":[],"TargetGroupARNs":[],"HealthCheckType":"EC2","HealthCheckGracePeriod":300,"Instances":[],"CreatedTime":"2024-05-27 10:49:04","SuspendedProcesses":[],"VPCZoneIdentifier":"subnet-b8482599,subnet-26325179,subnet-836e58ce","EnabledMetrics":[],"Tags":[],"TerminationPolicies":["Default"],"NewInstancesProtectedFromScaleIn":false,"ServiceLinkedRoleARN":"arn:aws:iam::188379622596:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling","CapacityRebalance":true,"TrafficSources":[],"Region":"us-east-1"}] # Deleting ASGs delete_auto_scaling_groups(filtered_asgs)copied1