Azure / azure-functions-python-library

Azure Functions Python SDK
MIT License
152 stars 65 forks source link

Can't change default function name while using FastAPI #195

Open ronaldo-omg opened 10 months ago

ronaldo-omg commented 10 months ago

I've been trying to set a custom name while using FastAPI and couldn't find the proper way. It always deploys my function with the name "http_app_func," making deploying multiple functions to the same app impossible.

Has anyone been successful with this task?

This is the syntax I thought it would work:

app = func.AsgiFunctionApp(app=fastapi_app, http_auth_level=func.AuthLevel.FUNCTION).function_name(name="HttpTest")

mortendaehli commented 8 months ago

Hi! I think this issue is related to this:

https://github.com/Azure/azure-functions-docker/issues/1033

In short, the AsgiFunctionApp does not have the mix-in from BindingApi and SettingsApi, and I think it's the latter that makes this fail.

Does anyone have a good explanation why these two are missing?

sepira commented 7 months ago

Hi! @ronaldo-omg ! Were you able to find a workaround here?

DCMattyG commented 5 months ago

I'm interested in this as well. There's a similar discussion going on here:

https://github.com/Azure/azure-functions-python-worker/issues/1284

seidnerj commented 5 months ago

For the time being I commented out both calls to "self._add_http_app" under the AsgiFunctionApp and WsgiFunctionApp classes in function_app.py.

The amount of bugs I came across just trying to get started with Azure functions is unbelievable. This is the 6th or 7th bug I've encountered.

himat-mesh-ai commented 1 month ago

I think in previous versions of the azure-functions python package you could do it with the set_function_name method for each function in the app. That seems to have been deprecated now but this article outlines another way to do it using add_setting.

https://medium.com/mesh-ai-technology-and-engineering/how-to-host-fastapi-in-an-azure-function-and-thre-7f7bbb924344