Принудительное преобразование из AzureRM в AZ PowerShell - PullRequest
0 голосов
/ 26 марта 2019

Мы обнаружили, что наши сценарии AzureRM начали давать сбой, при этом служба запроса уровня ошибки завершилась неудачно.Это вынудило нас изменить наши сценарии, чтобы начать использовать модуль PowerShell AZ, https://docs.microsoft.com/en-us/powershell/azure/new-azureps-module-az?view=azps-1.6.0. Преобразование сработало очень хорошо, за исключением того, что я не нашел замену New-AzureWebsiteJob.Кто-нибудь еще сталкивался с этим?

1 Ответ

1 голос
/ 27 марта 2019

Для командлета New-AzureWebsiteJob прямой эквивалент в командлетах PowerShell Az или ARM отсутствует.

Вы можете следить за этим блогом , чтобы достичь своей цели, и учтите, что если вы используете модуль powershell Az, измените ARM Powershell на Az powershell соответственно.

Пример кода для Az PowerShell, как показано ниже:

#Resource details :
$resourceGroupName = "<Resourcegroup name>";
$webAppName = "<WebApp name>";
$Apiversion = 2015-08-01

#Function to get Publishing credentials for the WebApp :
function Get-PublishingProfileCredentials($resourceGroupName, $webAppName){

$resourceType = "Microsoft.Web/sites/config"
$resourceName = "$webAppName/publishingcredentials"
$publishingCredentials = Invoke-AzResourceAction -ResourceGroupName $resourceGroupName -ResourceType 
$resourceType -ResourceName $resourceName -Action list -ApiVersion $Apiversion -Force
   return $publishingCredentials
}

#Pulling authorization access token :
function Get-KuduApiAuthorisationHeaderValue($resourceGroupName, $webAppName){

$publishingCredentials = Get-PublishingProfileCredentials $resourceGroupName $webAppName
return ("Basic {0}" -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f 
$publishingCredentials.Properties.PublishingUserName, $publishingCredentials.Properties.PublishingPassword))))
}

$accessToken = Get-KuduApiAuthorisationHeaderValue $resourceGroupName $webAppname
#Generating header to create and publish the Webjob :
$Header = @{
'Content-Disposition'='attachment; attachment; filename=Copy.zip'
'Authorization'=$accessToken
        }
$apiUrl = "https://$webAppName.scm.azurewebsites.net/api/<Webjob-type>/<Webjob-name>"
$result = Invoke-RestMethod -Uri $apiUrl -Headers $Header -Method put -InFile "<Complete path of the file>\
<filename>.zip" -ContentType 'application/zip' 
...