【问题标题】:Get-AzureWebsiteJob : No default subscription has been designatedGet-AzureWebsiteJob :未指定默认订阅
【发布时间】:2018-06-14 11:31:01
【问题描述】:

I am using and edited version of the script in the first answer on this question。我首先登录,选择适当的订阅,然后获取 Azure Rm 上下文。执行此操作时出现此错误:

Get-AzureWebsiteJob :未指定默认订阅。使用 Select-AzureSubscription -Default 设置默认订阅。

脚本:

Login-AzureRmAccount
Select-AzureRmSubscription -SubscriptionId subidguid
Get-AzureRmContext

$groups = get-AzureRmResourceGroup

foreach($group in $groups){

    $webApps = Get-AzureRmWebApp -ResourceGroupName $group.ResourceGroupName

    foreach($webApp in $webApps){

        write-host -ForegroundColor Yellow $webApp.Name        

        ### ERROR HAPPENS
        $job = Get-AzureWebsiteJob -Name $webApp.Name

        if($job){ 
            write-host -ForegroundColor DarkYellow $job.JobName
        }        

        $job = Get-AzureWebsiteJob -Name $webApp.Name -Slot staging

        if($job){
            write-host -ForegroundColor DarkYellow $job.JobName " -staging"
        }
    }
}

我确实得到了屏幕上输出的网络应用程序的名称,但是当它查找网络作业时,我得到了那个错误。我根据错误尝试了以下技术,但这没有帮助(编辑了完整的代码以明确我做了哪些更改,即使我仍然遇到相同的错误):

Login-AzureRmAccount
Select-AzureRmSubscription -SubscriptionId subidguid
Get-AzureRmContext

$groups = get-AzureRmResourceGroup

foreach($group in $groups){

    $webApps = Get-AzureRmWebApp -ResourceGroupName $group.ResourceGroupName

    foreach($webApp in $webApps){

        write-host -ForegroundColor Yellow $webApp.Name        

        ### ERROR HAPPENS
        Select-AzureRmSubscription -SubscriptionId subidguid                
        $job = Get-AzureWebsiteJob -Name $webApp.Name

        if($job){ 
            write-host -ForegroundColor DarkYellow $job.JobName
        }        

        ### ERROR HAPPENS                
        Select-AzureRmSubscription -SubscriptionId subidguid                
        $job = Get-AzureWebsiteJob -Name $webApp.Name -Slot staging

        if($job){
            write-host -ForegroundColor DarkYellow $job.JobName " -staging"
        }
    }
}

基本上,在获取网络作业详细信息之前,我首先选择订阅 ID(缩短):

Select-AzureRmSubscription -SubscriptionId subidguid
$job = Get-AzureWebsiteJob -Name $webApp.Name

正在执行...

选择-AzureRmSubscription -Default -SubscriptionId subguidid

引发不同的错误:

Set-AzureRmContext : 缺少参数的参数 '默认配置文件'。指定类型的参数 'Microsoft.Azure.Commands.Common.Authentication.Abstractions.IAzureContextContainer' 然后再试一次。

我尝试使用DefaultProfile 参数而不是Default。无论我使用Default 传递什么,我都会收到错误:

Set-AzureRmContext:无法绑定参数“DefaultProfile”。不能 将“System.String”类型的“WhatYouEntered”值转换为类型 “Microsoft.Azure.Commands.Common.Authentication.Abstractions.IAzureContextContainer”。

我仍然遇到同样的错误。当我查看Get-AzureWebsiteJob 函数中允许的参数时,我没有看到指定订阅的选项。既然职位应该通过网络应用搜索,并且网络应用返回,为什么这里没有通过订阅 id 找到它?

【问题讨论】:

    标签: powershell azure azure-web-app-service azure-webjobs


    【解决方案1】:

    目前,Azure 经典网站移至 Azure ARM 模块,我们不能使用Get-AzureWebsiteJob 获取网络作业。

    在 ARM PowerShell Cmdlet 中没有直接等效项。

    我们可以使用此命令列出网络应用作业:

    Get-AzureRmResource -ResourceGroupName $ResourceGroupName -ResourceName $AppService -ResourceType microsoft.web/sites/<Webjob-type> -ApiVersion $Apiversion
    

    这是一个例子:

    $Apiversion = "2015-08-01"
    Get-AzureRmResource -ResourceGroupName $ResourceGroupName -ResourceName jasonapp3 -ResourceType microsoft.web/sites/triggeredwebjobs -ApiVersion $Apiversion
    

    我们还可以使用此命令启动或停止 Web 作业。

    Invoke-AzureRmResourceAction -ApiVersion $Apiversion  -ResourceGroupName $ResourceGroupName -ResourceName $ResourceName -ResourceType microsoft.web/sites/<Webjob-type> -Action start/stop  -Force
    

    删除网络作业:

    Remove-AzureRmResource -ApiVersion $Apiversion  -ResourceGroupName $ResourceGroupName -ResourceName $ResourceName -ResourceType microsoft.web/sites/<Webjob-type>/<Webjob-name> -Force
    

    希望这会有所帮助。

    【讨论】:

    • 只是检查提供的信息是否有用。如果您需要进一步的帮助,请告诉我。
    【解决方案2】:

    Get-AzureWebsiteJob 是 Azure 服务管理 PowerShell 模块。

    您需要使用Add-AzureAccount 才能使用以下cmdlet。

    使用此选项选择您的默认订阅:

    Select-AzureSubscription -Default -SubscriptionName "My Production (Pay-As-You-Go)"
    

    您还可以选择使用 -SubscriptionId(和 GUID)代替名称。

    有关Select-AzureSubscription 命令行开关的更多信息;输入Get-Help Select-AzureSubscription

    如果这不起作用,请先尝试运行,然后再选择您的订阅:

    Add-AzureAccount 
    

    更多详情请参考“No default subscription has been designated. Use Select-AzureSubscription -Default <subscriptionName> to set the default subscription”。

    【讨论】:

    • 谢谢;这在答案的第二部分中得到了解决。如果我在运行Get-AzureWebsiteJob 之前使用订阅ID 的GUID 运行Select-AzureRmSubscription ,我仍然会收到相同的错误。至于命令Add-AzureAccoun,它只是要求我再次登录。我可以获取网络应用程序名称,因此它能够返回这些,但是获取这些网络应用程序的工作然后会生成有关“我在做什么订阅????”的错误。即使我指定了。
    猜你喜欢
    • 2015-10-24
    • 2017-05-19
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 2018-01-26
    • 2015-07-06
    • 2016-11-23
    • 1970-01-01
    相关资源
    最近更新 更多