Это можно сделать с помощью хранилища BLOB-объектов Azure в Runbook.
Сначала , вам нужно импортировать Microsoft.WindowsAzure.Storage.dll
в хранилище BLOB-объектов Azure в качестве модуля в модуле Runbook. Выполните следующие действия:
1.Получите Microsoft.WindowsAzure.Storage.dll
. Если вы не знаете, как его получить, просто откройте Visual Studio -> создайте проект консоли .net Framework -> затем щелкните правой кнопкой мыши проект консоли -> Управление пакетами Nuget, затем найдите и загрузите хранилище BLOB-объектов Azure SDK * 1009. * WindowsAzure.Storage
2.После установки пакета соберите консольный проект, затем в папке bin -> debug вы увидите Microsoft.WindowsAzure.Storage.dll
.
3.PutMicrosoft.WindowsAzure.Storage.dll
в zip-файл с именем Microsoft.WindowsAzure.Storage.zip
4. Перейдите на портал Azure -> свою учетную запись автоматизации -> на левой панели нажмите «Модули» -> Добавить модуль -> выберите. zip-файл на шаге 2. Вам нужно подождать несколько минут, чтобы модуль завершил загрузку (когда он завершает загрузку, вы можете найти статус Microsoft.WindowsAzure.Storage module is Available ), см. снимок экрана ниже:
Во-вторых , создайте модуль запуска powershell и напишите код, как показано ниже. Здесь я просто загружаю строку, используя метод UploadText("your_string_text")
. Обратите внимание, что , так как SDK предоставляет много способов загрузки, вы должны проверить возвращаемое значение из api в формате text / stream / byte, а затем выбрать правильный метод загрузки, например UploadFromStream(your_stream)
/ UploadFromByteArray(byte[] buffer, int index, int count)
:
Write-Output "start the test"
Add-Type -Path "C:\Modules\User\Microsoft.WindowsAzure.Storage\Microsoft.WindowsAzure.Storage.dll"
$access_token ="Access_Token"
$URI = "https://XXXXX"
$headers = @{“authorization” = “Bearer $access_token”}
[Net.ServicePointManager]::SecurityProtocol =
[Net.SecurityProtocolType]::Tls12
$result = Invoke-RestMethod -Uri $URI -Headers $headers -ContentType $ContentType |ConvertTo-Json
$blob_content_to_upload = $Result|ConvertFrom-Json| Select -ExpandProperty Forms
$account_name = "xxx"
$account_key = "xxx"
$container_name = "test1"
$blob_name = "testfile3.txt"
Write-Output "start communicate with blob storage"
$creds = New-Object "Microsoft.WindowsAzure.Storage.Auth.StorageCredentials" -ArgumentList $account_name,$account_key
$storageAccount = New-Object "Microsoft.WindowsAzure.Storage.CloudStorageAccount" -ArgumentList $creds,$true
$cloudBlobClient = $storageAccount.CreateCloudBlobClient()
$cloudBlobContainer = $cloudBlobClient.GetContainerReference($container_name)
$myblob = $cloudBlobContainer.GetBlockBlobReference($blob_name)
#note that the sdk also provides other methods like UploadFromStream(your_stream) / UploadFromByteArray(byte[] buffer, int index, int count), you can choose the proper method for your purpose.
$myblob.UploadText($blob_content_to_upload)
Write-Output("***the test is completed***")
Затем вы можете запустить модуль Runbook, после его завершения вы увидите, что большой двоичный объект создается в хранилище BLOB-объектов с соответствующим содержимым. Обратите внимание, что во время работы, может быть, ошибка говорит о загрузке модулей, но это не имеет значения.
Результат теста, блоб создается в хранилище больших двоичных объектов.
Если вы хотите указать тип содержимого, просто добавьтеэта строка кода: $myblob.Properties.ContentType = "your_content_type"