Команда Enable-AzStorageStaticWebsite в модуле Azure RM PowerShell

Я пытаюсь создать автоматический сценарий для создания и развертывания статического веб-сайта в хранилище больших двоичных объектов Azure.

Тем не менее, я все еще должен использовать Azure.Storage модуль вместо Az.Storage, Есть ли эквивалентный командлет для Enable-AzStorageStaticWebsite в лазурном рм?

2 ответа

Решение

К сожалению, нет эквивалентной команды в Azure.Storage (GA) модуль в настоящее время, вы можете использовать Enable-AzureStorageStaticWebsite с Azure.Storage 4.4.1-preview, но Az module - это новый модуль powershell, также для Azure Resource Manager, возможно, вы можете попробовать.

Если вы хотите запустить сценарии, разработанные для AzureRM с помощью Az, использовать Enable/Disable-AzureRmAlias командлеты для добавления или удаления псевдонимов из командлетов AzureRM в командлеты Az.

Для более подробной информации, обратитесь к этой ссылке.

Я очень рекомендую использовать модуль Az для этого. В AzureRM статические веб-сайты представляют собой предварительный просмотр в Azure.Storage: https://www.powershellgallery.com/packages/Azure.Storage/4.4.1-preview

Вы также можете назвать это сами:

#function to Enable static website for the Azure Storage account.
Function Enable-AzureRmStorageStaticWebsite(
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext] [Parameter(Mandatory = $true)] $Context,
    [string] [Parameter(Mandatory = $true)] $IndexDocument,
    [string] [Parameter(Mandatory = $true)] $ErrorDocument404Path
) {
    $sasToken = New-AzureStorageAccountSASToken -Context $Context `
        -Service Blob -ResourceType Service -Protocol HttpsOnly -Permission wla `
        -StartTime (Get-Date).AddHours(-1) -ExpiryTime (Get-Date).AddHours(4)
    $body = (@'
<?xml version="1.0" encoding="utf-8"?>  
<StorageServiceProperties>
<StaticWebsite>
    <Enabled>true</Enabled>
    <IndexDocument>{0}</IndexDocument>
    <ErrorDocument404Path>{1}</ErrorDocument404Path>
</StaticWebsite>
</StorageServiceProperties>
'@ -f $IndexDocument, $ErrorDocument404Path)
    $headers = @{"x-ms-version" = "2018-03-28"; "x-ms-date" = (Get-Date -Format R); "Content-Type" = "application/xml"; "Content-Length" = [string]$body.length }
    $apiUrl = ("{0}{1}&restype=service&comp=properties" -f $Context.BlobEndPoint, $sasToken)
    Write-Verbose ('Enable-AzureRmStorageStaticWebsite -IndexDocument {0} -ErrorDocument404Path {1}' -f $IndexDocument, $ErrorDocument404Path)
    Invoke-RestMethod -Method Put -Uri $apiUrl -Headers $headers -Body $body    
}

Убедитесь, что вы установили модуль Azure.Storage, поддерживающий api-версию хранилища '2018-03-28' (я считаю, что версия powershell: 4.4.1 или выше)

Другие вопросы по тегам