Stacja pogodowa część 3

Opublikowany Autor Piotr CudnikDodaj komentarz

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.