Ссылка на существующую виртуальную сеть в шаблоне масштабируемого набора Azure
В этой статье показано, как изменить шаблон базового масштабируемого набора для развертывания в существующей виртуальной сети вместо создания новой.
Необходимые компоненты
В предыдущей статье мы создали шаблон базового масштабируемого набора. Вам потребуется шаблон, созданный ранее, чтобы вы могли изменить его и создать шаблон для развертывания масштабируемого набора в существующей виртуальной сети.
Определение подсети
Сначала добавьте параметр subnetId
. Эта строка будет передана в конфигурацию масштабируемого набора, благодаря чему он сможет идентифицировать предварительно созданную подсеть для развертывания виртуальных машин. Эта строка должна иметь следующий формат:
/subscriptions/<subscription-id>resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<virtual-network-name>/subnets/<subnet-name>
Например, чтобы развернуть масштабируемый набор в существующей виртуальной сети с именем myvnet
, подсети mysubnet
, группе ресурсов myrg
и подписке 00000000-0000-0000-0000-000000000000
, идентификатор подсети должен быть таким:
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet
.
},
"adminPassword": {
"type": "securestring"
+ },
+ "subnetId": {
+ "type": "string"
}
},
Удаление дополнительного ресурса виртуальной сети
Затем удалите ресурс виртуальной сети из массива resources
, потому что используется существующая виртуальная сеть и не требуется развертывать новую.
"variables": {},
"resources": [
- {
- "type": "Microsoft.Network/virtualNetworks",
- "name": "myVnet",
- "location": "[resourceGroup().location]",
- "apiVersion": "2018-11-01",
- "properties": {
- "addressSpace": {
- "addressPrefixes": [
- "10.0.0.0/16"
- ]
- },
- "subnets": [
- {
- "name": "mySubnet",
- "properties": {
- "addressPrefix": "10.0.0.0/16"
- }
- }
- ]
- }
- },
Удаление предложения зависимости
Виртуальная сеть уже существовала до развертывания шаблона, поэтому нет необходимости указывать предложение dependsOn
из масштабируемого набора для виртуальной сети. Удалите следующие строки:
{
"type": "Microsoft.Compute/virtualMachineScaleSets",
"name": "myScaleSet",
"location": "[resourceGroup().location]",
"apiVersion": "2019-03-01",
- "dependsOn": [
- "Microsoft.Network/virtualNetworks/myVnet"
- ],
"sku": {
"name": "Standard_A1",
"capacity": 2
Передача параметра подсети
Наконец, передайте параметр subnetId
, заданный пользователем (вместо использования resourceId
для получения идентификатора виртуальной сети в том же развертывании, что происходит, если используется шаблон минимального базового масштабируемого набора).
"name": "myIpConfig",
"properties": {
"subnet": {
- "id": "[concat(resourceId('Microsoft.Network/virtualNetworks', 'myVnet'), '/subnets/mySubnet')]"
+ "id": "[parameters('subnetId')]"
}
}
}
Следующие шаги
Предыдущий шаблон можно развернуть, следуя указаниям, описанным в документации по Azure Resource Manager.
Начать работу с этой серией руководств можно со статьи о шаблоне базового масштабируемого набора.
Вы узнаете, как изменить шаблон базового масштабируемого набора, чтобы развернуть масштабируемый набор в существующей виртуальной сети.
Вы узнаете, как изменить шаблон базового масштабируемого набора, чтобы развернуть масштабируемый набор с помощью настраиваемого образа.
Вы узнаете, как изменить шаблон базового масштабируемого набора, чтобы развернуть масштабируемый набор Linux с использованием автосохранения на основе гостя.
Дополнительные сведения о масштабируемых наборах см. на этой странице.