Как я могу скопировать содержимое файла .csv, помещенного в хранилище файлов Azure, в переменную powershell? - PullRequest
0 голосов
/ 20 января 2019
  • Я создаю книгу запусков для автоматизации монотонной задачи БД.
  • Мой файл master.csv обновляется каждый час со сведениями обо всех ресурсах нашей инфраструктуры и помещается в файл Azure.система хранения.
  • Я пытаюсь взять имя ресурса (БД) в качестве ввода от пользователя и проверить, существует ли он в моей инфраструктуре Azure, проверив его по основному файлу инвентаризации.

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

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

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

  1. $ инвентаризация = import-csv{storageaccntname} / a / b / {имя файла} .csv

  2. $ инвентаризация = import-csv https://{storagecontainername}/a/b/{filename}.csv

  3. $ инвентаризация = import-csv {случайные буквы дискакак C:, D:, E:} / a / b / {имя_файла} .csv (не думайте, что они даже существуют для хранилища файлов Azure)

Все, что привело к ошибке "файл не найден".

Я также взглянул на команду Get-AzureStorageFileContent, однако, похоже, что весь файл загружается по назначению (неслужить цели).

1 Ответ

0 голосов
/ 21 января 2019

Так как файл .csv хранится в общем хранилище файлов, вы можете использовать Get-AzureStorageFileContent для загрузки .csv в папку $evn:temp в модуле запуска powershell, тогда вы можете работать с файлом .csv в соответствии с вашими потребностями.

Вот пример:

Предположим, что путь к файлу в хранилище файлов Azure: https://xx.file.core.windows.net/a/b/test.csv (в этом примере имя общего файлового ресурса - «a»).

В runbook PowerShell:

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

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

...