Agentes hospedado por Microsoft

Azure DevOps Services | Azure DevOps Server 2022: Azure DevOps Server 2019 | TFS 2018

Los agentes hospedados por Microsoft solo están disponibles con Azure DevOps Services, que se hospedan en la nube. No puede usar agentes hospedados por Microsoft ni el grupo de agentes de Azure Pipelines con TFS local o Azure DevOps Server. Con estas versiones locales, debe usar agentes autohospedados.

Importante

Seleccione una versión en el selector de versiones del contenido de Azure DevOps.

A fin de ver el contenido disponible para la plataforma, asegúrese de seleccionar la versión correcta de este artículo en el selector de versiones que se encuentra sobre la tabla de contenidos. La compatibilidad con características difiere en función de si se trabaja en Azure DevOps Services o una versión local de Azure DevOps Server, anteriormente denominado Team Foundation Server (TFS).
Para saber qué versión local usa, consulte Búsqueda de la plataforma y la versión de Azure DevOps.

Si las canalizaciones están en Azure Pipelines, tiene una opción cómoda para ejecutar los trabajos mediante un agente hospedado por Microsoft. Si se usan agentes hospedados por Microsoft, las actualizaciones y el mantenimiento se realizarán automáticamente. Cada vez que ejecute una canalización, obtendrá una nueva máquina virtual para cada trabajo de la canalización. La máquina virtual se descarta después de un trabajo (lo que significa que cualquier cambio que realice un trabajo en el sistema de archivos de la máquina virtual, como desprotescar el código, no estará disponible para el siguiente trabajo). Los agentes hospedados por Microsoft pueden ejecutar trabajos directamente en la máquina virtual o en un contenedor.

Azure Pipelines proporciona un grupo de agentes predefinido denominado Azure Pipelines con agentes hospedados por Microsoft.

Para muchos equipos, esta es la manera más sencilla de ejecutar los trabajos. Puede probarlo en primer lugar y ver si funciona para la compilación o la implementación. Si no funciona, puede usar un agente autohospedado.

Sugerencia

Puede probar un agente hospedado por Microsoft sin cargo alguno.

Software

El grupo de agentes de Azure Pipelines ofrece varias imágenes de máquina virtual entre las que elegir, cada una de las cuales incluye una amplia gama de herramientas y software.

Imagen Especificación del agente del editor clásico Etiqueta de imagen de máquina virtual YAML Software incluido
Windows Server 2022 con Visual Studio 2022 windows-2022 windows-latest owindows-2022 Vínculo
Windows Server 2019 con Visual Studio 2019 windows-2019 windows-2019 Vínculo
Ubuntu 22.04 ubuntu-22.04 ubuntu-22.04 Vínculo
Ubuntu 20.04 ubuntu-20.04 ubuntu-latest oubuntu-20.04 Vínculo
Ubuntu 18.04 (en desuso a partir del 8/8/2022 y no admitido por el 1/4/2023) ubuntu-18.04 ubuntu-18.04 Vínculo
macOS 12 Monterey macOS-12 macOS-12 Vínculo
macOS 11 Big Sur macOS-11 macOS-latest omacOS-11 Vínculo
macOS X Catalina 10.15 (en desuso a partir del 31/5/2022 y no admitido por el 12/1/2022) macOS-10.15 macOS-10.15 Vínculo

La imagen de agente predeterminada para las canalizaciones de compilación clásicas es windows-2019 y la imagen de agente predeterminada para las canalizaciones de compilación de YAML es ubuntu-latest. Para más información, consulte Designar un grupo en la canalización.

Para ver el software instalado para cada agente hospedado, elija el vínculo Software incluido en la tabla. Al usar imágenes de macOS, puede seleccionar manualmente entre las versiones de herramientas. Vea a continuación.

Actualizaciones recientes

Se recomienda a los clientes migrar a versiones más recientes o a un agente autohospedado.

Para más información e instrucciones sobre cómo actualizar las canalizaciones que usan esas imágenes, consulte Eliminación de imágenes anteriores en grupos hospedados de Azure Pipelines.

Nota

El grupo hospedado de Azure Pipelines reemplaza a los grupos hospedados anteriores que tenían nombres asignados a las imágenes correspondientes. Los trabajos que tenía en los grupos hospedados anteriores se redirigen automáticamente a la imagen correcta en el nuevo grupo hospedado de Azure Pipelines. En algunas circunstancias, es posible que todavía vea los nombres de grupo antiguos, pero en segundo plano los trabajos hospedados se ejecutan mediante el grupo de Azure Pipelines. Para obtener más información sobre esta actualización, consulte las notas de la versión del grupo hospedado único de las notas de la versión del 1 de julio de 2019 - Sprint 154.

Importante

Para solicitar que se instale software adicional en agentes hospedados por Microsoft, no cree una solicitud de comentarios en este documento ni abra una incidencia de soporte técnico. En su lugar, abra un problema en nuestro repositorio, donde administramos los scripts para generar varias imágenes.

Identificación de canalizaciones mediante una imagen hospedada en desuso

Para identificar las canalizaciones que usan una imagen en desuso, vaya a la siguiente ubicación de la organización: https://dev.azure.com/{organization}/{project}/_settings/agentqueuesy filtre por el nombre de la imagen que se va a comprobar. En el ejemplo siguiente se comprueba la vs2017-win2016 imagen.

Captura de pantalla de filtrado de canalizaciones por nombre de imagen.

También puede consultar el historial de trabajos para ver imágenes en desuso en proyectos mediante el script que se encuentra aquí, como se muestra en el ejemplo siguiente.

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

Uso de un agente hospedado por Microsoft

En las canalizaciones de YAML, si no especifica un grupo, las canalizaciones tendrán como valor predeterminado el grupo de agentes de Azure Pipelines. Solo tiene que especificar qué imagen de máquina virtual desea usar.

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 especificación de un grupo se puede realizar en varios niveles en un archivo YAML. Si observa que la canalización no se está ejecutando en la imagen esperada, asegúrese de comprobar la especificación del grupo en los niveles de canalización, fase y trabajo.

Evitar referencias codificadas de forma rígida

Cuando se usa un agente hospedado por Microsoft, use siempre variables para hacer referencia al entorno de compilación y a los recursos del agente. Por ejemplo, no codifique de forma rígida la letra o carpeta de unidad que contiene el repositorio. El diseño preciso de los agentes hospedados está sujeto a cambios sin advertencia.

Hardware

Los agentes hospedados por Microsoft que ejecutan imágenes de Windows y Linux se aprovisionan en máquinas virtuales de uso general de Azure con una CPU de 2 núcleos, 7 GB de RAM y 14 GB de espacio en disco SSD. Estas máquinas virtuales se encuentran en la misma geografía que la organización de Azure DevOps.

Los agentes que ejecutan imágenes de macOS se aprovisionan en los profesionales de Mac con una CPU de 3 núcleos, 14 GB de RAM y 14 GB de espacio en disco SSD. Estos agentes siempre se ejecutan en EE. UU. independientemente de la ubicación de la organización de Azure DevOps. Si la soberanía de datos es importante para usted y si su organización no está en EE. UU., no debe usar imágenes de macOS. Más información.

Todas estas máquinas tienen al menos 10 GB de espacio libre en disco disponible para que se ejecuten las canalizaciones. Este espacio libre se consume cuando la canalización comprueba el código fuente, descarga paquetes, extrae imágenes de Docker o genera archivos intermedios.

Importante

No se pueden respetar las solicitudes para aumentar el espacio en disco en agentes hospedados por Microsoft o para aprovisionar máquinas más eficaces. Si las especificaciones de los agentes hospedados por Microsoft no satisfacen sus necesidades, debe considerar los agentes autohospedados o los agentes de conjuntos de escalado.

Redes

En algunas configuraciones, es posible que tenga que conocer el intervalo de direcciones IP en las que se implementan los agentes. Por ejemplo, si necesita conceder acceso a los agentes hospedados a través de un firewall, puede que desee restringir ese acceso por dirección IP. Dado que Azure DevOps usa la red global de Azure, los intervalos IP varían con el tiempo. Publicamos un archivo JSON semanal que enumera los intervalos IP de los centros de datos de Azure, desglosados por región. Este archivo se actualiza semanalmente con nuevos intervalos IP planeados. Los nuevos intervalos IP se vuelven efectivos la semana siguiente. Se recomienda volver a comprobar con frecuencia (al menos una vez cada semana) para asegurarse de mantener una lista actualizada. Si los trabajos del agente comienzan a producir un error, un primer paso de solución de problemas clave es asegurarse de que la configuración coincide con la lista más reciente de direcciones IP. Los intervalos de direcciones IP de los agentes hospedados se enumeran en el archivo semanal en AzureCloud.<region>, como AzureCloud.westus para la región Oeste de EE. UU.

Los agentes hospedados se ejecutan en la misma geografía de Azure que la organización. Cada geografía contiene una o varias regiones. Aunque el agente se puede ejecutar en la misma región que la organización, no se garantiza que lo haga. Para obtener la lista completa de posibles intervalos IP para el agente, debe usar los intervalos IP de todas las regiones contenidas en la geografía. Por ejemplo, si su organización se encuentra en la Estados Unidos geografía, debe usar los intervalos IP para todas las regiones de esa geografía.

Para determinar la geografía, vaya a https://dev.azure.com/<your_organization>/_settings/organizationOverview, obtenga la región y busque la geografía asociada desde la tabla geography de Azure . Una vez que haya identificado la geografía, use los intervalos IP del archivo semanal para todas las regiones de esa geografía.

Importante

No puede usar conexiones privadas como ExpressRoute o VPN para conectar agentes hospedados por Microsoft a la red corporativa. El tráfico entre agentes hospedados por Microsoft y los servidores se realizará a través de la red pública.

Para identificar los posibles intervalos IP de los agentes hospedados por Microsoft

  1. Identifique la región de la organización en la configuración de la organización.
  2. Identifique la geografía de Azure para la región de la organización.
  3. Asigne los nombres de las regiones de su geografía al formato usado en el archivo semanal, siguiendo el formato de AzureCloud.<region>, como AzureCloud.westus. Puede asignar los nombres de las regiones de la lista Geografía de Azure al formato usado en el archivo semanal revisando los nombres de región pasados al constructor de las regiones definidas en el código fuente de la clase Region, desde las bibliotecas de administración de Azure para .NET.

    Nota

    Dado que no hay ninguna API en las bibliotecas de administración de Azure para .NET para enumerar las regiones de una geografía, debe enumerarlas manualmente como se muestra en el ejemplo siguiente.

  4. Recupere las direcciones IP de todas las regiones de la geografía del archivo semanal. Si su región es Sur de Brasil o Oeste de Europa, debe incluir intervalos IP adicionales basados en la geografía de reserva, como se describe en la nota siguiente.

Nota

Debido a las restricciones de capacidad, algunas organizaciones de las regiones Sur de Brasil o Oeste de Europa pueden ver ocasionalmente sus agentes hospedados ubicados fuera de su geografía esperada. En estos casos, además de incluir los intervalos IP para todas las regiones de la geografía, como se describe en la sección anterior, se deben incluir intervalos IP adicionales para las regiones de la geografía de reserva de capacidad.

Si su organización está en la región Sur de Brasil, la geografía de reserva de capacidad se Estados Unidos.

Si su organización está en la región Oeste de Europa , la geografía de reserva de capacidad es Francia.

Nuestros intervalos IP de Mac no se incluyen en las direcciones IP de Azure anteriores, ya que se hospedan en la nube macOS de GitHub. Los intervalos IP se pueden recuperar mediante la API de metadatos de GitHub mediante las instrucciones que se proporcionan aquí.

Ejemplo

En el ejemplo siguiente, los intervalos de direcciones IP del agente hospedado para una organización de la región Oeste de EE. UU. se recuperan del archivo semanal. Dado que la región Oeste de EE. UU. está en la geografía Estados Unidos, se incluyen las direcciones IP de todas las regiones de la zona geográfica Estados Unidos. En este ejemplo, las direcciones IP se escriben en la consola.

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);
                }
            }
        }
    }
}

Etiquetas de servicio

Las etiquetas de servicio no pueden enumerar los agentes hospedados por Microsoft. Si intenta conceder a los agentes hospedados acceso a los recursos, deberá seguir el método de lista de permitidos del intervalo IP.

Seguridad

Los agentes hospedados por Microsoft se ejecutan en una plataforma segura de Azure. Sin embargo, debe tener en cuenta las siguientes consideraciones de seguridad.

  • Aunque los agentes hospedados por Microsoft se ejecutan en la red pública de Azure, no se les asignan direcciones IP públicas. Por lo tanto, las entidades externas no pueden dirigirse a agentes hospedados por Microsoft.
  • Los agentes hospedados por Microsoft se ejecutan en máquinas virtuales individuales, que se vuelven a imagenar después de cada ejecución. Cada agente se dedica a una sola organización y cada máquina virtual hospeda solo un único agente.
  • Hay varias ventajas para ejecutar la canalización en agentes hospedados por Microsoft, desde una perspectiva de seguridad. Si ejecuta código que no es de confianza en la canalización, como las contribuciones de bifurcaciones, es más seguro ejecutar la canalización en agentes hospedados por Microsoft que en agentes autohospedados que residen en la red corporativa.
  • Cuando una canalización necesita acceder a los recursos corporativos detrás de un firewall, debe permitir el intervalo de direcciones IP para la geografía de Azure. Esto puede aumentar la exposición, ya que el intervalo de direcciones IP es bastante grande y, dado que las máquinas de este rango también pueden pertenecer a otros clientes. La mejor manera de evitar esto es evitar la necesidad de acceder a los recursos internos.
  • Las imágenes hospedadas no se ajustan a las pruebas comparativas de protección de CIS. Para usar imágenes protegidas por CIS, debe crear agentes autohospedados o agentes de conjunto de escalado.

Funcionalidades y limitaciones

Agentes hospedados por Microsoft:

  • Tenga el software anterior. También puede agregar software durante la compilación o versión mediante tareas del instalador de herramientas.
    • Obtiene un agente recién imagendo para cada trabajo de la canalización.
  • Proporcione 10 GB de almacenamiento para las salidas de origen y compilación.
  • Proporcione un nivel gratis:
    • Proyecto público: 10 trabajos paralelos hospedados por Microsoft gratuitos que se pueden ejecutar durante hasta 360 minutos (6 horas) cada vez, sin límite de tiempo total al mes. Póngase en contacto con nosotros para aumentar sus límites de nivel gratis.
    • Proyecto privado: un trabajo paralelo gratuito que se puede ejecutar hasta 60 minutos cada vez, hasta que haya usado 1800 minutos (30 horas) al mes. Puede pagar por capacidad adicional por trabajo paralelo. Los trabajos paralelos de pago quitan el límite de tiempo mensual y le permiten ejecutar cada trabajo hasta 360 minutos (6 horas). Comprar trabajos paralelos hospedados por Microsoft.
    • Al crear una nueva organización de Azure DevOps, no se le conceden estas concesiones gratuitas de forma predeterminada. Para solicitar la concesión gratuita para proyectos públicos o privados, envíe una solicitud.
  • Ejecución en máquinas virtuales de uso general de Microsoft Azure Standard_DS2_v2
  • Ejecución como administrador en Windows y un usuario sudo sin contraseña en Linux
  • (solo Linux) Ejecución de pasos en un cgroup que ofrece 6 GB de memoria física y 13 GB de memoria total

Los agentes hospedados por Microsoft no ofrecen:

  • La capacidad de conectarse de forma remota.
  • La capacidad de quitar artefactos a un recurso compartido de archivos UNC.
  • La capacidad de unir máquinas directamente a la red corporativa.
  • La capacidad de conseguir máquinas de compilación más grandes o más eficaces.
  • La capacidad de cargar previamente software personalizado. Puede instalar software durante una ejecución de canalización, como a través de tareas del instalador de herramientas o en un script.
  • Posibles ventajas de rendimiento que puede obtener mediante el uso de agentes autohospedados que podrían iniciar y ejecutar compilaciones más rápido. Más información
  • La capacidad de ejecutar compilaciones XAML.

Si los agentes hospedados por Microsoft no satisfacen sus necesidades, puede implementar sus propios agentes autohospedados o usar agentes de conjunto de escalado.

Preguntas más frecuentes

¿Cómo puedo ver qué software se incluye en una imagen?

Para ver el software instalado para cada agente hospedado, elija el vínculo Software incluido en la tabla Software .

¿Cómo elige Microsoft el software y las versiones que se van a colocar en la imagen?

Puede encontrar más información sobre las versiones de software incluidas en las imágenes en Directrices para lo que está instalado.

¿Cuándo se actualizan las imágenes?

Normalmente, las imágenes se actualizan semanalmente. Puede comprobar los distintivos de estado que están en el formato 20200113.x donde la primera parte indica la fecha en que se actualizó la imagen.

¿Qué puedo hacer si el software que necesito se quita o se reemplaza por una versión más reciente?

Para informarnos, abra un problema de GitHub, elija los vínculos Software incluido en la tabla Usar un agente hospedado por Microsoft .

También puede usar un agente autohospedado que incluya las versiones exactas del software que necesita. Para obtener más información, consulte Agentes autohospedados.

¿Qué ocurre si necesito una máquina más grande con más potencia de procesamiento, memoria o espacio en disco?

No podemos aumentar la memoria, la potencia de procesamiento o el espacio en disco para los agentes hospedados por Microsoft, pero puede usar agentes autohospedados o agentes de conjuntos de escalado hospedados en máquinas con sus especificaciones deseadas.

No puedo seleccionar un agente hospedado por Microsoft y no puedo poner en cola mi compilación o implementación. ¿Cuál debo hacer?

Los agentes hospedados por Microsoft solo están disponibles en Azure Pipelines y no en TFS o Azure DevOps Server.

De forma predeterminada, todos los colaboradores del proyecto de una organización tienen acceso a los agentes hospedados por Microsoft. Sin embargo, el administrador de la organización puede limitar el acceso de los agentes hospedados por Microsoft para seleccionar usuarios o proyectos. Pida al propietario de su organización de Azure DevOps que le conceda permiso para usar un agente hospedado por Microsoft. Consulte seguridad del grupo de agentes.

Mis canalizaciones que se ejecutan en agentes hospedados por Microsoft tardan más tiempo en completarse. ¿Cómo puedo acelerarlos?

Si la canalización se ha vuelto más lenta recientemente, revise nuestra página de estado para ver si hay interrupciones. Podríamos tener problemas con nuestro servicio. O bien, revise los cambios realizados en el código o canalización de la aplicación. Es posible que el tamaño del repositorio durante la desaprovisionamiento haya aumentado, puede que cargue artefactos más grandes o que esté ejecutando más pruebas.

Si solo configura una canalización y compara el rendimiento de los agentes hospedados por Microsoft con el equipo local o un agente autohospedado, anote las especificaciones del hardware que usamos para ejecutar los trabajos. No podemos proporcionarle máquinas más grandes o potentes. Puede considerar el uso de agentes autohospedados o agentes de conjuntos de escalado si este rendimiento no es aceptable.

Necesito más agentes. ¿Qué se puede hacer?

Todas las organizaciones de Azure DevOps se proporcionan con varios trabajos paralelos gratuitos para proyectos de código abierto y un trabajo paralelo gratuito y minutos limitados cada mes para proyectos privados. Si necesita más minutos o trabajos paralelos para el proyecto de código abierto, póngase en contacto con el soporte técnico. Si necesita más minutos o trabajos paralelos para el proyecto privado, puede comprar más.

Mi canalización se realiza correctamente en el agente autohospedado, pero se produce un error en los agentes hospedados por Microsoft. ¿Cuál debo hacer?

Es probable que el agente autohospedado tenga instaladas todas las dependencias adecuadas, mientras que las mismas dependencias, herramientas y software no están instaladas en agentes hospedados por Microsoft. En primer lugar, revise cuidadosamente la lista de software instalado en agentes hospedados por Microsoft siguiendo el vínculo a Software incluido en la tabla anterior. A continuación, compárelo con el software instalado en el agente autohospedado. En algunos casos, los agentes hospedados por Microsoft pueden tener las herramientas que necesita (por ejemplo, Visual Studio), pero es posible que no se hayan instalado todos los componentes opcionales necesarios. Si encuentra diferencias, tiene dos opciones:

  • Puede crear un nuevo problema en el repositorio, donde realizamos un seguimiento de las solicitudes de software adicional. Ponerse en contacto con el soporte técnico no le ayudará a configurar software nuevo en agentes hospedados por Microsoft.

  • Puede usar agentes autohospedados o agentes de conjuntos de escalado. Con estos agentes, está totalmente en control de las imágenes que se usan para ejecutar las canalizaciones.

Mi compilación se realiza correctamente en mi máquina local, pero se produce un error en los agentes hospedados por Microsoft. ¿Cuál debo hacer?

Es probable que la máquina local tenga instaladas todas las dependencias adecuadas, mientras que las mismas dependencias, herramientas y software no están instaladas en agentes hospedados por Microsoft. En primer lugar, revise cuidadosamente la lista de software instalado en agentes hospedados por Microsoft siguiendo el vínculo a Software incluido en la tabla anterior. A continuación, compárelo con el software instalado en el equipo local. En algunos casos, los agentes hospedados por Microsoft pueden tener las herramientas que necesita (por ejemplo, Visual Studio), pero es posible que no se hayan instalado todos los componentes opcionales necesarios. Si encuentra diferencias, tiene dos opciones:

  • Puede crear un nuevo problema en el repositorio, donde realizamos un seguimiento de las solicitudes de software adicional. Esta es la opción más probable para instalar el nuevo software. Ponerse en contacto con el soporte técnico no le ayudará a configurar software nuevo en agentes hospedados por Microsoft.

  • Puede usar agentes autohospedados o agentes de conjuntos de escalado. Con estos agentes, está totalmente en control de las imágenes que se usan para ejecutar las canalizaciones.

Se produce un error en la canalización: "sin espacio restante en el dispositivo".

Los agentes hospedados por Microsoft solo tienen 10 GB de espacio en disco disponible para ejecutar el trabajo. Este espacio se consume al consultar el código fuente, al descargar paquetes, al descargar imágenes de Docker o al generar archivos intermedios. Desafortunadamente, no podemos aumentar el espacio disponible en imágenes hospedadas por Microsoft. Puede reestructurar la canalización para que se ajuste a este espacio. O bien, puede considerar el uso de agentes autohospedados o agentes de conjuntos de escalado.

Mi canalización que se ejecuta en agentes hospedados por Microsoft requiere acceso a los servidores de nuestra red corporativa. ¿Cómo obtenemos una lista de direcciones IP para permitir en nuestro firewall?

Consulte la sección Intervalos IP del agente.

Nuestra canalización que se ejecuta en agentes hospedados por Microsoft no puede resolver el nombre de un servidor en nuestra red corporativa. ¿Cómo podemos arreglar esto?

Si hace referencia al servidor por su nombre DNS, asegúrese de que el servidor sea accesible públicamente en Internet a través de su nombre DNS. Si hace referencia al servidor por su dirección IP, asegúrese de que la dirección IP sea accesible públicamente en Internet. En ambos casos, asegúrese de que cualquier firewall entre los agentes y la red corporativa tenga permitidos los intervalos IP del agente .

Obtengo un error de autorización de IP de SAS de una cuenta de Azure Storage.

Si obtiene un código de error de SAS, lo más probable es que los intervalos de direcciones IP de los agentes hospedados por Microsoft no se permitan debido a las reglas de Azure Storage. Hay algunas soluciones alternativas:

  1. Administre las reglas de red IP de la cuenta de Azure Storage y agregue los intervalos de direcciones IP para los agentes hospedados.
  2. En la canalización, use la CLI de Azure para actualizar el conjunto de reglas de red de la cuenta de Azure Storage justo antes de acceder al almacenamiento y, a continuación, restaure el conjunto de reglas anterior.
  3. Use agentes autohospedados o agentes de conjunto de escalado.

¿Cómo puedo seleccionar manualmente las versiones de las herramientas en el agente de macOS hospedado?

Xamarin

El agente de macOS hospedado almacena las versiones del SDK de Xamarin y las versiones de Mono asociadas como un conjunto de vínculos simbólicos a ubicaciones del SDK de Xamarin disponibles por un único vínculo simbólico de lote.

Para seleccionar manualmente una versión del SDK de Xamarin que se usará en el agente de macOS hospedado , ejecute el siguiente comando de Bash antes de la tarea de compilación de Xamarin como parte de la compilación, especificando el vínculo simbólico a la agrupación de versiones de Xamarin que necesita.

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

La lista de todas las versiones y vínculos simbólicos disponibles del SDK de Xamarin se puede encontrar en la documentación de los agentes:

Este comando no selecciona la versión mono más allá del SDK de Xamarin. Para seleccionar manualmente una versión mono, consulte las instrucciones siguientes.

En caso de que use una versión no predeterminada de Xcode para compilar las aplicaciones de Xamarin.iOS o Xamarin.Mac, debe ejecutar además esta línea de comandos:

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

Dónde $(xcodeRoot) = /Applications/Xcode_13.2.app

Las versiones de Xcode en el grupo de agentes de macOS hospedados se pueden encontrar aquí.

Xcode

Si usa la tarea Xcode incluida con Azure Pipelines y TFS, puede seleccionar una versión de Xcode en las propiedades de esa tarea. De lo contrario, para establecer manualmente la versión de Xcode que se usará en el grupo de agentes de macOS hospedado , antes xcodebuild de la tarea de compilación, ejecute esta línea de comandos como parte de la compilación, reemplazando el número de versión de Xcode 13.2 según sea necesario:

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

Las versiones de Xcode en el grupo de agentes de macOS hospedados se pueden encontrar aquí.

Este comando no funciona para las aplicaciones de Xamarin. Para seleccionar manualmente una versión de Xcode para compilar aplicaciones de Xamarin, consulte las instrucciones anteriores.

Mono

Para seleccionar manualmente una versión de Mono que se va a usar en el grupo de agentes de macOS hospedado , ejecute este script en cada trabajo de la compilación antes de la tarea de compilación de Mono, especificando el vínculo simbólico con la versión mono necesaria (se puede encontrar la lista de todos los vínculos simbólicos disponibles en la sección anterior de Xamarin ):

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"

Vídeos