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.
Azure Geliştirici CLI'sı (azd) uygulamanızı Azure App Service dağıtabilir. Bu dağıtım modu uygulamanızı Kapsayıcılar için Linux Web Uygulaması olarak çalıştırır. Bir hizmet, Docker tabanlı bir derlemeyle host: appservice kullandığında, azd deploy imajı oluşturur, Azure Container Registry’ye (ACR) gönderir ve mevcut bir App Service sitesini yeni imajı kullanacak şekilde yapılandırır.
azd deploy yalnızca imaj başvurusunu güncellediğinden, dağıtımdan önce altyapınızın sitenizi kapsayıcıya hazır hâle getirmesi gerekir. Bu dağıtım modunun ne beklediğini bilmek, siteyi doğru ayarlamanıza ve başarısız dağıtımlardan kaçınmanıza yardımcı olur.
Bu makale, bu dağıtım modunun nasıl çalıştığını, altyapınızda önceden yapılandırılmış olması gerekenleri ve containerapp hosttan nasıl farklı olduğunu açıklar.
azure.yaml projelerine, azd'e ve azd sağlama ile dağıtım komutlarına aşina olduğunuz varsayılır.
azd'nin bir kapsayıcıyı App Service'e nasıl dağıttığı
Bir hizmet kapsayıcı yapılandırmasıyla ayarlandığında host: appservice , azd deploy hedef siteyi Kapsayıcılar için Web Uygulaması olarak işler ve aşağıdaki işleri yapar:
- Dockerfile dosyanızdan bir konteyner imajı oluşturur.
- Görüntüyü altyapınızın tanımladığı ACR örneğine gönderir.
- Sitenin
linuxFxVersionayarınıDOCKER|<image>olarak güncelleştirerek sitenin görüntünüzü çalıştırmasını sağlar.
azd deploy, mevcut bir site için yalnızca görüntü referansını günceller. Altta yatan altyapıyı oluşturmaz veya yapılandırmaz; bu nedenle dağıtımdan önce sitenin konteyner kullanıma hazır olması gerekir.
azure.yaml'de hizmet yapılandırması
App Service’e yapılan bir kapsayıcı dağıtımı, Docker tabanlı bir derlemeyle host: appservice kullanır.
language: docker öğesini ayarlayın veya Dockerfile dosyanızı işaret eden bir docker yapılandırması ekleyin:
services:
web:
project: ./src/web
host: appservice
language: docker
docker:
path: ./Dockerfile
Bu yapılandırmayla azd, görüntüyü ./src/web/Dockerfile içeriğinden oluşturur, registry'nize gönderir ve App Service sitesini bu görüntüyü çalıştırmak üzere güncelleştirir.
appservice ana bilgisayar hizmet düzeyi env: ayarlarını uygulamaz; bu nedenle uygulama ayarlarını bunun yerine altyapınız üzerinden yapılandırın.
Kapsayıcıya hazır App Service sitesi için altyapı gereksinimleri
azd deploy, appservice konağı için altyapı sağlamaz veya değiştirmez; bu nedenle, dağıtımdan önce mevcut Bicep veya Terraform yapılandırmanızın siteyi Linux kapsayıcı uygulaması olarak yapılandırması gerekir. Altyapı aşağıdaki sözleşmeyi karşılamalıdır:
| Requirement | Ayrıntılar |
|---|---|
| Linux App Service planı | Plan, Linux'u (kind: linux ile reserved: true) çalıştırır. App Service, kapsayıcıları yalnızca Linux'ta destekler; Windows'ta desteklemez. |
| Konteyner uyumlu site | Sitenin linuxFxVersion'ı bir DOCKER\| değeri kullanır. Yer tutucu bir imaj sorun değildir, çünkü azd deploy onu oluşturup gönderdiği imajla değiştirir. |
| Tek kapsayıcı | Site, bir kapsayıcı çalıştırıyor.
appservice ana bilgisayar, birden çok kapsayıcı veya Docker Compose yapılandırmalarını desteklemez. |
| Yönetilen kimlik ACR erişimi | Site, acrUserManagedIdentityID ile acrUseManagedIdentityCreds: true gibi kullanıcı tarafından atanan yönetilen bir kimlik aracılığıyla ACR’ye kimlik doğrulaması yapar.
appservice ana bilgisayarı yönetici kimlik bilgilerini desteklemiyor. |
azd deploy ile provision ve up komutlarının karşılaştırılması
App Service'e kapsayıcı dağıtımı, farklı azd komutlarına karşılık gelen iki alanı kapsar: altyapı ve uygulama kodu.
| Komut | Ne işe yarıyor? | Ne zaman kullanılır? |
|---|---|---|
azd provision |
kapsayıcıya hazır App Service sitesi ve ACR dahil olmak üzere Bicep veya Terraform'unuzdan Azure kaynakları oluşturur ve yapılandırır. | Altyapınız değiştiğinde veya site henüz mevcut olmadığında bunu kullanın. |
azd deploy |
İmajı oluşturur, ACR’ye aktarır ve sitenin imaj referansını günceller. Altyapıya dokunmaz. | Uygulama değişikliklerini zaten sağlanmış bir siteye göndermek için kullanın. |
azd up |
azd deploy ve ardından azd provision öğelerini tek bir komutta çalıştırır. |
Bunu ilk dağıtım için veya hazırlama ve dağıtımı birlikte gerçekleştirmek istediğinizde kullanın. |
azd deploy yalnızca imaj başvurusunu güncellediği için, appservice kapsayıcı dağıtımı her zaman daha önce azd provision veya azd up tarafından oluşturulmuş altyapıya bağlıdır.
Dağıtıma hazır olma doğrulaması
Siteyi güncelleştirmeden önce hedef azd deploy sitenin kapsayıcıya hazır olduğunu doğrular. Site bir Linux kapsayıcı uygulaması değilse, örneğin bir Windows planı kullanıyorsa, bir DOCKER|linuxFxVersion değeri eksikse veya ACR'ye yönetilen kimlik erişimi yoksa, azd deploy eksik yapılandırmayı tanımlayan bir hatayı durdurup döndürür. Yeniden dağıtım yapmadan önce altyapıyı düzeltin ve yeniden yapılandırın.
App Service kapsayıcılarının Container Apps ile karşılaştırması
Hem appservice hem de containerapp ana bilgisayarları kapsayıcı görüntülerini dağıtır, ancak altyapıyı ve yapılandırmayı farklı şekillerde yönetir:
| Davranış |
appservice ana bilgisayar |
containerapp ana bilgisayar |
|---|---|---|
| Altyapı yapılandırması |
azd deploy yalnızca imaj referansını günceller ve sitenin zaten kapsayıcı kullanıma hazır olmasını bekler. |
Kapsayıcı çalışma zamanının daha fazlasını sizin için sağlar ve yapılandırır. |
| Ortam değişkenleri | Hizmet düzeyi env: ayarları uygulanmaz. Bunun yerine altyapınız aracılığıyla uygulama ayarlarını yapılandırın. |
Hizmet düzeyi env: ayarlarını kapsayıcıya uygular. |
| Polyglot desteği |
language: docker aracılığıyla, yerleşik azd desteği olmayan çalışma zamanları için yararlı olan, herhangi bir dilde yazılmış uygulamaları kapsayıcılaştırır. |
language: docker aracılığıyla herhangi bir dilde yazılmış uygulamaları kapsayıcıya alır; bu, yerleşik azd desteği olmayan çalışma zamanları için kullanışlıdır. |