def lambda_handler()

in functions/toggle_trigger/app.py [0:0]


def lambda_handler(event, context):

    # State (string) -- The state of the event source mapping.
    # It can be one of: Creating, Enabling, Enabled, Disabling, Disabled, Updating or Deleting.
    disabled_states = ["Disabled", "Disabling"]
    enabled_states = ["Enabling", "Enabled"]

    analyse_lambda_uuid = os.environ["analyze_lambda_uuid"]
    action = event[0]["Action"]
    lambda_client = boto3.client("lambda")

    try:
        response = lambda_client.get_event_source_mapping(UUID=analyse_lambda_uuid)
        current_state = response["State"]
        needs_disabling = action == "disable" and current_state not in disabled_states
        needs_enabling = action == "enable" and current_state not in enabled_states

        if needs_disabling or needs_enabling:
            response = lambda_client.update_event_source_mapping(
                UUID=analyse_lambda_uuid, Enabled=needs_enabling
            )
            current_state = response["State"]

        print("Current state is: ", current_state)
        return current_state

    except Exception as e:
        print(e)