Agenti ospitati da Microsoft

Azure Pipelines

Gli agenti ospitati da Microsoft sono disponibili solo con Azure DevOps Services, ospitato nel cloud. Non è possibile usare agenti ospitati da Microsoft o il pool di agenti Azure Pipelines con TFS o Azure DevOps Server locale. Con queste versioni locali, è necessario usare agenti self-hosted.

Importante

Selezionare una versione dal Azure DevOps Selezione versione contenuto.

Per visualizzare il contenuto disponibile per la piattaforma, assicurarsi di selezionare la versione corretta di questo articolo dal selettore di versione che si trova sopra il sommario. Il supporto delle funzionalità varia a seconda che si lavori da Azure DevOps Services o da una versione locale di Azure DevOps Server, rinominata da Team Foundation Server (TFS).
Per informazioni sulla versione locale in uso, vedere Quale piattaforma/versione si sta usando?

Se le pipeline si Azure Pipelines, è possibile eseguire i processi usando un agente ospitato da Microsoft. Con gli agenti ospitati da Microsoft, le operazioni di manutenzione e di aggiornamento vengono eseguite automaticamente. Ogni volta che si esegue una pipeline, si ottiene una nuova macchina virtuale per ogni processo nella pipeline. La macchina virtuale viene rimossa dopo un processo. Gli agenti ospitati da Microsoft possono eseguire processi direttamente nella macchina virtuale o in un contenitore.

Azure Pipelines fornisce un pool di agenti predefinito denominato Azure Pipelines con agenti ospitati da Microsoft.

Per molti team questo è il modo più semplice per eseguire i processi. È possibile provarlo e verificare se funziona per la propria compilazione o distribuzione. In caso contrario, si può usare un agente self-hosted.

Suggerimento

È possibile provare un agente ospitato da Microsoft senza alcun addebito.

Software

Il Azure Pipelines dell'agente offre diverse immagini di macchine virtuali tra cui scegliere, ognuna delle quali include un'ampia gamma di strumenti e software.

Immagine Specifica dell'agente dell'editor classico Etichetta dell'immagine della macchina virtuale YAML Software incluso
Windows Server 2022 con Visual Studio 2022 windows-2022 windows-2022 Collegamento
Windows Server 2019 con Visual Studio 2019 windows-2019 windows-latest O windows-2019 Collegamento
Ubuntu 20.04 ubuntu-20.04 ubuntu-latest O ubuntu-20.04 Collegamento
Ubuntu 18.04 ubuntu-18.04 ubuntu-18.04 Collegamento
macOS 11 Big Sur macOS-11 macOS-latest O macOS-11 Collegamento
macOS X Catalina 10.15 macOS-10.15 macOS-10.15 Collegamento
macOS X Mojave 10.14 macOS-10.14 macOS-10.14 Collegamento

L'immagine dell'agente predefinita per le pipeline di compilazione classiche è windows-2019e l'immagine dell'agente predefinita per le pipeline di compilazione YAML è . Per altre informazioni, vedere Scelta di un pool e di un agente nella pipeline.

È possibile visualizzare il software installato per ogni agente ospitato scegliendo il collegamento Software incluso nella tabella. Quando si usano immagini macOS, è possibile selezionare manualmente le versioni degli strumenti. Vedere di seguito.

Nota

viene modificato macOS-11 in .

L'immagine ospitata in Ubuntu 16.04 è stata rimossa a settembre 2021.

La Windows Server 2016 con Visual Studio 2017 è deprecata.

Nel mese di marzo 2020 sono state rimosse le immagini ospitate Azure Pipelines seguenti:

  • Windows Server 2012R2 con Visual Studio 2015 ( vs2015-win2012r2 )
  • macOS X High Sierra 10.13 ( macOS-10.13 )
  • Windows Server Core 1803 ( win1803 )

I clienti sono invitati a eseguire la migrazione rispettivamente a , o vs2017-win2016 a un agente macOS-10.14vs2017-win2016

Per altre informazioni e istruzioni su come aggiornare le pipeline che usano tali immagini, vedere Removing older images in Azure Pipelines hosted pools(Rimozione di immagini precedenti nei pool ospitati).

Nota

Il Azure Pipelines pool ospitato sostituisce i pool ospitati precedenti con nomi mappati alle immagini corrispondenti. Tutti i processi presenti nei pool ospitati precedenti vengono reindirizzati automaticamente all'immagine corretta nel nuovo pool Azure Pipelines ospitato. In alcuni casi, è possibile che i nomi dei pool siano ancora visualizzati, ma in background i processi ospitati vengono eseguiti usando il pool Azure Pipelines precedente. Per altre informazioni su questo aggiornamento, vedere le note sulla versione del pool singolo ospitato delle note sulla versione del 1° luglio 2019 - Sprint 154.

Importante

Per richiedere l'installazione di software aggiuntivo in agenti ospitati da Microsoft, non creare una richiesta di feedback su questo documento o aprire un ticket di supporto. Aprire invece un problema nel repository, in cui gli script vengono gestiti per generare varie immagini.

Usare un agente ospitato da Microsoft

Nelle pipeline YAML, se non si specifica un pool, per impostazione predefinita le pipeline verranno Azure Pipelines pool di agenti. È sufficiente specificare l'immagine di macchina virtuale da usare.

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

Nota

La specifica di un pool può essere eseguita a più livelli in un file YAML. Se si nota che la pipeline non è in esecuzione nell'immagine prevista, assicurarsi di verificare la specifica del pool a livello di pipeline, fase e processo.

Evitare riferimenti hard coded

Quando si usa un agente ospitato da Microsoft, usare sempre le variabili per fare riferimento all'ambiente di compilazione e alle risorse dell'agente. Ad esempio, non imposta come hard coded la lettera di unità o la cartella che contiene il repository. Il layout preciso degli agenti ospitati è soggetto a modifiche senza preavviso.

Hardware

Il provisioning degli agenti ospitati da Microsoft che eseguono immagini Windows e Linux viene effettuato nelle macchine virtuali per utilizzo generico di Azure con una CPU a 2 core, 7 GB di RAM e 14 GB di spazio su disco SSD. Queste macchine virtuali si trovano nella stessa area geografica dell'organizzazione Azure DevOps lavoro.

Il provisioning degli agenti che eseguono immagini macOS viene effettuato nei professionisti Mac con una CPU a 3 core, 14 GB di RAM e 14 GB di spazio su disco SSD. Questi agenti vengono sempre eseguiti negli Stati Uniti indipendentemente dalla posizione dell'Azure DevOps lavoro. Se la sovranità dei dati è importante per l'utente e se l'organizzazione non è negli Stati Uniti, non è consigliabile usare le immagini macOS. Altre informazioni

Tutti questi computer hanno almeno 10 GB di spazio libero su disco disponibile per l'esecuzione delle pipeline. Questo spazio libero viene utilizzato quando la pipeline estrae il codice sorgente, scarica i pacchetti, esegue il pull delle immagini Docker o genera file intermedi.

Importante

Non è possibile rispettare le richieste per aumentare lo spazio su disco sugli agenti ospitati da Microsoft o per effettuare il provisioning di computer più potenti. Se le specifiche degli agenti ospitati da Microsoft non soddisfano le proprie esigenze, è consigliabile prendere in considerazione gli agenti self-hosted o gli agenti del set di scalabilità.

Rete

In alcune configurazioni potrebbe essere necessario conoscere l'intervallo di indirizzi IP in cui vengono distribuiti gli agenti. Ad esempio, se è necessario concedere agli agenti ospitati l'accesso tramite un firewall, è possibile limitare l'accesso in base all'indirizzo IP. Poiché Azure DevOps usa la rete globale di Azure, gli intervalli IP variano nel tempo. Viene pubblicato un file JSON settimanale che elenca gli intervalli IP per i data center di Azure, suddivisi in base all'area. Questo file viene aggiornato ogni settimana con nuovi intervalli IP pianificati. I nuovi intervalli IP diventano effettivi la settimana successiva. È consigliabile controllare spesso (almeno una volta alla settimana) per assicurarsi di mantenere un elenco aggiornato. Se i processi dell'agente iniziano a non riuscire, un primo passaggio per la risoluzione dei problemi consiste nel verificare che la configurazione corrisponda all'elenco più recente di indirizzi IP. Gli intervalli di indirizzi IP per gli agenti ospitati sono elencati nel file settimanale in , ad esempio AzureCloud.<region>AzureCloud.westus per l'area Stati Uniti occidentali.

Gli agenti ospitati vengono eseguiti nella stessa area geografica di Azure dell'organizzazione. Ogni area geografica contiene una o più aree. Anche se l'agente può essere eseguito nella stessa area dell'organizzazione, non è garantito. Per ottenere l'elenco completo dei possibili intervalli IP per l'agente, è necessario usare gli intervalli IP di tutte le aree contenute nell'area geografica. Ad esempio, se l'organizzazione si trova nell'area geografica Stati Uniti, è necessario usare gli intervalli IP per tutte le aree in tale area geografica.

Per determinare l'area geografica, https://dev.azure.com/<your_organization>/_settings/organizationOverview passare a , ottenere l'area geografica e trovare l'area geografica associata dalla https://dev.azure.com/<your_organization>/_settings/organizationOverview Dopo aver identificato l'area geografica, usare gli intervalli IP del file settimanale per tutte le aree in tale area geografica.

Importante

Non è possibile usare connessioni private, ad esempio ExpressRoute o VPN, per connettere gli agenti ospitati da Microsoft alla rete aziendale. Il traffico tra gli agenti ospitati da Microsoft e i server sarà sulla rete pubblica.

Per identificare i possibili intervalli IP per gli agenti ospitati da Microsoft

  1. Identificare l'area per l'organizzazione in Impostazioni organizzazione.
  2. Identificare l'area geografica di Azure per l'area dell'organizzazione.
  3. Eseguire il mapping dei nomi delle aree geografiche al formato usato nel file settimanale, seguendo il formato AzureCloud.<region> di , ad esempio AzureCloud.westus . È possibile eseguire il mapping dei nomi delle aree dall'elenco Geografia di Azure al formato usato nel file settimanale esaminando i nomi delle aree passati al costruttore delle aree definite nel codice sorgente per la classe Regiondalle librerie di gestione di Azure per .NET.

    Nota

    Poiché non esiste alcuna API nelle librerie di gestione di Azure per .NET per elencare le aree per un'area geografica, è necessario elencarle manualmente, come illustrato nell'esempio seguente.

  4. Recuperare gli indirizzi IP per tutte le aree geografiche dal file settimanale. Se l'area è Brasile meridionale o Europa occidentale,è necessario includere altri intervalli IP in base all'area geografica di fallback, come descritto nella nota seguente.

Nota

A causa delle restrizioni di capacità, alcune organizzazioni nelle aree Brasile meridionale o Europa occidentale possono occasionalmente vedere i propri agenti ospitati che si trovano al di fuori dell'area geografica prevista. In questi casi, oltre a includere gli intervalli IP per tutte le aree dell'area geografica, come descritto nella sezione precedente, è necessario includere altri intervalli IP per le aree nell'area geografica di fallback della capacità.

Se l'organizzazione si trova nell'area Brasile meridionale, l'area geografica di fallback della capacità Stati Uniti.

Se l'organizzazione si trova nell'area Europa occidentale, l'area geografica di fallback della capacità è Francia.

Gli intervalli IP Mac non sono inclusi negli indirizzi IP di Azure precedenti, perché sono ospitati nel cloud macOS GitHub di azure. Gli intervalli IP possono essere recuperati usando l GitHub aPI dei metadati usando le istruzioni fornite qui.

Esempio

Nell'esempio seguente gli intervalli di indirizzi IP dell'agente ospitato per un'organizzazione nell'area Stati Uniti occidentali vengono recuperati dal file settimanale. Poiché l'area Stati Uniti occidentali si trova Stati Uniti geografica, vengono inclusi gli indirizzi IP per tutte le aree Stati Uniti geografica. In questo esempio gli indirizzi IP vengono scritti nella console.

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_20210823.json";

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

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

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

                var ipList =
                    from v in values
                    where (string)v["name"] == azureCloudRegion
                    select v["properties"]["addressPrefixes"];

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

Tag di servizio

Gli agenti ospitati da Microsoft non possono essere elencati in base ai tag del servizio. Se si sta tentando di concedere agli agenti ospitati l'accesso alle risorse, è necessario seguire il metodo di elenco degli intervalli IP consentiti.

Sicurezza

Gli agenti ospitati da Microsoft vengono eseguiti su una piattaforma Azure sicura. È tuttavia necessario tenere presenti le considerazioni seguenti sulla sicurezza.

  • Anche se gli agenti ospitati da Microsoft vengono eseguiti nella rete pubblica di Azure, non vengono assegnati indirizzi IP pubblici. Pertanto, le entità esterne non possono essere associate a agenti ospitati da Microsoft.
  • Gli agenti ospitati da Microsoft vengono eseguiti in singole macchine virtuali, che vengono rieseguiti dopo ogni esecuzione. Ogni agente è dedicato a una singola organizzazione e ogni macchina virtuale ospita un solo agente.
  • L'esecuzione della pipeline in agenti ospitati da Microsoft offre diversi vantaggi, dal punto di vista della sicurezza. Se si esegue codice non attendibile nella pipeline, ad esempio i contributi dai fork, è più sicuro eseguire la pipeline negli agenti ospitati da Microsoft rispetto agli agenti self-hosted che risiedono nella rete aziendale.
  • Quando una pipeline deve accedere alle risorse aziendali dietro un firewall, è necessario consentire l'intervallo di indirizzi IP per l'area geografica di Azure. Ciò può aumentare l'esposizione perché l'intervallo di indirizzi IP è piuttosto grande e poiché i computer in questo intervallo possono appartenere anche ad altri clienti. Il modo migliore per evitare questo problema è evitare la necessità di accedere alle risorse interne.
  • Le immagini ospitate non sono conformi ai benchmark di protezione avanzata CIS. Per usare immagini con protezione avanzata CIS, è necessario creare agenti self-hosted o agenti del set di scalabilità.

Funzionalità e limitazioni

Agenti ospitati da Microsoft:

  • Disporre del software precedente. È anche possibile aggiungere software durante la compilazione o il rilascio usando le attività del programma di installazione dello strumento.
    • Si ottiene un agente appena immagine per ogni processo nella pipeline.
  • Fornire 10 GB di spazio di archiviazione per l'output di origine e di compilazione.
  • Fornire un livello gratuito:
    • Progetto pubblico: 10 processi paralleli gratuiti ospitati da Microsoft che possono essere eseguiti per un massimo di 360 minuti (6 ore) ogni volta, senza limiti di tempo complessivi al mese. Per aumentare i limiti del livello gratuito, contattare Microsoft.
    • Progetto privato: un processo parallelo gratuito che può essere eseguito fino a 60 minuti ogni volta, fino a quando non vengono usati 1.800 minuti (30 ore) al mese. È possibile pagare per la capacità aggiuntiva per ogni processo parallelo. I processi paralleli a pagamento rimuovono il limite di tempo mensile e consentono di eseguire ogni processo per un massimo di 360 minuti (6 ore). Acquistare processi paralleli ospitati da Microsoft.
    • Quando si crea una nuova organizzazione Azure DevOps, queste concessioni gratuite non vengono fornite per impostazione predefinita. Per richiedere la concessione gratuita per i progetti pubblici o privati, inviare una richiesta.
  • Esecuzione in Microsoft Azure macchine virtuali per utilizzo generico Standard_DS2_v2
  • Eseguire come amministratore in Windows e come utente sudo senza password in Linux
  • (solo Linux) Eseguire i passaggi in cgroup un che offre 6 GB di memoria fisica e 13 GB di memoria totale

Gli agenti ospitati da Microsoft non offrono:

  • Possibilità di connettersi in remoto.
  • Possibilità di eliminare elementi in una condivisione file UNC.
  • Possibilità di aggiungere computer direttamente alla rete aziendale.
  • La possibilità di ottenere computer di compilazione più grandi o più potenti.
  • Possibilità di precaricare software personalizzato. È possibile installare il software durante l'esecuzione di una pipeline, ad esempio tramite attività del programma di installazione dello strumento o in uno script.
  • Potenziali vantaggi in termini di prestazioni che è possibile ottenere usando agenti self-hosted che potrebbero avviare ed eseguire compilazioni più velocemente. Scopri di più
  • La possibilità di eseguire compilazioni XAML.

Se gli agenti ospitati da Microsoft non soddisfano le proprie esigenze, è possibile distribuire gli agenti self-hosted o usare gli agenti del set di scalabilità.

Domande frequenti

Come è possibile visualizzare il software incluso in un'immagine?

È possibile visualizzare il software installato per ogni agente ospitato scegliendo il collegamento Software incluso nella tabella Software.

In che modo Microsoft sceglie il software e le versioni da inserire nell'immagine?

Altre informazioni sulle versioni del software incluse nelle immagini sono disponibili in Linee guida per gli elementi installati.

Quando vengono aggiornate le immagini?

Le immagini vengono in genere aggiornate ogni settimana. È possibile controllare le notifiche di stato nel formato in cui la prima parte indica la data di aggiornamento dell'immagine.

Cosa è possibile fare se il software necessario viene rimosso o sostituito con una versione più recente?

È possibile compilare un elenco di GitHub problema scegliendo i collegamenti Software incluso nella tabella Usare un agente ospitato da Microsoft.

È anche possibile usare un agente self-hosted che include le versioni esatte del software necessarie. Per altre informazioni, vedere Agenti self-hosted.

Cosa succede se è necessario un computer più grande con maggiore potenza di elaborazione, memoria o spazio su disco?

Non è possibile aumentare la memoria, la potenza di elaborazione o lo spazio su disco per gli agenti ospitati da Microsoft, ma è possibile usare agenti self-hosted o agenti del set di scalabilità ospitati in computer con le specifiche desiderate.

Non è possibile selezionare un agente ospitato da Microsoft e non è possibile accodarmi la compilazione o la distribuzione. Cosa devo fare?

Gli agenti ospitati da Microsoft sono disponibili solo in Azure Pipelines e non in TFS o Azure DevOps Server.

Per impostazione predefinita, tutti i collaboratori di progetto in un'organizzazione hanno accesso agli agenti ospitati da Microsoft. Tuttavia, l'amministratore dell'organizzazione può limitare l'accesso degli agenti ospitati da Microsoft a utenti o progetti selezionati. Chiedere al proprietario dell'organizzazione Azure DevOps di concedere l'autorizzazione per l'uso di un agente ospitato da Microsoft. Vedere Sicurezza del pool di agenti.

Il completamento delle pipeline in esecuzione in agenti ospitati da Microsoft può richiedere più tempo. Come è possibile velocizzarli?

Se di recente la pipeline è diventata più lenta, esaminare la pagina di stato per eventuali interruzioni. Potrebbero verificarsi problemi con il servizio. In caso contrario, esaminare le modifiche apportate nel codice o nella pipeline dell'applicazione. Le dimensioni del repository durante l'estrazione potrebbero essere aumentate, potrebbero essere stati caricati elementi di dimensioni maggiori o potrebbero essere in esecuzione più test.

Se si sta semplicemente configurando una pipeline e si confrontano le prestazioni degli agenti ospitati da Microsoft con il computer locale o con un agente self-hosted, prendere nota delle specifiche dell'hardware utilizzato per eseguire i processi. Non è possibile fornire computer più grandi o potenti. È possibile prendere in considerazione l'uso di agenti self-hosted o agenti del set di scalabilità se queste prestazioni non sono accettabili.

Sono necessari altri agenti. Come posso procedere?

Tutte Azure DevOps organizzazioni sono fornite con diversi processi paralleli gratuiti per i progetti open source e un processo parallelo gratuito e minuti limitati ogni mese per i progetti privati. Se sono necessari altri minuti o processi paralleli per il progetto open source, contattare il supporto tecnico. Se sono necessari altri minuti o processi paralleli per il progetto privato, è possibile acquistare più.

La pipeline ha esito positivo nell'agente self-hosted, ma ha esito negativo sugli agenti ospitati da Microsoft. Cosa devo fare?

È probabile che nell'agente self-hosted siano installate tutte le dipendenze giuste, mentre le stesse dipendenze, gli stessi strumenti e software non sono installati sugli agenti ospitati da Microsoft. In primo luogo, esaminare attentamente l'elenco del software installato negli agenti ospitati da Microsoft seguendo il collegamento a Software incluso nella tabella precedente. Quindi, confrontarlo con il software installato nell'agente self-hosted. In alcuni casi, gli agenti ospitati da Microsoft possono avere gli strumenti necessari (ad esempio, Visual Studio), ma tutti i componenti facoltativi necessari potrebbero non essere stati installati. Se si trovano differenze, sono disponibili due opzioni:

  • È possibile creare un nuovo problema nel repository, in cui si tiene traccia delle richieste di software aggiuntivo. Contattare il supporto tecnico non sarà utile per la configurazione di nuovo software in agenti ospitati da Microsoft.

  • È possibile usare agenti self-hosted o agenti del set di scalabilità. Con questi agenti, si ha il controllo completo delle immagini usate per eseguire le pipeline.

La compilazione ha esito positivo nel computer locale, ma ha esito negativo sugli agenti ospitati da Microsoft. Cosa devo fare?

Nel computer locale sono probabilmente installate tutte le dipendenze giuste, mentre le stesse dipendenze, gli stessi strumenti e software non sono installati sugli agenti ospitati da Microsoft. In primo luogo, esaminare attentamente l'elenco del software installato negli agenti ospitati da Microsoft seguendo il collegamento a Software incluso nella tabella precedente. Quindi, confrontarlo con il software installato nel computer locale. In alcuni casi, gli agenti ospitati da Microsoft possono avere gli strumenti necessari (ad esempio, Visual Studio), ma tutti i componenti facoltativi necessari potrebbero non essere stati installati. Se si trovano differenze, sono disponibili due opzioni:

  • È possibile creare un nuovo problema nel repository, in cui si tiene traccia delle richieste di software aggiuntivo. Questa è la soluzione migliore per installare nuovo software. Contattare il supporto tecnico non sarà utile per la configurazione di nuovo software in agenti ospitati da Microsoft.

  • È possibile usare agenti self-hosted o agenti del set di scalabilità. Con questi agenti, si ha il controllo completo delle immagini usate per eseguire le pipeline.

La pipeline ha esito negativo e viene visualizzato l'errore"No space left on device" (Non è rimasto spazio nel dispositivo).

Gli agenti ospitati da Microsoft hanno solo 10 GB di spazio su disco disponibile per l'esecuzione del processo. Questo spazio viene utilizzato quando si estrae il codice sorgente, quando si scaricano i pacchetti, quando si scaricano immagini Docker o quando si producono file intermedi. Sfortunatamente, non è possibile aumentare lo spazio disponibile nelle immagini ospitate da Microsoft. È possibile ristrutturare la pipeline in modo che possa rientrare in questo spazio. In caso contrario, è possibile prendere in considerazione l'uso di agenti self-hosted o agenti del set di scalabilità.

La pipeline in esecuzione in agenti ospitati da Microsoft richiede l'accesso ai server nella rete aziendale. Come si ottiene un elenco di indirizzi IP da consentire nel firewall?

Vedere la sezione Intervalli IP agente

La pipeline in esecuzione sugli agenti ospitati da Microsoft non è in grado di risolvere il nome di un server nella rete aziendale. Come è possibile risolvere il problema?

Se si fa riferimento al server con il relativo nome DNS, assicurarsi che il server sia accessibile pubblicamente su Internet tramite il relativo nome DNS. Se si fa riferimento al server tramite il relativo indirizzo IP, assicurarsi che l'indirizzo IP sia accessibile pubblicamente su Internet. In entrambi i casi, assicurarsi che per qualsiasi firewall tra gli agenti e la rete aziendale siano consentiti gli intervalli IP degli agenti.

Viene visualizzato un errore di autorizzazione IP di firma di accesso condiviso da un account Archiviazione di Azure accesso condiviso

Se si ottiene un codice di errore di firma di accesso condiviso, è molto probabile che gli intervalli di indirizzi IP degli agenti ospitati da Microsoft non siano consentiti a causa delle regole Archiviazione di Azure sicurezza. Esistono alcune soluzioni alternative:

  1. Gestire le regole di rete IP per l'account Archiviazione di Azure e aggiungere gli intervalli di indirizzi IP per gli agenti ospitati.
  2. Nella pipeline usare l'interfaccia della riga di comando di Azure per aggiornare il set di regole di rete per l'account Archiviazione di Azure subito prima di accedere all'archiviazione e quindi ripristinare il set di regole precedente.
  3. Usare agenti self-hosted o agenti del set di scalabilità.

Come è possibile selezionare manualmente le versioni degli strumenti nell'agente macOS ospitato?

Xamarin

L'agente macOS ospitato archivia le versioni di Xamarin SDK e le versioni di Mono associate come set di collegamenti simbolici ai percorsi di Xamarin SDK disponibili tramite un singolo collegamento simbolico del bundle.

Per selezionare manualmente una versione di Xamarin SDK da usare nell'agente macOS ospitato, eseguire il comando bash seguente prima dell'attività di compilazione Xamarin come parte della compilazione, specificando il collegamento simbolico al bundle delle versioni di Xamarin necessario.

/bin/bash -c "sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh <symlink>"

L'elenco di tutte le versioni e i collegamenti simbolici di Xamarin SDK disponibili è disponibile nella documentazione degli agenti:

Questo comando non seleziona la versione di Mono oltre Xamarin SDK. Per selezionare manualmente una versione di Mono, vedere le istruzioni riportate di seguito.

Se si usa una versione non predefinita di Xcode per compilare le app Xamarin.iOS o Xamarin.Mac, è necessario eseguire anche questa riga di comando:

/bin/bash -c "echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'$(xcodeRoot);sudo xcode-select --switch $(xcodeRoot)/Contents/Developer"

Dove $(xcodeRoot) = /Applications/Xcode_12.4.app

Le versioni di Xcode nel pool di agenti macOS ospitati sono disponibili qui.

Xcode

Se si usa l'attività Xcode inclusa in Azure Pipelines e TFS, è possibile selezionare una versione di Xcode nelle proprietà dell'attività. In caso contrario, per impostare manualmente la versione di Xcode da usare nel pool di agenti macOS ospitati, prima dell'attività di compilazione, eseguire questa riga di comando come parte della compilazione, sostituendo il numero di versione di Xcode 12.4 in base alle esigenze:

/bin/bash -c "sudo xcode-select -s /Applications/Xcode_12.4.app/Contents/Developer"

Le versioni di Xcode nel pool di agenti macOS ospitati sono disponibili qui.

Questo comando non funziona per le app Xamarin. Per selezionare manualmente una versione di Xcode per la compilazione di app Xamarin, vedere le istruzioni precedenti.

Mono

Per selezionare manualmente una versione di Mono da usare nel pool di agenti macOS ospitati, eseguire questo script in ogni processo della compilazione prima dell'attività di compilazione di Mono, specificando il collegamento simbolico con la versione di Mono richiesta (l'elenco di tutti i collegamenti simbolici disponibili è disponibile nella sezione Xamarin precedente):

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"

Video