Ćwiczenie — konfigurowanie środowiska usługi Azure DevOps

Ukończone

W tej lekcji upewnij się, że organizacja usługi Azure DevOps została skonfigurowana w celu ukończenia pozostałej części tego modułu. Tworzysz również środowiska usługi Azure App Service, do których wdrażasz aplikacje.

Aby osiągnąć te cele, należy wykonać następujące zadania:

  • 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.
  • Upewnij się, że projekt został skonfigurowany lokalnie, aby można było przesyłać zmiany do pipeline.
  • Utwórz aplikację Azure App Service i 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, w tym ćwiczeniu użyto usługi Azure DevOps do wdrożenia 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żny

Jeśli logujesz się przy użyciu różnych kont, dodaj użytkownika do organizacji DevOps w ramach konta Microsoft, którego używasz 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 uruchom szablon, który tworzy projekt w usłudze Azure DevOps.

Moduły w tej ścieżce szkoleniowej stanowią sekwencję, gdy podążasz za zespołem Tailspin ds. sieci w ich podróży DevOps. Do celów szkoleniowych każdy moduł ma własny projekt usługi Azure DevOps.

Uruchamianie szablonu

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

Ważny

Generator demonstracyjny usługi Azure DevOps nie jest już obsługiwany, ale nadal można go używać do tworzenia środowisk demonstracyjnych. Obecnie nie ma zastąpienia, a jego funkcje lub dostępność mogą ulec zmianie w przyszłości.

  1. Pobierz i uruchom projekt ADOGenerator w programie Visual Studio lub wybranym środowisku IDE.

  2. Po wyświetleniu monitu o wprowadzenie numeru szablonu z listy szablonów wprowadź wartość 38 w polu Automatyzowanie wdrożeń funkcji platformy Azure za pomocą usługi Azure Pipelines, a następnie naciśnij Enter.

  3. Wybierz metodę uwierzytelniania. Możesz skonfigurować i użyć osobistego tokenu dostępu (PAT) lub zalogować się za pomocą urządzenia.

    Notatka

    W przypadku skonfigurowania Osobistego Tokenu Dostępu (PAT), upewnij się, że autoryzujesz niezbędne zakresy. W tym module można użyć pełnego dostępu, ale w rzeczywistej sytuacji należy udzielić tylko niezbędnych zakresów.

  4. Wprowadź nazwę organizacji usługi Azure DevOps, a następnie naciśnij Enter.

  5. Jeśli zostanie wyświetlony monit, wprowadź swój PAT usługi Azure DevOps, a następnie naciśnij Enter.

  6. Wprowadź nazwę projektu, taką jak Space Game — web — Azure Functions, a następnie naciśnij Enter.

  7. Po utworzeniu projektu przejdź do organizacji usługi Azure DevOps w przeglądarce (w lokalizacji https://dev.azure.com/<your-organization-name>/) i wybierz projekt.

Rozwidlenie repozytorium

Jeśli jeszcze tego nie zrobiono, utwórz rozwidlenie repozytorium mslearn-tailspin-spacegame-web-azure-functions .

  1. Na GitHubie przejdź do repozytorium mslearn-tailspin-spacegame-web-azure-functions.

  2. Wybierz Fork w prawym górnym rogu ekranu.

  3. Wybierz swoje konto GitHub jako właściciela, a następnie wybierz Utwórz fork.

Ważny

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 zagwarantować, że nie zabraknie bezpłatnych minut kompilacji.

Ustawianie widoczności projektu

Początkowo fork twojego repozytorium Space Game na GitHubie jest ustawiony na publiczne, podczas gdy projekt utworzony przez szablon 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 Wykonywanie. W praktyce Ty i Twój zespół utworzyliby elementy robocze na początku każdego sprintu lub iteracji roboczej.

W tym ćwiczeniu zostanie utworzona lista kontrolna, z której można korzystać. 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 element roboczy Refactor leaderboard API jako Azure Function, wybierając tytuł. Przypisz ten element roboczy do siebie, a następnie wybierz pozycję Zapisz & Zamknij.

  3. Wybierz strzałkę na dole karty i wybierz pozycję W realizacjilub wybierz kartę i przeciągnij ją do kolumny W realizacji.

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

  4. Element roboczy jest przenoszony z kolumny Do do kolumny Doing.

    pl-PL: Zrzut ekranu przedstawiający usługę Azure Boards z wyróżnioną kartą elementu zadania w kolumnie Wykonywanie.

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

Tworzenie środowisk usług Azure App Service i Azure Functions

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

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

Ważny

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

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

  1. Zaloguj się do witryny Azure Portal.

  2. W globalnych kontrolkach w nagłówku strony wybierz Cloud Shell.

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

    Otwiera się terminal i łączy z Azure Cloud Shell.

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

    Notatka

    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 zostaniesz poproszony o utworzenie grupy zasobów, konta magazynowego i udziału 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ń, zacznij od ustawienia domyślnego regionu. Po określeniu regionu domyślnego, polecenia, które wprowadzisz, będą korzystać z tego regionu, dopóki nie określisz innego regionu.

  1. W usłudze Cloud Shell uruchom następujące polecenie az account list-locations, 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. W kolumnie Name w danych wyjściowych wybierz region, który jest blisko Ciebie. Na przykład wybierz pozycję eastasia lub westus2.

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

    az configure --defaults location=<REGION>
    

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

    az configure --defaults location=westus2
    

Tworzenie zmiennych Bash

W tym miejscu utwórz zmienne powłoki Bash, aby proces instalacji 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 służy do tworzenia globalnie unikatowych nazw dla niektórych usług w następnym kroku.

    resourceSuffix=$RANDOM
    
  2. Utwórz trzy globalnie unikatowe nazwy dla kont usługi App Service, Azure Function i magazynu. Te komendy używają podwójnych cudzysłowów, które nakazują Bash rozpoznawanie zmiennych 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 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

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

Notatka

W tym ćwiczeniu są używane domyślne ustawienia sieciowe, więc 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 polecenie az group create, aby utworzyć grupę zasobów przy użyciu nazwy zdefiniowanej wcześniej:

    az group create --name $rgName
    
  2. Uruchom następujące polecenie az appservice plan create, 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 działa na poziomie podstawowym. Parametr --is-linux określa pracowników systemu Linux (wątki używane w zdarzeniach i szeregowaniu zadań).

    Ważny

    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 polecenie az webapp create, aby utworzyć wystąpienie usługi App Service:

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

    az storage account create \
      --name $storageName \
      --resource-group $rgName \
      --sku Standard_LRS
    
  5. Uruchom następujące polecenie az functionapp create, aby utworzyć wystąpienie aplikacji Azure Functions. Zastąp <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 polecenie az webapp list, 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 z inną liczbą losową. Nazwa hosta internetowego będzie potrzebna później podczas weryfikowania pracy.

    HostName                                        State
    ----------------------------------------------  -------
    tailspin-space-game-web-4692.azurewebsites.net  Running
    
  7. Uruchom polecenie az functionapp list, aby wyświetlić nazwę hosta i stan instancji Azure Functions.

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

    Zanotuj nazwę hosta uruchomionej usługi. Powinien on wyglądać podobnie do poniższego, ale z innym identyfikatorem liczb losowych. Nazwa hosta rankingu będzie potrzebna później, gdy będziemy weryfikować wykonanie zadań.

    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żny

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

Tworzenie zmiennych w potokach w usłudze Azure Pipelines

W tym miejscu dodasz do potoku zmienną, która przechowuje nazwę Twojej aplikacji webowej w usłudze App Service. Ponadto należy dodać nazwę aplikacji rankingowej dla wystąpienia usługi Azure Functions.

Nazwy te można zakodować na stałe w konfiguracji potoku, ale jeśli zdefiniujesz je jako zmienne, konfiguracja będzie bardziej użyteczna w różnych sytuacjach. Ponadto, jeśli nazwy Twoich wystąpień zmienią się, możesz zaktualizować zmienne i wyzwolić potok danych bez modyfikowania konfiguracji.

Dodaj grupę zmiennych do projektu.

  1. Projekt Space Game — web — 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. Pojawia się strona Nowa grupa zmiennych.

  4. W polu nazwa grupy zmiennych wprowadź Release.

  5. W obszarze zmiennychwybierz Dodaj.

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

    Ważny

    Ustaw nazwę instancji usługi App Service, a nie jej 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ą instancji tablicy wyników, na przykład tailspin-space-game-leaderboard-4692.

  8. Dodaj zmienną końcową 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 Release do potoku.

    Zmienne w grupie zmiennych powinny być podobne:

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

Tworzenie środowiska obciążeniowego

W poprzednich modułach utworzono środowiska deweloperskie , testowe i przejściowe . W tym miejscu zrób to samo. Tym razem utwórz ś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 Nazwawprowadź spike.

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

  5. Wybierz pozycję Utwórz.

Tworzenie połączenia z usługą

Tutaj tworzysz połączenie z usługą, które pozwala na dostęp usługi Azure Pipelines do subskrypcji platformy Azure. Azure Pipelines używa tego połączenia usługi do wdrożenia witryny internetowej w Usłudze Aplikacji. W poprzednim module utworzono podobne połączenie usługi.

Ważny

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, w projekcie Space Game — web — Azure Functions pipeline, poniżej menu wybierz Ustawienia projektu. Pojawi się okienko Szczegóły projektu .

  2. W menu w obszarze Pipelineswybierz pozycję Połączenia usługi.

  3. Na stronie połączenia usługi wybierz pozycję Nowe połączenie z usługą, a następnie w okienku New service connection wybierz pozycję Azure Resource Manager, a następnie wybierz pozycję Next.

  4. W okienku Nowe połączenie z usługą wybierz pozycję główna usługa (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 Wybieranie subskrypcji platformy Azure
    Grupa zasobów tailspin-space-game-rg (gra kosmiczna Tailspin)
    Nazwa połączenia z usługą Resource Manager – Tailspin – Space Game

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

  6. Upewnij się, że zaznaczono Przyznaj uprawnienia 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.