我正在尝试创建一个自动化脚本来创建静态网站并将其部署到Azure存储Blob。
但是,我仍然必须使用Azure.Storage
模块而不是Az.Storage
。 Azure RM中Enable-AzStorageStaticWebsite
是否有等效的Cmdlet?
答案 0 :(得分:2)
不幸的是,如今Azure.Storage
(GA)模块中没有等效的命令,您可以将Enable-AzureStorageStaticWebsite
与Azure.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或更高版本)