Как я могу скопировать содержимое файла.csv, помещенного в хранилище файлов Azure, в переменную powershell?

  • Я создаю Runbook для автоматизации монотонной задачи БД.
  • Мой файл master.csv обновляется каждый час со сведениями обо всех ресурсах нашей инфраструктуры и помещается в систему хранения файлов Azure.
  • Я пытаюсь взять имя ресурса (БД) в качестве ввода от пользователя и проверить, существует ли он в моей инфраструктуре Azure, сверяясь с основным файлом инвентаризации.

Моя главная проблема заключается в том, смогу ли я получить содержимое этого CSV(<100 КБ) в переменной, чтобы использовать его для сравнения на следующем шаге?

Я попробовал следующий код:

Файл присутствует в {StorageContainer}/a/b/{имя файла}.csv

  1. $ inventory = import-csv {storageaccntname} / a / b / {filename}.csv

  2. $ inventory = import-csv https: // {имя хранилища_контейнеров} / a / b / {имя файла}.csv

  3. $ 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)

Пожалуйста, дайте мне знать, если возникнут какие-либо проблемы.

Другие вопросы по тегам