Aracılığıyla paylaş


.NET Aspire projesini Azure Container Apps dağıt

.NET .NET Aspire projeleri kapsayıcılı ortamlarda çalışacak şekilde tasarlanmıştır. Azure Container Apps, sunucusuz bir platformda mikro hizmetleri ve kapsayıcılı uygulamaları çalıştırmanızı sağlayan tam olarak yönetilen bir ortamdır. Bu makale, yeni bir .NET Aspire çözümü oluşturma ve Azure Container Apps (Azure Developer CLI) kullanarak onu Microsoft azd'e dağıtma konusunda size yol gösterecektir. Aşağıdaki görevleri nasıl tamamlayacağınızı öğreneceksiniz:

  • Azure kaynak grubu ve Container Registry sağlama
  • .NET Aspire projelerini Azure Container Registry'de kapsayıcı görüntüleri olarak yayımlama
  • Redis'da bir Azure kapsayıcısı sağla
  • Uygulamaları Azure Container Apps bir ortama dağıtın
  • Uygulama sorunlarını gidermek için uygulama konsolu günlüklerini görüntüleme

Önkoşullar

.NET .NET Aspireile çalışmak için aşağıdakilerin yerel olarak yüklenmesi gerekir:

Daha fazla bilgi için bkz. .NET.NET Aspire kurulum ve araçve .NET.NET Aspire SDK.

Bu öğreticiye alternatif olarak ve daha ayrıntılı bir kılavuz için, 'ı inceleyin: .NET Aspire projesini Azure Container Apps kullanarak azd'ye dağıtma (ayrıntılı kılavuz).

.NET ile .NET Aspireazd projelerini kurma

.NET Aspire ve Azure Container Apps (ACA) ile .NETile buluta özel uygulamalarınızı oluşturmak için harika bir barındırma senaryonuz vardır. Azure Developer CLI geliştirme ve dağıtımını azd için sorunsuz bir deneyim haline getirmek amacıyla .NET Aspire (Azure) içine bazı harika yeni özellikler kattık. Dağıtımlarınız üzerinde ayrıntılı bir denetim düzeyine ihtiyacınız olduğunda Azure CLI ve/veya Bicep seçeneklerini kullanmaya devam edebilirsiniz. Ancak yeni projeler için buluta yeni bir mikro hizmet topolojisi dağıtmanın daha kolay bir yolunu bulamazsınız.

.NET .NET Aspire projesi oluşturma

Başlangıç noktası olarak, bu makalede .NET şablonundan bir .NET Aspire.NET projesi oluşturduğunuz varsayılır. Daha fazla bilgi için bkz. .NETilk .NET Aspire projenizi oluşturma.

Kaynak adlandırma

Yeni Azure kaynakları oluşturduğunuzda adlandırma gereksinimlerini takip etmek önemlidir. Azure Container Appsiçin, ad 2-32 karakter uzunluğunda olmalı ve küçük harf, sayı ve kısa çizgilerden oluşmalıdır. Ad bir harfle başlayıp alfasayısal karakterle bitmelidir.

Daha fazla bilgi için, bkz. Azure kaynakları için adlandırma kuralları ve kısıtlamaları.

Azure Developer CLI yükleme

azd yükleme işlemi işletim sisteminize göre değişir, ancak winget, brew, aptveya doğrudan curlaracılığıyla yaygın olarak kullanılabilir. azdyüklemek için, bkz. : Azure Developer CLIyükleme.

Şablonu başlatma

  1. Yeni bir terminal penceresi açın ve .NET.NET Aspire çözümünüzün dizininde cd yapın.

  2. projenizi azd initile başlatmak için yerel dizin yapısını inceleyen ve uygulama türünü belirleyen azd komutunu yürütün.

    azd init
    

    komutu hakkında daha fazla bilgi için bkz. azd init.

  3. geçerli dizin kodu kullan'ı seçin. azd sizden iki uygulama başlatma seçeneği isteyip istemediğinizi sorar.

    ? How do you want to initialize your app?  [Use arrows to move, type to filter]
    > Use code in the current directory
      Select a template
    
  4. Dizini taradıktan sonra azd, doğru .NET.NET Aspire'ü bulduğunu onaylamanız için sizi AppHost projesine yönlendirir. Uygulamamı başlatmaya devam et ve onayla seçeneğini seçin.

    Detected services:
    
      .NET (Aspire)
      Detected in: D:\source\repos\AspireSample\AspireSample.AppHost\AspireSample.AppHost.csproj
    
    azd will generate the files necessary to host your app on Azure using Azure Container Apps.
    
    ? Select an option  [Use arrows to move, type to filter]
    > Confirm and continue initializing my app
      Cancel and exit
    
  5. Azure ve dev ve prodgibi farklı ortamları yönetmek için sağlanan kaynakları adlandırmak için kullanılan bir ortam adı girin.

    Generating files to run your app on Azure:
    
      (✓) Done: Generating ./azure.yaml
      (✓) Done: Generating ./next-steps.md
    
    SUCCESS: Your app is ready for the cloud!
    You can provision and deploy your app to Azure by running the azd up command in this directory. For more information on configuring your app, see ./next-steps.md
    

azd bir dizi dosya oluşturur ve bunları çalışma dizinine yerleştirir. Bu dosyalar şunlardır:

  • azure.yaml: Uygulamanın AppHost projesi gibi hizmetlerini açıklar ve bunları kaynaklara eşler.
  • .azure/config.json: geçerli etkin ortamın ne olduğunu azd bilgilendiren yapılandırma dosyası.
  • .azure/aspireazddev/.env: Ortama özgü geçersiz kılmaları içerir.

Şablonu dağıtma

  1. Bir azd şablonu başlatıldıktan sonra, sağlama ve dağıtım işlemi AppHost proje dizininden azd upkullanılarak tek bir komutla yürütülebilir.

    azd up
    
  2. Kullanılabilir seçenekler listesinden dağıtmak istediğiniz aboneliği seçin:

    Select an Azure Subscription to use:  [Use arrows to move, type to filter]
      1. SampleSubscription01 (xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx)
      2. SamepleSubscription02 (xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx)
    
  3. Kullanılabilir seçenekler listesinden kullanmak istediğiniz Azure konumu seçin:

    Select an Azure location to use:  [Use arrows to move, type to filter]
      42. (US) Central US (centralus)
      43. (US) East US (eastus)
    > 44. (US) East US 2 (eastus2)
      46. (US) North Central US (northcentralus)
      47. (US) South Central US (southcentralus)
    

Seçimlerinizi yaptıktan sonra azd sağlama ve dağıtım işlemini yürütür.

By default, a service can only be reached from inside the Azure Container Apps environment it is running in. Selecting a service here will also allow it to be reached from the Internet.
? Select which services to expose to the Internet webfrontend
? Select an Azure Subscription to use:  1. <YOUR SUBSCRIPTION>
? Select an Azure location to use: 1. <YOUR LOCATION>

Packaging services (azd package)


Provisioning Azure resources (azd provision)
Provisioning Azure resources can take some time.

Subscription: <YOUR SUBSCRIPTION>
Location: <YOUR LOCATION>

  You can view detailed progress in the Azure Portal:
  <LINK TO DEPLOYMENT>

  (✓) Done: Resource group: <YOUR RESOURCE GROUP>
  (✓) Done: Container Registry: <ID>
  (✓) Done: Log Analytics workspace: <ID>
  (✓) Done: Container Apps Environment: <ID>

SUCCESS: Your application was provisioned in Azure in 1 minute 13 seconds.
You can view the resources created under the resource group <YOUR RESOURCE GROUP> in Azure Portal:
<LINK TO RESOURCE GROUP OVERVIEW>

Deploying services (azd deploy)

  (✓) Done: Deploying service apiservice
  - Endpoint: <YOUR UNIQUE apiservice APP>.azurecontainerapps.io/

  (✓) Done: Deploying service webfrontend
  - Endpoint: <YOUR UNIQUE webfrontend APP>.azurecontainerapps.io/

Aspire Dashboard: <LINK TO DEPLOYED .NET ASPIRE DASHBOARD>

SUCCESS: Your up workflow to provision and deploy to Azure completed in 3 minutes 50 seconds.

azd up komutu, kaynaklarınızı tek adımda sağlamak ve dağıtmak için aşağıdaki tek tek azd komutları için sarmalayıcı işlevi görür:

  1. azd package: Uygulama projeleri ve bağımlılıkları kapsayıcılar halinde paketlenir.
  2. azd provision: Uygulamanın ihtiyaç duyacağı Azure kaynakları sağlanır.
  3. azd deploy: Projeler container olarak bir Azure Container Registry örneğine itilir ve ardından kodun barındırılacağı Azure Container Apps'nin yeni revizyonlarını oluşturmak için kullanılır.

azd up aşamaları tamamlandığında uygulamanız Azure'de kullanılabilir olur ve kaynakları keşfetmek için Azure portalını açabilirsiniz. azd ayrıca dağıtılan uygulamalara doğrudan erişmek için URL'ler çıkışı da sağlar.

Dağıtılan uygulamayı test edin

Uygulama sağlanıp dağıtıldığına göre artık Azure portalına göz atabilirsiniz. Uygulamayı dağıttığınız kaynak grubunda üç kapsayıcı uygulaması ve diğer kaynakları görürsünüz.

.NET Aspire portalında Azure projenin kaynak grubunun ekran görüntüsü.

web Kapsayıcı Uygulaması'nı Portal'da açın.

.NET Aspire portalında Azure projesinin ön ucunun ekran görüntüsü.

Ön ucu tarayıcıda açmak için Uygulama URL'si bağlantısına tıklayın.

Tarayıcıda .NET.NET Aspire projesinin ön ucunun ekran görüntüsü.

Gezinti çubuğunda "Hava Durumu" düğümüne tıkladığınızda, web ön uç kapsayıcı uygulaması, veri almak için apiservice kapsayıcı uygulamasına bir çağrı yapar. Ön uç çıktısı, redis kapsayıcı uygulaması ve .NET AspireRedis Çıktı Önbelleği tümleştirmesikullanılarak önbelleğe alınır. Ön ucu birkaç kez yenilediğinizde hava durumu verilerinin önbelleğe alındığını fark edeceksiniz. Birkaç saniye sonra güncelleştirilir.

.NET .NET Aspire Panosunu dağıtın

.NET .NET Aspire panosunu barındırılan uygulamanızın bir parçası olarak dağıtabilirsiniz. Bu özellik artık tam olarak desteklenmektedir. Dağıtım sırasında azd çıkış günlükleri dağıtılan panoya ek bir URL yazdırır.

Panoyu otomatik olarak başlatmak için azd monitor çalıştırabilirsiniz.

azd monitor

Kaynakları temizleme

Oluşturduğunuz Azure kaynaklarına artık ihtiyacınız kalmadığında kaynak grubunu silmek için aşağıdaki Azure CLI komutunu çalıştırın. Kaynak grubunun silinmesi, içinde yer alan kaynakları da siler.

az group delete --name <your-resource-group-name>

Daha fazla bilgi için bkz. 'de kaynakları temizleme .