Azure'da Python Container Apps'e genel bakış

Bu makalede, Python proje kodundan (örneğin, bir web uygulaması) Azure'da dağıtılmış bir Docker kapsayıcısına nasıl gidılacağı açıklanmaktadır. Kapsayıcıların genel süreci, Azure'daki kapsayıcılar için dağıtım seçenekleri ve Azure'daki kapsayıcıların Python'a özgü yapılandırması ele alınıyor.

Docker kapsayıcılarının doğası, koddan Docker görüntüsü oluşturmanın ve bu görüntüyü Azure'daki bir kapsayıcıya dağıtmanın programlama dillerinde benzer olmasıdır. Dile özgü önemli noktalar (bu örnekte Python), Azure'da kapsayıcı oluşturma işlemi sırasında yapılandırma aşamasındadır; özellikle Django, Flask ve FastAPI gibi Python web çerçevelerini destekleyen Dockerfile yapısı ve yapılandırmasıdır.

Kapsayıcı iş akışı senaryoları

Python kapsayıcısı geliştirme için koddan kapsayıcıya geçişe yönelik bazı tipik iş akışları şunlardır:

Senaryo Açıklama İş Akışı
Geliştirme Geliştirme ortamınızda Python Docker görüntüleri oluşturun. Kod: Git clone code to dev environment (Docker yüklü).

Derleme: Docker CLI, VS Code (uzantılarla), PyCharm (eklenti ile) kullanın. Python Docker görüntüleri ve kapsayıcılarıyla çalışma bölümünde açıklanmıştır.

Test: Docker kapsayıcısında geliştirme ortamında.

Gönderme: Azure Container Registry, Docker Hub veya özel kayıt defteri gibi bir kayıt defterine.

Dağıtma: Kayıt defterinden Azure hizmetine.
Hibrit Geliştirme ortamınızdan Azure'da Python Docker görüntüleri oluşturun. Kod: Git kopya kodunu geliştirme ortamına kopyalama (Docker'ın yüklenmesi için gerekli değildir).

Derleme: VS Code (uzantılarla), Azure CLI.

Gönderme: Azure Container Registry'ye

Dağıtma: Kayıt defterinden Azure hizmetine.
Azure Hepsi bulutta; GitHub deposundan Python Docker görüntüleri kodu oluşturmak için Azure Cloud Shell'i kullanın. Kod: GitHub deposunu Azure Cloud Shell'e kopyalayın.

Derleme: Azure Cloud Shell'de Azure CLI veya Docker CLI kullanın.

Gönderme: Azure Container Registry, Docker Hub veya özel kayıt defteri gibi kayıt defterine.

Dağıtma: Kayıt defterinden Azure hizmetine.

Bu iş akışlarının son hedefi, sonraki bölümde listelendiği gibi Docker kapsayıcılarını destekleyen Azure kaynaklarından birinde çalışan bir kapsayıcıya sahip olmaktır.

Geliştirme ortamı, Visual Studio Code veya PyCharm, Codespaces (bulutta barındırılan bir geliştirme ortamı) veya Visual Studio Geliştirme Kapsayıcıları (geliştirme ortamı olarak kapsayıcı) ile yerel iş istasyonunuz olabilir.

Azure'da dağıtım kapsayıcısı seçenekleri

Python kapsayıcı uygulamaları aşağıdaki hizmetlerde desteklenir.

Hizmet Açıklama
Kapsayıcılar için Web Uygulaması Web siteleri ve web API'leri de dahil olmak üzere kapsayıcılı web uygulamaları için tam olarak yönetilen bir barındırma hizmeti. Azure Uygulaması Hizmeti'nde kapsayıcılı web uygulamaları gerektiğinde ölçeklendirilebilir ve Docker Hub, Azure Container Registry ve GitHub ile kolaylaştırılmış CI/CD iş akışlarını kullanabilir. Geliştiricilerin tam olarak yönetilen Azure Uygulaması Hizmeti platformundan yararlanması kolay bir rampa olarak idealdir, ancak bir uygulamayı ve tüm bağımlılıklarını içeren tek bir dağıtılabilir yapıt da ister.

Örnek: Azure Uygulaması Hizmeti'ne Bir Flask veya FastPI web uygulaması dağıtın.
Azure Container Apps (ACA) Kubernetes ve Dapr, KEDA ve envoy gibi açık kaynak teknolojileri tarafından desteklenen tam olarak yönetilen sunucusuz kapsayıcı hizmeti. En iyi yöntemlere dayalıdır ve genel amaçlı kapsayıcılar için iyileştirilmiştir. Küme altyapısı ACA tarafından yönetilir ve Kubernetes API'sine doğrudan erişim desteklenmez. Kapsayıcıların üzerinde sertifikalar, düzeltmeler, ölçek ve ortamlar dahil olmak üzere uygulamaya özgü birçok kavram sağlar. Kubernetes'in temel karmaşıklığını yönetmek zorunda kalmadan kapsayıcı mikro hizmetleri oluşturmaya başlamak isteyen ekipler için idealdir.

Örnek: Azure Container Apps'te Flask veya FastPI web uygulaması dağıtma.
Azure Container Instances (ACI) İsteğe bağlı olarak tek bir Hyper-V yalıtılmış kapsayıcı podu sağlayan sunucusuz bir teklif. Sağlanan kaynaklar yerine tüketime göre faturalandırılır. Ölçek, yük dengeleme ve sertifikalar gibi kavramlar ACI kapsayıcılarıyla sağlanmaz. Kullanıcılar genellikle diğer hizmetler aracılığıyla ACI ile etkileşim kurar; örneğin, düzenleme için AKS. Azure Container Apps'in iyileştirdiği senaryolarla uyumlu olmayan daha az "düşünceli" bir yapı taşına ihtiyacınız varsa idealdir.

Örnek: Azure Container Instances'a dağıtım için bir kapsayıcı görüntüsü oluşturun. (Öğretici Python'a özgü değildir, ancak gösterilen kavramlar tüm diller için geçerlidir.)
Azure Kubernetes Service (AKS) Azure'da tam olarak yönetilen bir Kubernetes seçeneği. Kubernetes API'sine doğrudan erişimi destekler ve tüm Kubernetes iş yüklerini çalıştırır. Kümenin tamamı, denetiminiz ve sorumluluğunuzda küme yapılandırmaları ve işlemleriyle birlikte aboneliğinizde bulunur. Azure'da Kubernetes'in tam olarak yönetilen sürümünü arayan ekipler için idealdir.

Örnek: Azure CLI kullanarak bir Azure Kubernetes Service kümesi dağıtma.
Azure Functions Olay odaklı, sunucusuz hizmet olarak işlev (FAAS) çözümü. Azure Container Apps ile olaylarla ölçeklendirme ve tümleştirme konusunda birçok özelliği paylaşır, ancak kod veya kapsayıcı olarak dağıtılan kısa ömürlü işlevler için iyileştirilir. Olaylar üzerinde işlevlerin yürütülmesini tetikleyen ekipler için idealdir; örneğin, diğer veri kaynaklarına bağlanmak için.

Örnek: Özel bir kapsayıcı kullanarak Linux'ta işlev oluşturma.

Bu hizmetlerin daha ayrıntılı bir karşılaştırması için bkz . Container Apps'i diğer Azure kapsayıcı seçenekleriyle karşılaştırma.

Sanal ortamlar ve kapsayıcılar

Geliştirme ortamında bir Python projesi çalıştırırken, sanal ortam kullanmak bağımlılıkları yönetmenin ve proje kurulumunuzun yeniden üretilebilirliğini sağlamanın yaygın bir yoludur. Sanal ortamda, bu ortamda çalışan proje kodunun gerektirdiği bir Python yorumlayıcısı, kitaplıkları ve betikleri yüklüdür. Python projeleri için bağımlılıklar requirements.txt dosyası aracılığıyla yönetilir.

Bahşiş

Kapsayıcılarda, sanal ortamları test veya başka nedenlerle kullanmadığınız sürece gerekli değildir. Sanal ortamlar kullanıyorsanız bunları Docker görüntüsüne kopyalamayın. .dockerignore dosyasını kullanarak bunları hariç tutun.

Docker kapsayıcılarının sanal ortamlarla benzer özellikler sağladığını, ancak yeniden üretilebilirlik ve taşınabilirlik açısından daha fazla avantaj sağladığını düşünebilirsiniz. Docker kapsayıcısı, işletim sisteminden bağımsız olarak kapsayıcıların çalıştırılabildiği her yerde çalıştırılabilir.

Docker kapsayıcısı Python proje kodunuzu ve kodun çalışması gereken her şeyi içerir. Bu noktaya ulaşmak için Python proje kodunuzu bir Docker görüntüsünde oluşturmanız ve ardından bu görüntünün çalıştırılabilir bir örneği olan kapsayıcıyı oluşturmanız gerekir.

Python projelerini kapsayıcılı hale getirme için anahtar dosyalar şunlardır:

Proje dosyası Açıklama
requirements.txt Görüntüye doğru bağımlılıkları almak için Docker görüntüsünün oluşturulması sırasında kullanılır.
Dockerfile Python Docker görüntüsünün nasıl derleneceğini belirtmek için kullanılır. Daha fazla bilgi için Python için Dockerfile yönergeleri bölümüne bakın.
.dockerignore .dockerignore içindeki dosyalar ve dizinler Dockerfile komutuyla Docker görüntüsüne COPY kopyalanmaz. .dockerignore dosyası.gitignore dosyalarına benzer dışlama desenlerini destekler. Daha fazla bilgi için bkz . .dockerignore dosyası.

Dosyaların dışlanması görüntü oluşturma performansına yardımcı olur, ancak görüntüye hassas bilgilerin denetlenebileceği yerlerde eklenmesini önlemek için de kullanılmalıdır. Örneğin, .dockerignore .env ve .venv'yi (sanal ortamlar) yoksayacak satırlar içermelidir.

Web çerçeveleri için kapsayıcı ayarları

Web çerçeveleri, web isteklerini dinledikleri varsayılan bağlantı noktalarına sahiptir. Bazı Azure kapsayıcı çözümleriyle çalışırken, kapsayıcınızın dinlediği ve trafik alacak bağlantı noktasını belirtmeniz gerekir.

Web çerçevesi Bağlantı noktası
Django 8000
Şişe 5000 veya 5002
FastAPI (uvicorn) 8000 veya 80

Aşağıdaki tabloda farklı Azure kapsayıcı çözümleri için bağlantı noktasının nasıl ayarlanacağı gösterilmektedir.

Azure kapsayıcı çözümü Web uygulaması bağlantı noktasını ayarlama
Kapsayıcılar için Web App App Service varsayılan olarak özel kapsayıcınızın 80 numaralı bağlantı noktasında veya 8080 numaralı bağlantı noktasında dinlediğini varsayar. Kapsayıcınız farklı bir bağlantı noktasını dinliyorsa App Service uygulamanızda WEBSITES_PORT uygulama ayarını ayarlayın. Daha fazla bilgi için bkz. Azure Uygulaması Hizmeti için özel kapsayıcı yapılandırma.
Azure Kapsayıcıları Uygulamaları Azure Container Apps, girişi etkinleştirerek kapsayıcı uygulamanızı genel web'de, sanal ağınızda veya ortamınızdaki diğer kapsayıcı uygulamalarında kullanıma sunmanızı sağlar. Girişi targetPort kapsayıcınızın gelen istekler için dinlediği bağlantı noktasına ayarlayın. Uygulama giriş uç noktası her zaman 443 numaralı bağlantı noktasında kullanıma sunulur. Daha fazla bilgi için bkz . Azure Container Apps'te HTTPS veya TCP girişi ayarlama.
Azure Container Instances, Azure Kubernetes Kapsayıcı oluşturulurken bağlantı noktasını ayarlayın. Çözümünüzün bir web çerçevesi, uygulama sunucusu (örneğin, gunicorn, uvicorn) ve web sunucusu (örneğin, nginx) olduğundan emin olmanız gerekir. Örneğin, biri web çerçevesi ve uygulama sunucusu, diğeri de web sunucusu olan bir çerçeve olmak üzere iki kapsayıcı oluşturabilirsiniz. İki kapsayıcı bir bağlantı noktasında iletişim kurar ve web sunucusu kapsayıcısı dış istekler için 80/443'i kullanıma sunar.

Python Dockerfile

Dockerfile, Docker görüntüsü oluşturma yönergelerini içeren bir metin dosyasıdır. İlk satırda başlangıç olarak temel görüntü gösterilir. Bu satırın ardından gerekli programları yükleme, dosyaları kopyalama ve çalışma ortamı oluşturmak için diğer yönergeler gelir. Örneğin, python Dockerfile yönergeleri için Python'a özgü bazı örnekler aşağıdaki tabloda gösterilmektedir.

Talimat Amaç Örnek
FROM Sonraki yönergeler için temel görüntüyü ayarlar. FROM python:3.8-slim
GÖSTERMEK Docker'a kapsayıcının çalışma zamanında belirtilen ağ bağlantı noktalarını dinlediğini bildirir. EXPOSE 5000
KOPYA Belirtilen kaynaktan dosya veya dizinleri kopyalar ve belirtilen hedef yolda kapsayıcının dosya sistemine ekler. COPY . /app
ÇALIŞTIRMAK Docker görüntüsünün içinde bir komut çalıştırır. Örneğin, bağımlılıkları çekme. Komut derleme zamanında bir kez çalışır. RUN python -m pip install -r requirements.txt
CMD komutu bir kapsayıcıyı yürütmek için varsayılan değeri sağlar. Yalnızca bir CMD yönergesi olabilir. CMD ["gunicorn", "--bind", "0.0.0.0:5000", "wsgi:app"]

Docker derleme komutu, Dockerfile'dan ve bir bağlamdan Docker görüntüleri oluşturur. Derlemenin bağlamı, belirtilen yolda veya URL'de bulunan dosya kümesidir. Genellikle, python projenizin kökünden bir görüntü oluşturursunuz ve derleme komutunun yolu aşağıdaki örnekte gösterildiği gibi "." olur.

docker build --rm --pull  --file "Dockerfile"  --tag "mywebapp:latest"  .

Derleme işlemi, bağlamdaki dosyalardan herhangi birine başvurabilir. Örneğin, derlemeniz bağlamdaki bir dosyaya başvurmak için COPY yönergesi kullanabilir. Flask çerçevesini kullanan bir Python projesi için Dockerfile örneği aşağıda verilmiştir:

FROM python:3.8-slim

EXPOSE 5000

# Keeps Python from generating .pyc files in the container.
ENV PYTHONDONTWRITEBYTECODE=1

# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1

# Install pip requirements.
COPY requirements.txt .
RUN python -m pip install -r requirements.txt

WORKDIR /app
COPY . /app

# Creates a non-root user with an explicit UID and adds permission to access the /app folder.
RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
USER appuser

# Provides defaults for an executing container; can be overridden with Docker CLI.
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "wsgi:app"]

Elle bir Dockerfile oluşturabilir veya VS Code ve Docker uzantısıyla otomatik olarak oluşturabilirsiniz. Daha fazla bilgi için bkz . Docker dosyaları oluşturma.

Docker derleme komutu, Docker CLI'nın bir parçasıdır. VS Code veya PyCharm gibi IDE'leri kullandığınızda, Docker görüntüleriyle çalışmaya yönelik kullanıcı arabirimi komutları sizin için derleme komutunu çağırır ve seçenekleri belirtmeyi otomatikleştirir.

Python Docker görüntüleri ve kapsayıcılarıyla çalışma

VS Code ve PyCharm

Python kapsayıcı geliştirme için tümleşik geliştirme ortamında (IDE) çalışmak gerekli değildir, ancak kapsayıcıyla ilgili birçok görevi basitleştirebilir. VS Code ve PyCharm ile yapabileceğiniz bazı işlemler şunlardır.

  • Docker görüntülerini indirin ve derleyin.

    • Geliştirme ortamınızda görüntüler oluşturun.
    • Geliştirme ortamında Docker yüklü olmadan Azure'da Docker görüntüleri oluşturun. (PyCharm için Azure'da görüntü oluşturmak için Azure CLI'yi kullanın.)
  • Mevcut bir görüntüden, çekilen görüntüden veya doğrudan dockerfile'dan Docker kapsayıcıları oluşturun ve çalıştırın.

  • Docker Compose ile çok katmanlı uygulamalar çalıştırın.

  • Docker Hub, GitLab, JetBrains Space, Docker V2 ve şirket içinde barındırılan diğer Docker kayıt defterleri gibi kapsayıcı kayıt defterleriyle Bağlan ve bunlarla çalışın.

  • (yalnızca VS Code) Python projeniz için uyarlanmış bir Dockerfile ve Docker compose dosyaları ekleyin.

VS Code ve PyCharm'ı geliştirme ortamınızda Docker kapsayıcılarını çalıştıracak şekilde ayarlamak için aşağıdaki adımları kullanın.

Henüz yüklemediyseniz VS Code için Azure Araçları'nı yükleyin.

Yönergeler Ekran görüntüsü
1. Adım: Shift + ALT + A kullanarak Azure uzantısını açın ve Azure'a bağlı olduğunuzu onaylayın.

VS Code uzantıları çubuğunda Azure simgesini de seçebilirsiniz.

Oturum açmadıysanız Azure'da oturum aç'ı seçin ve istemleri izleyin.

Azure aboneliğinize erişirken sorun yaşıyorsanız bunun nedeni bir ara sunucu arkasında olmanız olabilir. Bağlantı sorunlarını çözmek için bkz. Visual Studio Code'da ağ Bağlan ions.
Screenshot showing how Azure Tools looks once signed in.Screenshot showing how Azure Tools looks if you aren't signed in.
2. Adım: Uzantılar'ı açmak, Docker uzantısını aramak ve uzantıyı yüklemek için CTRL + SHIFT + X kullanın.

VS Code uzantıları çubuğunda Uzantılar simgesini de seçebilirsiniz.
Screenshot showing how to add Docker extension to VS Code.
3. Adım: Uzantı çubuğunda Docker simgesini seçin, görüntüleri genişletin ve bir görüntüye sağ tıklayarak kapsayıcı olarak çalıştırın. Screenshot showing how to use the Docker extension in VS Code to run a container from a Docker image.
4. Adım: Terminal penceresinde Docker çalıştırma çıkışını izleyin. Screenshot showing an example of running a container in VS Code.

Azure CLI ve Docker CLI

Azure CLI ve Docker CLI kullanarak Python Docker görüntüleri ve kapsayıcılarıyla da çalışabilirsiniz. Hem VS Code hem de PyCharm,bu CLI'leri çalıştırabileceğiniz terminallere sahiptir.

Derleme ve çalıştırma bağımsız değişkenleri üzerinde ve otomasyon için daha ayrıntılı denetime sahip olmak istediğinizde CLI kullanın. Örneğin aşağıdaki komut, Docker görüntü adını belirtmek için Azure CLI az acr derlemesinin nasıl kullanılacağını gösterir.

az acr build --registry <registry-name> \
  --resource-group <resource-group> \
  --target pythoncontainerwebapp:latest .

Başka bir örnek olarak, Docker CLI çalıştırma komutunun nasıl kullanılacağını gösteren aşağıdaki komutu göz önünde bulundurun. Örnek, geliştirme ortamınızdaki bir MongoDB örneğiyle iletişim kuran bir Docker kapsayıcısının kapsayıcının dışında nasıl çalıştırıldığını gösterir. Komutu tamamlamak için farklı değerlerin, komut satırında belirtildiğinde otomatikleştirilmesi daha kolaydır.

docker run --rm -it \
  --publish <port>:<port> --publish 27017:27017 \
  --add-host mongoservice:<your-server-IP-address> \
  --env CONNECTION_STRING=mongodb://mongoservice:27017 \
  --env DB_NAME=<database-name> \
  --env COLLECTION_NAME=<collection-name> \
  containermongo:latest  

Bu senaryo hakkında daha fazla bilgi için bkz . Kapsayıcılı Python web uygulamasını yerel olarak derleme ve test etme.

Kapsayıcılardaki ortam değişkenleri

Python projeleri genellikle verileri koda geçirmek için ortam değişkenlerini kullanır. Örneğin, test sırasında kolayca değiştirilebilmesi için bir ortam değişkeninde veritabanı bağlantı bilgilerini belirtebilirsiniz. Veya projeyi üretime dağıtırken, veritabanı bağlantısı bir üretim veritabanı örneğine başvurmak için değiştirilebilir.

Python-dotenv gibi paketler genellikle bir .env dosyasından anahtar-değer çiftlerini okumak ve ortam değişkenleri olarak ayarlamak için kullanılır. Bir .env dosyası sanal ortamda çalışırken kullanışlıdır, ancak kapsayıcılarla çalışırken önerilmez. .env dosyasını Docker görüntüsüne kopyalamayın, özellikle hassas bilgiler içeriyorsa ve kapsayıcı genel kullanıma sunulacaksa. Dosyaların Docker görüntüsüne kopyalanmasını dışlamak için .dockerignore dosyasını kullanın. Daha fazla bilgi için bu makaledeki Sanal ortamlar ve kapsayıcılar bölümüne bakın.

Ortam değişkenlerini kapsayıcılara birkaç yolla geçirebilirsiniz:

  1. Dockerfile'da ENV yönergeleri olarak tanımlanır.
  2. Docker derleme komutuyla bağımsız değişken olarak --build-arg geçirildi.
  3. Docker derleme komutu ve BuildKit arka ucu ile bağımsız değişken olarak --secret geçirildi.
  4. Docker run komutuyla veya bağımsız değişkenleri olarak --env --env-file geçirilir.

İlk iki seçenek, yukarıda belirtilen .env dosyalarıyla aynı dezavantaja sahiptir; yani hassas olabilecek bilgileri Docker görüntüsüne sabit kodlamanızdır. Docker görüntüsünü inceleyebilir ve örneğin docker image inspect komutuyla ortam değişkenlerini görebilirsiniz.

BuildKit ile üçüncü seçenek, docker görüntülerini son görüntüde depolanmayacak güvenli bir şekilde derlemek için Dockerfile'da kullanılacak gizli dizi bilgilerini geçirmenizi sağlar.

Docker çalıştırma komutuyla ortam değişkenlerini geçirmenin dördüncü seçeneği, Docker görüntüsünün değişkenleri içermediği anlamına gelir. Ancak, kapsayıcı örneğini inceleyen değişkenler hala görünür durumdadır (örneğin, docker kapsayıcı incelemesi ile). Kapsayıcı örneğine erişim denetlendiğinde veya test veya geliştirme senaryolarında bu seçenek kabul edilebilir olabilir.

Docker CLI çalıştırma komutunu kullanarak ve bağımsız değişkenini kullanarak ortam değişkenlerini geçirme örneği aşağıda verilmiştir --env .

# PORT=8000 for Django and 5000 for Flask
export PORT=<port-number>

docker run --rm -it \
  --publish $PORT:$PORT \
  --env CONNECTION_STRING=<connection-info> \
  --env DB_NAME=<database-name> \
  <dockerimagename:tag>

VS Code veya PyCharm kullanıyorsanız, görüntüler ve kapsayıcılarla çalışmaya yönelik kullanıcı arabirimi seçenekleri sonuçta yukarıda gösterilen gibi Docker CLI komutlarını kullanır.

Son olarak, Azure'da kapsayıcı dağıtırken ortam değişkenlerini belirtmek, geliştirme ortamınızda ortam değişkenlerini kullanmaktan farklıdır. Örneğin:

  • Kapsayıcılar için Web App için, App Service yapılandırması sırasında uygulama ayarlarını yapılandırırsınız. Bu ayarlar uygulama kodunuz için ortam değişkenleri olarak kullanılabilir ve standart os.environ deseni kullanılarak erişilir. İlk dağıtımdan sonra gerektiğinde değerleri değiştirebilirsiniz. Daha fazla bilgi için bkz . Uygulama ayarlarına ortam değişkenleri olarak erişme.

  • Azure Container Apps için, kapsayıcı uygulamasının ilk yapılandırması sırasında ortam değişkenlerini yapılandırırsınız. Ortam değişkenlerinin sonraki değişiklikleri kapsayıcının bir düzeltmesini oluşturur. Ayrıca Azure Container Apps, uygulama düzeyinde gizli dizileri tanımlamanıza ve ardından ortam değişkenlerinde bunlara başvurmanıza olanak tanır. Daha fazla bilgi için bkz . Azure Container Apps'te gizli dizileri yönetme.

Başka bir seçenek olarak, Azure işlem hizmetlerini diğer yedekleme hizmetlerine bağlamanıza yardımcı olması için Service Bağlan or kullanabilirsiniz. Bu hizmet, yönetim düzleminde işlem hizmetleri ve hedef destek hizmetleri arasında ağ ayarlarını ve bağlantı bilgilerini (örneğin, ortam değişkenleri oluşturma) yapılandırıyor.

Kapsayıcı günlüklerini görüntüleme

Koddan gelen tanılama iletilerini görmek ve kapsayıcınızın kodundaki sorunları gidermek için kapsayıcı örneği günlüklerini görüntüleyin. Geliştirme ortamınızda bir kapsayıcı çalıştırırken günlükleri görüntülemenin birkaç yolu şunlardır:

  • VS Code ve PyCharm bölümünde gösterildiği gibi VS Code veya PyCharm ile bir kapsayıcı çalıştırma, Docker çalıştırması yürütürken terminal pencerelerinde açılan günlükleri görebilirsiniz.

  • Docker CLI run komutunu etkileşimli bayrağıyla -itkullanıyorsanız komutunun ardından çıkışı görürsünüz.

  • Docker Desktop'ta, çalışan bir kapsayıcının günlüklerini de görüntüleyebilirsiniz.

Azure'da bir kapsayıcı dağıttığınızda kapsayıcı günlüklerine de erişebilirsiniz. Aşağıda birkaç Azure hizmeti ve Azure portalında kapsayıcı günlüklerine erişme adımları yer alır.

Azure hizmeti Azure portalında günlüklere erişme
Kapsayıcılar için Web App Günlükleri görüntülemek için Sorunları tanılama ve çözme kaynağına gidin. Tanılama, yapılandırma gerektirmeden uygulamanızın sorunlarını gidermenize yardımcı olan akıllı ve etkileşimli bir deneyimdir. Günlüklerin gerçek zamanlı görünümü için İzleme - Günlüğü akışına gidin. Daha ayrıntılı günlük sorguları ve yapılandırma için İzleme altındaki diğer kaynaklara bakın.
Azure Container Apps Ortam sorunlarını gidermek için ortam kaynağına gidin Sorunları tanılama ve çözme. Daha sık kapsayıcı günlüklerini görmek istersiniz. Kapsayıcı kaynağında, Uygulama - Düzeltmesi yönetimi'nin altında düzeltmeyi seçin ve buradan sistem ve konsol günlüklerini görüntüleyebilirsiniz. Daha ayrıntılı günlük sorguları ve yapılandırma için İzleme altındaki kaynaklara bakın.
Azure Container Instances Kapsayıcılar kaynağına gidin ve Günlükler'i seçin.

Yukarıda listelenen hizmetlerin aynıları için, günlüklere erişmek için azure CLI komutlarını aşağıda bulabilirsiniz.

Azure hizmeti Günlüklere erişmek için Azure CLI komutu
Kapsayıcılar için Web App az webapp log
Azure Container Apps az containerapps logs
Azure Container Instances az container logs

VS Code'da günlükleri görüntüleme desteği de vardır. VS Code için Azure Araçları'nın yüklü olması gerekir. Aşağıda, VS Code'da Kapsayıcılar için Web Apps (App Service) günlüklerini görüntüleme örneği verilmiştir.

Screenshot showing how to view logs in VS Code for Web Apps for Containers.

Sonraki adımlar