Я пытаюсь автоматизировать создание некоторых ресурсов в Azure с использованием библиотек Azure Resource Manager .NET. Я могу создать группу ресурсов и разместил свой шаблон ARM в доступном месте на хранилище blob; однако я хотел бы иметь возможность передавать параметры в запрос в коде вместо того, чтобы размещать файл JSON где-то в хранилище.Как передать параметры шаблона ARM через API вместо файла параметров?
Кажется, что это должно быть возможно. Например, на Deployment.Properties
объекта, он имеет как Parameters
и ParametersLink
, но я не могу найти любую документацию по его использованию, а следующее бросает исключение о том, что значение не было указано для параметров в шаблоне:
deployment.Properties = new DeploymentProperties
{
Mode = DeploymentMode.Incremental,
TemplateLink = new TemplateLink("link-to-my-template-json-in-storage"),
Parameters = new
{
diskStorageAccountName = "value",
imageVhdPath = "value",
virtualNetworkName = "value",
virtualNetworkSubnetName = "value",
vmName = value,
vmAdminUserName = "value",
vmAdminPassword = "value"
}
};
Это дает следующее сообщение об ошибке:
An unhandled exception of type 'Microsoft.Rest.Azure.CloudException' occurred in mscorlib.dll
Additional information: Deployment template validation failed: 'The value for the template parameter 'diskStorageAccountName' at line '5' and column '32' is not provided. Please see http://aka.ms/arm-deploy/#parameter-file for usage details.'.
я делаю что-то не так? DeploymentProperties.Parameters
- всего лишь Object
, поэтому я предположил, что он будет сериализован и передан правильно - это предположение неверно?
Редактировать: MSDN article также не очень полезен.
Редактировать 2: Интересно, является ли это ошибкой в автогенерированном коде. Смотрите линии 700 здесь:
Выглядит, как он пытается JObject.Parse
Edit 3: Открылся issue on GitHub.
Каков конкретный пакет и версия nuget, которые вы используете? Я попытаюсь воспроизвести и решить вашу проблему. – juvchan
Microsoft.Azure.Management.Resources 3.3.1-preview – wgraham
@juvchan: Любые обновления, пожалуйста? –