Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu öğretici serisi, bir Python web uygulamasını kapsayıcıya alma ve Azure Container Apps'a dağıtmayı gösterir. Örnek bir web uygulaması kapsayıcılı hale getirilir ve Docker görüntüsü Azure Container Registry içinde depolanır. Azure Container Apps, Docker görüntüsünü Container Registry'den çekecek ve bir kapsayıcı oluşturacak şekilde yapılandırılmıştır. Örnek uygulama, Container Apps ile diğer Azure kaynakları arasındaki iletişimi göstermek için Azure Database for PostgreSQL bağlanır.
Azure üzerinde bulutta yerel ve kapsayıcılı Python web uygulamaları derlemek ve dağıtmak için çeşitli seçenekler vardır. Bu öğretici serisi Azure Container Apps kapsar. Container Apps, özellikle kapsayıcılara dağıtılan birçok mikro hizmeti kapsayan uygulamalar için genel amaçlı kapsayıcılar çalıştırmak için iyidir.
Bu öğretici serisinde bir kapsayıcı oluşturacaksınız. Azure App Service üzerinde kapsayıcı olarak bir Python web uygulaması dağıtmak için bkz. MongoDB ile Azure üzerinde Kapsüllenmiş Python web uygulaması.
Bu öğretici serisindeki yordamlar şu görevleri tamamlamanız için size yol gösterir:
- Python bir web uygulamasından Docker görüntüsü oluşturun ve görüntüyü Azure Container Registry içinde depolayın.
- Docker görüntüsünü barındırmak için Azure Container Apps yapılandırın.
- kapsayıcıyı GitHub deponuzda yapılan değişikliklerle tetiklenen yeni bir Docker görüntüsüyle güncelleştirmek için GitHub Actions ayarlayın. Bu adım isteğe bağlıdır.
- Azure için bir Python web uygulamasının sürekli tümleştirmesini ve sürekli teslimini (CI/CD) ayarlayın.
Serinin bu ilk bölümünde, Azure Container Apps'da bir Python web uygulaması dağıtmaya yönelik temel kavramları öğreneceksiniz.
Hizmete genel bakış
Aşağıdaki diyagramda bu öğretici serisinde yerel ortamınızı, GitHub depolarınızı ve Azure hizmetlerinizi nasıl kullanacağınız gösterilmektedir.
Diyagram şu bileşenleri içerir:
-
Azure Container Apps, mikro hizmetleri ve kapsayıcılı uygulamaları sunucusuz bir platformda çalıştırmanızı sağlar. Sunucusuz platform, kapsayıcıları en az yapılandırmayla çalıştırmanın avantajlarından yararlandığınız anlamına gelir. Azure Container Apps ile uygulamalarınız HTTP trafiği, olay temelli işleme veya CPU veya bellek yükü gibi özelliklere göre dinamik olarak ölçeklendirilebilir.
Container Apps, Docker görüntülerini Azure Container Registry'den çeker. Kapsayıcı görüntülerine yapılan değişiklikler, dağıtılan kapsayıcıda bir güncelleştirme tetikler. Ayrıca güncelleştirmeleri tetikleyen GitHub Actions yapılandırabilirsiniz.
-
Azure Container Registry, Azure'da Docker görüntüleriyle çalışmanızı sağlar. Container Registry Azure'daki dağıtımlarınıza yakın olduğundan, erişim üzerinde denetiminiz vardır. Docker görüntülerine erişimi denetlemek için Microsoft Entra gruplarınızı ve izinlerinizi kullanabilirsiniz.
Bu öğretici serisinde kayıt defteri kaynağı Azure Container Registry. Ancak küçük değişikliklerle Docker Hub veya özel kayıt defteri de kullanabilirsiniz.
Azure Database for PostgreSQL:
Örnek kod, uygulama verilerini bir PostgreSQL veritabanında depolar. Kapsayıcı uygulaması, kullanıcı tarafından atanan yönetilen kimlikkullanarak PostgreSQL'e bağlanır. Bağlantı bilgileri, açıkça veya Azure hizmet bağlayıcısı aracılığıyla yapılandırılan ortam değişkenlerinde depolanır.
-
Bu öğretici serisinin örnek kodu, fork ettiğiniz ve yerelde klonladığınız bir GitHub deposundadır. GitHub Actions ile CI/CD iş akışı ayarlamak için bir GitHub hesabınız olmalıdır.
Örnek kod deposundan kapsayıcı görüntüsünü oluşturmak için yerel olarak veya Azure Cloud Shell içinde çalışıyorsanız, GitHub hesabı olmadan bu öğretici serisini takip edebilirsiniz.
Revizyonlar ve CI/CD
Kod değişiklikleri yapmak ve bunları bir kapsayıcıya göndermek için değişikliklerinizle yeni bir Docker görüntüsü oluşturursunuz. Ardından görüntüyü Container Registry'ye gönderir ve kapsayıcı uygulamanın yeni bir revizyonu oluşturursunuz.
Bu işlemi otomatikleştirmek için öğretici serisindeki isteğe bağlı bir adım, GitHub Actions kullanarak CI/CD işlem hattı oluşturmayı gösterir. İşlem hattı, GitHub deponuza yeni bir commit gönderildiğinde kodunuzu otomatik olarak derleyip Container Apps'e dağıtır.
Kimlik doğrulaması ve güvenlik
Bu öğretici serisinde, doğrudan Azure'da bir Docker kapsayıcı imajı oluşturacak ve Azure Container Apps'e dağıtacaksınız. Container Apps, Azure sanal ağı tarafından desteklenen environment bağlamında çalışır. Sanal ağlar, Azure'daki özel ağınız için temel bir yapı taşıdır. Container Apps, girişi etkinleştirerek kapsayıcı uygulamanızı genel web'de kullanıma sunmanızı sağlar.
GitHub hesabınız için Azure Container Apps'i bir OAuth uygulaması olarak yetkilendirmek için CI/CD'yi ayarlayın. OAuth uygulaması olarak, Container Apps deponuza Azure kaynakları ve bunları güncelleştirecek işler hakkında bilgi içeren bir GitHub Actions iş akışı dosyası yazar. İş akışı, kapsayıcı uygulamaları için rol tabanlı erişim ve Azure Container Registry için kullanıcı adı ve parola ile bir Microsoft Entra hizmet sorumlusunun (veya mevcut bir hizmet sorumlusunun) kimlik bilgilerini kullanarak Azure kaynakları güncelleştirir. Kimlik bilgileri GitHub deponuzda güvenli bir şekilde depolanır.
Son olarak, bu öğretici serisindeki örnek web uygulaması verileri bir PostgreSQL veritabanında depolar. Örnek kod bir connection string aracılığıyla PostgreSQL'e bağlanır. Uygulama Azure çalışırken, kullanıcı tarafından atanan yönetilen kimliği kullanarak PostgreSQL veritabanına bağlanır. Kod, çalışma zamanı sırasında connection string parolayı Microsoft Entra erişim belirteci ile dinamik olarak güncelleştirmek için DefaultAzureCredential kullanır. Bu mekanizma, parolayı connection string veya ortam değişkeninde sabit kodlama gereksinimini önler ve ek bir güvenlik katmanı sağlar.
Öğretici serisi, yönetilen kimliği oluşturma ve veritabanına erişebilmesi ve veritabanına güncelleştirilebilmesi için uygun bir PostgreSQL rolü ve izinleri verme konusunda size yol gösterir. Container Apps yapılandırması sırasında öğretici serisi, uygulamada yönetilen kimliği yapılandırma ve veritabanı için bağlantı bilgilerini içeren ortam değişkenlerini ayarlama konusunda size yol gösterir. Aynı şeyi gerçekleştirmek için bir Azure hizmet bağlayıcısı da kullanabilirsiniz.
Önkoşullar
Bu öğretici serisini tamamlamak için şunları yapmanız gerekir:
Oluşturabileceğiniz bir Azure hesabı:
- bir Azure Container Registry örneği.
- Bir Azure Container Apps ortamı.
- Azure Database for PostgreSQL örneği.
hangi aracı kullandığınıza bağlı olarak Visual Studio Code veya Azure CLI:
- Visual Studio Code için Container Apps uzantısı gerekir.
- Azure Cloud Shell aracılığıyla Azure CLI kullanabilirsiniz.
Python paketleri:
- PostgreSQL'e bağlanmak için psycopg2-binary.
- Flask veya Django web çerçevesi olarak.
Örnek uygulama
Python örnek uygulaması, PostgreSQL'de restoran ve gözden geçirme verilerini kaydeden bir restoran gözden geçirme uygulamasıdır. Öğretici serisinin sonunda, aşağıdaki ekran görüntüsüne benzeyen ve Azure Container Apps üzerinde dağıtılmış ve çalışır durumda olan bir restoran değerlendirme uygulamasına sahip olacaksınız.