W tej części opisze jak przeniosłem aplikacje WeatherStation na Azure. Sam proces przeniesienia aplikacji nie był skomplikowany. Praca z Azure okazała się przyjemna i intuicyjna, nie miałem jakiś większych problemów w zorientowaniu się gdzie czego szukać. Pierwsze co należy zrobić to założenie konta na stronie azure.microsoft.com. W ramach subskrypcji dostaniemy €170 do wykorzystania w portalu Azure przez pierwsze 30 dni. Usługa Azure jest płatna płacimy za wykorzystane zasoby.
Refaktoryzacja projektu
W pierwszym wydaniu aplikacja działała na lokalnym komputerze z podłączeniem do lokalnej bazy danych. Connection Strings był zaszyty na sztywno w DbContext. Przeniosłem go do pliku appsettings.json. W ConfigureServices dodałem poniższą linie
services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
Dokonałem również zmian w klasie repozytorium WatherStationRepository oraz MyDbContext. Uaktualniłem wersje ASP.Net Core oraz innych pakietów.
Konfiguracja Azure
W portalu Azure rozpocząłem prace od utworzenia nowej grupy zasobów o nazwie WeatherStation w lokalizacji Europa zachodnia, następnie utworzyłem bezpłatny plan usługi App Service o nazwie WeatherStationPlan również w lokalizacji Europa zachodnia.
Dodałem zasób bazy danych SQL o nazwie WeatherStationDB. Koszt podstawowej bazy danych SQL 5DTU(Database Throughput Unit) wynosi €0,0071/godz. DTU w skrócie to wydajność bazy danych, jest reprezentacją mieszanych pomiarów: procesora, pamięci oraz prędkości odczytuje i zapisuje. Schemat tabel wgrałem ręcznie przez SQL Server Management Studio.
Na końcu utworzyłem aplikacje sieci Web pod unikatową nazwą WeatherStationWebApp. W ustawieniach aplikacji dodałem DefaultConnection do połączenia z bazą SQL Azure.
W tych prostych krokach przygotowałem konfiguracje pod aplikacje stacji pogodowej. Stronę można podejrzeć pod adresem https://weatherstationwebapp.azurewebsites.net.
Publikacja na Azure
Do przeprowadzenia publikacji projektu w Visual Studio 2017 należy mieć zainstalowane pakiety „tworzenie aplikacji na platformie ASP.NET i tworzenie aplikacji internetowych” oraz „tworzenie aplikacji na platformie Azure”
W projekcie, który chcemy opublikować na Azure klikamy prawym przyciskiem myszki na projekt webowy z menu kontekstowego wymieramy publikuj. W oknie publikacji wybieramy subskrypcje Azure oraz docelowy web app i klikamy ok.
Visual Studio 2017 zbuduje projekt a następnie wyśle pliki na serwery Azure.
Podczas testów wyszedł mały problem z poprawnym wstawianiem wyników. Była dwugodzinna różnica w czasie pomiarów. Serwery Azure, na które wgrana została aplikacja, znajdują się gdzieś w Europie Zachodniej i są skonfigurowane w innej strefie czasowej. Aby zmienić domyślną strefę czasową na polską, w ustawieniach aplikacji w portalu Azure, należy dodać nowe ustawienie:
WEBSITE_TIME_ZONE Central European Standard Time
A tak prezentuje się pomiar temperatury z mojego pokoju z dnia 16.04.2018.
Dokonane zmiany w projekcie WeatherStation można zobaczyć na moim githubie.