Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe el uso de una plantilla de ARM para crear Azure Compute Fleet.
Una plantilla de Azure Resource Manager es un archivo de notación de objetos JavaScript (JSON) que define tanto la infraestructura como la configuración de un proyecto. La plantilla usa sintaxis declarativa. Describe el despliegue previsto sin escribir la secuencia de comandos de programación para crear el despliegue.
Requisitos previos
- Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
- Antes de usar Compute Fleet, complete el registro de características y configure los controles de acceso basados en rol (RBAC).
Registro de características
Registre el proveedor de recursos de Azure Compute Fleet con su suscripción mediante PowerShell o Azure Portal. El registro puede tardar hasta 30 minutos en mostrarse correctamente como registrado.
Register-AzResourceProvider -ProviderNamespace Microsoft.AzureFleet
Permisos de control de acceso basado en rol
Asigne los permisos de RBAC adecuados para usar Azure Compute Fleet.
- En Azure Portal, vaya a las suscripciones.
- Seleccione la suscripción que desea para ajustar los permisos de RBAC.
- Seleccione Control de acceso (IAM).
- Seleccione Agregar y, a continuación, Agregar asignación de roles.
- Busque Colaborador de la máquina virtual y resáltelo. Seleccione Siguiente.
- Haga clic en + Seleccionar miembros.
- Busque el rol Proveedor de recursos de Azure Fleet.
- Seleccione el proveedor de recursos de Azure Fleet y seleccione Revisar y asignar.
- Repita los pasos anteriores para el rol de colaborador de red y el rol de operador de identidad administrada.
Si usa imágenes almacenadas en la galería de procesos al implementar Compute Fleet, repita también los pasos anteriores para el rol de administrador de uso compartido de la galería de procesos.
Para más información sobre la asignación de roles, consulte Asignaciones de roles de Azure mediante Azure Portal.
Plantilla ARM
Una plantilla de Azure Resource Manager es un archivo de notación de objetos JavaScript (JSON) que define tanto la infraestructura como la configuración de un proyecto. La plantilla usa sintaxis declarativa. Describe el despliegue previsto sin escribir la secuencia de comandos de programación para crear el despliegue.
Las plantillas de ARM permiten implementar grupos de recursos relacionados. En una única plantilla, puede crear el conjunto de escalado de máquinas virtuales, instalar aplicaciones y configurar reglas de escalado automático. Con el uso de variables y parámetros, esta plantilla se puede reutilizar para actualizar los conjuntos de escalado existentes o crear más. Puede implementar plantillas mediante Azure Portal, la CLI de Azure o Azure PowerShell, o bien desde las canalizaciones de integración continua o entrega continua (CI/CD).
Revisión de la plantilla
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"fleetName": {
"type": "string",
"metadata": {
"description": "String used as a base for naming resources. Must be 3-61 characters in length and globally unique across Azure. A hash is prepended to this string for some resources, and resource-specific information is appended."
}
},
"adminUsername": {
"type": "string",
"defaultValue": "testusername",
"metadata": {
"description": "Admin username on all VMs."
}
},
"adminPassword": {
"type": "string",
"metadata": {
"description": "Admin password on all VMs."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"variables": {
"vnName": "[format('{0}-vnet', parameters('fleetName'))]",
"lbName": "[format('{0}-lb', parameters('fleetName'))]",
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2019-DataCenter-GS",
"version": "latest"
}
},
"resources": [
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2022-07-01",
"name": "[variables('vnName')]",
"location": "[parameters('location')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"10.0.0.0/16"
]
},
"subnets": [
{
"name": "default",
"properties": {
"addressPrefix": "10.0.0.0/24"
}
}
]
}
},
{
"type": "Microsoft.Network/loadBalancers",
"apiVersion": "2022-07-01",
"name": "[variables('lbName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard"
},
"properties": {
"frontendIPConfigurations": [
{
"name": "[variables('lbName')]",
"properties": {
"privateIPAddress": "10.0.0.4",
"privateIPAllocationMethod": "Dynamic",
"subnet": {
"id": "[reference(resourceId('Microsoft.Network/virtualNetworks', variables('vnName'))).subnets[0].id]"
}
}
}
],
"backendAddressPools": [
{
"name": "[variables('lbName')]"
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnName'))]"
]
},
{
"type": "Microsoft.AzureFleet/fleets",
"apiVersion": "2024-05-01-Preview",
"name": "[toLower(parameters('fleetName'))]",
"location": "[parameters('location')]",
"properties": {
"vmSizesProfile": [
{
"name": "Standard_F2s_v2"
},
{
"name": "Standard_DS1_v2"
},
{
"name": "Standard_DS2_v2"
}
],
"spotPriorityProfile": {
"capacity": 10,
"evictionPolicy": "Delete",
"allocationStrategy": "CapacityOptimized",
"maintain": false
},
"regularPriorityProfile": {
"capacity": 50,
"minCapacity": 30,
"allocationStrategy": "LowestPrice"
},
"computeProfile": {
"platformFaultDomainCount": 1,
"computeApiVersion": "2024-03-01",
"baseVirtualMachineProfile": {
"storageProfile": {
"osDisk": {
"osType": "Windows",
"createOption": "fromImage",
"caching": "ReadWrite",
"managedDisk": {
"storageAccountType": "Standard_LRS"
}
},
"imageReference": "[variables('imageReference')]"
},
"osProfile": {
"computerNamePrefix": "[parameters('fleetName')]",
"adminUsername": "[parameters('adminUsername')]",
"adminPassword": "[parameters('adminPassword')]"
},
"networkProfile": {
"networkApiVersion": "2022-07-01",
"networkInterfaceConfigurations": [
{
"name": "[variables('vnName')]",
"properties": {
"primary": true,
"enableIPForwarding": true,
"enableAcceleratedNetworking": false,
"ipConfigurations": [
{
"name": "[variables('vnName')]",
"properties": {
"subnet": {
"id": "[reference(resourceId('Microsoft.Network/virtualNetworks', variables('vnName'))).subnets[0].id]"
},
"primary": true,
"applicationGatewayBackendAddressPools": [],
"loadBalancerBackendAddressPools": [
{
"id": "[format('{0}/backendAddressPools/{1}', resourceId('Microsoft.Network/loadBalancers', variables('lbName')), variables('lbName'))]"
}
]
}
}
]
}
}
]
}
}
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnName'))]",
"[resourceId('Microsoft.Network/loadBalancers', variables('lbName'))]"
]
}
]
}
Estos recursos se definen en la plantilla:
Crear una flota en modo Lanzamiento (Vista previa)
Para crear una flota en modo Launch (versión preliminar), configura mode en Launch en la flota properties y utiliza la 2026-04-01-preview versión de la API. En el modo Launch, la flota aprovisiona las máquinas virtuales y, a continuación, cede el control; el objeto de flota se elimina automáticamente unas horas más tarde, mientras que las máquinas virtuales persisten.
El siguiente fragmento muestra las adiciones del modo de lanzamiento al recurso Microsoft.AzureFleet/fleets. La vmNamePrefix propiedad da a las VMs provisionadas nombres amigables para el orquestador y requiere la 2026-04-01-preview versión de la API.
{
"type": "Microsoft.AzureFleet/fleets",
"apiVersion": "2026-04-01-preview",
"name": "[toLower(parameters('fleetName'))]",
"location": "[parameters('location')]",
"zones": [ "1", "2", "3" ],
"properties": {
"mode": "Launch",
"vmNamePrefix": "myapp",
"vmSizesProfile": [
{ "name": "Standard_D2s_v3" },
{ "name": "Standard_D4s_v3" },
{ "name": "Standard_E2s_v3" }
],
"regularPriorityProfile": {
"capacity": 50,
"allocationStrategy": "LowestPrice"
},
"spotPriorityProfile": {
"capacity": 50,
"allocationStrategy": "CapacityOptimized"
},
"computeProfile": {
"computeApiVersion": "2024-03-01",
"baseVirtualMachineProfile": {
"storageProfile": { "...": "..." },
"osProfile": { "...": "..." },
"networkProfile": { "...": "..." }
}
}
}
}
En el modo Lanzamiento, no configures la spotPriorityProfile.maintain preferencia: solo se aplica al modo gestionado. Como la provisión es asíncrona, utiliza la API de Listas de VMs para recuperar los IDs de recursos de la VM y monitorizar el estado de la provisión tras la entrega del despliegue.
Importante
El modo de lanzamiento de Azure Compute Fleet está actualmente en vista previa. Para más información, consulte Modo de lanzamiento para Azure Compute Fleet (Vista previa).
Limpieza de recursos
Cuando ya no lo necesite, puede usar el comando az group delete para quitar el grupo de recursos, el conjunto de escalado y todos los recursos relacionados como se indica a continuación. El parámetro --no-wait devuelve el control a la petición de confirmación sin esperar a que finalice la operación. El parámetro --yes confirma que quiere eliminar los recursos sin pedir otra confirmación.
az group delete --name myResourceGroup --yes --no-wait