|
22 | 22 |
|
23 | 23 |
|
24 | 24 | def lambda_handler(event, context): |
25 | | - |
| 25 | + |
26 | 26 | lambda_client = boto3.client('lambda') |
27 | 27 | try: |
28 | 28 | uuid_response = lambda_client.list_event_source_mappings( |
29 | | - FunctionName = os.environ['analyze_lambda_arn'] |
30 | | - ) |
| 29 | + FunctionName=os.environ['analyze_lambda_arn'] |
| 30 | + ) |
31 | 31 | except Exception as e: |
32 | | - print(e) |
| 32 | + print(e) |
33 | 33 |
|
34 | 34 | mylist = uuid_response['EventSourceMappings'] |
35 | 35 | uuiddata = mylist[0]['UUID'] |
36 | 36 | analyse_lambda_uuid = uuiddata |
37 | 37 |
|
38 | 38 | try: |
39 | 39 | response = lambda_client.get_event_source_mapping( |
40 | | - UUID = analyse_lambda_uuid |
41 | | - ) |
| 40 | + UUID=analyse_lambda_uuid |
| 41 | + ) |
42 | 42 | except Exception as e: |
43 | | - print(e) |
| 43 | + print(e) |
44 | 44 |
|
45 | 45 | # State (string) -- The state of the event source mapping. It can be one of the following: Creating , Enabling , Enabled , Disabling , Disabled , Updating , or Deleting . |
46 | | - running_states = ["Enabling", "Enabled", "Disabled", "Disabling"] |
47 | | - if response['State'] in running_states: |
48 | | - # Disable |
49 | | - if (event[0]['Action'] == 'disable'): |
| 46 | + disabled_states = ["Disabled", "Disabling"] |
| 47 | + enabled_states = ["Enabling", "Enabled"] |
| 48 | + |
| 49 | + # Disable |
| 50 | + if (event[0]['Action'] == 'disable'): |
| 51 | + if (response['State'] in disabled_states): |
| 52 | + # Do Nothing |
| 53 | + return 'Already disabled' |
| 54 | + else: |
50 | 55 | try: |
51 | 56 | response = lambda_client.update_event_source_mapping( |
52 | | - UUID = analyse_lambda_uuid, |
53 | | - Enabled = False |
| 57 | + UUID=analyse_lambda_uuid, |
| 58 | + Enabled=False |
54 | 59 | ) |
55 | 60 | except Exception as e: |
56 | 61 | print(e) |
57 | | - else: |
58 | | - # Enable |
59 | | - if (event[0]['Action'] == 'enable'): |
| 62 | + else: |
| 63 | + # Enable |
| 64 | + if (event[0]['Action'] == 'enable'): |
| 65 | + if (response['State'] in enabled_states): |
| 66 | + # Do Nothing |
| 67 | + return 'Already_Running' |
| 68 | + else: |
60 | 69 | try: |
61 | 70 | response = lambda_client.update_event_source_mapping( |
62 | | - UUID = analyse_lambda_uuid, |
63 | | - Enabled = True |
| 71 | + UUID=analyse_lambda_uuid, |
| 72 | + Enabled=True |
64 | 73 | ) |
65 | 74 | except Exception as e: |
66 | 75 | print(e) |
67 | | - else: |
68 | | - print("Current state is:", response['State']) |
69 | | - |
| 76 | + |
| 77 | + print("Current state is:", response['State']) |
70 | 78 | return response['State'] |
0 commit comments