Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veyadizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Container Apps sistem durumu yoklamaları, Container Apps çalışma zamanının kapsayıcı uygulamalarınızın durumunu düzenli olarak denetlemesine olanak tanır.
Yoklamaları yalnızca TCP veya HTTP(S) kullanarak ayarlayabilirsiniz.
Azure Container Apps aşağıdaki denetimleri destekler:
| İnceleme | Açıklama |
|---|---|
| Başlangıç | Uygulamanızın başarıyla başlayıp başlamadiğini denetler. Bu denetim canlılık yoklamasından ayrıdır ve uygulamanızın ilk başlatma aşamasında çalışır. |
| Canlılık | Uygulamanızın hala çalışıp çalışmadığını ve yanıt verme hızını denetler. |
| Hazırlık | Bir replikasının gelen istekleri işlemeye hazır olup olmadığını denetler. |
Azure Container Apps'te desteklenen yoklama belirtimlerinin tam listesi için bkz. Azure REST API belirtimleri.
HTTP yoklamaları
HTTP yoklamaları, iyi durumda durumu raporlamadan önce uygulama bağımlılıklarının durumunu denetlemek için özel mantık uygulamanıza olanak tanır.
Sistem durumu yoklama uç noktalarınızı başarılı olduğunu göstermek için daha büyük veya buna eşit 200 ve küçük 400 bir HTTP durum koduyla yanıt verecek şekilde yapılandırın. Bu aralığın dışındaki diğer yanıt kodları bir hata olduğunu gösterir.
Aşağıdaki örnekte JavaScript'te canlılık uç noktasının nasıl uygulanacakları gösterilmektedir.
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 yoklamaları
TCP yoklamaları, başarılı olduğunu göstermek için sunucuyla bağlantı kurmak için bekler. Uygulamanıza bağlantı kuramıyorsa yoklama başarısız olur.
Kısıtlamalar
- Kapsayıcı başına her prob türünden yalnızca birini ekleyebilirsiniz.
-
execprobeler desteklenmez. - Bağlantı noktası değerleri tamsayı olmalıdır; adlandırılmış bağlantı noktaları desteklenmez.
- gRPC desteklenmez.
Örnekler
Aşağıdaki kod listesi, kapsayıcılarınız için sağlık yoklamalarını nasıl tanımlayabileceğinizi gösterir.
"... yer tutucuları atlanmış kodu gösterir." Tam ARM şablonu ayrıntıları için bkz. Container Apps ARM şablonu API belirtimi.
{
...
"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
}]
}]
...
}
İsteğe bağlı failureThreshold ayar, yürütme başarısız olursa Container Apps'in araştırmayı yürütmeye çalıştığı deneme sayısını tanımlar. Miktarı aşan failureThreshold girişimler, her araştırma türü için farklı sonuçlara neden olur.
Varsayılan yapılandırma
Girişi etkinleştirirseniz, GPU iş yükü profilleri (ayrılmış ve tüketim) dışında her türü tanımlamazsanız portal aşağıdaki varsayılan yoklamaları otomatik olarak ana uygulama kapsayıcısına ekler. Portal, sepet kapsayıcılarına otomatik olarak varsayılan yoklamalar eklemez.
| Yoklama türü | Varsayılan değerler |
|---|---|
| Başlangıç | Protokol: TCP Bağlantı noktası: giriş hedef bağlantı noktası Zaman aşımı: 3 saniye Dönem: 1 saniye İlk gecikme: 1 saniye Başarı eşiği: Bir Hata eşiği: 240 |
| Canlılık | Protokol: TCP Bağlantı noktası: giriş hedef bağlantı noktası |
| Hazırlık | Protokol: TCP Bağlantı noktası: giriş hedef bağlantı noktası Zaman aşımı: 5 saniye Süre: 5 saniye İlk gecikme: 3 saniye Başarı eşiği: Bir Hata eşiği: 48 |
Kapsayıcı uygulamanızı birden çok sürüm modunda çalıştırırsanız, bir sürümü dağıttığınızda, trafiği bu sürüme geçirmeden önce hazırlık denetimlerinizin başarılı olduğunu gösterene kadar bekleyin. Tek düzeltme modunda, hazır olma yoklaması başarılı bir durum döndürdüğünde trafik otomatik olarak değişir.
Düzeltmedeki diğer tüm çoğaltmalar iyi durumda olsa bile, çoğaltmalarından herhangi biri hazır olma yoklaması denetiminde başarısız olursa düzeltme durumu iyi durumda değil olarak görünür. Container Apps, yeniden iyi duruma gelene veya hata eşiği aşılana kadar söz konusu çoğaltmayı yeniden başlatır. Hata eşiği aşılırsa düzeltmeyi yeniden başlatmayı deneyin, ancak düzeltmenin doğru yapılandırılmamış olduğu anlamına gelebilir.
Uygulamanız uzun bir başlangıç süresi gerektiriyorsa, kapsayıcının hazır olmadan önce yeniden başlatılmasını (veya iyi durumda değil olarak işaretlenmesini) önlemek için yoklama ayarlarını yapın. Yoklama yapılandırmasını özelleştirmek, uygulamanızın gereksiz yeniden başlatmaları tetiklemeden başlamak için yeterli zamanı olduğundan emin olunmasını sağlar.
Aşağıdaki örnekte, başlangıç sürelerini uzatmak için canlılık ve hazırlık yoklamalarının nasıl yapılandırılması gösterilmektedir.
"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
}]