Wpisy

Wprowadzenie do platformy Azure – utworzenie aplikacji ASP.NET Web API wspomaganej bazą Azure SQL Server

Tworzenie projektu ASP.NET Core Web API

Utworzenie nowego projektu ASP.NET Core
1. Uruchamiamy wiersz poleceń jako administrator (command prompt wywoływany za pomocą polecenia cmd):
Command prompt
2. Tworzymy nowy projekt ASP.NET Core Web API. W tym celu w wierszu poleceń wpisujemy  poniższe polecenie i klikamy przycisk Enter. Polecenie to utworzy nam nowy projekt o nazwie BlueYonder.Flights na dysku w folderze Azure:

 dotnet new webapi --name BlueYonder.Flights --output C:\Azure\BlueYonder.Flights

Command prompt
3. Jak już projekt zostanie utworzony, zmieniamy domyślny folder wiersza poleceń na nasz folder z projektem za pomocą następującego polecenia:

cd C:\Azure\BlueYonder.Flights

Zmiana ścieżki
Utworzenie modelu Entity Framework Core
1. Abyśmy mogli używać Entity Framework Core w naszym projekcie, potrzebujemy zainstalować odpowiedni pakiet przy użyciu poniższego polecenia:

dotnet add package Microsoft.EntityFrameworkCore.SqlServer

Dodanie biblioteki SqlServer
2. Aby przywrócić wszystkie pakiety i biblioteki, wymagane w naszym projekcie, uruchamiamy poniższe polecenie z poziomu wiersza poleceń:

dotnet restore

dotnet restore
3. Aby otworzyć naszą aplikację w Visual Studio Code, w wierszu poleceń wpisujemy poniższe polecenie:

code .

4. Folder z naszym projektem BlueYonder.Flights został otwarty w Visual Studio Code:

    • Klikamy Yes przy wiadomości Required assets to build and debug are missing from 'BlueYonder.Flights’.Add them?. Pozwoli to na zbudowanie (ang. build) naszego projektu i sprawdzenie, czy nie ma błędów w kodzie.
    • Jeśli pojawi się informacja There are unresolved dependencies, klikamy opcję Restore:

Visual Studio Code
5. Prawym przyciskiem myszy klikamy wewnątrz panelu File Explorer po lewej stronie i wybieramy opcję New Folder, a następnie nazywamy go Models:
Utworzenie folderu models
6. Prawym przyciskiem myszy klikamy na folderze Models, wybieramy opcję New C# Class i nazywamy ją Flight.cs:
Utworzenie klasy Flight
7. Na górze klasy dodajemy następującą przestrzeń (ang. namespace):

using System;

Dodanie przestrzeni
8. Aby nasz model spełniał swoje zadanie, dodajemy następujące właściwości do klasy Flight:

public int Id { get ;set; }
public string Origin { get; set; }
public string Destination { get; set; }
public string FlightNumber { get; set; }
public DateTime DepartureTime { get; set; }

Dodanie właściwości do klasy
Stworzenie klasy DbContext
1. Prawym klikamy folder Models, wybieramy opcję New C# Class, a potem nazywamy ją FlightsContext.cs:
Ddoanie klasy FlightsContext
2. Na górze pliku FlightsContext.cs dodajemy następującą przestrzeń:

using Microsoft.EntityFrameworkCore;

Dodanie przestrzeni nazw
3. Nasza klasa FlightsContext będzie dziedziczyła z klasy DbContext, więc po nazwie klasy dodajemy takie dziedziczenie:

public class FlightsContext : DbContext

Dodanie DbContext
4. Wewnątrz klasy dodajemy konstruktor i właściwość Flights, która będzie zapewniała nam dostęp do naszych danych, przy użyciu następującego kodu:

public FlightsContext(DbContextOptions<FlightsContext> options) : base(options)
{
}
public DbSet<Flight> Flights { get; set; }

Dodanie konstruktora
5. Przechodzimy do klasy Startup.cs i dodajemy następujące przestrzenie:

using BlueYonder.Flights.Models;
using Microsoft.EntityFrameworkCore;

Dodanie przestrzeni
6. W metodzie ConfigureServices dodajemy połączenie (ang. connection string) do bazy danych Microsoft SQL Server, którą zaraz utworzymy w chmurze Azure:

services.AddDbContext<FlightsContext>(opt =>
opt.UseSqlServer(Configuration.GetConnectionString("defaultConnection")));

Dodanie connection string
Stworzenie kontrolera dla Web API
1. Prawym przyciskiem myszy klikamy na folderze Controllers i wybieramy opcję New C# Class. Nazywamy naszą klasę FlightsController.cs:
Dodanie kontrolera
2. Dodajemy referencję do folderu Models:

using BlueYonder.Flights.Models;

Dodanie przestrzeni
3. Dodajemy pole prywatne _context :

private readonly FlightsContext _context;

Dodanie pola _context
4. Aby wstrzyknąć kontekst bazy danych do kontrolera (inaczej mówiąc pozwolić na to, aby metody z naszego kontrolera mogły używać naszej bazy danych i operować na danych), używamy do tego konstruktora jak poniżej:

public FlightsController(FlightsContext context)
{
   _context = context;
}

Dodanie konstruktora
Stworzenie akcji i użycie kontekstu Entity Framework Core
1. Aby pobrać listę wszystkich lotów, dodajemy metodę Get, w której użyjemy pola  _context, dzięki któremu połączymy się do naszej bazy danych i z tabeli dbo.Flights pobierzemy wszystkie loty i zwrócimy je w postaci listy:

// GET api/flights
[HttpGet]
public IEnumerable<Flight> Get()
{
    return _context.Flights.ToList();
}

Dodanie metody Get
2. Do kontrolera dodajemy 3 nowe przestrzenie nazw (ang. namespaces):

using System.Collections.Generic;
using System.Linq;
using Microsoft.AspNetCore.Mvc;

Dodanie przestrzeni
3. Aby dodać nowy przelot i zapisać go w bazie danych, dodajemy metodę Post, która w parametrze flight będzie przekazywała właściwości z modelu Flight, a następnie dodawała ten nowy lot do innych lotów. Następnie zapisujemy lot do bazy danych, za pomocą metody SaveChanges wracamy do akcji Get, która ma wyświetlić nam dodany właśnie przelot:

// POST api/flights
[HttpPost]
public IActionResult Post([FromBody]Flight flight)
{
    _context.Flights.Add(flight);
    _context.SaveChanges();
    return CreatedAtAction(nameof(Get), flight.Id);
}

Dodanie metody Post
4. Nad klasą kontrolera dodajemy atrybut [Route(„api/[controller]”)] oraz dodajemy dziedziczenie z klasy ControllerBase, aby wskazać, że to jest API controller:

public class FlightsController : ControllerBase

Dodanie atrybutu API

Wdrożenie aplikacji na platformę Azure

Stworzenie Azure Web App i bazy danych Azure SQL Server
1. Otwieramy przeglądarkę.
2 Przechodzimy do adresu https://portal.azure.com.
3. Jeśli strona poprosi o dane do logowania, wpisujemy adres email, klikamy przycisk Next (Następny), wpisujemy hasło, a potem klikamy przyciskSign In (Zaloguj się).
4. Jeśli pojawi się okno z pytaniem Stay signed in?, klikamy Yes:
Logowanie do Azure'a
Uwaga: Jeśli podczas procesu logowania zostanie wyświetlona strona z monitem o wybranie konta z listy wcześniej używanych kont, wybieramy konto, z którego wcześniej korzystaliśmy, a następnie kontynuujemy podawanie swoich poświadczeń.
Dodawanie poświadczeń
5. Aby wyświetlić wszystkie zasoby na Azurze, klikamy przycisk +Create a resource:
Tworzenie zasobu
6. Aby wybrać szablon dla app service, w oknie Create a resource, w polu wyszukiwania wpisujemy Web App + SQL i wybieramy z podpowiedzi szablon Web App + SQL:
Tworzenie app service
7. W oknie Web App + SQL, klikamy przycisk Create:
Tworzenie app service
8. W oknie WebApp + SQL wypełniamy następujące pola:

  • W polu App Name, wpisujemy nazwę blueyonderflightsbz:

Uwaga: Nazwa App Name będzie częścią URL i będzie obsługiwana przez domenę azurewebsites.net. Nazwa naszej aplikacji musi być unikalna w obrębie domeny. Możemy także skonfigurować na Azurze ustawienia dla naszej własnej domeny i wtedy nazwa taka musi być unikalna w obrębie naszej domeny.

  • Wybieramy subskrypcję.
  • Resource Group, klikamy link Create new, and potem wpisujemy nazwę grupy zasobów BlueYonderFlightsRG i klikamy OK:

Tworzenie app service

  • W polu App Service plan/Location klikamy znak > po prawej stronie:

Tworzenie app service

  • Klikamy przycisk + Create new:

Tworzenie app service

  • W oknie New App Service Plan w polu App Service Plan wpisujemy BlueYonderFlightsPlan, z listy rozwijanej Location wybieramy lokalizację, w której chcemy hostować naszą aplikację:

Tworzenie app service

  • Klikamy strzałkę po prawej stronie obok pozycji Pricing tier. Na stronie Spec Picker możemy wybrać parametry hostingu dla naszej aplikacji. Na zakładce Dev/Test wybieramy maszynę F1 (zapewni nam to darmowe użytkowanie aplikacji przez godzinę dziennie)  i klikamy Apply:

Wybór App Service Plan

  • W oknie New App Service Plan klikamy przycisk OK:

App Service Plan

  • Na stronie Web App + SQL klikamy znak > po prawej obok pola SQL Database:

Baza danych

  • W oknie SQL Database wpisujemy następujące informacje:
    • W polu Name wpisujemy BlueYonderFlightsDB.
    • Klikamy link Select Server poniżej Target server:

Serwer bazodanowy

  • W oknie New server wpisujemy następujące informacje:
    • W polu Server name wpisujemy blueyonderflightsserverdbbz.

Uwaga: Nazwa serwera powinna być unikalna w ramach domeny .database.windows.net.

    • W polu Server admin login wpisujemy Admin123.
    • W polach PasswordConfirm password wpisujemy silne hasło.
    • W polu Location wybieramy lokalizację, w którym chcemy hostować naszą bazę danych.
    • Klikamy przycisk Select.

Dodanie serwera bazodanowegp

  • Klikamy link Configure database pod polem Pricing tier:

Dodawanie abonamentu

  • Wybieramy opcję Serverless i klikamy przycisk Apply:

Uwaga: W opcji Serverless opłaty są naliczane co sekundę w oparciu o zużycie vCores. W opcji Provisioned opłaty są naliczane co godzinę w oparciu o wcześniej zadeklarowaną liczbę vCores i wielkość miejsca na przechowywanie danych. Możemy także wybrać inne rodzaje i wielkości baz danych, w tym bazę darmową po kliknięciu na link Looking for basic, standard, premium?:
Dodanie abonamentu
Dodawanie abonamentu

  • Klikamy przycisk Select:

Widok ustawień bazy danych

  • Klikamy przycisk Create:

Wszystkie ustawienia aplikacji i bazy danych
9. Po utworzeniu bazy danych, aby przejść do naszej bazy danych, po lewej stronie klikamy na menu, a potem wybieramy SQL Databases:
Przejście do baz danych
10. W oknie SQL databases klikamy na link prowadzący do naszej bazy danych:
Widok bazy danych
11. W oknie bazy danych klikamy na zakładce Overview klikamy przycisk Set server firewall na pasku na środku pod nazwą naszej bazy danych:
Przejście do ustawień firewalla
12. W oknie Firewall settings klikamy przycisk + Add client IP. W regułach zostaje nam dodany nasz adres IP, który pozwoli na połączenie do bazy danych. Klikamy przycisk Save, a potem przycisk Continue:
Ustawienie firewalla
13. Na samej górze klikamy link do naszej bazy danych, aby powrócić na zakładkę Overview. W panelu po lewej stronie klikamy Query editor (preview):
Ustawienia bazay danych
14. Klikamy Login, wpisujemy nasze hasło, a potem klikamy OK:
Logowanie do bazy danych
15. Aby stworzyć nową tabelę w naszej bazie, wewnątrz zakładki Query 1, wklejamy następujący skrypt i klikamy przycisk Run:

CREATE TABLE [dbo].[Flights](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Origin] [varchar](50) NOT NULL,
[Destination] [varchar](50) NOT NULL,
[FlightNumber] [varchar](50) NOT NULL,
[DepartureTime] [date] NOT NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
));
GO

Stworzenie nowej tabeli
16. Zamykamy zakładkę Query 1 i w bazie danych sprawdzamy, czy nasza tabela jest widoczna:
Sprawdzenie, czy tabela jest widoczna
Wdrożenie  Azure Web App
1. Wracamy na stronę główną Azure Portal klikając link Home w lewym górnym rogu.
Uwaga: Jeśli pojawi się nam takie okno dialogowe klikamy przycisk OK:Powrót na stronę główną
2. Aby wyświetlić nasz App Service, klikamy menu po lewej stronie i wybieramy App Services:
Przejście do usług
3. Żeby zobaczyć konfigurację naszego w zakładce App Services klikamy link do naszej aplikacji:
Przejście do bazy danych
4. Aby dodać poświadczenia, dzięki którym będziemy mogli wdrożyć naszą aplikację do app service, pod sekscją DEPLOYMENT klikamy Deployment Center, a potem przechodzimy na zakładkę FTPS Credentials:
Dodanie poświadczeń
5. W sekcji User scope dodajemy następujące dane:

    • FTP/deployment username wpisujemy FTPBlueYonderFlightsUserBZ.
    • W polach Password i Confirm password wpisujemy złożone hasło.
    • Klikamy Save:

Dodanie szczegółów poświadczeń
Uwaga: Powyższe poświadczenia udostępniają opcje wdrażania aplikacji z wiersza polecenia.
6. W panelu po lewej stronie w sekcji Monitoring klikamy App Service Logs i zapisujemy w notatniku nazwę FTP/deployment username:
Zanotowanie poświadczeńń
7. Przełączamy się do Visual Studio Code.
8. Klikamy prawym przyciskiem myszy w panelu File Explorer po lewej stronie, wybieramy folder Properties.
9. Klikamy prawym przyciskiem myszy na folderze Properties, wybieramy New Folder i nazywamy ten folder PublishProfiles.
10. Do folderu PublishProfiles dodajemy plik Azure.pubxml:
Tworzenie Azure.pubxml
11. Wklejamy następujący kod, modyfikując odpowiednio nazwy PublishSiteName (FTP z notatnika) i Username (deployment username z notatnika) :

<Project>
<PropertyGroup>
<PublishProtocol>Kudu</PublishProtocol>
<PublishSiteName>blueyonderflights{TwojeInicjały}</PublishSiteName>
<UserName>FTPBlueYonderFlightsUser{TwojeInicjały}</UserName>
<Password>Pa55w.rd12345</Password>
</PropertyGroup>
</Project>

Dodanie zawartości do pliku Azure.pubxml
12. W wierszu poleceń wklejamy następującą komendę:

dotnet publish /p:PublishProfile=Azure /p:Configuration=Release
Publikowanie aplikacji

Uwaga: W przypadku, kiedy Publish nie przechodzi, należy zrestartować app service blueyonderflightsbz na Azurze (zakładka Overview). Po uruchomieniu możemy zobaczyć pustą tablicę jako rezultat:
Pusta tablica
Test Web API
1. Przechodzimy do portalu Azure.
2. Po lewej stronie klikamy SQL Databases.
3. Klikamy nazwę naszej bazy danych, a po przejściu do bazy danych po lewej stronie klikamy Query editor(preview).
4. Klikamy Login, a następnie wpisujemy nasze hasło.
5. W oknie klikamy +New Query i wywołujemy następujące polecenie, które stworzy nam 6 lotów:

INSERT INTO dbo.Flights(Origin, Destination, FlightNumber, DepartureTime)
VALUES('Paris', 'London', 'ABC123', '2021-06-13'),
('London', 'Warsaw', 'WEQ675', '2021-06-14'),
('Warsaw', 'New York', 'JHE543', '2021-06-15'),
('New York', 'Washington', 'CXD654', '2021-06-16'),
('Washington', 'Miami', 'MNK098', '2021-06-17'),
('Miami', 'Paris', 'DCT543', '2021-06-18');
GO

Dodanie dodanych do bazy
6. Aby pobrać wszystkie przeloty z bazy danych, wklejamy następujący skrypt do Query 1, and potem klikamy Run:

Select * from dbo.Flights;
GO
Sprawdzenie poprawności zapisania danych

7. Jeśli odświeżymy naszą aplikację, możemy zobaczyć, że aplikacja także zwraca nasze przeloty:
Sprawdzenie działania aplikacji
W ten oto sposób stworzyliśmy aplikację, za pomocą której możemy odczytać dane z bazy AzureSQL Server.
Gotowa aplikacja do pobrania z mojego Githuba.

Instalacja Dockera na serwerze Ubuntu

Instalacja Dockera na Ubuntu

Instrukcja, jak zainstalować serwer Ubuntu dla Dockera na maszynie wirtualnej Azure znajduje się tutaj.

Otwieramy maszynę wirtualną z zainstalowanym serwerem Ubuntu i zapisujemy adres IP (klikamy link dockerdemo-ip). Możemy przypisać opcjonalnie etykietę nazwy DNS i/lub zamienić adres IP na statyczny (zakładka Konfiguracja).

Docker Ubuntu Azure zdj.20

Możemy się połączyć z serwerem Ubuntu za pomocą poleceń ssh:

Uwierzytelnianie SSH:

ssh username@IPAddress -i ~/privatekey

Password Authentication:

ssh username@IPAddress

Docker Ubuntu Azure zdj.21

Usunięcie innych instalacji Dockera

Usuwamy Dockera (jeśli wcześniej był zainstalowany):

$ sudo apt-get remove docker docker-engine docker.io
$ sudo apt-get remove docker docker-engine docker.io containerd runc

Docker Ubuntu Azure zdj.22
Aktualizujemy indeksy pakietu apt:

$ sudo apt-get update

Docker Ubuntu Azure zdj.27

Instalujemy pakiety, aby pozwolić apt na używanie repozytoriów poprzez HTTPs. Jeśli wcześniej już instalowaliśmy jakieś pakiety, to będzie sprawdzona ich zgodność z najnowszymi wersjami.

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common

Docker Ubuntu Azure zdj.23

Dodajemy oficjalny klucz GPG Dockera:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Docker Ubuntu Azure zdj.24
Weryfikujemy, że teraz mamy klucz z  fingerprintem 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88, poprzez przeszukanie ostatnich 8 znaków.

$ sudo apt-key fingerprint 0EBFCD88

Docker Ubuntu Azure zdj.26
Używamy następującego polecenia, aby skonfigurować stabilne (ang. stable) repozytorium. Zawsze potrzebujemy stabilnego repozytorium, nawet jeśli chcemy zainstalować kompilacje (ang. builds) z repozytoriami brzegowym (ang. edge) lub testowym (ang. test). Aby dodać repozytoria brzegowe lub testowe, dodajemy słowo edge lub test (lub oba) po słowie stable w poleceniach poniżej.

Ważne: Polecenie lsb_release -cs poniżej zwraca nazwę naszej dystrybucji Ubuntu, na przykład xenial. Czasami, w dystrybucji takiej jak Linux Mint, możemy potrzebować zmienić $(lsb_release -cs)na naszą macierzystą dystrybucję Ubuntu. Na przykład, jeśli korzystamy z Linux Mint Tessa, możemy użyć bionic.

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

Ważne: Począwszy od Dockera 17.06, stabilne (ang. stable) wydania są również przekazywane do repozytorów brzegowych (ang. edge) i testowych (ang. test).

Docker Ubuntu Azure zdj.28

Aktualizujemy raz jeszcze:

$ sudo apt-get update

Docker Ubuntu Azure zdj.29

Instalujemy ostatnią wersję Docker CE lub przechodzimy do następnego kroku, aby zainstalować specyficzną wersję:

$ sudo apt-get install docker-ce

Docker Ubuntu Azure zdj.30
To install a specific version of Docker CE, list the available versions in the repo, then select and install:
Aby zainstalować konkretną wersję programu Docker CE, wyświetlamy listę dostępnych wersji w repozytorium, a następnie wybieramy i instalujemy:
a. Sprawdzamy wersje dostępne w repozytorium:

$ apt-cache madison docker-ce

Docker Ubuntu Azure zdj.32
b. Instalujemy konkretną wersję, używając ciągu wersji z drugiej kolumny, na przykład: 5:18.09.1~3-0~ubuntu-xenial.

$ sudo apt-get install docker-ce=<VERSION_STRING>

Sprawdzamy, czy Docker CE jest poprawnie zainstalowany, uruchamiając obraz hello-world.

$ sudo docker run hello-world

Powininniśmy zobaczyć rezultat podobny do poniższego, jeśli wszystko działa poprawnie:

Docker Ubuntu Azure zdj.31

Tworzenie maszyny wirtualnej na Azurze z serwerem Ubuntu

Azure Docker Ubuntu zdj.1
Poniżej znajduje się instrukcja, jak stworzyć na Azurze maszynę wirtualną z serwerem Ubuntu, na której można zainstalować Dockera.

Stworzenie nowej maszyny wirtualnej z serwerem Ubuntu

Logujemy się na portal Azure i klikamy przycisk Utwórz zasób. W sekcji Popularne wybieramy Ubuntu Server 18.04 VM lub wpisujemy Ubuntu w pole wyszukiwania.
Docker Ubuntu Azure zdj.2
Podajemy niezbędne informacje:

  • wybieramy subscrypcję,
  • używamy istniejącej lub tworzymy nową grupę zasobów,
  • podajemy nazwę maszyny wirtualnej,
  • wybieramy region, w którym nasza maszyna ma być przechowywana,
  • opcjonalnie wybieramy opcje dostępności,
  • wybieramy obraz Ubuntu (ja mam dostępne Ubuntu Server 16.04 LTS i Ubuntu Server 18.04 LTS),
  • rozmiar maszyny.

Docker Ubuntu Azure zdj.3
Następnie tworzymy konto dla administratora i wybieramy preferowany tryb uwierzytelniania. Jeśli wybierzemy SSH to musimy wygenerować publiczny klucz SSH.

Stworzenie publicznego klucza SSH

Otwieramy Terminal (na Mac’u) lub Git Bash (na Windowsie) i wpisujemy polecenie:

ssh-keygen -t rsa -b 4096 -C "twoj_email@domena.com".

Kopiujemy publiczny klucz przy użyciu poleceń:

Mac:

pbcopy < ~/.ssh/dockerdemo.pub

Git Bash:

clip < ~/dockerdemo.pub

Docker Ubuntu Azure zdj.4
Podajemy nazwę użytkownika.

Wklejamy skopiowany klucz w pole Klucz publiczny SSH.

Docker Ubuntu Azure zdj.5
Możemy też wybrać uwierzytelnianie za pomocą hasła.
Docker Ubuntu Azure zdj.6

Reguły portów wejściowych

Wybieramy, które porty sieciowe maszyny wirtualnej są dostępne z publicznego Internetu. Na karcie Sieć możemy określić bardziej lub mniej ograniczony dostęp sieciowy.
Docker Ubuntu Azure zdj.7
Mamy też możliwość na wskazanie wybranych portów spośród kilku dostępnych opcji. Ja do celów demo wybieram wszystkie porty.
Docker Ubuntu Azure zdj.8
Po wybraniu portów pojawia się ostrzeżenie o tym, że porty będą widoczne z poziomu Internetu.
Po wybraniu portów klikamy przycisk Następny: Dyski.

DYSKI

Maszyny wirtualne platformy Azure mają jeden dysk systemu operacyjnego i dysk tymczasowy na potrzeby przechowywania krótkoterminowego. Możemy do tych maszyn dołączać dodatkowe dyski danych. Rozmiar maszyny wirtualnej określa typ magazynu, którego można używać oraz liczbę dozwolonych dysków danych. Mamy tutaj możliwość wyboru OPCJI DYSKU z trzech wariantów: SSD w warstwie Premium, SSD w warstwie Standardowa i HDD w warstwie Standardowa. Jeśli istnieje taka potrzeba możemy dodać i skonfigurować dodatkowe dyski danych dla maszyny wirtualnej lub dołączyć istniejące dyski w sekcji DYSKI Z DANYMI . Ta maszyna wirtualna zawiera również dysk tymczasowy.
W sekcji ZAAWANSOWANE możemy dodać usługę Managed Disks.
Docker Ubuntu Azure zdj.9
Klikamy przycisk Następny: Sieć.

SIEĆ

Na zakładce Sieć możemy zdefiniować łączność sieciową dla swojej maszyny wirtualnej, konfigurując ustawienia karty sieciowej. Możemy kontrolować porty oraz łączność przychodzącą i wychodzącą za pomocą reguł grupy zabezpieczeń lub umieścić maszynę za istniejącym rozwiązaniem do równoważenia obciążenia.
Docker Ubuntu Azure zdj.10
Możemy też zdecydować, czy nasza maszyna będzie używana do równoważenia obciążenia.
Docker Ubuntu Azure zdj.11
Klikamy przycisk Następny: Zarządzanie.

Zarządzanie

Zakładka Zarządzanie pozwala na skonfigurowanie opcji monitorowania i zarządzania dla maszyny wirtualnej. Możemy wybrać, czy chcemy, aby maszyna była zamykana automatycznie o określonej godzinie.Jeśli chcemy otrzymywać powiadomienia o zamknięciu maszyny, podajemy adres email. Domyślnie powiadomienia takie są wyłączone.

Docker Ubuntu Azure zdj.12
Aby chronić maszynę wirtualną przed przypadkowym usunięciem i uszkodzeniem danych, zalecane jest skonfigurowanie kopii zapasowej na tej maszynie wirtualnej. Kopia zapasowa maszyny wirtualnej będzie zapisywana w magazynie usługi Recovery Services zgodnie ze skonfigurowanymi zasadami, a opłaty za nią będą naliczane zgodnie z cennikiem kopii zapasowych.
 Docker Ubuntu Azure zdj.13
Klikamy przycisk Następny: Konfiguracja gościa.
Docker Ubuntu Azure zdj.14
Klikamy przycisk Następny: Tagi.
Docker Ubuntu Azure zdj.15
Klikamy przycisk Następny: Przeglądanie i tworzenie. Sprawdzamy, czy weryfikacja przeszła pomyślnie i klikamy przycisk Utwórz.
Docker Ubuntu Azure zdj.16
Docker Ubuntu Azure zdj.17
Docker Ubuntu Azure zdj.18
Sprawdzamy, czy wdrożenie zakończyło się pomyślnie.
Docker Ubuntu Azure zdj.19

Instrukcję, jak na takiej maszynie dodać Dockera, znajduje się w tym wpisie.