Azure RM PowerShell模块中的Enable-AzStorageStaticWebsite命令

时间:2018-12-17 16:37:12

标签: azure azure-powershell azure-rm

我正在尝试创建一个自动化脚本来创建静态网站并将其部署到Azure存储Blob。

但是,我仍然必须使用Azure.Storage模块而不是Az.Storage。 Azure RM中Enable-AzStorageStaticWebsite是否有等效的Cmdlet?

enter image description here

3 个答案:

答案 0 :(得分:2)

不幸的是,如今Azure.Storage(GA)模块中没有等效的命令,您可以将Enable-AzureStorageStaticWebsiteAzure.Storage 4.4.1-preview一起使用,但是Az模块是一个新的powershell模块也适用于Azure Resource Manager ,也许您可​​以尝试一下。

如果您想使用AzureRM运行为Az开发的脚本,请使用Enable/Disable-AzureRmAlias cmdlet将别名从AzureRM cmdlet添加或删除到Az cmdlet。

有关更多详细信息,请参阅此link

答案 1 :(得分:1)

我强烈建议您使用Az模块。在AzureRM中,静态网站是Azure中的预览。存储:https://www.powershellgallery.com/packages/Azure.Storage/4.4.1-preview

答案 2 :(得分:1)

您也可以自己命名:

#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或更高版本)