目前,我在使用用 C# 编写的 Azure 函数从 ARM 模板部署 Azure VM 时遇到问题,同时使用 Newjonsoft.Json、Linq 库中的 JObject 为新 VM 提供参数。
JObject.FromObject() 方法以 格式制定参数"{"paramName": "paramValue"}"
,但我认为它需要制定为"{"paramName": { "value": "paramValue"}
。我不确定是否还需要指定“contentVersion”和“$schema”ARM 模板参数才能使其正常工作。
到目前为止,我已经尝试使用动态变量来制定对象,然后将其转换为字符串并使用 JObject.Parse() 方法进行解析,但这只能产生与前面描述的相同的结果。
Azure Function 代码示例(并非所有代码):
using Microsoft.Azure.Management.Fluent;
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;
using Microsoft.WindowsAzure.Storage.Table;
using System.Threading.Tasks;
using System;
using Microsoft.Rest.Azure;
using Newtonsoft.Json.Linq;
// Authenticate with Azure
IAzure azure = await
Authentication.AuthenticateWithAzure(azureVmDeploymentRequest.SubscriptionId);
// Get current datetime
string Datetime = DateTime.Now.ToString("yyyy-MM-ddHHmmss");
log.LogInformation("Initiating VM ARM Template Deployment");
var parameters = azureVmDeploymentRequest.ToArmParameters(
subscriptionId: azureVmDeploymentRequest.SubscriptionId,
imageReferencePublisher: azureVmDeploymentRequest.ImageReferencePublisher
);
// AzNewVmRequestArmParametersMain is a custom object containing the
// parameters needed for the ARM template, constructed with GET SET
var parametersMain = new AzNewVmRequestArmParametersMain
{
parameters = parameters
};
作为预期结果,我希望代码能够简单地启动到 Azure 资源组的 ARM 模板部署,但目前它失败并显示以下消息:
'请求内容无效,无法反序列化:'将值“parameterValue”转换为类型“Microsoft.WindowsAzure.ResourceStack.Frontdoor.Data.Definitions.DeploymentParameterDefinition”时出错。路径“properties.parameters.vNetResourceGroup”,第 8 行,位置 48。“。”
当年话下
慕桂英4014372
相关分类