Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano, jak krok po kroku utworzyć flotę obliczeniową na platformie Azure, używając szablonu ARM.
Szablon usługi Azure Resource Manager to plik JavaScript Object Notation (JSON), który definiuje infrastrukturę i konfigurację projektu. W szablonie używana jest składnia deklaratywna. Możesz opisać zamierzone wdrożenie bez konieczności pisania sekwencji poleceń programowania w celu utworzenia wdrożenia.
Wymagania wstępne
- Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto .
- Przed rozpoczęciem korzystania z usługi Compute Fleet ukończ rejestrację funkcji i skonfiguruj mechanizmy kontroli dostępu opartej na rolach (RBAC).
Rejestracja funkcji
Zarejestruj dostawcę zasobów usługi Azure Compute Fleet w ramach subskrypcji przy użyciu programu PowerShell lub witryny Azure Portal. Rejestracja może potrwać do 30 minut, aby pomyślnie pokazać je jako zarejestrowane.
Register-AzResourceProvider -ProviderNamespace Microsoft.AzureFleet
Uprawnienia w kontroli dostępu opartej na rolach
Przypisz odpowiednie uprawnienia RBAC, aby używać Azure Compute Fleet.
- W witrynie Azure Portal przejdź do swoich subskrypcji.
- Wybierz subskrypcję, dla której chcesz dostosować uprawnienia RBAC.
- Wybierz pozycję Kontrola dostępu (IAM).
- Wybierz pozycję Dodaj, a następnie dodaj przypisanie roli.
- Wyszukaj Współtwórca maszyny wirtualnej i wyróżnij go. Wybierz pozycję Dalej.
- Kliknij pozycję + Wybierz członków.
- Wyszukaj rolę dostawcy zasobów floty platformy Azure .
- Wybierz dostawcę zasobów floty platformy Azure i wybierz pozycję Przejrzyj i przypisz.
- Powtórz poprzednie kroki dla roli Współautor sieci i roli Operator tożsamości zarządzanej .
Jeśli używasz obrazów przechowywanych w galerii obliczeniowej podczas wdrażania floty obliczeniowej, powtórz również poprzednie kroki dla roli administratora udostępniania galerii obliczeniowej .
Aby uzyskać więcej informacji na temat przypisywania ról, zobacz przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.
szablon usługi ARM
Szablon usługi Azure Resource Manager to plik JavaScript Object Notation (JSON), który definiuje infrastrukturę i konfigurację projektu. W szablonie używana jest składnia deklaratywna. Możesz opisać zamierzone wdrożenie bez konieczności pisania sekwencji poleceń programowania w celu utworzenia wdrożenia.
Szablony usługi ARM umożliwiają wdrażanie grup powiązanych zasobów. W jednym szablonie można utworzyć zestaw skalowania maszyn wirtualnych, zainstalować aplikacje i skonfigurować reguły skalowania automatycznego. W przypadku używania zmiennych i parametrów tego szablonu można użyć ponownie, aby zaktualizować istniejące lub utworzyć dodatkowe zestawy skalowania. Szablony można wdrażać za pośrednictwem witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell bądź z poziomu potoków ciągłej integracji/ciągłego dostarczania (CI/CD).
Przegląd szablonu
{
"$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'))]"
]
}
]
}
Te zasoby są zdefiniowane w szablonie:
Czyszczenie zasobów
Po tym, jak grupa zasobów, zestaw skalowania i wszystkie powiązane zasoby nie będą już potrzebne, możesz je usunąć, używając polecenia az group delete. Parametr --no-wait zwraca kontrolę do wiersza polecenia bez oczekiwania na zakończenie operacji. Parametr --yes potwierdza, że chcesz usunąć zasoby bez innego monitu, aby to zrobić.
az group delete --name myResourceGroup --yes --no-wait