Partilhar via


Tutorial: Implantar um projeto .NET Aspire com um banco de dados SQL Server para Azure

Neste tutorial, vais aprender a configurar uma aplicação ASP.NET Core com uma base de dados SQL Server para implementação em Azure. .NET Aspire fornece várias configurações de integração de SQL Server que fornecem diferentes serviços de banco de dados em Azure. Você aprenderá a:

  • Criar um aplicativo ASP.NET Core básico configurado para usar a integração .NET AspireSQL Server
  • Configurar o aplicativo para provisionar um Banco de Dados SQL Azure
  • Configurar o aplicativo para provisionar um banco de dados SQL Server em contêiner

Observação

Este documento concentra-se especificamente nas configurações .NET Aspire para provisionar e implantar os recursos SQL Server em Azure. Visite o tutorial do de implantação do para saber mais sobre o processo completo de implantação do .

Pré-requisitos

Para trabalhar com .NET.NET Aspire, você precisa do seguinte instalado localmente:

Para obter mais informações, consulte .NET.NET Aspire configuração e ferramentas, e .NET.NET Aspire SDK.

Criar a solução de exemplo

  1. Na parte superior da janela Visual Studio, vá para Arquivo>Novo>Projeto.
  2. Na janela de diálogo, procure Aspire e selecione .NET.NET Aspire - Starter Application. Escolha Próximo.
  3. Na tela Configurar seu novo projeto:
    • Insira um Nome do Projeto de AspireSQL.
    • Deixe o rest dos valores nos seus valores padrão e selecione Avançar.
  4. No Informações adicionais tela:
    • Verifique se .NET 9.0 está selecionado e escolha Criar.

Visual Studio cria uma solução de ASP.NET Core nova, estruturada para usar .NET Aspire. A solução consiste nos seguintes projetos:

  • AspireSQL.Web: Um projeto Blazor que depende de padrões de serviço.
  • AspireSQL.ApiService: Um projeto de API que depende dos padrões de serviço.
  • AspireSQL.AppHost: Um projeto orquestrador projetado para conectar e configurar os diferentes projetos e serviços do seu aplicativo. O orquestrador deve ser definido como o projeto de arranque.
  • AspireSQL.ServiceDefaults: Uma biblioteca de classes compartilhada para armazenar configurações que podem ser reutilizadas em todos os projetos em sua solução.

Configurar a aplicação para a implantação SQL Server

.NET Aspire fornece duas opções de configuração internas para simplificar a implantação SQL Server em Azure:

  • Provisionar um banco de dados SQL Server em contêiner usando Azure Container Apps
  • Provisionar uma instância do Banco de dados SQL Azure

Adicionar a integração .NET.NET Aspire ao aplicativo

Adicione a integração .NET.NET Aspire apropriada ao projeto AspireSQL.AppHost para o serviço de alojamento pretendido.

Adicione o pacote NuGet 📦Aspire.Hosting.Azure.Sql ao projeto AspireSQL.AppHost.

dotnet add package Aspire.Hosting.Azure.Sql

Configurar o projeto AppHost

Configure o projeto AspireSQL.AppHost para o serviço de banco de dados SQL desejado.

Substitua o conteúdo do arquivo no projeto AspireSQL.AppHost com o seguinte código:

var builder = DistributedApplication.CreateBuilder(args);

var apiService = builder.AddProject<Projects.AspireSql_ApiService>("apiservice");

// Provisions an Azure SQL Database when published
var sqlServer = builder.AddAzureSqlServer("sqlserver")
                       .AddDatabase("sqldb");

builder.AddProject<Projects.AspireSql_Web>("webfrontend")
    .WithExternalHttpEndpoints()
    .WithReference(apiService)
    .WaitFor(apiService);

builder.Build().Run();

O código anterior adiciona um recurso de contêiner de SQL Server ao seu aplicativo e configura uma conexão com um banco de dados chamado sqldata. O método PublishAsAzureSqlDatabase garante que ferramentas como o Azure Developer CLI ou o Visual Studio criem um recurso Azure Banco de dados SQL durante o processo de implantação.

Implantar o aplicativo

Ferramentas como o Azure Developer CLI (azd) suportam .NET AspireSQL Server configurações de integração para agilizar as implantações. azd consome essas configurações e provisiona recursos configurados corretamente para você.

Inicializar o modelo

  1. Abra uma nova janela de terminal e cd no diretório AppHost do projeto de sua solução .NET.NET Aspire.

  2. Execute o comando azd init para inicializar seu projeto com azd, que inspecionará a estrutura de diretórios local e determinará o tipo de aplicativo.

    azd init
    

    Para obter mais informações sobre o comando azd init, consulte azd init.

  3. Selecione Usar código no diretório atual quando azd solicitar duas opções de inicialização do aplicativo.

    ? 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. Depois de verificar o diretório, azd solicita que confirme se encontrou o projeto AppHost .NET.NET Aspire correto. Selecione a opção Confirmar e continuar inicializando meu aplicativo.

    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. Insira um nome de ambiente, que é usado para nomear recursos provisionados no Azure e gerenciar ambientes diferentes, como dev e prod.

    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 gera vários arquivos e os coloca no diretório de trabalho. Estes ficheiros são:

  • azure.yaml: Descreve os serviços da aplicação, como o projeto .NET Aspire AppHost, e mapeia-os para os recursos Azure.
  • .azure/config.json: Arquivo de configuração que informa azd qual é o ambiente ativo atual.
  • .azure/aspireazddev/.env: Contém configurações específicas do ambiente.

Implantar o modelo

  1. Assim que um modelo azd é inicializado, o processo de provisionamento e implantação pode ser executado como um único comando a partir do diretório do projeto AppHost usando azd up:

    azd up
    
  2. Selecione a assinatura na qual deseja implantar na lista de opções disponíveis:

    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. Selecione o local Azure desejado na lista de opções disponíveis:

    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)
    

Depois de fazer suas seleções, azd executa o processo de provisionamento e implantação.

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.

O comando azd up atua como wrapper para os seguintes comandos azd individuais para provisionar e implantar seus recursos em uma única etapa:

  1. azd package: Os projetos de aplicativo e suas dependências são empacotados em contêineres.
  2. azd provision: Os recursos de Azure que o aplicativo precisará são provisionados.
  3. azd deploy: Os projetos são enviados como contêineres para uma instância do Azure Container Registry e, em seguida, usados para criar novas revisões de Azure Container Apps nas quais o código será hospedado.

Quando os estágios de azd up forem concluídos, seu aplicativo estará disponível no Azuree você poderá abrir o portal Azure para explorar os recursos. azd também gera URLs para acessar os aplicativos implantados diretamente.

O processo de implementação provisionou um recurso do banco de dados SQL Azure devido à configuração .AppHost que foi fornecida.

Uma captura de tela mostrando o Banco de dados Azure SQL implantado.

Limpar recursos

Execute o seguinte comando Azure CLI para excluir o grupo de recursos quando não precisar mais dos recursos Azure criados. A exclusão do grupo de recursos também exclui os recursos contidos nele.

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

Para obter mais informações, consulte Limpeza de recursos em Azure.

Ver também