Po ostatnim wpisie, gdzie omawialiśmy platformę hostującą (App Service Plan) tym razem skupimy się na Azure Web App lub App Service, czyli narzędziu do zarządzania aplikacjami webowymi. Kiedy App Service Plan był naszym serwerem IIS, Web App jest aplikacją hostowaną na tym serwerze. Przez Web Appe możemy zarządzać większością ustawień związanych z aplikacją, jej firewallem, zmieniać pliki konfiguracyjne czy przypisać zewnętrzny adres URL.
Mała uwaga dlaczego napisałem Azure Web App lub App Service, są to odpowiednio nazwa oraz typ usługi. Tworząc Web Appę tworzymy usługę typu App Service, sam Microsoft często wykorzystuje obie te nazwy zamiennie. W chwili pisania tego posta kiedy wchodzimy do dokumentacji Web App-y zostajemy przekierowani do dokumentacji App Servicu.
Ustawienia (settings)
W aplikacji webowej mamy sporo możliwości ustawień:
Na obrazku widzimy część ustawień w bocznym panelu oraz wybraną część konfiguracji, gdzie mamy dostępne 4 taby. Nie będę opisywał wszystkiego, ale tylko te najważniejsze w mojej ocenie elementy.
Konfiguracja (configuration)
Część application settings mamy możliwość nadpisywania settingów aplikacji. Tak możemy nadpisać wartości z plików. Dzięki czemu nie musimy zmieniać fizycznie danych na dysku, żeby zmienić zawartość Application settingów czy Connection Stringów. Mechanizm ten jest szczególnie przydatny, kiedy mamy kilka deployment slotów. Nadpisane settingi mogą być przenoszone wraz z aplikacją lub być częścią slota (slot settings). Co daje nam możliwość określenia w slocie UAT-owym connection stringów do baz uatowych a w slocie produkcyjnym do baz produkcyjnych.
Drugim tabem konfiguracji są General Settings, tutaj określamy nasz runtime (na jakim stacku technologicznym). Z ważnych i wartych wspomnienia możliwości konfiguracji tutaj są 3 rzeczy :
- Always On – ustawienie to umożliwia wymuszenie działania aplikacji niezależnie od tego czy przychodzą do niej requesty czy też nie, dostępne tylko dla planów, gdzie mamy pełne zasoby dla siebie (od Podstawowego (basic) w góre)
- ARR affinity – ustawienie to umożliwia dodanie do odpowiedzi pliku cookie, dzięki któremu wszystkie zapytania są obsługiwane przez instancję, która rozpoczęła obsługę danej sesji (kiedy mamy aplikację wyskalowaną w szerz). Poprawia to performance aplikacji, które nie są stateless i posiadają jakiś wewnętrzny cach.
- Remote debugging – jest dokładnie tym czym myślisz. Teoretycznie można debugować aplikację hostowaną w Web Appie. W praktyce to nie działa, nigdy nie udało mi się ustawić połączenia zdalnego debugowania na tyle stabilnie, żeby można było cokolwiek przedebugować
Ważne Settingi
Z pozostałych kategorii sekcji settings warto zobaczyć jak wyglądają:
- Authentication – umożliwia ograniczenie dostępu do strony tylko dla osób zalogowanych przy pomocy jednego z dostępnych providerów. Bez konieczności wykonywania jakichkolwiek zmian w kodzie. Można to wykorzystać do wewnętrznych narzędzi, gdzie tylko osoby z dostępem do firmowego Azura mogą mieć dostęp do tej aplikacji
- Backups – umożliwia wykonywanie backupu naszej aplikacji
- Custom Domain – przypisanie własnej domeny do naszej aplikacji, ta funkcjonalność dostępna jest tylko dla planów od współdzielonego wzwyż
- Networking – umożliwia dodanie firewall-a do naszej aplikacji oraz co ważne do dostępu konfiguracyjnego, a także skonfigurowania dostępu do VNet-a
- Scale up/out – te ustawienia odnoszą się bezpośrednio do app service planu, na którym hostowana jest ta aplikacja i umożliwiają skalowanie wzwyż oraz w szerz
Czytaj więcej
Jeśli chcesz zglębić temat poniżej zostawiam Ci kilka linków :