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.
Bu öğreticiyi destekleyen ve yukarıdaki diyagramda gösterilen bileşenler şunlardır:
-
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'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, 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:
Oluşturabileceğiniz bir Azure hesabı:
- Azure Container Registry
- Azure App Service
- MongoDB için Azure Cosmos DB (veya eşdeğerine erişim). MongoDB için Azure Cosmos DB veritabanı oluşturmak için bu öğreticinin 2. bölümündeki adımları izlemenizi öneririz.
Hangi aracı kullanacağınıza bağlı olarak Visual Studio Code veya Azure CLI.
- Visual Studio Code için Docker uzantısına ve Azure Uygulaması Hizmeti uzantısına ihtiyacınız vardır.
Python paketleri:
- MongoDB'ye bağlanmak için PyMongo.
- Web çerçevesi olarak Flask veya Django .
Kapsayıcıyı yerel olarak çalıştırmak istiyorsanız Docker yerel olarak yüklenir.
Ö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.