在Windows Azure门户中,从我的自动化帐户(自动化帐户> myAutomation> Runbook> MyRunbook>编辑PowerShell工作流程Runbook>测试),我正在尝试使用Azure资源管理器测试powershell脚本库,用于迁移目的。 我写了一小段PowerShell脚本并在测试窗格中对其进行了测试。 我正面临一条错误消息:
术语“New-AzureRmHDInsightHiveJobDefinition”未被识别为名称 cmdlet,函数,脚本文件或可操作程序。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
我想直接从Windows Azure门户测试它,因为我需要使用像“Get-AutomationPSCredential”这样的函数结果。
workflow Runbook_Test
{
param(
[parameter(Mandatory=$True)]
[string] $HDInsightAdminCredendialsName
)
$hdInsightCredentials = Get-AutomationPSCredential -Name $HDInsightAdminCredendialsName
InlineScript {
$creds = $using:hdInsightCredentials
$clusterName = 'clusterName'
$query = 'A QUERY INSIDE'
$jobDef = New-AzureRmHDInsightHiveJobDefinition -Query $query;
$hiveJob = Start-AzureRmHDInsightJob -JobDefinition $jobDef -ClusterName $clusterName -HttpCredential $creds
Wait-AzureRmHDInsightJob -JobId $hiveJob.JobId -ClusterName $clusterName -HttpCredential $creds
}
}
我在cmdlet“Start-AzureRmHDInsightJob”和“Wait-AzureRmHDInsightJob”中遇到了同样的问题。就像azure portal不能识别ARM库一样。
我肯定会想念一些东西,但是什么? :) 谢谢你的帮助。
答案 0 :(得分:1)
您需要将这些模块导入Azure自动化帐户。在这种情况下,您需要AzureRM.HDInsight
模块。请参阅此链接,了解如何导入模块:https://docs.microsoft.com/en-us/azure/automation/automation-runbook-gallery#modules-in-powershell-gallery
问题是,您的帐户默认只获得一些Azure Powershell模块,其余的必须手动安装。
答案 1 :(得分:1)
我理解的问题是因为工作流程范围。
我建议您使用功能而不是工作流程并尝试一次。 这样您就可以分离出它是库问题或范围的问题。
如果问题与范围有关并且您想要使用工作流,那么我们已经在每个工作流范围内使用传递参数。这样ARM库就可以理解范围内的cmdlet“Start-AzureRmHDInsightJob”和“Wait-AzureRmHDInsightJob”。
作为答案,如果使用函数和全局变量,Azure cmdlet在我的版本中正常工作。