Python Forum
Can I Limit Value used by python
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Can I Limit Value used by python
#1
Hello everyone
New user here and VERY new to Python so still learning a lot on it.

In my code below I use this to call an Api using 'Method' and 'Value' parameters. The URL basically acts as the frontend for the user to edit the Min, Max or capcity size of an AutoScaling Group.

For example on the URL they use to call the Api they enter Method3=Min and Value3=2 This works fine and allows the user to input whatever they want into Value2 so they can change the settings of an AutoScaling Group.

If the user makes a mistake and inputs Value as 100 instead of 10 in the URL for example Value3=100, I would not want the Autoscaling Group Max size to change to 100. Therefore is there of editing my script so I can stop that Max size from changing to 100? Like some sort of max size value in the script itself?

To invoke the Api I use PowerShell command lwith the URL

invoke-webrequest -Uri 'https://name-of-api.amazonaws.com/?TagKey=tag-key-name&TagValue=tag-value-name&Method1=Capacity&Value1=1&Method2=Min&Value2=1&Method3=Max&Value3=4' -Headers @{"X-Api-Key"="name-of-api-key"}

As you can see the user has the power to change 'Method3=Max' to have a 'Value3' of 100 if they want

Thanks

import boto3
import botocore
import os
import json
import logging

# Set up logger.
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
# Set up clients.
client = boto3.client('autoscaling')


def handler(event, context):
# Step one: get all AutoScaling Groups.
    response = client.describe_auto_scaling_groups(
        MaxRecords=100
    )

    # Make an empty list for ASG info storage.
    allAutoScaling = [] # empty list of no items.

    # Get the initial results and posts them to CloudWatch logs
    allAutoScaling.append(response['AutoScalingGroups'])
    logger.info(allAutoScaling)

    # If 'Marker' is present in the response, we have more to get.
    while 'Marker' in response:
        old_marker = response['Marker']
        response = client.describe_auto_scaling_groups(
            MaxRecords=100,
            Marker = old_marker
        )
        allAutoScaling.append(response['AutoScalingGroups'])
    
        # Cycles back up to repeat the pagination.

    # Now to find the tags specified in the Api Uri
    for autoscaling in allAutoScaling:
        for key in autoscaling:
           for tag in key['Tags']:
               if tag['Key'] == event['TagKey'] and tag['Value'] == event['TagValue']:
       
                if event['Method2'] == "Min":
                     if event['Value2']: 
                        Value2 = int(event['Value2'])
                        response = client.update_auto_scaling_group(
                        AutoScalingGroupName=key['AutoScalingGroupName'],    
                        MinSize=Value2
                        )
                else:
                    print('Min already at required level')
                    
                
                
                if event['Method3'] == "Max":
                     if event['Value3']: 
                        Value3 = int(event['Value3'])
                        response = client.update_auto_scaling_group(
                        AutoScalingGroupName=key['AutoScalingGroupName'],    
                        MaxSize=Value3
                        )
                else:
                    print('Max already at required level')
                    
                if event['Method1'] == "Capacity":
                      if event['Value1']: 
                         Value1 = int(event['Value1'])
                         response = client.set_desired_capacity(
                         AutoScalingGroupName=key['AutoScalingGroupName'],
                         DesiredCapacity=Value1
                         )
                else:
                    print('Capacity already at required level')
Reply


Messages In This Thread
Can I Limit Value used by python - by pajd - Feb-09-2022, 01:47 PM
RE: Can I Limit Value used by python - by buran - Feb-09-2022, 02:10 PM
RE: Can I Limit Value used by python - by pajd - Feb-09-2022, 02:50 PM
RE: Can I Limit Value used by python - by buran - Feb-09-2022, 03:37 PM
RE: Can I Limit Value used by python - by pajd - Feb-09-2022, 03:53 PM
RE: Can I Limit Value used by python - by buran - Feb-09-2022, 04:44 PM
RE: Can I Limit Value used by python - by pajd - Feb-09-2022, 07:04 PM
RE: Can I Limit Value used by python - by pajd - Feb-10-2022, 02:08 PM
RE: Can I Limit Value used by python - by buran - Feb-10-2022, 03:24 PM
RE: Can I Limit Value used by python - by pajd - Feb-10-2022, 09:54 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  How can I make this Python script add a limit to trades made with API? streetlaw 0 2,067 Oct-12-2018, 11:41 AM
Last Post: streetlaw
  Python - Limit Sentence Length to 10 Words - Text file dj99 2 5,294 Jul-21-2018, 02:24 PM
Last Post: dj99
  Error in Python 3.6 and how to limit decimal places Raptor88 6 10,019 Mar-18-2017, 05:02 AM
Last Post: Raptor88

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020