I am writing a logic app that retrieves data from a sharepoint folder using a recurrence trigger. Given the nature of the data, I only need a portion of it, and have written a python script to parse it. Additionally, this script then connects to an azure database and writes the data to it.
My hope was to use the logic app to easily get the data that I want parsed from Sharepoint and then send it to this python script.
I first tried setting up a power function, but after publishing it realized you can't call Python power functions in a logic app (it has to be javascript or a .NET runtime). I then set up an automation account and made a runbook. However, no matter which package I try, I get the following error:
Orchestrator.Activities.PythonPackageExtractException: Error while extractinig Python package: pip install failed for python package pyodbc. ERROR: pyodbc-4.0.39-cp311-cp311-win_amd64.whl is not a supported wheel on this platform.
Without pyodbc I can't connect to my database. I've tried this with both Python 3.8 and 3.10. As such, it's looking like runbooks are also not going to be the solution I'm looking for (not to mention that webhooks aren't supposed to work for python runbooks, making it a less ideal solution in any case, I think).
As such, I seem to be stuck because of a combination of my lack of understanding of azure infrastructure and my preference for python development. Would anyone be able to tell me what sort of solution they would implement in this case (I have a strong preference for retaining the use of the logic app)?
You could consider wrapping your python script as a simple Web API and deploying it as a container into Azure Container Apps.
With this, you are charged only for the time when your script is running and since you have complete control over the container, you can install all your dependencies and test it locally, expecting it to work as-is on Azure as well.