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), çeşitli Azure barındırma hizmetlerinde kapsayıcı görüntüleri oluşturabilir, yayımlayabilir ve dağıtabilir. Kapsayıcı iş akışı, barındırma hedeflerini derleme konumu ve yayımlama yaklaşımıyla birleştirir. En iyi birleşim uygulamanıza, ekibinizin kullanabileceği araçlara ve ortamlar arasında görüntüleri nasıl yükseltdiğinize bağlıdır.
Bu seçenekleri gereksinimlerinizle eşleştirmek için bu makaleyi kullanın. Aşağıdaki kararları karşılaştırır:
- Kapsayıcınızı hangi Azure hizmeti barındırır?
- İster
azdgörüntüyü yerel olarak derlesin, ister Azure Container Registry (ACR) içinde uzaktan derlesin ya da var olan bir görüntüyü kullanır. -
azdgörüntüyü birlikte mi yoksa ayrı adımlar halinde mi yayımlayıp dağıttığı.
Makale, şu genel amaçlı barındırma hizmetlerini karşılaştırır:
Barındırma hedeflerini ve görüntü derleme seçeneklerini karşılaştırarak başlayın. Bu seçenekleri anladıktan sonra, Kapsayıcı dağıtım iş akışlarını karşılaştırma bölümünde uygun bir iş akışını belirlemek için bunları kullanın.
Kapsayıcı barındırma hedeflerini karşılaştırın
host içindeki azure.yaml özelliği, kapsayıcınızı dağıtan azd Azure hizmetini tanımlar. Ana bilgisayarı imaj oluşturma konumundan bağımsız olarak seçin.
| Ana bilgisayar değeri | Azure barındırma hedefi | Konteyner iş akışı | Değerlendirmeler |
|---|---|---|---|
containerapp |
Azure Container Apps ve Container Apps görevleri | Bir projeden ve Dockerfile'dan oluşturun veya önceden oluşturulmuş bir görüntü dağıtın. | Hizmet düzeyi ortam değişkenlerini ve Container Apps'e özgü dağıtım stratejilerini destekler. Container Apps işleri için aynı konak değerini kullanın. |
appservice |
Azure App Service'da Kapsayıcılar için Linux Web App | Bir projeden ve Dockerfile'dan oluşturun veya önceden oluşturulmuş bir görüntü dağıtın. | Altyapınızın Linux kapsayıcısı için hazır bir site sağlaması ve ACR'ye yönetilen kimlik erişimini yapılandırması gerekir.
azd deploy yalnızca imaj referansını günceller. |
aks |
Azure Kubernetes Service | Bir görüntü oluşturun ve Kubernetes bildirimlerini, Helm grafiklerini veya Kustomize yapılandırmalarını dağıtın. | En fazla denetimi sağlar, ancak kümeyi ve Kubernetes yapılandırmasını yönetmenizi gerektirir.
azd ile Helm veya Kustomize kullanmak için alfa özellik bayraklarını etkinleştirmek gerekir. |
ai.endpoint ve azure.ai.agent konakları, özelleştirilmiş Microsoft Foundry senaryoları için Docker yapılandırmasını da destekler. Bu iş yükleri için bkz. Microsoft Foundry çevrimiçi uç noktalarına dağıtma ve Microsoft Foundry aracısı uzantısı.
Görüntü derleme seçeneklerini karşılaştırma
Hizmet tanımı, görüntü oluşturup oluşturmayacağını veya var olan bir görüntüyle başlayıp başlamayacağını azd belirler.
| Derleme seçeneği | Gerekli yapılandırma | Derlemenin çalıştığı yer | Yerel kapsayıcı motoru | İçin en uygun |
|---|---|---|---|---|
| Yerel derleme |
project ve isteğe bağlı olarak docker |
Geliştirme ortamınız veya CI yürütücünüz | Zorunlu | Hızlı geliştirme döngüleri ve halihazırda Docker veya Podman sunan derleme ortamları. |
| ACR uzaktan derleme |
project ve docker.remoteBuild: true |
Azure Container Registry (Azure Konteyner Kayıt Defteri) | Uzak derleme hatasından sonra geri dönmediği sürece azd gerekli değildir |
Yerel bir konteyner motoruna ihtiyaç duymadan bulutta tutarlı derlemeler ve ortamlar. Belgelerde açıklanan uzaktan derleme iş akışı Azure Container Apps’i hedefler. |
azd tarafından yönetilen mevcut imaj |
image |
Kaynak yapı yok | Görüntü yaşam döngüsü işlemleri için gerekli olabilir | Yerel olarak veya bir kayıtta zaten bulunan ya da azd öğesinin çekebildiği, etiketleyebildiği ve gönderebildiği imajlar. |
| Uzak görüntü aktarımı |
image ve docker.imagePassthrough: true |
Derleme yok | Gerekli değil | Barındırma kaynağının olduğu gibi kullanması gereken tam nitelikli uzak görüntüler. |
Seçenek başına yapılandırma makalelerini okurken şu kavramsal farklılıkları göz önünde bulundurun:
- Bir önceden oluşturulmuş imaj,
imageyerineprojectözelliğini kullanır veazdyine de onu çekebilir, etiketleyebilir ve gönderebilir. - ACR uzak derlemesi, uzak derleme başarısız olduğunda ve desteklenen bir kapsayıcı altyapısı kullanılabilir olduğunda yerel bir Docker veya Podman derlemesine başvurur.
-
Görüntü aktarımı, kayıt defteri bilgisi içeren tam nitelikli bir uzak imaj referansı gerektirir,
remoteBuildile birlikte kullanılamaz veazd publish --from-packageimajı yönetmediği içinazd publish --toveyaazdseçeneklerini desteklemez.
Her seçeneğin tam yapılandırması için bkz. Azure Container Registry ile uzak derleme desteği, Üçüncü taraf kapsayıcı kayıt defterlerini kullanma, Azure Geliştirici CLI ile App Service kapsayıcı dağıtımları ve docker şema.
Kapsayıcı dağıtımı iş akışlarını karşılaştırma
Kapsayıcı barındırma hedeflerini karşılaştırma'daki barındırma hedeflerini ve Görüntü derleme seçeneklerini karşılaştır'daki derleme seçeneklerini karşılaştırdıktan sonra, gereksinimlerinize en uygun iş akışlarını belirlemek için aşağıdaki tabloyu kullanın.
| Gerekirse | Şununla başla | Neden? |
|---|---|---|
| Kapsayıcılı uygulamayı sunucusuz platforma dağıtma | Yerel derlemeyle Azure Container Apps | Bu iş akışı, dockerfile tabanlı bir projeyi tek bir geliştirme iş akışında derleyip dağıtır. |
| Docker veya Podman’ı yerel olarak yüklemeden derleme yapın | ACR uzak derlemesi ile Azure Container Apps | ACR, Azure'de projenizden ve Dockerfile'dan görüntü oluşturur. |
| Başka bir derleme sisteminin ürettiği görüntüyü dağıtma | Önceden oluşturulmuş bir imajla Azure Container Apps veya App Service |
image özelliği, derlenecek kaynak kod yerine mevcut imajı belirtir. |
| Uzaktaki bir imajı çekmeden, etiketlemeden veya itmeden yeniden kullanın | İmaj geçişi ile Azure Container Apps |
azd tam nitelikli görüntü başvurusunu doğrudan barındıran kaynağa geçirir. |
| Geleneksel bir web uygulamasını Linux kapsayıcısı olarak barındırma | Azure App Service'de Kapsayıcılar için Web Uygulaması | App Service, entegre bir web barındırma platformu sağlarken altyapınız kapsayıcıya hazır site yapılandırmasını denetler. |
| Kubernetes bildirimlerini ve küme yapılandırmasını denetleme | Azure Kubernetes Hizmeti (AKS) |
azd görüntüyü derleyip yayımlayabilir, ardından Kubernetes bildirimlerini, Helm grafiklerini veya Kustomize yapılandırmalarını dağıtabilir. |
| Bir kez oluşturun ve ortamlar aracılığıyla aynı görüntüyü yükseltin |
azd publish ve ardından azd deploy --from-package |
Yayımlama ve dağıtım ayrı olduğundan her ortam aynı görüntüyü alır. |
Her satır, Kapsayıcı barındırma hedeflerini karşılaştır bölümündeki barındırma seçenekleri ile İmaj derleme seçeneklerini karşılaştır bölümündeki derleme seçeneklerini birleştirerek bir başlangıç noktası oluşturur. içinde azure.yamlseçiminizi yapılandırın ve Bicep veya Terraform dosyalarınızın ilgili barındırma ve kayıt defteri kaynaklarını sağlamasına izin verin.
Asgari bir hizmet tanımı, host, derleme kaynağını ve Dockerfile'ı ayarlar:
services:
api:
project: ./src/api
language: docker
host: containerapp
docker:
path: ./Dockerfile
Bu tanımı başka bir konağa uyarlamak için değeri değiştirin host ve konak başına yapılandırma sözleşmesini izleyin:
- Azure Geliştirici CLI'sını kullanarak Azure Container Apps'e dağıtma
- Azure Developer CLI ile App Service kapsayıcı dağıtımları
- Helm ve Kustomize desteği
Yayımlama ve dağıtım komutlarını karşılaştırma
Bir ana bilgisayar ve derleme seçeneği belirledikten sonra, imaj yayımlama ile dağıtımı birleştirmek mi yoksa ayırmak mı istediğinizi seçin.
| Komut | Görüntü işlemleri | Azure kaynak eylemi | Şu durumlarda kullanın: |
|---|---|---|---|
azd up |
Oluştur ve gönder | Sağlama ve devreye alma | Ortamın tamamını oluşturmak veya güncelleştirmek ve uygulamayı tek bir iş akışında dağıtmak istiyorsunuz. |
azd deploy |
Derleme ve gönderme | Deploy | Altyapı zaten var ve uygulama değişikliklerini dağıtmak istiyorsunuz. |
azd publish |
Derleme ve gönderme | Hiçbiri | Dağıtıma almadan bir kayıt defteri artefaktı oluşturmak istiyorsunuz.
azd publish Container Apps ve AKS hizmetlerini destekler. |
azd publish --from-package <image> |
Mevcut bir yerel görüntüyü gönderme | Hiçbiri | İmaj başka bir işlem tarafından oluşturuldu ve azd öğesinin onu yayımlamasını istiyorsunuz. |
azd deploy --from-package <image> |
Hiçbiri | Deploy | Belirli bir görüntüyü yeniden oluşturmadan dağıtmak istiyorsunuz. |
Örneğin, sürümü oluşturulan bir görüntüyü yayımlayın ve aynı görüntüyü başka bir ortama dağıtın:
azd publish api --to myregistry.azurecr.io/my-api:v1.0.0
azd env select production
azd deploy api --from-package myregistry.azurecr.io/my-api:v1.0.0
Bu iş akışı, her ortam için bir görüntüyü yeniden oluştururken oluşabilecek farklılıkları önler. Tam bir yükseltme iş akışı için bkz. Azure Geliştirici CLI yayımlama iş akışları.