Implantar um projeto de .NET Aspire para Azure Container Apps
.NET
.NET Aspire projetos são projetados para serem executados em ambientes conteinerizados.
Azure Container Apps é um ambiente totalmente gerenciado que permite executar microsserviços e aplicativos em contêineres em uma plataforma sem servidor. Este artigo irá guiá-lo através da criação de uma nova solução de .NET Aspire e implantá-la no Microsoft Azure Container Apps usando o Azure Developer CLI (azd
). Você aprenderá a concluir as seguintes tarefas:
- Provisionar um grupo de recursos Azure e um Registo de Contenedores
- Publicar os projetos .NET Aspire como imagens de contentor no Registo de Contentores Azure
- Provisionar um contêiner Redis em Azure
- Implantar os aplicativos em um ambiente Azure Container Apps
- Exibir logs do console do aplicativo para solucionar problemas do aplicativo
Pré-requisitos
Para trabalhar com .NET.NET Aspire, você precisa do seguinte instalado localmente:
- .NET 8,0 ou .NET 9,0
- Um tempo de execução de contêiner compatível com OCI, como:
- Docker Ambiente de Trabalho ou Podman. Para obter mais informações, consulte Container runtime.
- Um ambiente de desenvolvedor integrado (IDE) ou editor de código, como:
- Visual Studio 2022 versão 17.9 ou superior (opcional)
-
Visual Studio Code (Opcional)
- C# Dev Kit: Extensão (Opcional)
- JetBrains Rider com o .NET.NET Aspire plug-in (Opcional)
Para obter mais informações, consulte a configuração e ferramentas .NET.NET Aspire, e o SDK .NET.NET Aspire.
Como alternativa a este tutorial e para obter um guia mais detalhado, consulte Implantar um projeto .NET Aspire para Azure Container Apps usando azd
(guia detalhado).
Implante .NET.NET Aspire projetos com azd
Com o .NET Aspire e Azure Container Apps (ACA), tens um ótimo cenário de hospedagem para criar os teus aplicativos nativos para a nuvem com o .NET. Incorporámos alguns novos recursos incríveis no Azure Developer CLI (azd
), específicos para tornar o desenvolvimento e a implantação de .NET Aspire em Azure uma experiência sem atrito. Você ainda pode usar as opções Azure CLI e/ou Bicep quando precisar de um nível granular de controle sobre suas implantações. Mas para novos projetos, você não encontrará um caminho mais fácil para o sucesso para obter uma nova topologia de microsserviço implantada na nuvem.
Criar um projeto .NET.NET Aspire
Como ponto de partida, este artigo pressupõe que criou um projeto de .NET.NET Aspire a partir do modelo de Aplicação Inicial .NET.NET Aspire. Para obter mais informações, consulte Guia de início rápido: criar seu primeiro projeto .NET.NET Aspire.
Nomenclatura de recursos
Ao criar novos recursos de Azure, é importante seguir os requisitos de nomenclatura. Para Azure Container Apps, o nome deve ter de 2 a 32 caracteres e consistir em letras minúsculas, números e hífenes. O nome deve começar com uma letra e terminar com um caractere alfanumérico.
Para obter mais informações, consulte Regras e restrições de nomenclatura para recursos Azure.
Instale o Azure Developer CLI
O processo de instalação azd
varia de acordo com o seu sistema operacional, mas está amplamente disponível via winget
, brew
, apt
ou diretamente via curl
. Para instalar azd
, consulte Instalar Azure Developer CLI.
Inicializar o modelo
Abra uma nova janela de terminal e execute o comando
cd
no diretório do projeto AppHost da sua solução .NET.NET Aspire.Execute o comando
azd init
para inicializar seu projeto comazd
, 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.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
Depois de verificar o diretório,
azd
solicita-lhe que confirme se encontrou o projeto correto .NET.NET AspireAppHost. 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
Insira um nome de ambiente, que é usado para nomear recursos provisionados no Azure e gerenciar ambientes diferentes, como
dev
eprod
.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 do aplicativo, como .NET Aspire projeto AppHost, e os mapeia para Azure recursos.
-
.azure/config.json: Arquivo de configuração que informa
azd
qual é o ambiente ativo atual. - .azure/aspireazddev/.env: Contém substituições específicas do ambiente.
Implantar o modelo
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
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)
Selecione, a partir da lista de opções disponíveis, o local Azure desejado para utilizar:
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:
-
azd package
: Os projetos de aplicativo e suas dependências são empacotados em contêineres. -
azd provision
: Os recursos de Azure que o aplicativo precisará são provisionados. -
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.
Testar o aplicativo implantado
Agora que o aplicativo foi provisionado e implantado, você pode navegar até o portal Azure. No grupo de recursos onde você implantou o aplicativo, você verá os três aplicativos de contêiner e outros recursos.
Clique no web
Container App para o abrir no portal.
Clique no link URL da aplicação para abrir o front-end no navegador.
Quando clicares no nó "Tempo" na barra de navegação, a aplicação de contêiner do front-end web
efetua uma chamada para a aplicação de contêiner apiservice
para obter os dados. A saída do front-end será armazenada em cache usando o aplicativo de contêiner redis
e a integração de Armazenamento em Cache de Saídas .NET AspireRedis. Ao atualizar o front-end algumas vezes, você notará que os dados meteorológicos são armazenados em cache. Ele será atualizado após alguns segundos.
Implantar o Painel de Controlo .NET.NET Aspire
Você pode implantar o painel .NET.NET Aspire como parte do seu aplicativo hospedado. Este recurso agora é totalmente suportado. Durante a implantação, os logs de saída do azd imprimem uma URL adicional de acesso ao painel implantado.
Você pode executar azd monitor
para iniciar automaticamente o painel.
azd monitor
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 no Azure.