Azure自动化错误' DynamicActivity':期望输入参数值类型

时间:2014-08-08 15:37:56

标签: powershell azure

使用Microsoft Sample-Using-RunbookParameter脚本并运行以下Azure Automation PowerShell时:

$date = Get-Date
$Params = @{"Name"="World";"Number"=1; "Date"=$date; "SayGoodBye"=$TRUE; "StringArray"="[1,'astringvalue',2]"}
Start-AzureAutomationRunbook -AutomationAccountName CMTEST -Name Sample-Using-RunbookParameters -Parameters $Params

我得到以下异常:

The values provided for the root activity's arguments did not satisfy the root activity's requirements:
'DynamicActivity': Expected an input parameter value of type 'System.Boolean' for parameter named 'SayGoodbye'.
'DynamicActivity': Expected an input parameter value of type 'System.DateTime' for parameter named 'Date'.
 jParameter name: rootArgumentValues

如果查看Azure自动化作业日志,我会看到以下输入参数:

DATE Fri, 08 Aug 2014 15:26:14 GMT
NAME World
NUMBER 1
SAYGOODBYE True
STRINGARRAY [1,'astringvalue',2]

2 个答案:

答案 0 :(得分:0)

这是由于Azure自动化cmdlet中的一个错误将在即将推出的Azure PowerShell版本中修复(如果不是下一个版本,那么之后的版本)。基本上,cmdlet应该将每个作业参数序列化为json,但是当前将它们作为字符串传递给它们。

此外,一旦解决了这个问题,请在您正在执行的代码中执行上述操作:

"StringArray"="[1,'astringvalue',2]"

您需要使用正确的PowerShell数组:

$SomeArray = @(1, "astringvalue", 2)
"StringArray"=$SomeArray

答案 1 :(得分:0)

您可以使用$签名传递BOOLEAN值。如下所示:

$params = @{“AZURERESOURCEGROUP”=”Infra-ResourceGroup”;”SHUTDOWN”=$TRUE}

在上面的例子中,resourcegroup名称将作为字符串传递给AZURERESOURCEGROUP参数。要传递BOOLEAN值,您可以使用$TRUE / $FALSE