如何使用 ARM 模板在存储帐户中部署文件共享
How do I deploy file share within storage account using ARM template
我可以使用 ARM 模板成功创建存储帐户,我意识到 ARM 模板不直接支持通过任何现有提供程序在存储帐户上创建文件共享。我想我会编写一个 PowerShell 脚本并在 arm 模板中使用自定义脚本扩展,但它似乎只能在 VM 上 运行 (通常用于 VM 上的 post 设置)。
有没有办法在 PowerShell 中创建文件共享和子目录结构并在我的 ARM 模板部署后执行?
您可以使用以下 powershell:
创建共享
$storageAcct = Get-AzStorageAccount -ResourceGroupName xxx -Name yyy
New-AzStorageShare `
-Name myshare `
-Context $storageAcct.Context
创建文件夹。
New-AzStorageDirectory `
-Context $storageAcct.Context `
-ShareName "myshare" `
-Path "myDirectory"
上传文件。
# this expression will put the current date and time into a new file on your scratch drive
Get-Date | Out-File -FilePath "C:\Users\ContainerAdministrator\CloudDrive\SampleUpload.txt" -Force
# this expression will upload that newly created file to your Azure file share
Set-AzStorageFileContent `
-Context $storageAcct.Context `
-ShareName "myshare" `
-Source "C:\Users\ContainerAdministrator\CloudDrive\SampleUpload.txt" `
-Path "myDirectory\SampleUpload.txt"
来源:https://docs.microsoft.com/en-us/azure/storage/files/storage-how-to-use-files-powershell
老问题我知道,但现在可以使用 ARM 模板创建文件共享 - 在 ARM 中类似于这样:
{
"type": "Microsoft.Storage/storageAccounts/fileServices/shares",
"apiVersion": "2019-06-01",
"name": "[concat(parameters('storageAccountName'), '/default/', parameters('fileShareName'))]",
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
]
}
或者更简单的二头肌:
resource myStorage 'Microsoft.Storage/storageAccounts/fileServices/shares@2019-06-01' = {
name: '${storageAccount.name}/default/${fileShareName}'
}
我可以使用 ARM 模板成功创建存储帐户,我意识到 ARM 模板不直接支持通过任何现有提供程序在存储帐户上创建文件共享。我想我会编写一个 PowerShell 脚本并在 arm 模板中使用自定义脚本扩展,但它似乎只能在 VM 上 运行 (通常用于 VM 上的 post 设置)。
有没有办法在 PowerShell 中创建文件共享和子目录结构并在我的 ARM 模板部署后执行?
您可以使用以下 powershell:
创建共享
$storageAcct = Get-AzStorageAccount -ResourceGroupName xxx -Name yyy
New-AzStorageShare `
-Name myshare `
-Context $storageAcct.Context
创建文件夹。
New-AzStorageDirectory `
-Context $storageAcct.Context `
-ShareName "myshare" `
-Path "myDirectory"
上传文件。
# this expression will put the current date and time into a new file on your scratch drive
Get-Date | Out-File -FilePath "C:\Users\ContainerAdministrator\CloudDrive\SampleUpload.txt" -Force
# this expression will upload that newly created file to your Azure file share
Set-AzStorageFileContent `
-Context $storageAcct.Context `
-ShareName "myshare" `
-Source "C:\Users\ContainerAdministrator\CloudDrive\SampleUpload.txt" `
-Path "myDirectory\SampleUpload.txt"
来源:https://docs.microsoft.com/en-us/azure/storage/files/storage-how-to-use-files-powershell
老问题我知道,但现在可以使用 ARM 模板创建文件共享 - 在 ARM 中类似于这样:
{
"type": "Microsoft.Storage/storageAccounts/fileServices/shares",
"apiVersion": "2019-06-01",
"name": "[concat(parameters('storageAccountName'), '/default/', parameters('fileShareName'))]",
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
]
}
或者更简单的二头肌:
resource myStorage 'Microsoft.Storage/storageAccounts/fileServices/shares@2019-06-01' = {
name: '${storageAccount.name}/default/${fileShareName}'
}