Kapsayıcı derleme ve dağıtım iş akışını seçin

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 azd gö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.
  • azd gö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, image yerine project özelliğini kullanır ve azd yine 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, remoteBuild ile birlikte kullanılamaz ve azd publish --from-package imajı yönetmediği için azd publish --to veya azd seç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:

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ı.