使 Invoke-AzureRmResourceAction 与暂存槽一起使用
Make Invoke-AzureRmResourceAction to work with staging slot
我正在尝试按照 Deploying a WebJob using PowerShell ARM Cmdlets 直接部署 azure webjob。它工作正常。我需要对 PowerShell 脚本进行哪些更改才能部署到插槽?我尝试了一些东西但出现了错误。
PS C:\Users\Venkatesh> Invoke-AzureRmResourceAction -ResourceGroupName "Venky" -ResourceType "Microsoft.Web/sites/config" -ResourceName "WebSiteName/publishingcredentials" -Action list -ApiVersion "2016-08-01" -Force
Invoke-AzureRmResourceAction : ResourceNotFound : The Resource 'Microsoft.Web/sites/WebSiteName' under resource group 'Venky' was not found.
At line:1 char:1
+ Invoke-AzureRmResourceAction -ResourceGroupName "Venky" -Re ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Invoke-AzureRmResourceAction], ErrorResponseMessageException
+ FullyQualifiedErrorId : ResourceNotFound,Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.InvokAzureResourceActionCmdlet
PS C:\Users\Venkatesh> Invoke-AzureRmResourceAction -ResourceGroupName "Venky" -ResourceType "Microsoft.Web/sites/config" -ResourceName "WebSiteName/staging/publishingcredentials" -Action list -ApiVersion "2016-08-01" -Force
Invoke-AzureRmResourceAction :
At line:1 char:1
+ Invoke-AzureRmResourceAction -ResourceGroupName "Venky" -Re ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Invoke-AzureRmResourceAction], ErrorResponseMessageException
+ FullyQualifiedErrorId : NotFound,Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.InvokAzureResourceActionCmdlet
PS C:\Users\Venkatesh> Invoke-AzureRmResourceAction -ResourceGroupName "Venky" -ResourceType "Microsoft.Web/sites/config" -ResourceName "WebSiteName/slots/staging/publishingcredentials" -Action list -ApiVersion "2016-08-01" -Force
Invoke-AzureRmResourceAction :
At line:1 char:1
+ Invoke-AzureRmResourceAction -ResourceGroupName "Venky" -Re ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Invoke-AzureRmResourceAction], ErrorResponseMessageException
+ FullyQualifiedErrorId : NotFound,Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.InvokAzureResourceActionCmdlet
资源类型应为 Microsoft.Web/sites/slots/config
,资源名称应为 <app name>/<slot name>/publishingcredentials
。
例如:
Invoke-AzureRmResourceAction -ResourceGroupName shuiapp -ResourceType Microsoft.Web/sites/slots/config -ResourceName shuicli/shuislot/publishingcredentials -Action list -ApiVersion "2016-08-01" -Force
您可以按如下方式修改您的脚本:
#Resource details :
$resourceGroupName = "";
$webAppName = "";
$slotname = ""
$Apiversion = "2015-08-01"
#Function to get Publishing credentials for the WebApp :
function Get-PublishingProfileCredentials($resourceGroupName, $webAppName, $slotname){
$resourceType = "Microsoft.Web/sites/slots/config"
$resourceName = "$webAppName/$slotname/publishingcredentials"
$publishingCredentials = Invoke-AzureRmResourceAction -ResourceGroupName $resourceGroupName -ResourceType $resourceType -ResourceName $resourceName -Action list -ApiVersion $Apiversion -Force
return $publishingCredentials
}
#Pulling authorization access token :
function Get-KuduApiAuthorisationHeaderValue($resourceGroupName, $webAppName, $slotnmae){
$publishingCredentials = Get-PublishingProfileCredentials $resourceGroupName $webAppName $slotname
return ("Basic {0}" -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f
$publishingCredentials.Properties.PublishingUserName, $publishingCredentials.Properties.PublishingPassword))))
}
$accessToken = Get-KuduApiAuthorisationHeaderValue $resourceGroupName $webAppname $slotname
#Generating header to create and publish the Webjob :
$Header = @{
'Content-Disposition'='attachment; attachment; filename=Copy.zip'
'Authorization'=$accessToken
}
我正在尝试按照 Deploying a WebJob using PowerShell ARM Cmdlets 直接部署 azure webjob。它工作正常。我需要对 PowerShell 脚本进行哪些更改才能部署到插槽?我尝试了一些东西但出现了错误。
PS C:\Users\Venkatesh> Invoke-AzureRmResourceAction -ResourceGroupName "Venky" -ResourceType "Microsoft.Web/sites/config" -ResourceName "WebSiteName/publishingcredentials" -Action list -ApiVersion "2016-08-01" -Force
Invoke-AzureRmResourceAction : ResourceNotFound : The Resource 'Microsoft.Web/sites/WebSiteName' under resource group 'Venky' was not found.
At line:1 char:1
+ Invoke-AzureRmResourceAction -ResourceGroupName "Venky" -Re ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Invoke-AzureRmResourceAction], ErrorResponseMessageException
+ FullyQualifiedErrorId : ResourceNotFound,Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.InvokAzureResourceActionCmdlet
PS C:\Users\Venkatesh> Invoke-AzureRmResourceAction -ResourceGroupName "Venky" -ResourceType "Microsoft.Web/sites/config" -ResourceName "WebSiteName/staging/publishingcredentials" -Action list -ApiVersion "2016-08-01" -Force
Invoke-AzureRmResourceAction :
At line:1 char:1
+ Invoke-AzureRmResourceAction -ResourceGroupName "Venky" -Re ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Invoke-AzureRmResourceAction], ErrorResponseMessageException
+ FullyQualifiedErrorId : NotFound,Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.InvokAzureResourceActionCmdlet
PS C:\Users\Venkatesh> Invoke-AzureRmResourceAction -ResourceGroupName "Venky" -ResourceType "Microsoft.Web/sites/config" -ResourceName "WebSiteName/slots/staging/publishingcredentials" -Action list -ApiVersion "2016-08-01" -Force
Invoke-AzureRmResourceAction :
At line:1 char:1
+ Invoke-AzureRmResourceAction -ResourceGroupName "Venky" -Re ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Invoke-AzureRmResourceAction], ErrorResponseMessageException
+ FullyQualifiedErrorId : NotFound,Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.InvokAzureResourceActionCmdlet
资源类型应为 Microsoft.Web/sites/slots/config
,资源名称应为 <app name>/<slot name>/publishingcredentials
。
例如:
Invoke-AzureRmResourceAction -ResourceGroupName shuiapp -ResourceType Microsoft.Web/sites/slots/config -ResourceName shuicli/shuislot/publishingcredentials -Action list -ApiVersion "2016-08-01" -Force
您可以按如下方式修改您的脚本:
#Resource details :
$resourceGroupName = "";
$webAppName = "";
$slotname = ""
$Apiversion = "2015-08-01"
#Function to get Publishing credentials for the WebApp :
function Get-PublishingProfileCredentials($resourceGroupName, $webAppName, $slotname){
$resourceType = "Microsoft.Web/sites/slots/config"
$resourceName = "$webAppName/$slotname/publishingcredentials"
$publishingCredentials = Invoke-AzureRmResourceAction -ResourceGroupName $resourceGroupName -ResourceType $resourceType -ResourceName $resourceName -Action list -ApiVersion $Apiversion -Force
return $publishingCredentials
}
#Pulling authorization access token :
function Get-KuduApiAuthorisationHeaderValue($resourceGroupName, $webAppName, $slotnmae){
$publishingCredentials = Get-PublishingProfileCredentials $resourceGroupName $webAppName $slotname
return ("Basic {0}" -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f
$publishingCredentials.Properties.PublishingUserName, $publishingCredentials.Properties.PublishingPassword))))
}
$accessToken = Get-KuduApiAuthorisationHeaderValue $resourceGroupName $webAppname $slotname
#Generating header to create and publish the Webjob :
$Header = @{
'Content-Disposition'='attachment; attachment; filename=Copy.zip'
'Authorization'=$accessToken
}