typescript - Distribuerade funktioner men de visas inte i Azure-portalen


Jag har riktigt svårt att få vissa grundläggande Typescript-funktioner distribuerade till Azure. Jag distribuerade med VS Code, och distributionen var framgångsrik enligt Output-fönstret, men när jag tittar på Function App i Azure-portalen finns det inga funktioner listade:

Inga funktioner visas heller i Azure-fliken i VS Code:

Jag kontrollerade min projektstruktur och den speglar det som föreslås i Typescript-utvecklarguiden:

<project_root>/
 | - .vscode/
 | - dist/
 | | - src/
 | | | - functions/
 | | | | - myFirstFunction.js
 | | | | - myFirstFunction.js.map
 | | | | - mySecondFunction.js
 | | | | - mySecondFunction.js.map
 | - node_modules/
 | - src/
 | | - functions/
 | | | - myFirstFunction.ts
 | | | - mySecondFunction.ts
 | - .funcignore
 | - host.json
 | - local.settings.json
 | - package.json
 | - tsconfig.json

Jag kontrollerade att AzureWebJobsFeatureFlags är inställt på EnableWorkerIndexing, eftersom någon föreslog det i ett annat SO-inlägg. Typescript-filerna kompileras framgångsrikt under distributionen och visas i dist > src > functions.

Jag försökte också distribuera med Core Tools. Återigen var distributionen framgångsrik. Det stod att zip-paketet laddades upp, men inga funktioner visas.

Vad missar jag här?

Svar #1

Det visade sig vara ett byggfel som berodde på en saknad npm-beroende som förhindrade att funktionerna visades i Azure-portalen. Det fanns ingen nämning av felet vid distribution från VS Code (eller Core Tools), så jag antar att lärdomen här är att alltid köra en npm build lokalt innan distribution, för att säkerställa att allt byggs korrekt.

Jag trodde säkerligen att ett npm build var en del av distributionsprocessen och att fel skulle stoppa distributionen och rapporteras tillbaka, men det verkar inte vara fallet.

Svar #2

Du kommer förmodligen att hata det här svaret lika mycket som jag gör, och resultatet kan variera beroende på din nivå av åtkomst, projektfas osv. Jag hade exakt samma miljö; Functions Model v4, Typescript-funktioner på node-runtime osv osv och jag fick exakt samma symtom. Till slut tappade jag tålamodet (efter att ha sett det här inlägget utan några positiva svar, faktiskt) och raderade helt enkelt Functions-appen för att börja om (därav att resultatet kan variera).

De steg jag tog annorlunda är att jag inte distribuerade från VS Code andra gången. Istället skapade jag en exempel-HTTP Trigger Function lokalt enligt denna guide, testade och bekräftade att den fungerade lokalt, och stannade sedan i princip vid Steg 5 i Kör funktionen lokalt. Från den punkten publicerade jag den lokala repot till ett privat GitHub-repo, och skapade sedan Function App i Azure-portalen, aktiverade GitHub Actions på fliken Distribution och pekade på mitt nya privata repo (igen, du kan behöva justera denna del beroende på dina resurser). När den nya Function App skapades kunde jag inte se något, precis som tidigare, tills jag gjorde en liten commit för sakens skull, vilket utlöste CI/CD-pipelinen och uppdaterade hela Function App. Nu kan jag se HttpExample Function på översiktssidan i portalen, som väntat.

Jag tror att det måste vara något som förstörs i processen att ändra distributionskällor, eftersom att ignorera delen där man distribuerar från VS Code och istället direkt skapa en Function App manuellt med GitHub Actions för distribution fungerade alldeles utmärkt. Återigen, jag hoppas verkligen att du kan dra nytta av detta visserligen vaga experiment och resultat, och jag hoppas verkligen att du får det att fungera eftersom det har förstört min helg, så jag föreställer mig att du känner liknande bedrövelse!

Relaterade artiklar