Hoppa till innehållet
Stackship-dokumentation English

App ServiceAnvändareMaskinöversatt

App Service

Kör webbapplikationer och API:er som byggs från ditt förråd eller från en containeravbild, var och en med eget värdnamn, egen skalning och egen driftsättningshistorik.

App Service kör webbapplikationer och API:er. Du pekar en app mot en gren i ett förråd — eller mot en färdig containeravbild — och plattformen bygger avbilden, kör den, dirigerar ett värdnamn till den och registrerar varje driftsättning. I portalen på https://portal.example.com finns apparna under App Tjänst i sidomenyn.

Vad en app är

  • En app ligger i en resursgrupp i en boundary och körs på ett av boundaryns kluster. Namnet är unikt i resursgruppen och kan inte ändras.
  • Den kör en containeravbild som en eller flera likadana instanser, bakom ett värdnamn.
  • Den serverar HTTP på en port, appens Port. En instans räknas som klar först när porten tar emot anslutningar, så en app som aldrig öppnar den blir aldrig Running.
  • Den kan ha slots: kopior av appen som kör andra grenar i samma förråd, var och en med eget värdnamn — se Distributionsslots.

Var koden kommer ifrån

Källa Vad plattformen gör
GitHub, GitLab, Azure DevOps Bygger avbilden från ett förråd och en gren som en distributionskälla ansluten till boundaryn når. En push till grenen bygger och driftsätter igen — se Automatiska driftsättningar.
Container Kör en avbild, registry/name:tag eller registry/name@sha256:…, som klustret kan hämta utan autentiseringsuppgifter från dig: en publik avbild, eller en avbild som plattformen har byggt för en app eller funktion i samma boundary. Avbilden hämtas varje gång en instans startar, så en tagg som har pushats på nytt kommer med vid nästa omstart eller driftsättning. En app kan inte få autentiseringsuppgifter till ett eget register.

Se upp

Den som får skapa eller ändra en app kan, i en resursgrupp där hen får det, köra vilken avbild som helst som plattformen har byggt för en app eller funktion i samma boundary — även en från en resursgrupp som hen inte kan se. En sådan avbild innehåller den appens kod, och värdena för de byggvariabler som har byggts in i den.

Hur en app byggs

För en app som byggs från ett förråd bygger plattformen avbilden inne i klustret från en mall för appens körmiljöstack. Versionen du väljer är versionen av byggets basavbilder.

Körmiljö Bygget Vad containern kör
Node Installerar beroendena med den pakethanterare som låsfilen anger — pnpm, Yarn, Bun eller npm (npm när det inte finns någon låsfil) — och kör skriptet build om det finns Skriptet start. Utan det serveras byggresultatet som en statisk webbplats med SPA-fallback: en index.html under dist/, build/, out/, .output/public/ eller _site/. Finns ingetdera misslyckas bygget.
Python pip install -r requirements.txt; utan en requirements.txt misslyckas bygget python app.py
.NET dotnet publish av startprojektet Den publicerade assemblyn med startprojektfilens namn (MyApp.csproj kör MyApp.dll); utan sökväg till startprojekt app.dll
Java mvn package -DskipTests (Maven) java -jar på den enda körbara jar-filen — en jar med Main-Class — som bygget producerar
PHP composer install --no-dev när det finns en composer.json Apache, som serverar förrådets filer
  • Bygget körs i förrådets rot, och det är där det letar efter package.json, requirements.txt, pom.xml och composer.json. Även en sökväg till ett .NET-startprojekt utgår från roten.
  • Om förrådet har .stackship/pre-build.sh eller .stackship/post-build.sh kör bygget dem före och efter sitt byggsteg; för Python körs båda efter pip install.
  • Miljövariabler som du markerar som byggvariabler skickas också till bygget — se Miljövariabler och hemligheter.
  • Avbilden talar om för din kod vilken port den ska lyssna på: PORT (Node, Python och PHP), PORT och SERVER_PORT (Java) eller ASPNETCORE_HTTP_PORTS (.NET), satt till appens port.

Se upp

En PHP-app serverar varje fil i förrådet vid grenens commit, även .git, .stackship och punktfiler som .env: alla som når appen kan ladda ner dem, och genom .git även källkoden till dess PHP-filer. Håll det som inte får vara publikt utanför en PHP-apps förråd.

Körmiljöstackar

En ny installation erbjuder Node 18, 20 och 22; Python 3.9 till 3.13; .NET 8.0 och 10.0; Java 8, 11, 17 och 21; samt PHP 8.1 till 8.4. Din plattformsadministratör kan dra tillbaka versioner. Portalen märker en version som har passerat sitt supportslut med (EOL), och en som når det inom ungefär sex månader med datumet för supportslutet. En app fortsätter att köra på en version som inte längre erbjuds, och kan fortfarande redigeras på den.

Vad en app körs på

En beräkningsplan är en storlek på CPU och minne — både den garanterade mängden och taket för varje instans — plus en diskstorlek som bara används när appen har beständig lagring. En ny installation har de här planerna; portalen visar dem som din installation erbjuder:

Plan CPU Minne Disk
nano 0,1 128 MiB 500 MiB
small 0,25 256 MiB 1 GiB
medium 0,5 512 MiB 2 GiB
standard 1 1 GiB 3 GiB
large 2 2 GiB 5 GiB
xlarge 4 4 GiB 10 GiB
2xlarge 8 8 GiB 20 GiB

En boundary kan ha en policy som bara tillåter vissa planer. Portalen visar de övriga som inaktiverade, märkta Tillåts inte av den här gränsens policy för beräkningsplaner, och plattformen avvisar dem.

Vad varje app får

Vad appar inte har

En app har ingen terminal och ingen vy över enskilda containrar. För att se in i en app som körs använder du dess loggar och, när den har beständig lagring, dess filer.

Sidor