unjs / nitro-deploys

Continues Nitro deployments for end-to-end testing deployment providers.
https://nitro.unjs.io
47 stars 8 forks source link

azure-functions #48

Closed Hebilicious closed 7 months ago

Hebilicious commented 1 year ago

Describe the feature

Investigate why this worfklow is disabled. Rename this workflow to "azure-function"

Additional information

tobiasdiez commented 11 months ago

In the past, I had issues as well with the azure deployment. Usually, you can find them out in the log: choose Log stream on the right in the azure function, then select File stream in the dropdown and then invoke the function.

My recent trouble was that symlinks are not preserved (see eg https://github.com/Azure/webapps-deploy/issues/54), which lead to "module not found" errors (since the symlink in the node_modules folder is missing). Maybe helpful in this context: https://github.com/archiverjs/node-archiver/issues/402

If you want, I can help diagnosing azure errors and maybe fix them. For this I obviously need temporary access to the test azure instance. Let me know at code@tobiasdiez.de in case you are interested in working together on the azure deployment.

GerryWilko commented 7 months ago

Am I right in thinking that Azure Function deployment does not work at present? At the moment I have errors with lru-cache which does appear to be exactly what you are saying @tobiasdiez, the dependency is a symlink into the .nitro folder. Is there any work around for this?

tobiasdiez commented 7 months ago

It works after you manually replace the symlinks, as eg in https://github.com/JabRef/JabRefOnline/blob/7d4e4f1c8931bcdcf3457f11bfa06b4cf79442a3/.github/workflows/deploy.yml#L93-L111

You might also need to replace some methods in http: https://github.com/JabRef/JabRefOnline/blob/main/server/api/index.ts#L13

GerryWilko commented 7 months ago

Hmm, I am having other issues after replacing the symlinks. Images in my public folder arent being served and some scripts are strangely showing integrity errors.

It looks like azure-functions isn't really in a working state. I think I'll have to use azure container instances instead.

itpropro commented 7 months ago

Hmm, I am having other issues after replacing the symlinks. Images in my public folder arent being served and some scripts are strangely showing integrity errors.

It looks like azure-functions isn't really in a working state. I think I'll have to use azure container instances instead.

I recommend to use Container Apss, not Container instances. Just bundle the app into a docker image and use that in you Container App. Container Instances are not really made for long running application, more for temporary testing.

PS: I am currently updating the Nitro Azure preset (which targets Static Web App) to use the new Azure Functions v4 model and newer Node versions. After that I will also update the Azure Functions preset.

pi0 commented 7 months ago

Let's track it in nitro side. If no progress, I would deprecate azure functions all together.

We currently support Static Web App which kinda works, this functions that is half broken and Container which I didn't try but I imagine should be a standard conterized app.

itpropro commented 7 months ago

Let's track it in nitro side. If no progress, I would deprecate azure functions all together.

We currently support Static Web App which kinda works, this functions that is half broken and Container which I didn't try but I imagine should be a standard conterized app.

Static Web Apps is also broken when you use pnpm btw, as Oryx (the build engine under the hood of the swa deployment) doesn't support pnpm. We also have to update the node version, as we currently default to max 16.

pi0 commented 7 months ago

I just made a (local) deployment few days ago with SWA 😅 Default is 18 in edgem yes sadly they don't support Node.js 20 for CLI at leat.

itpropro commented 7 months ago

I just made a (local) deployment few days ago with SWA 😅 Default is 18 in edgem yes sadly they don't support Node.js 20 for CLI at leat.

Local unfortunately behaves differently to the actual service. There are also differences between the service configurations in Azure as well as between free and standard tier 🙈