Este artigo é parte da série:
Não vou explicar aqui as vantagens dos serviços Azure, para isso, acesse o portal do Azure. De qualquer forma, aconselho a criar uma conta lá. É gratuito e tem muitas funcionalidades que pode vir a ser útil, até mesmo para seus estudos.
1. No portal do Azure, vá em “Create a resource”.
2. Selecione o serviço “Web App”.
3. Entre com os dados da Web App.
- Crie um novo “Resource Group” para essa atividade. Para fins deste exemplo, utilizei o nome “Treino-01”.
- Em “Instance Details”, desative a função “Try a unique default hostname”. Se deixar ativado, o sistema irá criar um nome aleatório para sua aplicação. Desativando, você pode colocar seu próprio nome, desde que ele esteja disponível. Para este exemplo, utilizei o nome “informago-01”. Desta forma, a web app que está sendo criada será acessada pelo endereço: https://informago-01.azurewebsites.net.
- Em “Runtime stack” selecione a versão do .NET Framework que utilizou para criar a aplicação, em noso exemplo, .NET 8.
- Em “Pricing plan”, observe que a primeira opção é “Free F1”. Essa é a opção gratuita, mas ela não vem selecionada por padrão. Atente-se a isso para não ter surpresas depois com contas indesejadas.
- Clique em “Review + create” para finalizar.
- Clique em “Create” na tela final de confirmação.
4. Ao final do processo de criação clique em “Go to resource”.
5. Para testar se tudo está funcionando corretamente, acesse a web app pelo endereço especificado lá no item 3. Se tudo deu certo, você verá algo parecido com isso. Agora só falta enviar para lá a aplicação que acabamos de desenvolver.
6. De volta ao Portal do Azure, vá em “Resource groups” e então selecione o grupo que acabou de criar.
7. Selecione a aplicação que acabou de criar. No caso deste exemplo, “informago-t01”.
8. Selecione “Configuration” e então habilite “SCM Basic Auth Publishing Credentials” e “FPT Basic Auth Publishing Credentials”.
9. Agora volte para “Overview” e “Download publish profile”.
10. Se tudo deu certo, você terá baixado um arquivo com a extensão “.PublishSettings”.
11. Agora vamos voltar para o Visual Studio, no Solution Explorer, clique direito no nome do projeto e então “Publish”.
12. Selecione “Import Profile”.
13. Selecione o arquivo PublishSettings que acabou de baixar lá no site do Azure.
14. Se tudo deu certo, o perfil de publicação estará ativo. Observe que no caso deste exemplo, quando terminei de criar o perfil de publicação, houve algum problema com minhas credenciais e o sistema pediu para entrar novamente. Eu cliquei no link “Re-enter your credencials” e ficou tudo certo.
Daqui para frente, vai bastar clicar no botão “Publish” que todas as alterações que fizermos no programa serão enviadas automaticamente para o servidor na nuvem. O processo de publicação cuida de todas as rotinas de atualização dos componentes no servidor.
15. Como não há nenhuma página na pasta raiz, o site será publicado porém o conteúdo inicial estará indisponível.
16. Agora vamos voltar em “Program.cs”. Observe que o comando que libera o acesso ao Swagger só acontece se for identificado ambiente de desenvolvimento. Para ter o Swagger funcionando de qualquer forma, vamos retirar essa condicial.
17. Publique novamente, e agora o Swagger estará publicado na pasta /Swagger do domínio que você configurou lá no Azure. No meu caso: https://informago-t01.azurewebsites.net/Swagger.
18. Nesse momento, o diretório raiz da nossa API continua vazio, apresentando mensagem de erro caso se tente acessar o domínio diretamente. Para resolver isso, e deixar uma página HTML estática como sendo a index do site, é necessário criar uma pasta com o nome “wwwroot” no nível principal do projeto e então colocar o conteúdo HTML lá dentro. Nesse caso, vou colocar um arquivo “index.html” dentro de “wwwroot”, e acrescentar em “Program.cs” os comandos :
app.UseDefaultFiles(new DefaultFilesOptions
{
DefaultFileNames = new
List<string> { "index.html" }
});
app.UseStaticFiles();
19. Inseri um conteúdo bem simples em “index.html”:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Treino ASP.NET Core</title> </head> <body> <font face="verdana"> <div align="center"> <h1>Treino ASP.NET Core</h1> </div> </font> </body> </html>
20. E agora temos uma página apresentável para ser a home do domínio que acabamos de criar:
20. Dessa forma, nosso “Program.cs” ficou assim:
var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); var app = builder.Build(); // Configure the HTTP request pipeline. /* if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } */ app.UseSwagger(); app.UseSwaggerUI(); app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); app.UseDefaultFiles(new DefaultFilesOptions { DefaultFileNames = new List<string> { "index.html" } }); app.UseStaticFiles(); app.Run();