使用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]
答案 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
。