Genel bakış: MongoDB ile Azure'da kapsayıcılı Python web uygulaması

Bu öğreticide, bir Python web uygulamasını kapsayıcıya alma ve Azure'a dağıtma adımları gösterilmektedir. Tek kapsayıcılı web uygulaması Azure Uygulaması Hizmetinde barındırılır ve verileri depolamak için Azure Cosmos DB için MongoDB'yi kullanır. Kapsayıcılar için App Service Web App, temel alınan kapsayıcı düzenleyiciyi yönetme ve bakımını yapma konusunda endişelenmeden kapsayıcılarınızı oluşturma konusunda odaklanmanıza olanak tanır. Web uygulamaları oluştururken Azure Uygulaması Hizmeti kapsayıcılarla ilk adımlarınızı atmak için iyi bir seçenektir. Azure'da kapsayıcıları kullanma hakkında daha fazla bilgi için bkz . Azure kapsayıcı seçeneklerini karşılaştırma.

Bu öğreticide şunları yapacaksınız:

  • Docker kapsayıcısı derleme ve yerel olarak çalıştırma. Bu adım isteğe bağlıdır.

  • Docker kapsayıcı görüntüsünü doğrudan Azure'da oluşturun.

  • App Service'i Docker kapsayıcı görüntüsünü temel alan bir web uygulaması oluşturacak şekilde yapılandırın.

Bu öğreticinin ardından, Bir Python web uygulamasının Azure'a Sürekli Tümleştirme (CI) ve Sürekli Dağıtım (CD) için temeline sahip olacaksınız.

Servise genel bakış

Bu öğreticiyi destekleyen hizmet diyagramında iki ortam (geliştirici ortamı ve Azure) ve öğreticide kullanılan farklı Azure hizmetleri gösterilir.

A screenshot of the services using in the Tutorial - Containerized Python App on Azure.

Bu öğreticiyi destekleyen ve yukarıdaki diyagramda gösterilen bileşenler şunlardır:

  • Azure App Service

    • Kapsayıcılılaştırmayı etkinleştiren temel App Service işlevi, Kapsayıcılar için Web App'tir. Azure Uygulaması Hizmeti,Hem yerleşik görüntüleri hem de özel görüntüleri barındırmak için Docker kapsayıcı teknolojisi. Bu öğreticide Python kodundan bir görüntü oluşturacak ve bunu Kapsayıcılar için Web App'e dağıtacaksınız.

    • Kapsayıcılar için Web App, yeni görüntülerden haberdar olmak için kayıt defterinde bir web kancası kullanır. Depoya yeni bir görüntü gönderilmesi, App Service'in görüntüyü çekmesini ve yeniden başlatmasını tetikler.

  • Azure Container Registry

    • Azure Container Registry, Azure'da Docker görüntüleri ve bileşenleriyle çalışmanızı sağlar. Azure'daki dağıtımlarınıza yakın olan ve erişim üzerinde denetim sahibi olmanıza olanak tanıyan bir kayıt defteri sağlayarak Microsoft Entra gruplarınızı ve izinlerinizi kullanmanızı mümkün hale getirir.

    • Bu öğreticide kayıt defteri kaynağı Azure Container Registry'dir, ancak küçük değişikliklerle Docker Hub'ı veya özel bir kayıt defterini de kullanabilirsiniz.

  • MongoDB için Azure Cosmos DB

    • MongoDB için Azure Cosmos DB, bu öğreticide verileri depolamak için kullanılan bir NoSQL veritabanıdır.

    • Azure Cosmos DB kaynağına erişim, kapsayıcılı uygulamaya ortam değişkeni olarak geçirilen bir bağlantı dizesi üzerinden yapılır.

Kimlik Doğrulaması

Bu öğreticide bir Docker görüntüsü oluşturacak (yerel olarak veya doğrudan Azure'da) ve bunu Azure Uygulaması Hizmetine dağıtacaksınız. App Service kapsayıcı görüntüsünü bir Azure Container Registry deposundan çeker.

App Service, Azure Container Registry'den görüntü çekmek için yönetilen kimliği kullanır. Yönetilen kimlik, kimlik bilgilerini belirtmeye gerek kalmadan diğer Azure kaynaklarına erişebilmesi için web uygulamasına izinler vermenize olanak tanır. Özellikle, bu öğreticide sistem tarafından atanan yönetilen kimlik kullanılır. Yönetilen kimlik, App Service kurulumu sırasında bir kayıt defteri kapsayıcı görüntüsü kullanmak üzere yapılandırılır.

Öğretici örnek web uygulaması, verileri depolamak için MongoDB kullanır. Örnek kod bir bağlantı dizesi aracılığıyla Azure Cosmos DB'ye bağlanır.

Önkoşullar

Bu öğreticiyi tamamlamak için şunları yapmanız gerekir:

Örnek uygulama

Python örnek uygulaması, MongoDB'de restoran ve gözden geçirme verilerini kaydeden bir restoran gözden geçirme uygulamasıdır. PostgreSQL kullanan bir web uygulaması örneği için bkz . Yönetilen kimlikle Flask web uygulaması oluşturma ve Azure'a dağıtma.

Öğreticinin sonunda, Azure'da dağıtılan ve çalıştırılan ve aşağıdaki ekran görüntüsüne benzeyen bir restoran gözden geçirme uygulamasına sahip olacaksınız.

A screenshot of the sample app created from the Python containerized web app used in the Tutorial - Containerized Python App on Azure.

Sonraki adım