Azure Container Instances kapsayıcı günlüklerini ve olaylarını alma
Azure Container Instances'da hatalı davranan bir kapsayıcınız olduğunda, günlüklerini az container logs ile görüntüleyerek başlayın ve az container attach ile standart hatasını ve standart hatasını akışla aktarın. Ayrıca Azure portal kapsayıcı örneklerinin günlüklerini ve olaylarını görüntüleyebilir veya kapsayıcı grupları için günlük ve olay verilerini Azure İzleyici günlüklerine gönderebilirsiniz.
Günlükleri görüntüleme
Kapsayıcı içindeki uygulama kodunuzdaki günlükleri görüntülemek için az container logs komutunu kullanabilirsiniz.
Aşağıda, komut satırını geçersiz kılma kullanarak geçersiz bir URL sağlandıktan sonra Kapsayıcı örneğinde komut satırını ayarlama bölümündeki örnek görev tabanlı kapsayıcının günlük çıkışı verilmiştir:
az container logs --resource-group myResourceGroup --name mycontainer
Traceback (most recent call last):
File "wordcount.py", line 11, in <module>
urllib.request.urlretrieve (sys.argv[1], "foo.txt")
File "/usr/local/lib/python3.6/urllib/request.py", line 248, in urlretrieve
with contextlib.closing(urlopen(url, data)) as fp:
File "/usr/local/lib/python3.6/urllib/request.py", line 223, in urlopen
return opener.open(url, data, timeout)
File "/usr/local/lib/python3.6/urllib/request.py", line 532, in open
response = meth(req, response)
File "/usr/local/lib/python3.6/urllib/request.py", line 642, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/local/lib/python3.6/urllib/request.py", line 570, in error
return self._call_chain(*args)
File "/usr/local/lib/python3.6/urllib/request.py", line 504, in _call_chain
result = func(*args)
File "/usr/local/lib/python3.6/urllib/request.py", line 650, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found
Çıkış akışları ekleme
az container attach komutu, kapsayıcı başlatma sırasında tanılama bilgileri sağlar. Kapsayıcı başlatıldıktan sonra STDOUT ve STDERR'yi yerel konsolunuza akışla gönderir.
Örneğin, işlenmek üzere büyük bir metin dosyasının geçerli bir URL'sini sağladıktan sonra Kapsayıcı örneğinde komut satırını ayarlama bölümündeki görev tabanlı kapsayıcının çıktısı aşağıda verilmiştir:
az container attach --resource-group myResourceGroup --name mycontainer
Container 'mycontainer' is in state 'Unknown'...
Container 'mycontainer' is in state 'Waiting'...
Container 'mycontainer' is in state 'Running'...
(count: 1) (last timestamp: 2019-03-21 19:42:39+00:00) pulling image "mcr.microsoft.com/azuredocs/aci-wordcount:latest"
Container 'mycontainer1' is in state 'Running'...
(count: 1) (last timestamp: 2019-03-21 19:42:39+00:00) pulling image "mcr.microsoft.com/azuredocs/aci-wordcount:latest"
(count: 1) (last timestamp: 2019-03-21 19:42:52+00:00) Successfully pulled image "mcr.microsoft.com/azuredocs/aci-wordcount:latest"
(count: 1) (last timestamp: 2019-03-21 19:42:55+00:00) Created container
(count: 1) (last timestamp: 2019-03-21 19:42:55+00:00) Started container
Start streaming logs:
[('the', 22979),
('I', 20003),
('and', 18373),
('to', 15651),
('of', 15558),
('a', 12500),
('you', 11818),
('my', 10651),
('in', 9707),
('is', 8195)]
Tanılama olaylarını alma
Kapsayıcınız başarıyla dağıtılamazsa, Azure Container Instances kaynak sağlayıcısı tarafından sağlanan tanılama bilgilerini gözden geçirin. Kapsayıcınızın olaylarını görüntülemek için az container show komutunu çalıştırın:
az container show --resource-group myResourceGroup --name mycontainer
Çıkış, dağıtım olaylarıyla birlikte kapsayıcınızın temel özelliklerini içerir (burada kesilmiş olarak gösterilir):
{
"containers": [
{
"command": null,
"environmentVariables": [],
"image": "mcr.microsoft.com/azuredocs/aci-helloworld",
...
"events": [
{
"count": 1,
"firstTimestamp": "2019-03-21T19:46:22+00:00",
"lastTimestamp": "2019-03-21T19:46:22+00:00",
"message": "pulling image \"mcr.microsoft.com/azuredocs/aci-helloworld\"",
"name": "Pulling",
"type": "Normal"
},
{
"count": 1,
"firstTimestamp": "2019-03-21T19:46:28+00:00",
"lastTimestamp": "2019-03-21T19:46:28+00:00",
"message": "Successfully pulled image \"mcr.microsoft.com/azuredocs/aci-helloworld\"",
"name": "Pulled",
"type": "Normal"
},
{
"count": 1,
"firstTimestamp": "2019-03-21T19:46:31+00:00",
"lastTimestamp": "2019-03-21T19:46:31+00:00",
"message": "Created container",
"name": "Created",
"type": "Normal"
},
{
"count": 1,
"firstTimestamp": "2019-03-21T19:46:31+00:00",
"lastTimestamp": "2019-03-21T19:46:31+00:00",
"message": "Started container",
"name": "Started",
"type": "Normal"
}
],
"previousState": null,
"restartCount": 0
},
"name": "mycontainer",
"ports": [
{
"port": 80,
"protocol": null
}
],
...
}
],
...
}
Sonraki adımlar
Azure Container Instances için yaygın kapsayıcı ve dağıtım sorunlarını gidermeyi öğrenin.
Kapsayıcı grupları için günlük ve olay verilerini Azure İzleyici günlüklerine göndermeyi öğrenin.