Как я могу скопировать содержимое файла.csv, помещенного в хранилище файлов Azure, в переменную powershell?
- Я создаю Runbook для автоматизации монотонной задачи БД.
- Мой файл master.csv обновляется каждый час со сведениями обо всех ресурсах нашей инфраструктуры и помещается в систему хранения файлов Azure.
- Я пытаюсь взять имя ресурса (БД) в качестве ввода от пользователя и проверить, существует ли он в моей инфраструктуре Azure, сверяясь с основным файлом инвентаризации.
Моя главная проблема заключается в том, смогу ли я получить содержимое этого CSV(<100 КБ) в переменной, чтобы использовать его для сравнения на следующем шаге?
Я попробовал следующий код:
Файл присутствует в {StorageContainer}/a/b/{имя файла}.csv
$ inventory = import-csv {storageaccntname} / a / b / {filename}.csv
$ inventory = import-csv https: // {имя хранилища_контейнеров} / a / b / {имя файла}.csv
$ inventory = import-csv {случайные буквы дисков, такие как C:,D:,E:}/a/b/{filename}.csv (не думайте, что они даже существуют для хранилища файлов Azure)
Все в результате файла не найдена ошибка.
Я также взглянул на команду Get-AzureStorageFileContent, однако, похоже, она загружает весь файл в месте назначения (не подходит для этой цели).
1 ответ
Поскольку файл.csv хранится в общем хранилище, вы можете использовать Get-AzureStorageFileContent
скачать.csv в $evn:temp
папку в модуле Runbook PowerShell, то вы можете работать с файлом.csv в соответствии с вашими потребностями.
Вот пример:
Предположим, что путь к файлу в хранилище файлов Azure: https://xx.file.core.windows.net/a/b/test.csv
(в этом примере имя общего файлового ресурса - "а").
В PowerShell Runbook:
$storageAccountName ="xx"
$storageAccountKey ="xxxxxx"
$context = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey
# download the test.csv file to the temp folder in runbook
Get-AzureStorageFileContent -ShareName a -Path "b/test.csv" -Destination $env:temp -Context $context
# Then you can do anything to the test.csv file(Note: the file path now is $env:temp\test.csv)
Пожалуйста, дайте мне знать, если возникнут какие-либо проблемы.