Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med hälsoprovtagningar i Azure Container Apps kan Container Apps-miljön regelbundet kontrollera statusen för dina container-appar.
Du kan konfigurera avsökningar med enbart TCP eller HTTP(S).
Container Apps stöder följande sonderingar:
Avsökning | beskrivning |
---|---|
Startupföretag | Kontrollerar om programmet har startats. Den här kontrollen är separat från livenesskontrollen och körs under applikationens inledande startfas. |
Livhet | Kontrollerar om applikationen fortfarande körs och svarar. |
Beredskap | Kontrollerar om en replik är redo att hantera inkommande begäranden. |
För en fullständig lista över probsspecifikationerna som stöds i Azure Container Apps, se Azure REST API-specifikationer.
HTTP-avsökningar
MED HTTP-avsökningar kan du implementera anpassad logik för att kontrollera statusen för programberoenden innan du rapporterar en felfri status.
Konfigurera slutpunkterna för hälsokontrollen så att de svarar med en HTTP-statuskod som är större än eller lika med 200
och mindre än 400
för att indikera framgång. All annan svarskod utanför det här intervallet indikerar ett fel.
I följande exempel visas hur du implementerar en liveness-slutpunkt i JavaScript.
const express = require('express');
const app = express();
app.get('/liveness', (req, res) => {
let isSystemStable = false;
// check for database availability
// check filesystem structure
// etc.
// set isSystemStable to true if all checks pass
if (isSystemStable) {
res.status(200); // Success
} else {
res.status(503); // Service unavailable
}
})
TCP-avsökningar
TCP-sonder väntar på att anslutningen till servern ska upprättas för att indikera att anslutningen har lyckats. Avsökningen misslyckas om den inte kan upprätta en anslutning till ditt program.
Begränsningar
- Du kan bara lägga till en av varje probtyp per behållare.
-
exec
avsökningar stöds inte. - Portvärdena måste vara heltal. namngivna portar stöds inte.
- gRPC stöds inte.
Exempel
Följande kodexempel visar hur du kan definiera hälsokontroller för dina containrar.
Platshållarna ...
anger utelämnad kod.
Se API-specifikationen för ARM-mallar för Container Apps för fullständig INFORMATION om ARM-mallar.
{
...
"containers":[
{
"image":"nginx",
"name":"web",
"probes": [
{
"type": "Liveness",
"httpGet": {
"path": "/health",
"port": 8080,
"httpHeaders": [
{
"name": "Custom-Header",
"value": "liveness probe"
}]
},
"initialDelaySeconds": 7,
"periodSeconds": 3
},
{
"type": "Readiness",
"tcpSocket": {
"port": 8081
},
"initialDelaySeconds": 10,
"periodSeconds": 3
},
{
"type": "Startup",
"httpGet": {
"path": "/startup",
"port": 8080,
"httpHeaders": [
{
"name": "Custom-Header",
"value": "startup probe"
}]
},
"initialDelaySeconds": 3,
"periodSeconds": 3
}]
}]
...
}
Den valfria failureThreshold
inställningen definierar antalet försök som Container Apps försöker köra avsökningen om körningen misslyckas. Försök som överskrider failureThreshold
mängden orsakar olika resultat för varje avsökningstyp.
Standardkonfiguration
Om ingress är aktiverat läggs följande standardavsökningar automatiskt till i huvudappcontainern om ingen har definierats för varje typ, förutom för GPU-arbetsbelastningsprofiler (både dedikerade och förbrukning).
Avsökningstyp | Standardvärden |
---|---|
Startuppföretag | Protokoll: TCP Port: inkommande målport Tidsgräns: 3 sekunder Period: 1 sekund Inledande fördröjning: 1 sekund Tröskelvärde för lyckad åtgärd: 1 Tröskelvärde för fel: 240 |
Livskraft | Protokoll: TCP Port: inkommande målport |
Beredskap | Protokoll: TCP Port: inkommande målport Tidsgräns: 5 sekunder Period: 5 sekunder Inledande fördröjning: 3 sekunder Tröskelvärde för lyckad åtgärd: 1 Tröskelvärde för fel: 48 |
Om du kör containerappen i flera revisionslägen väntar du tills dina beredskapsavsökningar visar att det har lyckats innan du flyttar trafik till den revisionen. I enkelt revisionsläge flyttas trafiken automatiskt när beredskapsavsökningen returnerar ett lyckat tillstånd.
Ett revisionstillstånd visas som ohälsosamt om någon av replikerna misslyckas med kontrollen av förbereddhetsprovet, även om alla andra repliker i revisionen är friska. Container Apps startar om repliken i fråga tills den är felfri igen eller om tröskelvärdet för fel överskrids. Om tröskelvärdet för fel överskrids kan du försöka starta om revisionen, men det kan innebära att revisionen inte är korrekt konfigurerad.
Om din app tar längre tid att starta (vilket är vanligt i Java) måste du ofta anpassa avsökningarna så att containern inte kraschar.
Det följande exemplet visar hur du konfigurerar livfullhets- och beredskapskontroller för att förlänga starttiderna.
"probes": [
{
"type": "Liveness",
"failureThreshold": 3,
"periodSeconds": 10,
"successThreshold": 1,
"tcpSocket": {
"port": 80
},
"timeoutSeconds": 1
},
{
"type": "Readiness",
"failureThreshold": 48,
"initialDelaySeconds": 3,
"periodSeconds": 5,
"successThreshold": 1,
"tcpSocket": {
"port": 80
},
"timeoutSeconds": 5
}]