At the moment we are deploying our python application to a server-less azure function app. For this we use the kudu config-zip deployment.
az functionapp deployment source config-zip -g "xxxx" -n "xxxx" --src "xxxx.zip" --build-remote
We also want a remote build, because this will install the correct version of the packages. Because some packages have different versions voor different python versions (e.g. 3.8 vs 3.10) and different environment (windows vs linux). The remote build will make sure the correct packages are installed, cause the build (azure's default oryx) will run in the same environment.
Recently we moved some of our code to another package. This package is shared by multiple other applications. To install it, we add it to our requirements.txt:
git+ssh://Email address removed/xxxxx/xxxxx.git@f4e2bf2e3dxxxxxxxxx
This works perfect on our local machines. But not once we deploy to azure. Unfortunately there are no logs. Well the logs shows "oryx build...." and that's it. There is no way to access the build logs.
Anyway, we know the cause of the issue: the build doesn't have access to the repository. We do have a ssh key, which can be used to access the git repo. But we have no clue how to pass it to the orxy builder. We tried to make a work around with the "PRE_BUILD_COMMAND" environment variable, but since there are no logs, we cannot determine what is failing during the build.
So we cannot install private python packages with azure serverless functions. We see two ways to solve this issue, but for neither we have a clue how to do it:
- Make the orxy builder use the ssh key
- Do a local build and push it to the azure function
Did some tried this before or can give someone some pointers how to get started on this?