Azure资源管理器powershell cmdlet在azure门户网站测试窗格中无法识别(自动化帐户)

时间:2016-11-30 22:22:33

标签: powershell azure azure-automation

在Windows Azure门户中,从我的自动化帐户(自动化帐户> myAutomation> Runbook> MyRunbook>编辑PowerShell工作流程Runbook>测试),我正在尝试使用Azure资源管理器测试powershell脚本库,用于迁移目的。 我写了一小段PowerShell脚本并在测试窗格中对其进行了测试。 我正面临一条错误消息:

  

术语“New-AzureRmHDInsightHiveJobDefinition”未被识别为名称   cmdlet,函数,脚本文件或可操作程序。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。

我想直接从Windows Azure门户测试它,因为我需要使用像“Get-AutomationPSCredential”这样的函数结果。

PowerShell脚本示例

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库一样。

我肯定会想念一些东西,但是什么? :) 谢谢你的帮助。

2 个答案:

答案 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在我的版本中正常工作。