Я использую Развертывание группы ресурсов Azure в Azure Devops. Некоторые из параметров шаблона Override s включают SubscriptionID.
-virtualNetworkId /subscriptions/53614803-d327-4397-bf55-8dedcc24be0d/resourceGroups/$(resourceGroup)/providers/Microsoft.Network/virtualNetworks/vnet
Возможно ли использовать SubsciptionID, используемый в подключении Azure ?
Причина:
Идентификатор подписки должен быть известен в конвейере сборки. Это также решает проблему с шаблоном uniqueString, где нам нужно знать uniqueString, но PowerShell не может сообщить вам об этом.
Мои развертывания создаются для запуска в любой группе ресурсов в разных подписках. Я развертываю несколько виртуальных машин, используя шаблон ARM, созданный при создании одной виртуальной машины на портале. Один из параметров встроил идентификатор подписки, как показано в вопросе. Из-за того, как переменные рассчитываются внутри шаблона, созданного порталом,
[subscription.SubscriptionId] не собирался работать:
"variables": {
"vnetId": "[parameters('virtualNetworkId')]",
"subnetRef": "[concat(variables('vnetId'), '/subnets/', parameters('subnetName'))]",
Это заканчивается во время выполнения как:
/subscriptions/$(subscription().subscriptionid)/resourceGroups/Dev1/providers/Microsoft.Network/virtualNetworks/vnet/subnets/default
Я не хочу редактировать шаблон, поскольку мне нужно будет внести некоторые коррективы в будущие развертывания и, вероятно, будет использовать портал для создания нового шаблона. subscriptionId должен быть известен в конвейере сборки. Это также решает проблему с шаблоном uniqueString , в которой нам нужно знать uniqueString , но powershell не может сообщить вам.