Как развернуть общий файловый ресурс в учетной записи хранения, используя шаблон ARM

Я могу успешно создать учетную запись хранения, используя шаблон ARM, и я понимаю, что шаблон ARM напрямую не поддерживает создание общего файлового ресурса в учетной записи хранения через какого-либо из существующих поставщиков. Я думал, что напишу сценарий PowerShell и воспользуюсь собственным расширением сценария в шаблоне arm, но кажется, что он может работать только на виртуальной машине (обычно используется для постустановки на виртуальной машине).

Есть ли способ создать файловую папку и дочернюю структуру каталогов в PowerShell и выполнить ли это после развертывания моего шаблона ARM?

2 ответа

Решение

Вы можете использовать следующую 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}'
}
Другие вопросы по тегам