Принудительное преобразование из AzureRM в AZ powershell

#azure #powershell #az

#azure #powershell #az

Вопрос:

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

Ответ №1:

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

Вы можете следить за этим блогом, чтобы достичь своей цели, и обратите внимание, что если вы используете модуль Az powershell, пожалуйста, измените 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'