Ćwiczenie — konfigurowanie środowiska usługi Azure DevOps

Ukończone

W tej lekcji upewnisz się, że organizacja usługi Azure DevOps została skonfigurowana w celu ukończenia pozostałej części tego modułu. Utworzysz również środowiska usługi aplikacja systemu Azure, do których będziesz wdrażać.

Aby osiągnąć te cele, wykonasz następujące czynności:

  • Dodaj użytkownika, aby upewnić się, że usługa Azure DevOps może łączyć się z subskrypcją platformy Azure.
  • Skonfiguruj projekt usługi Azure DevOps dla tego modułu.
  • W usłudze Azure Boards przenieś element roboczy dla tego modułu do kolumny Doing (Wykonywanie ).
  • Upewnij się, że projekt został skonfigurowany lokalnie, aby można było wypchnąć zmiany do potoku.
  • Utwórz aplikację usługi aplikacja systemu Azure i usługi Azure Functions przy użyciu interfejsu wiersza polecenia platformy Azure w usłudze Azure Cloud Shell.
  • Utwórz zmienne potoku, które definiują nazwy wystąpień usługi App Service i usługi Azure Functions.
  • Utwórz połączenie z usługą, które umożliwia usłudze Azure Pipelines bezpieczny dostęp do subskrypcji platformy Azure.

Dodawanie użytkownika do usługi Azure DevOps

Do ukończenia tego modułu potrzebna jest własna subskrypcja platformy Azure. Możesz bezpłatnie rozpocząć pracę z platformą Azure.

Mimo że nie potrzebujesz subskrypcji platformy Azure do pracy z usługą Azure DevOps, to ćwiczenie korzysta z usługi Azure DevOps do wdrażania w zasobach platformy Azure w ramach subskrypcji platformy Azure. Aby uprościć ten proces, użyj tego samego konta Microsoft, aby zalogować się zarówno do subskrypcji platformy Azure, jak i organizacji usługi Azure DevOps.

Ważne

Jeśli logujesz się przy użyciu różnych kont, musisz dodać użytkownika do organizacji DevOps w ramach konta Microsoft używanego do logowania się na platformie Azure. Aby uzyskać więcej informacji, zobacz Dodawanie użytkowników do organizacji lub projektu. Po dodaniu użytkownika wybierz poziom dostępu Podstawowy .

Następnie wyloguj się z usługi Azure DevOps i zaloguj się przy użyciu nowego konta użytkownika. Użyj konta Microsoft, którego używasz do logowania się do subskrypcji platformy Azure.

Pobieranie projektu usługi Azure DevOps

Upewnij się, że organizacja usługi Azure DevOps została skonfigurowana w celu ukończenia pozostałej części tego modułu. W tym celu uruchomisz szablon, który tworzy projekt w usłudze Azure DevOps.

Moduły w tej ścieżce szkoleniowej tworzą postęp w miarę obserwowania zespołu internetowego Tailspin za pośrednictwem ich podróży devOps. Do celów szkoleniowych każdy moduł ma własny projekt usługi Azure DevOps.

Uruchamianie szablonu

  1. Uruchom szablon, który konfiguruje organizację usługi Azure DevOps:

  2. W witrynie generatora demonstracyjnego usługi Azure DevOps wybierz pozycję Zaloguj się. Jeśli zostanie wyświetlony monit, zaakceptuj warunki użytkowania. Zostanie wyświetlona strona Tworzenie nowego projektu .

  3. Na stronie Tworzenie nowego projektu wprowadź nazwę projektu, taką jak Space Game — web — Azure Functions, a następnie w polu Wybierz organizację wybierz organizację używaną dla subskrypcji platformy Azure.

    Zrzut ekranu przedstawiający generator demonstracyjny usługi Azure DevOps przedstawiający sposób tworzenia projektu.

  4. W następnej sekcji wybierz pozycję Tak, chcę rozwidlić to repozytorium, a następnie wybierz pozycję Autoryzuj.

    Jeśli zostanie wyświetlone okno, autoryzuj dostęp do swojego konta usługi GitHub.

    Ważne

    Włączenie tej opcji rozwidlenia jest niezbędne, aby szablon łączył się z repozytorium GitHub. Wybierz go, nawet jeśli projekt witryny Space Game został już rozwidlony. Szablon używa istniejącego rozwidlenia.

  5. Wybierz pozycję Utwórz projekt.

    Uruchomienie szablonu zajmuje kilka chwil.

  6. Po pomyślnym aprowizacji projektu wybierz pozycję Przejdź do projektu, aby przejść do projektu w usłudze Azure DevOps.

Ważne

Strona Czyszczenie środowiska usługi Azure DevOps w tym module zawiera ważne kroki , które należy wykonać, nawet jeśli nie ukończysz tego modułu. Czyszczenie pomaga oszczędzać bezpłatne minuty przeznaczone na kompilację.

Ustawianie widoczności projektu

Początkowo rozwidlenie repozytorium Space Game w usłudze GitHub jest ustawione na publiczne, podczas gdy projekt utworzony przez szablon usługi Azure DevOps jest ustawiony na prywatny. Do repozytorium publicznego w usłudze GitHub można uzyskać dostęp dowolnej osobie, natomiast prywatne repozytorium jest dostępne tylko dla Ciebie i osób, którym chcesz je udostępnić. Podobnie w usłudze Azure DevOps publiczne projekty zapewniają dostęp tylko do odczytu użytkownikom nieuwierzytelnionemu, podczas gdy projekty prywatne wymagają od użytkowników udzielenia dostępu i uwierzytelnienia w celu uzyskania dostępu do usług.

W tej chwili nie jest konieczne zmodyfikowanie żadnego z tych ustawień na potrzeby tego modułu. Jednak w przypadku projektów osobistych musisz określić widoczność i dostęp, który chcesz udzielić innym osobom. Jeśli na przykład projekt jest projektem typu open source, możesz zdecydować się na upublicznienie zarówno repozytorium GitHub, jak i projektu usługi Azure DevOps. Jeśli projekt jest zastrzeżony, zazwyczaj zarówno repozytorium GitHub, jak i projekt usługi Azure DevOps są prywatne.

W dalszej części możesz znaleźć następujące zasoby pomocne podczas określania, która opcja jest najlepsza dla projektu:

Przypisywanie elementu roboczego i przenoszenie go do stanu Wykonywanie

W tym miejscu przypiszesz element roboczy do siebie w usłudze Azure Boards i ustawisz stan elementu roboczego na Wartość Robi. W praktyce Ty i Twój zespół utworzyliby elementy robocze na początku każdego przebiegu lub iteracji pracy.

W tym ćwiczeniu zostanie utworzona lista kontrolna, z której ma działać. Daje to innym członkom zespołu wgląd w to, nad czym pracujesz, i ile pracy pozostało. Element roboczy pomaga również wymusić limity pracy w toku (WIP), dzięki czemu zespół nie wykonuje zbyt dużej ilości pracy jednocześnie.

  1. W usłudze Azure DevOps przejdź do kategorii Boards , a następnie wybierz pozycję Boards z menu.

    Usługa Azure DevOps wyświetla lokalizację menu Boards.

  2. Otwórz interfejs API refaktoryzacji jako element roboczy funkcji platformy Azure, wybierając tytuł. Przypisz ten element roboczy do siebie, a następnie wybierz pozycję Zapisz i zamknij.

  3. Wybierz strzałkę w dół w dolnej części karty i wybierz pozycję Robi lub wybierz kartę i przeciągnij ją do kolumny Robi.

    Zrzut ekranu przedstawiający kartę elementu roboczego z wyróżnioną lokalizacją strzałki w dół.

  4. Element roboczy jest przenoszony z kolumny Do wykonania do kolumny Robi .

    Zrzut ekranu przedstawiający usługę Azure Boards z wyróżnioną kartą elementu roboczego w kolumnie Wykonywanie.

Na końcu tego modułu przeniesiesz kartę do kolumny Gotowe po zakończeniu zadania.

Tworzenie środowisk usługi aplikacja systemu Azure i usługi Azure Functions

W tym miejscu utworzysz aplikację App Service i Azure Functions wymaganą do wdrożenia nowej wersji witryny i interfejsu API.

W module Tworzenie potoku wydania za pomocą usługi Azure Pipelines Learn utworzysz usługę App Service za pośrednictwem witryny Azure Portal. Chociaż portal jest doskonałym sposobem na zapoznanie się z dostępnymi na platformie Azure lub wykonywaniem podstawowych zadań, tworzenie składników, takich jak usługa App Service, może być żmudne.

W tym module użyjesz interfejsu wiersza polecenia platformy Azure, aby wyświetlić wystąpienie usługi App Service. Dostęp do interfejsu wiersza polecenia platformy Azure możesz uzyskać z terminalu lub za pośrednictwem programu Visual Studio Code. W tym miejscu uzyskamy dostęp do interfejsu wiersza polecenia platformy Azure z poziomu usługi Azure Cloud Shell. To środowisko powłoki oparte na przeglądarce jest hostowane w chmurze. W usłudze Cloud Shell interfejs wiersza polecenia platformy Azure jest konfigurowany do użycia z subskrypcją platformy Azure.

Ważne

Do wykonania ćwiczeń przedstawionych w tym module potrzebna jest subskrypcja platformy Azure.

Tworzenie usługi Cloud Shell za pośrednictwem witryny Azure Portal

  1. Zaloguj się w witrynie Azure Portal.

  2. W obszarze kontrolek globalnych w nagłówku strony wybierz pozycję Cloud Shell.

    Zrzut ekranu witryny Azure Portal przedstawiający lokalizację elementu menu usługi Cloud Shell.

    Zostanie otwarty terminal i połączy się z usługą Azure Cloud Shell.

  3. W razie potrzeby wybierz pozycję Bash z menu terminalu.

    Uwaga

    Usługa Cloud Shell wymaga, aby zasób magazynu platformy Azure utrwalał wszystkie pliki utworzone w usłudze Cloud Shell. Po pierwszym otwarciu usługi Cloud Shell zostanie wyświetlony monit o utworzenie grupy zasobów, konta magazynu i udziału usługi Azure Files. Ta konfiguracja jest automatycznie używana dla wszystkich przyszłych sesji usługi Cloud Shell.

Wybieranie regionu platformy Azure

Region to co najmniej jedno centrum danych platformy Azure w lokalizacji geograficznej. Przykładami regionów są Wschodnie stany USA, Zachodnie stany USA i Europa Północna. Każdy zasób platformy Azure, w tym wystąpienie usługi App Service, jest przypisany do regionu.

Aby ułatwić uruchamianie poleceń, zacznijmy od ustawienia domyślnego regionu. Po określeniu regionu domyślnego polecenia będą używane do momentu określenia innego regionu.

  1. W usłudze Cloud Shell uruchom następujące az account list-locations polecenie, aby wyświetlić listę regionów dostępnych w ramach subskrypcji platformy Azure:

    az account list-locations \
      --query "[].{Name: name, DisplayName: displayName}" \
      --output table
    
  2. Z kolumny Name w danych wyjściowych wybierz region, który jest blisko Ciebie. Na przykład wybierz lub eastasia westus2.

  3. Uruchom polecenie az configure , aby ustawić domyślny region. Zastąp <REGION> ciąg nazwą wybranego regionu.

    az configure --defaults location=<REGION>
    

    W tym przykładzie ustawiono westus2 domyślny region:

    az configure --defaults location=westus2
    

Tworzenie zmiennych powłoki Bash

W tym miejscu utworzysz zmienne powłoki Bash, aby proces konfiguracji był bardziej wygodny i mniej podatny na błędy. Używanie zmiennych dla udostępnionych ciągów tekstowych pomaga uniknąć przypadkowych literówek.

  1. W usłudze Cloud Shell wygeneruj liczbę losową, która zostanie użyta do utworzenia globalnie unikatowych nazw dla niektórych usług w następnym kroku.

    resourceSuffix=$RANDOM
    
  2. Utwórz trzy unikatowe globalnie nazwy dla kont usługi App Service, funkcji platformy Azure i magazynu. Te polecenia używają podwójnych cudzysłowów, które instruują powłokę Bash, aby rozpoznawała zmienne przy użyciu składni wbudowanej.

    webName="tailspin-space-game-web-${resourceSuffix}"
    leaderboardName="tailspin-space-game-leaderboard-${resourceSuffix}"
    storageName="tailspinspacegame${resourceSuffix}"
    
  3. Utwórz jeszcze dwie zmienne powłoki Bash, aby przechowywać nazwy grupy zasobów i planu usługi.

    rgName='tailspin-space-game-rg'
    planName='tailspin-space-game-asp'
    

Tworzenie wymaganych zasobów platformy Azure

Nasze rozwiązanie wymaga kilku zasobów platformy Azure do wdrożenia, które utworzymy teraz.

Uwaga

W tym ćwiczeniu są używane domyślne ustawienia sieciowe, dzięki czemu witryna jest dostępna z Internetu. W praktyce można skonfigurować sieć wirtualną platformy Azure, aby umieścić witrynę internetową w sieci, do której masz dostęp tylko Ty i Twój zespół. Później możesz ponownie skonfigurować sieć wirtualną, aby udostępnić witrynę internetową użytkownikom.

  1. Uruchom następujące az group create polecenie, aby utworzyć grupę zasobów przy użyciu nazwy zdefiniowanej wcześniej:

    az group create --name $rgName
    
  2. Uruchom następujące az appservice plan create polecenie, aby utworzyć plan usługi App Service przy użyciu nazwy zdefiniowanej w poprzednim zadaniu:

    az appservice plan create \
      --name $planName \
      --resource-group $rgName \
      --sku B1 \
      --is-linux
    

    Parametr --sku określa plan B1. Ten plan jest uruchamiany w warstwie Podstawowa. Parametr --is-linux określa procesy robocze systemu Linux (wątki używane w zdarzeniach i planowanie zadań).

    Ważne

    Jeśli jednostka SKU B1 nie jest dostępna w ramach subskrypcji platformy Azure, wybierz inny plan, taki jak S1 (Standardowa).

  3. Uruchom następujące az webapp create polecenie, aby utworzyć wystąpienie usługi App Service:

    az webapp create \
      --name $webName \
      --resource-group $rgName \
      --plan $planName \
      --runtime "DOTNETCORE|6.0"
    
  4. Usługa Azure Functions wymaga konta magazynu do wdrożenia. Uruchom następujące az storage account create polecenie, aby go utworzyć:

    az storage account create \
      --name $storageName \
      --resource-group $rgName \
      --sku Standard_LRS
    
  5. Uruchom następujące az functionapp create polecenie, aby utworzyć wystąpienie aplikacji usługi Azure Functions. Zastąp element <region> preferowanym regionem.

    az functionapp create \
      --name $leaderboardName \
      --resource-group $rgName \
      --storage-account $storageName \
      --functions-version 4 \
      --consumption-plan-location <region>
    
  6. Uruchom następujące az webapp list polecenie, aby wyświetlić nazwę hosta i stan wystąpienia usługi App Service:

    az webapp list \
      --resource-group $rgName \
      --query "[].{hostName: defaultHostName, state: state}" \
      --output table
    

    Zanotuj nazwę hosta uruchomionej usługi. Powinien wyglądać podobnie do poniższego, ale identyfikator liczb losowych będzie się różnić. Po zweryfikowaniu pracy będzie potrzebna nazwa hosta internetowego.

    HostName                                        State
    ----------------------------------------------  -------
    tailspin-space-game-web-4692.azurewebsites.net  Running
    
  7. Uruchom następujące az functionapp list polecenie, aby wyświetlić nazwę hosta i stan wystąpienia usługi Azure Functions.

    az functionapp list \
      --resource-group $rgName \
      --query "[].{hostName: defaultHostName, state: state}" \
      --output table
    

    Zanotuj nazwę hosta uruchomionej usługi. Powinien wyglądać podobnie do poniższego, ale identyfikator liczb losowych będzie się różnić. Po zweryfikowaniu pracy będzie potrzebna nazwa hosta rankingu.

    HostName                                                State
    ------------------------------------------------------  -------
    tailspin-space-game-leaderboard-4692.azurewebsites.net  Running
    
  8. Skopiuj te dwie nazwy hostów do lokalizacji, do której można łatwo uzyskać dostęp później.

  9. Opcjonalnie otwórz przeglądarkę i wprowadź nazwę hosta, aby sprawdzić, czy jest uruchomiona. Zostanie wyświetlona domyślna strona główna.

Ważne

Na stronie Czyszczenie środowiska usługi Azure DevOps w tym module znajdują się ważne kroki czyszczenia. Czyszczenie pomaga zagwarantować, że po ukończeniu tego modułu nie są naliczane opłaty za zasoby platformy Azure. Pamiętaj, aby wykonać kroki czyszczenia, nawet jeśli nie ukończono tego modułu.

Tworzenie zmiennych potoku w usłudze Azure Pipelines

W module Tworzenie potoku wydania za pomocą usługi Azure Pipelines dodano zmienną do potoku, która przechowuje nazwę aplikacji internetowej w usłudze App Service. W tym miejscu zrobisz to samo. Ponadto dodasz nazwę aplikacji rankingowej dla wystąpienia usługi Azure Functions.

Te nazwy można zakodować w konfiguracji potoku, ale jeśli zdefiniujesz je jako zmienne, konfiguracja będzie bardziej wielokrotnego użytku. Ponadto jeśli nazwy wystąpień zmienią się, możesz zaktualizować zmienne i wyzwolić potok bez modyfikowania konfiguracji.

Dodajmy grupę zmiennych do projektu.

  1. Projekt Space Game — internet — projekt usługi Azure Functions powinien być otwarty w usłudze Azure DevOps.

  2. W menu wybierz pozycję Potoki, a następnie w obszarze Potoki wybierz pozycję Biblioteka. Zostanie wyświetlone okienko Biblioteka.

    Zrzut ekranu przedstawiający menu usługi Azure DevOps z wyróżnioną opcją Biblioteka w obszarze Potoki.

  3. Na pasku poleceń lub w środku okienka wybierz pozycję Grupa zmiennych. Zostanie wyświetlona strona Nowa grupa zmiennych.

  4. W polu nazwa grupy zmiennych wprowadź wartość Release.For the variable group name (Nazwa grupy zmiennych) wprowadź Release (Wydanie).

  5. W obszarze Zmienne wybierz pozycję Dodaj.

  6. Jako nazwę zmiennej wprowadź wartość WebAppName. Jako wartość wprowadź nazwę wystąpienia usługi App Service utworzonego dla aplikacji internetowej, na przykład tailspin-space-game-web-4692.

    Ważne

    Ustaw nazwę wystąpienia usługi App Service, a nie pełną nazwę hosta. Na przykład w tym ćwiczeniu tailspin-space-game-web-4692 jest częścią nazwy hosta tailspin-space-game-web-4692.azurewebsites.net.

  7. Dodaj kolejną zmienną o nazwie LeaderboardAppName z wartością wystąpienia rankingu, na przykład tailspin-space-game-leaderboard-4692.

  8. Dodaj ostateczną zmienną o nazwie ResourceGroupName z wartością tailspin-space-game-rg.

  9. Na pasku poleceń w górnej części strony wybierz pozycję Zapisz , aby zapisać grupę zmiennych wydania w potoku.

    Zmienne w grupie zmiennych powinny być podobne:

    Zrzut ekranu usługi Azure Pipelines przedstawiający grupę zmiennych. Grupa zawiera trzy zmienne.

Tworzenie środowiska skoku

W poprzednich modułach utworzono środowiska dla środowisk deweloperskich, testowych i przejściowych . W tym miejscu zrobisz to samo. Tym razem utworzysz środowisko o nazwie spike.

  1. Z menu usługi Azure DevOps w obszarze Potoki wybierz pozycję Środowiska.

    Zrzut ekranu usługi Azure Pipelines przedstawiający lokalizację opcji menu Środowiska.

  2. Wybierz pozycję Utwórz środowisko. Zostanie wyświetlone okienko Nowe środowisko .

  3. W polu Nazwa wprowadź skok.

  4. Pozostaw wartości domyślne pozostałych pól.

  5. Wybierz pozycję Utwórz.

Tworzenie połączenia z usługą

W tym miejscu utworzysz połączenie usługi, które umożliwia usłudze Azure Pipelines dostęp do subskrypcji platformy Azure. Usługa Azure Pipelines używa tego połączenia usługi do wdrożenia witryny internetowej w usłudze App Service. W poprzednim module utworzono podobne połączenie usługi.

Ważne

Upewnij się, że zalogowaliśmy się zarówno do witryny Azure Portal, jak i usługi Azure DevOps na tym samym koncie Microsoft.

  1. W usłudze Azure DevOps, Space Game — web — projekt potoku usługi Azure Functions poniżej menu wybierz pozycję Ustawienia projektu. Zostanie wyświetlone okienko Szczegóły projektu.

  2. W menu w obszarze Potoki wybierz pozycję Połączenia z usługą.

  3. Na stronie Połączenia z usługą wybierz pozycję Nowe połączenie z usługą, a następnie w okienku Nowe połączenie z usługą wybierz pozycję Azure Resource Manager, a następnie wybierz pozycję Dalej.

  4. W okienku Nowe połączenie z usługą wybierz pozycję Jednostka usługi (automatyczna), a następnie wybierz pozycję Dalej.

  5. W okienku Nowe połączenie z usługą platformy Azure wybierz lub wprowadź następujące ustawienia:

    Pole Wartość
    Poziom zakresu Subskrypcja
    Subskrypcja Wybierz subskrypcję platformy Azure
    Grupa zasobów tailspin-space-game-rg
    Nazwa połączenia z usługą Resource Manager — Tailspin — gra kosmiczna

    Podczas tego procesu może zostać wyświetlony monit o zalogowanie się do konta Microsoft.

  6. Upewnij się, że wybrano opcję Udziel uprawnień dostępu do wszystkich potoków .

  7. Wybierz pozycję Zapisz.

Usługa Azure DevOps wykonuje testowe połączenie, aby sprawdzić, czy może nawiązać połączenie z subskrypcją platformy Azure. Jeśli usługa Azure DevOps nie może nawiązać połączenia, możesz zalogować się po raz drugi.