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