Executando comandos do Azure PowerShell a partir de um webjob
Atualizar: Usei a Automação do Azure por sugestão do BenV abaixo e funcionou! Mais informações podem ser encontradasaqui.
Eu tenho um script do PowerShell que precisa executar alguns comandos do Azure, comoNew-AzureStorageContext
, Get-AzureStorageContainer
, Set-AzureStorageBlobContent
etc. Gostaria de executar o script como um webjob.
Quando executo esse script como um emprego na web, recebo erros abaixo nos comandos do Azure. Outros comandos do PS são executados com êxito a partir do webjob.
Pesquisei no StackOverflow e não consegui encontrar postagens para esses erros gerados quando os comandos do Azure são executados a partir de um webjob. Postagens relacionadas mencionadas para usoImport-Module
que é semelhante ao conselho dado abaixo.
Um post do blog do MSDN mais antigo sugeriu a adição de "Módulo de importação Azure.ps1" no script PS e incluiu o Azure.ps1 no arquivo zip do webjob. (Na verdade, é Azure.psd1 do meu C: \ Arquivos de Programas (x86) \ Microsoft SDKs \ Azure \ PowerShell \ ServiceManagement \ Azure local). Separadamente, tentei o Import-Module com o Azure.psd1 e o Azure.ps1 pensando que os erros podem estar relacionados à extensão do arquivo, mas não estava.
Meu arquivo .zip do webjob possui apenas meu arquivo .CMD, GetLinks.ps1 e Azure.ps1.
Meu arquivo .CMD inicia meu script PS com: PowerShell.exe -ExecutionPolicy RemoteSigned -File GetLinks.ps1
Na parte superior deste arquivo .ps1, tenho: "Import-Module. \ Azure.ps1". Isso é executado com êxito, pois eu vejo instruções "INFO" no meu log de execução do WebJob.
Em seguida, meu script PS tenta executar os comandos do Azure PS e ainda recebo os mesmos erros, como o exemplo de erro abaixo.
New-AzureStorageContext : The term 'New-AzureStorageContext' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At D:\local\Temp\jobs\triggered\getlinks2\b2025qk5.ddj\GetLinks.ps1:75 char:19
+ $storageContext = New-AzureStorageContext -StorageAccountName $storageAccountNam ...
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (New-AzureStorageContext:String) [], CommandNotFoundException
+ FullyQualifiedErrorId: CommandNotFoundException