Agenci hostowani przez firmę Microsoft

Azure DevOps Services

Agenci hostowani przez firmę Microsoft są dostępni tylko w usługach Azure DevOps Services, które są hostowane w chmurze. Nie można używać agentów hostowanych przez firmę Microsoft ani puli agentów usługi Azure Pipelines z lokalnym programem TFS lub serwerem Azure DevOps Server. W przypadku tych wersji lokalnych należy używać własnych agentów.

Ważne

Wybierz wersję z selektora wersji zawartości usługi Azure DevOps.

Wybierz wersję tego artykułu odpowiadającą twojej platformie i wersji. Selektor wersji znajduje się powyżej spisu treści. Wyszukaj platformę i wersję usługi Azure DevOps.

Jeśli potoki znajdują się w usłudze Azure Pipelines, masz wygodną opcję uruchamiania zadań przy użyciu agenta hostowanego przez firmę Microsoft. W przypadku agentów hostowanych przez firmę Microsoft konserwacja i uaktualnienia są dla Ciebie obsługiwane. Zawsze uzyskujesz najnowszą wersję obrazu maszyny wirtualnej określonego w potoku. Za każdym razem, gdy uruchamiasz potok, otrzymujesz nową maszynę wirtualną dla każdego zadania w potoku. Maszyna wirtualna zostanie odrzucona po jednym zadaniu (co oznacza, że każda zmiana, którą zadanie wykonuje w systemie plików maszyny wirtualnej, na przykład wyewidencjonowanie kodu, będzie niedostępna dla następnego zadania). Agenci hostowani przez firmę Microsoft mogą uruchamiać zadania bezpośrednio na maszynie wirtualnej lub w kontenerze.

Usługa Azure Pipelines udostępnia wstępnie zdefiniowaną pulę agentów o nazwie Azure Pipelines z agentami hostowanymi przez firmę Microsoft.

Dla wielu zespołów jest to najprostszy sposób uruchamiania zadań. Możesz spróbować go najpierw i sprawdzić, czy działa w przypadku kompilacji lub wdrożenia. Jeśli nie, możesz użyć agentów zestawu skalowania lub własnego agenta.

Napiwek

Możesz wypróbować agenta hostowanego przez firmę Microsoft bez opłat.

Oprogramowanie

Pula agentów usługi Azure Pipelines oferuje kilka obrazów maszyn wirtualnych do wyboru, z których każdy obejmuje szeroką gamę narzędzi i oprogramowania.

Obraz Specyfikacja agenta edytora klasycznego Etykieta obrazu maszyny wirtualnej YAML Dołączone oprogramowanie
Windows Server 2022 z programem Visual Studio 2022 windows-2022 windows-latest LUB windows-2022 Link
Windows Server 2019 z programem Visual Studio 2019 windows-2019 windows-2019 Link
Ubuntu 22.04 ubuntu-22.04 ubuntu-latest LUB ubuntu-22.04 Link
Ubuntu 20.04 ubuntu-20.04 ubuntu-20.04 Link
macOS 14 Sonoma (wersja zapoznawcza) macOS-14 macOS-14 Link
MacOS 13 Ventura macOS-13 macOS-13 Link
macOS 12 Monterey macOS-12 macOS-latest LUB macOS-12 Link
macOS 11 Big Sur (przestarzałe) macOS-11 macOS-11 Link

Domyślny obraz agenta dla klasycznych potoków kompilacji to windows-2019, a domyślny obraz agenta dla potoków kompilacji YAML to ubuntu-latest. Aby uzyskać więcej informacji, zobacz Wyznaczanie puli w potoku.

Zainstalowane oprogramowanie dla każdego hostowanego agenta można wyświetlić, wybierając link Dołączone oprogramowanie w tabeli. W przypadku korzystania z obrazów systemu macOS możesz ręcznie wybrać wersję narzędzia. Dowiedz się więcej.

Najnowsze aktualizacje

Zachęcamy klientów do migracji do nowszych wersji lub własnego agenta.

Aby uzyskać więcej informacji i instrukcje dotyczące aktualizowania potoków korzystających z tych obrazów, zobacz Usuwanie starszych obrazów w hostowanych pulach usługi Azure Pipelines.

Uwaga

Pojemność systemu macOS jest obecnie ograniczona. W przeciwieństwie do obrazów systemu Linux i Windows, gdzie pojemność jest ograniczona przez całą pojemność platformy Azure, pojemność systemu macOS jest ograniczona przez ilość dostępnego sprzętu. Podczas gdy pracujemy nad udostępnieniem dodatkowej pojemności na wiosnę 2024 r., niektóre zadania mogą być wykonywane z opóźnieniem. Jeśli to możliwe, np. w przypadku zadań, które nie tworzą aplikacji ekosystemu firmy Apple, klienci powinni wybrać obrazy systemu Linux lub Windows.

Uwaga

Hostowana pula usługi Azure Pipelines zastępuje poprzednie hostowane pule, które mają nazwy mapowane na odpowiednie obrazy. Wszystkie zadania z poprzednich hostowanych pul są automatycznie przekierowywane do poprawnego obrazu w nowej puli hostowanej usługi Azure Pipelines. W niektórych sytuacjach nadal mogą być widoczne stare nazwy puli, ale w tle hostowane zadania są uruchamiane przy użyciu puli usługi Azure Pipelines. Aby uzyskać więcej informacji na temat tej aktualizacji, zobacz informacje o wersji pojedynczej puli hostowanej od 1 lipca 2019 r. — Sprint 154 — informacje o wersji.

Ważne

Aby zażądać zainstalowania dodatkowego oprogramowania na agentach hostowanych przez firmę Microsoft, nie twórz żądania opinii na temat tego dokumentu ani nie otwieraj biletu pomocy technicznej. Zamiast tego otwórz problem w naszym repozytorium, w którym zarządzamy skryptami w celu wygenerowania różnych obrazów.

Jak identyfikować potoki przy użyciu przestarzałego hostowanego obrazu

Aby zidentyfikować potoki korzystające z przestarzałego obrazu, przejdź do następującej lokalizacji w organizacji: https://dev.azure.com/{organization}/{project}/_settings/agentqueuesi odfiltruj nazwę obrazu, aby sprawdzić. Poniższy przykład sprawdza vs2017-win2016 obraz.

Zrzut ekranu przedstawiający filtrowanie potoków według nazwy obrazu.

Możesz również wykonywać zapytania dotyczące historii zadań dla przestarzałych obrazów w projektach przy użyciu skryptu znajdującego się tutaj, jak pokazano w poniższym przykładzie.

./QueryJobHistoryForRetiredImages.ps1 -accountUrl https://dev.azure.com/{org} -pat {pat}

Korzystanie z agenta hostowanego przez firmę Microsoft

W potokach YAML, jeśli nie określisz puli, potoki są domyślne dla puli agentów usługi Azure Pipelines. Wystarczy określić obraz maszyny wirtualnej, którego chcesz użyć.

jobs:
- job: Linux
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - script: echo hello from Linux
- job: macOS
  pool:
    vmImage: 'macOS-latest'
  steps:
  - script: echo hello from macOS
- job: Windows
  pool:
    vmImage: 'windows-latest'
  steps:
  - script: echo hello from Windows

Uwaga

Specyfikacja puli może być wykonywana na wielu poziomach w pliku YAML. Jeśli zauważysz, że potok nie jest uruchomiony na oczekiwanym obrazie, upewnij się, że specyfikacja puli jest weryfikowana na poziomie potoku, etapu i zadania.

Unikaj zakodowanych odwołań

W przypadku korzystania z agenta hostowanego przez firmę Microsoft zawsze używaj zmiennych do odwoływania się do środowiska kompilacji i zasobów agenta. Na przykład nie należy kodować litery dysku ani folderu zawierającego repozytorium. Dokładny układ hostowanych agentów może ulec zmianie bez ostrzeżenia.

Sprzęt

Agenci hostowani przez firmę Microsoft, którzy uruchamiają obrazy systemu Windows i Linux, są aprowizowani na maszynach wirtualnych ogólnego przeznaczenia platformy Azure z 2-rdzeniowym procesorem CPU, 7 GB pamięci RAM i 14 GB miejsca na dysku SSD. Te maszyny wirtualne znajdują się w tej samej lokalizacji geograficznej co organizacja usługi Azure DevOps.

Agenci, którzy uruchamiają obrazy systemu macOS, są aprowizowani na komputerach Mac pro z 3-rdzeniowym procesorem CPU, 14 GB pamięci RAM i 14 GB miejsca na dysku SSD. Ci agenci zawsze działają w Stanach Zjednoczonych niezależnie od lokalizacji organizacji usługi Azure DevOps. Jeśli suwerenność danych jest dla Ciebie ważna, a twoja organizacja nie znajduje się w Stanach Zjednoczonych, nie należy używać obrazów systemu macOS. Dowiedz się więcej.

Wszystkie te maszyny mają co najmniej 10 GB wolnego miejsca na dysku dostępnego dla potoków do uruchomienia. To wolne miejsce jest używane, gdy potok wyewidencjonuje kod źródłowy, pobiera pakiety, ściąga obrazy platformy Docker lub generuje pliki pośrednie.

Ważne

Nie możemy honorować żądań zwiększenia miejsca na dysku na agentach hostowanych przez firmę Microsoft ani aprowizacji bardziej zaawansowanych maszyn. Jeśli specyfikacje agentów hostowanych przez firmę Microsoft nie spełniają Twoich potrzeb, rozważ użycie własnych agentów lub agentów zestawu skalowania.

Sieć

W niektórych konfiguracjach może być konieczne poznanie zakresu adresów IP, w których są wdrażani agenci. Jeśli na przykład musisz udzielić hostowanym agentom dostępu za pośrednictwem zapory, możesz ograniczyć ten dostęp za pomocą adresu IP. Ponieważ usługa Azure DevOps korzysta z globalnej sieci platformy Azure, zakresy adresów IP różnią się w czasie. Firma Microsoft publikuje tygodniowy plik JSON zawierający listę zakresów adresów IP dla centrów danych platformy Azure podzielonych według regionów. Ten plik jest aktualizowany co tydzień przy użyciu nowych planowanych zakresów adresów IP. Do pobrania jest dostępna tylko najnowsza wersja pliku. Jeśli potrzebujesz poprzednich wersji, musisz pobrać je i zarchiwizować co tydzień, gdy staną się dostępne. Nowe zakresy adresów IP staną się skuteczne w następnym tygodniu. Zalecamy częste sprawdzanie (co najmniej raz w tygodniu), aby zapewnić aktualność listy. Jeśli zadania agenta rozpoczną się niepowodzeniem, pierwszym krokiem rozwiązywania problemów jest upewnienie się, że konfiguracja jest zgodna z najnowszą listą adresów IP. Zakresy adresów IP dla hostowanych agentów są wyświetlane w pliku tygodniowym w obszarze AzureCloud.<region>, na przykład AzureCloud.westus w regionie Zachodnie stany USA.

Hostowani agenci działają w tej samej lokalizacji geograficznej platformy Azure co Twoja organizacja. Każda lokalizacja geograficzna zawiera co najmniej jeden region. Chociaż agent może działać w tym samym regionie co Organizacja, nie ma gwarancji, że to zrobi. Aby uzyskać pełną listę możliwych zakresów adresów IP dla agenta, należy użyć zakresów adresów IP ze wszystkich regionów zawartych w lokalizacji geograficznej. Jeśli na przykład organizacja znajduje się w lokalizacji geograficznej Stany Zjednoczone, musisz użyć zakresów adresów IP dla wszystkich regionów w tej lokalizacji geograficznej.

Aby określić lokalizację geograficzną, przejdź do https://dev.azure.com/<your_organization>/_settings/organizationOverviewlokalizacji , pobierz swój region i znajdź skojarzona geografię z tabeli geografii platformy Azure. Po zidentyfikowaniu lokalizacji geograficznej użyj zakresów adresów IP z pliku tygodniowego dla wszystkich regionów w tej lokalizacji geograficznej.

Ważne

Nie można używać połączeń prywatnych, takich jak ExpressRoute lub VPN, aby połączyć agentów hostowanych przez firmę Microsoft z siecią firmową. Ruch między agentami hostowanymi przez firmę Microsoft a serwerami będzie za pośrednictwem sieci publicznej.

Aby zidentyfikować możliwe zakresy adresów IP dla agentów hostowanych przez firmę Microsoft

  1. Zidentyfikuj region organizacji w ustawieniach organizacji.
  2. Zidentyfikuj lokalizację geograficzną platformy Azure dla regionu organizacji.
  3. Zamapuj nazwy regionów w lokalizacji geograficznej na format używany w pliku tygodniowym, zgodnie z formatem AzureCloud.<region>, takim jak AzureCloud.westus. Nazwy regionów można mapować z listy Geografia platformy Azure na format używany w pliku tygodniowym, przeglądając nazwy regionów przekazane do konstruktora regionów zdefiniowanych w kodzie źródłowym klasy Region z bibliotek zarządzania platformy Azure dla platformy .NET.

    Uwaga

    Ponieważ w bibliotekach zarządzania platformy .NET nie ma interfejsu API, aby wyświetlić listę regionów dla lokalizacji geograficznej, należy je wyświetlić ręcznie, jak pokazano w poniższym przykładzie.

  4. Pobierz adresy IP dla wszystkich regionów w lokalizacji geograficznej z pliku tygodniowego. Jeśli region to Brazylia Południowa lub Europa Zachodnia, musisz uwzględnić dodatkowe zakresy adresów IP w oparciu o lokalizację geograficzną rezerwową, zgodnie z opisem w poniższej notatce.

Uwaga

Ze względu na ograniczenia pojemności niektóre organizacje w regionach Brazylia Południowa lub Europa Zachodnia mogą od czasu do czasu zobaczyć swoich hostowanych agentów znajdujących się poza oczekiwaną lokalizacją geograficzną. W takich przypadkach oprócz uwzględniania zakresów adresów IP dla wszystkich regionów w twojej lokalizacji geograficznej, zgodnie z opisem w poprzedniej sekcji, należy uwzględnić dodatkowe zakresy adresów IP dla regionów w rezerwowej lokalizacji geograficznej pojemności.

Jeśli Twoja organizacja znajduje się w regionie Brazylia Południowa, lokalizacja geograficzna rezerwowa pojemności jest Stany Zjednoczone.

Jeśli Twoja organizacja znajduje się w regionie Europa Zachodnia, rezerwowa lokalizacja geograficzna pojemności to Francja.

Nasze zakresy adresów IP dla komputerów Mac nie są uwzględnione w powyższych adresach IP platformy Azure, ponieważ są hostowane w chmurze systemu macOS w usłudze GitHub. Zakresy adresów IP można pobrać przy użyciu interfejsu API metadanych usługi GitHub, korzystając z instrukcji podanych tutaj.

Przykład

W poniższym przykładzie zakresy adresów IP hostowanego agenta dla organizacji w regionie Zachodnie stany USA są pobierane z pliku tygodniowego. Ponieważ region Zachodnie stany USA znajduje się w lokalizacji geograficznej Stany Zjednoczone, uwzględniane są adresy IP dla wszystkich regionów w lokalizacji geograficznej Stany Zjednoczone. W tym przykładzie adresy IP są zapisywane w konsoli programu .

using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace WeeklyFileIPRanges
{
    class Program
    {
        // Path to the locally saved weekly file
        const string weeklyFilePath = @"C:\MyPath\ServiceTags_Public_20230904.json";

        static void Main(string[] args)
        {
            // United States geography has the following regions:
            // Central US, East US, East US 2, East US 3, North Central US, 
            // South Central US, West Central US, West US, West US 2, West US 3
            // This list is accurate as of 9/8/2023
            List<string> USGeographyRegions = new List<string>
            {
                "centralus",
                "eastus",
                "eastus2",
                "eastus3",
                "northcentralus",
                "southcentralus",
                "westcentralus",
                "westus",
                "westus2",
                "westus3"
            };

            // Load the weekly file
            JObject weeklyFile = JObject.Parse(File.ReadAllText(weeklyFilePath));
            JArray values = (JArray)weeklyFile["values"];

            foreach (string region in USGeographyRegions)
            {
                string tag = $"AzureCloud.{region}";
                Console.WriteLine(tag);

                var ipList =
                    from v in values
                    where tag.Equals((string)v["name"], StringComparison.OrdinalIgnoreCase)
                    select v["properties"]["addressPrefixes"];

                foreach (var ip in ipList.Children())
                {
                    Console.WriteLine(ip);
                }
            }
        }
    }
}

Tagi usługi

Agentów hostowanych przez firmę Microsoft nie można wyświetlać według tagów usługi. Jeśli próbujesz udzielić hostowanym agentom dostępu do zasobów, musisz postępować zgodnie z metodą listy dozwolonych zakresów adresów IP.

Zabezpieczenia

Agenci hostowani przez firmę Microsoft działają na bezpiecznej platformie Azure. Należy jednak pamiętać o następujących kwestiach dotyczących zabezpieczeń.

  • Mimo że agenci hostowani przez firmę Microsoft działają w sieci publicznej platformy Azure, nie mają przypisanych publicznych adresów IP. W związku z tym jednostki zewnętrzne nie mogą kierować agentów hostowanych przez firmę Microsoft.
  • Agenci hostowani przez firmę Microsoft są uruchamiani na poszczególnych maszynach wirtualnych, które są ponownie obrazowane po każdym uruchomieniu. Każdy agent jest przeznaczony dla jednej organizacji, a każda maszyna wirtualna hostuje tylko jednego agenta.
  • Istnieje kilka korzyści z uruchamiania potoku na agentach hostowanych przez firmę Microsoft z perspektywy zabezpieczeń. Jeśli w potoku uruchomisz niezaufany kod, taki jak współtworzenie rozwidlenia, bezpieczniej będzie uruchamiać potok na agentach hostowanych przez firmę Microsoft niż na własnych agentach znajdujących się w sieci firmowej.
  • Gdy potok musi uzyskać dostęp do zasobów firmowych za zaporą, musisz zezwolić na zakres adresów IP dla lokalizacji geograficznej platformy Azure. Może to zwiększyć ekspozycję, ponieważ zakres adresów IP jest dość duży i ponieważ maszyny w tym zakresie mogą również należeć do innych klientów. Najlepszym sposobem zapobiegania temu jest uniknięcie konieczności uzyskania dostępu do zasobów wewnętrznych. Aby uzyskać informacje na temat wdrażania artefaktów w zestawie serwerów, zobacz Komunikacja w celu wdrożenia na serwerach docelowych.
  • Hostowane obrazy nie są zgodne z testami porównawczymi wzmacniania zabezpieczeń ciS. Aby użyć obrazów ze wzmocnionymi zabezpieczeniami ciS, należy utworzyć własnych agentów lub agentów zestawu skalowania.

Możliwości i ograniczenia

Agenci hostowani przez firmę Microsoft:

  • Masz powyższe oprogramowanie. Możesz również dodać oprogramowanie podczas kompilacji lub wydania przy użyciu zadań instalatora narzędzi.
    • Otrzymasz świeżo obrazowanego agenta dla każdego zadania w potoku.
  • Podaj 10 GB miejsca do magazynowania dla źródła i danych wyjściowych kompilacji.
  • Podaj warstwę Bezpłatna:
    • Projekt publiczny: 10 bezpłatnych zadań równoległych hostowanych przez firmę Microsoft, które mogą być uruchamiane przez maksymalnie 360 minut (6 godzin) za każdym razem, bez ogólnego limitu czasu na miesiąc. Skontaktuj się z nami , aby zwiększyć limity warstwy Bezpłatna.
    • Projekt prywatny: jedno wolne zadanie równoległe, które może być uruchamiane przez maksymalnie 60 minut za każdym razem, do momentu użycia 1800 minut (30 godzin) miesięcznie. Możesz płacić za dodatkową pojemność na zadanie równoległe. Płatne zadania równoległe usuwają miesięczny limit czasu i umożliwiają uruchamianie każdego zadania przez maksymalnie 360 minut (6 godzin). Kup zadania równoległe hostowane przez firmę Microsoft.
    • Podczas tworzenia nowej organizacji usługi Azure DevOps nie otrzymujesz domyślnie tych bezpłatnych dotacji. Aby zażądać bezpłatnej dotacji dla projektów publicznych lub prywatnych, prześlij wniosek.
  • Uruchamianie na maszynach wirtualnych ogólnego przeznaczenia platformy Microsoft Azure Standard_DS2_v2.
  • Uruchom jako administrator w systemie Windows i bez hasła użytkownika sudo w systemie Linux.
  • (Tylko system Linux) Uruchom kroki w programie cgroup , który oferuje 6 GB pamięci fizycznej i 13 GB całkowitej pamięci.
  • Używaj obrazów maszyn wirtualnych, które są regularnie aktualizowane (co 3 tygodnie).

Agenci hostowani przez firmę Microsoft nie oferują:

  • Możliwość zdalnego nawiązywania połączenia.
  • Możliwość porzucania artefaktów do udziału plików UNC.
  • Możliwość dołączania maszyn bezpośrednio do sieci firmowej.
  • Możliwość uzyskania większych lub bardziej zaawansowanych maszyn kompilacji.
  • Możliwość wstępnego ładowania oprogramowania niestandardowego. Oprogramowanie można instalować podczas uruchamiania potoku, na przykład za pomocą zadań instalatora narzędzi lub skryptu.
  • Potencjalne zalety wydajności, które można uzyskać przy użyciu własnych agentów, którzy mogą uruchamiać i uruchamiać kompilacje szybciej. Dowiedz się więcej
  • Możliwość uruchamiania kompilacji XAML.
  • Możliwość wycofania poprzedniej wersji obrazu maszyny wirtualnej. Zawsze używasz najnowszej wersji.

Jeśli agenci hostowani przez firmę Microsoft nie spełniają Twoich potrzeb, możesz wdrożyć własnych własnych agentów lub użyć agentów zestawu skalowania.

Często zadawane pytania

Jak mogę zobaczyć, jakie oprogramowanie znajduje się na obrazie?

Zainstalowane oprogramowanie dla każdego hostowanego agenta można wyświetlić, wybierając link Dołączone oprogramowanie w tabeli Software (Oprogramowanie).

Uwaga

Domyślnie agent systemu Windows używa wersji narzędzia Git powiązanej z oprogramowaniem agenta. Firma Microsoft zaleca użycie wersji narzędzia Git powiązanej z agentem, ale istnieje kilka opcji zastąpienia tego domyślnego zachowania i użycia wersji usługi Git zainstalowanej na maszynie agenta w ścieżce.

Aby wyświetlić wersję usługi Git używaną przez potok, możesz zapoznać się z dziennikami checkout kroków w potoku, jak pokazano w poniższym przykładzie.

Syncing repository: PathFilter (Git)
Prepending Path environment variable with directory containing 'git.exe'.
git version
git version 2.26.2.windows.1

W jaki sposób firma Microsoft wybiera oprogramowanie i wersje do umieszczenia na obrazie?

Więcej informacji na temat wersji oprogramowania zawartych na obrazach można znaleźć na stronie Wytyczne dotyczące instalowanych elementów.

Kiedy obrazy są aktualizowane?

Obrazy są zwykle aktualizowane co tydzień. Możesz sprawdzić znaczki stanu w formacie 20200113.x , w którym pierwsza część wskazuje datę aktualizacji obrazu.

Co mogę zrobić, jeśli potrzebne oprogramowanie zostało usunięte lub zastąpione nowszą wersją?

Możesz poinformować nas, tworząc problem z usługą GitHub, wybierając linki Dołączone oprogramowanie w tabeli Korzystanie z agenta hostowanego przez firmę Microsoft.

Możesz również użyć własnego agenta, który zawiera dokładne wersje potrzebnego oprogramowania. Aby uzyskać więcej informacji, zobacz Self-hosted agents (Agenci hostowani samodzielnie).

Co zrobić, jeśli potrzebuję większej maszyny o większej mocy obliczeniowej, pamięci lub miejsca na dysku?

Nie można zwiększyć pamięci, mocy obliczeniowej ani miejsca na dysku dla agentów hostowanych przez firmę Microsoft, ale możesz użyć własnych agentów lub agentów zestawu skalowania hostowanych na maszynach z żądanymi specyfikacjami.

Nie mogę wybrać agenta hostowanego przez firmę Microsoft i nie mogę w kolejce kompilacji ani wdrożenia. Co mam robić?

Agenci hostowani przez firmę Microsoft są dostępni tylko w usłudze Azure Pipelines, a nie w programie TFS lub usłudze Azure DevOps Server.

Domyślnie wszyscy współautorzy projektu w organizacji mają dostęp do agentów hostowanych przez firmę Microsoft. Jednak administrator organizacji może ograniczyć dostęp agentów hostowanych przez firmę Microsoft do wybierania użytkowników lub projektów. Poproś właściciela organizacji usługi Azure DevOps o udzielenie Ci uprawnień do korzystania z agenta hostowanego przez firmę Microsoft. Zobacz Zabezpieczenia puli agentów.

Ukończenie potoków uruchomionych na agentach hostowanych przez firmę Microsoft zajmuje więcej czasu. Jak mogę je przyspieszyć?

Jeśli potok stał się ostatnio wolniejszy, przejrzyj naszą stronę stanu pod kątem awarii. Możemy mieć problemy z naszą usługą. Możesz też przejrzeć wszelkie zmiany wprowadzone w kodzie aplikacji lub potoku. Rozmiar repozytorium podczas wyewidencjonowania mógł zostać zwiększony, co może spowodować przekazanie większych artefaktów lub uruchomienie większej liczby testów.

Jeśli po prostu konfigurujesz potok i porównujesz wydajność agentów hostowanych przez firmę Microsoft z maszyną lokalną lub własnym agentem, zanotuj specyfikacje sprzętu używanego do uruchamiania zadań. Nie możemy dostarczyć Ci większych lub bardziej zaawansowanych maszyn. Jeśli ta wydajność nie jest akceptowalna, możesz rozważyć użycie własnych agentów lub agentów zestawu skalowania.

Potrzebuję więcej agentów. Co mogę zrobić?

Wszystkie organizacje usługi Azure DevOps są dostarczane z kilkoma bezpłatnymi zadaniami równoległymi dla projektów typu open source oraz jednym wolnym zadaniem równoległym i ograniczonymi minutami każdego miesiąca dla projektów prywatnych. Jeśli potrzebujesz dodatkowych minut lub zadań równoległych dla projektu open source, skontaktuj się z pomocą techniczną. Jeśli potrzebujesz dodatkowych minut lub zadań równoległych dla projektu prywatnego, możesz kupić więcej.

Mój potok kończy się powodzeniem w przypadku własnego agenta, ale kończy się niepowodzeniem w przypadku agentów hostowanych przez firmę Microsoft. Co mam robić?

Twój własny agent prawdopodobnie ma zainstalowane wszystkie odpowiednie zależności, natomiast te same zależności, narzędzia i oprogramowanie nie są zainstalowane na agentach hostowanych przez firmę Microsoft. Najpierw dokładnie przejrzyj listę oprogramowania zainstalowanego na agentach hostowanych przez firmę Microsoft, korzystając z linku do dołączonego oprogramowania w powyższej tabeli. Następnie porównaj to z oprogramowaniem zainstalowanym na własnym agencie. W niektórych przypadkach agenci hostowani przez firmę Microsoft mogą mieć potrzebne narzędzia (na przykład Program Visual Studio), ale wszystkie niezbędne składniki opcjonalne mogą nie zostać zainstalowane. Jeśli znajdziesz różnice, masz dwie opcje:

  • W repozytorium można utworzyć nowy problem, w którym śledzimy żądania dotyczące dodatkowego oprogramowania. Kontaktowanie się z pomocą techniczną nie może pomóc w skonfigurowaniu nowego oprogramowania na agentach hostowanych przez firmę Microsoft.

  • Możesz użyć własnych agentów lub agentów zestawu skalowania. Dzięki tym agentom masz pełną kontrolę nad obrazami używanymi do uruchamiania potoków.

Moja kompilacja kończy się powodzeniem na moim komputerze lokalnym, ale kończy się niepowodzeniem w przypadku agentów hostowanych przez firmę Microsoft. Co mam robić?

Na komputerze lokalnym prawdopodobnie są zainstalowane wszystkie odpowiednie zależności, natomiast te same zależności, narzędzia i oprogramowanie nie są zainstalowane na agentach hostowanych przez firmę Microsoft. Najpierw dokładnie przejrzyj listę oprogramowania zainstalowanego na agentach hostowanych przez firmę Microsoft, korzystając z linku do dołączonego oprogramowania w powyższej tabeli. Następnie porównaj je z oprogramowaniem zainstalowanym na komputerze lokalnym. W niektórych przypadkach agenci hostowani przez firmę Microsoft mogą mieć potrzebne narzędzia (np. Visual Studio), ale wszystkie niezbędne składniki opcjonalne mogą nie zostać zainstalowane. Jeśli znajdziesz różnice, masz dwie opcje:

  • W repozytorium można utworzyć nowy problem, w którym śledzimy żądania dotyczące dodatkowego oprogramowania. Jest to najlepsze rozwiązanie w przypadku instalowania nowego oprogramowania. Kontaktowanie się z pomocą techniczną nie pomoże Ci w konfigurowaniu nowego oprogramowania na agentach hostowanych przez firmę Microsoft.

  • Możesz użyć własnych agentów lub agentów zestawu skalowania. Dzięki tym agentom masz pełną kontrolę nad obrazami używanymi do uruchamiania potoków.

Mój potok kończy się niepowodzeniem z powodu błędu: "Brak miejsca pozostawionego na urządzeniu".

Agenci hostowani przez firmę Microsoft mają dostępne tylko 10 GB miejsca na dysku do uruchomienia zadania. To miejsce jest używane podczas wyewidencjonowanego kodu źródłowego, pobierania pakietów, pobierania obrazów platformy Docker lub tworzenia plików pośrednich. Niestety nie możemy zwiększyć wolnego miejsca dostępnego na obrazach hostowanych przez firmę Microsoft. Potok można zrestrukturyzować tak, aby pasował do tego obszaru. Możesz też rozważyć użycie własnych agentów lub agentów zestawu skalowania.

Mój potok uruchomiony na agentach hostowanych przez firmę Microsoft wymaga dostępu do serwerów w naszej sieci firmowej. Jak uzyskać listę adresów IP, które mają być dozwolone w zaporze?

Zobacz sekcję Zakresy adresów IP agenta

Nasz potok uruchomiony na agentach hostowanych przez firmę Microsoft nie może rozpoznać nazwy serwera w naszej sieci firmowej. Jak możemy rozwiązać ten problem?

Jeśli odwołujesz się do serwera według jego nazwy DNS, upewnij się, że serwer jest publicznie dostępny w Internecie za pośrednictwem jego nazwy DNS. Jeśli odwołujesz się do serwera przy użyciu jego adresu IP, upewnij się, że adres IP jest publicznie dostępny w Internecie. W obu przypadkach upewnij się, że wszystkie zapory między agentami a siecią firmową mają dozwolone zakresy adresów IP agenta .

Otrzymuję błąd autoryzacji adresu IP sygnatury dostępu współdzielonego z konta usługi Azure Storage

Jeśli zostanie wyświetlony kod błędu sygnatury dostępu współdzielonego, najprawdopodobniej jest to spowodowane tym, że zakresy adresów IP od agentów hostowanych przez firmę Microsoft nie są dozwolone z powodu reguł usługi Azure Storage. Istnieje kilka obejść:

  1. Zarządzaj regułami sieci ip dla konta usługi Azure Storage i dodaj zakresy adresów IP dla hostowanych agentów.
  2. W potoku użyj interfejsu wiersza polecenia platformy Azure, aby zaktualizować zestaw reguł sieci dla konta usługi Azure Storage bezpośrednio przed uzyskaniem dostępu do magazynu, a następnie przywrócić poprzedni zestaw reguł.
  3. Użyj własnych agentów lub agentów zestawu skalowania.

Jak mogę ręcznie wybrać wersje narzędzi w hostowanym agencie systemu macOS?

Xcode

Jeśli używasz zadania Xcode dołączonego do usług Azure Pipelines i TFS, możesz wybrać wersję programu Xcode we właściwościach tego zadania. W przeciwnym razie, aby ręcznie ustawić wersję programu Xcode do użycia w puli agentów hostowanego systemu macOS , przed xcodebuild zadaniem kompilacji wykonaj ten wiersz polecenia w ramach kompilacji, zastępując kod Xcode numer wersji 13.2 zgodnie z potrzebami:

/bin/bash -c "sudo xcode-select -s /Applications/Xcode_13.2.app/Contents/Developer"

Wersje programu Xcode w hostowanej puli agentów systemu macOS można znaleźć tutaj dla macos-11 agenta i tutaj dla agenta macos-12 .

To polecenie nie działa w przypadku aplikacji platformy Xamarin. Aby ręcznie wybrać wersję środowiska Xcode do kompilowania aplikacji platformy Xamarin, zobacz powyższe instrukcje.

Mono

Aby ręcznie wybrać wersję mono do użycia w puli agentów hostowanego systemu macOS , wykonaj ten skrypt w każdym zadaniu kompilacji przed zadaniem kompilacji Mono, określając symlink z wymaganą wersją mono:

SYMLINK=<symlink>
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
echo "##vso[task.setvariable variable=DYLD_FALLBACK_LIBRARY_PATH;]$MONOPREFIX/lib:/lib:/usr/lib:$DYLD_LIBRARY_FALLBACK_PATH"
echo "##vso[task.setvariable variable=PKG_CONFIG_PATH;]$MONOPREFIX/lib/pkgconfig:$MONOPREFIX/share/pkgconfig:$PKG_CONFIG_PATH"
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"