在Start-Job中运行时,调用Web请求发布未到达API

时间:2019-02-19 20:33:39

标签: azure powershell azure-powershell

我有一个Powershell脚本,该脚本调用要在Azure Runbook中运行的API以使其自动化。从Web请求获取响应需要花费超过4分钟的时间,因此我只需要启动并忘记它,以避免在Azure中触发错误。

我已经尝试过使用Start-Job和-asJob,但是它们中的任何一个都没有运气。我是Powershell的新手,我曾经尝试过像疯了似的谷歌搜索,但是运气不高。

在不作为工作运行时,一切正常。任何帮助将不胜感激!

编辑:经过进一步的挖掘后,我认为这是因为Azure的Powershell处于“受限语言模式”,或者至少由于某种原因受到了限制,因为我收到此错误Cannot invoke method. Method invocation is supported only on core types in this language mode.而且脚本在我的本地计算机上也可以正常运行。还有别的开火和忘记的方法吗?

脚本:

    Start-Job -ScriptBlock {
    $url = "api.com/apitocall"
    $ID = [System.guid]::New("id")
    $ApiKey = "apikey"
    $credPair = "$($ID):$($ApiKey)"
    $encodedCredentials = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($credPair))
    $headers = @{ Authorization = "Basic $encodedCredentials" }
    $headers.Add('Accept','Application/Json')
    $responseData = Invoke-WebRequest -Uri $url -Method POST -Headers $headers - 
    UseBasicParsing -TimeoutSec 660
    Write-Output($responseData)
    }
Get-Job | Wait-Job

输出:

    Id     Name            PSJobTypeName   State         HasMoreData     Location             Command                  
--     ----            -------------   -----         -----------     --------             -------                  
1      Job1            BackgroundJob   Running       True            localhost            ...                      
1      Job1            BackgroundJob   Completed     True            localhost            ...      

0 个答案:

没有答案