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.