Краткое руководство: создание, назначение и запуск задачи хранения с помощью PowerShell

Из этого краткого руководства вы узнаете, как с помощью Azure PowerShell создать задачу хранения и назначить ее учетной записи хранения Azure. Затем вы просмотрите результаты запуска. Задача хранения применяет политику неизменяемости на основе времени для любых документов Microsoft Word, существующих в учетной записи хранения.

Предпосылки

  • Подписка Azure. См. создать бесплатную учетную запись.

  • Учетная запись хранения Azure. См. статью о создании учетной записи хранения. При создании учетной записи обязательно включите поддержку неизменяемости на уровне версии и не включите функцию иерархического пространства имен.

    В публичной среде можно нацеливать только на учетные записи хранения, которые находятся в том же регионе, что и задачи хранения.

  • Роль владельца данных BLOB-объектов назначается вашей пользовательской учетной записи в контексте учетной записи хранения или группы ресурсов.

  • Пользовательская роль, назначенная пользовательскому идентификатору в контексте группы ресурсов, в которой есть действия RBAC, необходимые для назначения задачи аккаунту хранения. Просмотр разрешений, необходимых для назначения задачи.

  • Установлен .NET Framework версии 4.7.2 или более поздней. Дополнительные сведения см. в разделе "Скачать .NET Framework".

  • Версия 5.1 PowerShell или более поздняя.

Установка модуля PowerShell

  1. Убедитесь, что у вас установлена последняя версия PowerShellGet.

    Install-Module PowerShellGet -Repository PSGallery -Force
    
  2. Закройте и снова откройте консоль PowerShell.

  3. Установите версию 7.1.1-preview или более позднюю версию модуля Az.Storage PowerShell. Может потребоваться удалить другие версии модуля PowerShell. Дополнительные сведения об установке Azure PowerShell см. в статье Установка Azure PowerShell с помощью PowerShellGet.

    Install-Module Az.Storage -Repository PsGallery -RequiredVersion 7.1.1-preview -AllowClobber -AllowPrerelease -Force
    
  4. Установите модуль Az.StorageAction .

    Install-Module -Name Az.StorageAction -Repository PSGallery -Force 
    

    Дополнительные сведения об установке модулей PowerShell см. в статье Установка модуля Azure PowerShell.

Вход в учетную запись Azure

  1. Откройте командное окно Windows PowerShell, а затем войдите в учетную запись Azure с Connect-AzAccount помощью команды и следуйте инструкциям на экране.

    Connect-AzAccount
    
  2. Если ваша учетная запись связана с несколькими подписками и вам не предлагается выбрать одну из них, установите активную подписку на ту, которая связана с учетной записью хранилища, с которой вы хотите работать. В этом примере замените значение заполнителя <subscription-id> идентификатором своей подписки.

    Select-AzSubscription -SubscriptionId <subscription-id>
    

Создание задачи хранилища

  1. Определите условие с помощью JSON. Условие — это набор одного или нескольких условий. Каждое предложение содержит свойство, значение и оператор. В следующем формате JSON свойство — Name, значение — .docx, а оператор — endsWith. Это предложение позволяет выполнять операции только в документах Microsoft Word.

    $conditions = "[[endsWith(Name, '.docx')]]"
    

    Полный список свойств и операторов см. в разделе "Условия задачи хранилища".

    Подсказка

    Можно добавить несколько условий в одну строку и разделить их запятыми.

  2. Определите каждую операцию, используя команду New-AzStorageActionTaskOperationObject.

    Следующая операция создает операцию, которая задает политику неизменяемости.

    $policyoperation = New-AzStorageActionTaskOperationObject `
    -Name SetBlobImmutabilityPolicy `
    -Parameter @{"untilDate" = (Get-Date).AddDays(1); "mode" = "locked"} `
    -OnFailure break `
    -OnSuccess continue
    
    

    Следующая операция устанавливает индексный тег BLOB в метаданных документа Word.

    $tagoperation = New-AzStorageActionTaskOperationObject -Name SetBlobTags `
    -Parameter @{"tagsetImmutabilityUpdatedBy"="StorageTaskQuickstart"} `
    -OnFailure break `
    -OnSuccess continue
    
  3. Создайте задачу хранилища с помощью New-AzStorageActionTask команды и передайте условия и операции, определенные ранее. В этом примере создается задача хранения с именем mystoragetask в группе ресурсов в регионе "Западная часть mystoragetaskresourcegroup США".

    $task = New-AzStorageActionTask `
    -Name mystoragetask `
    -ResourceGroupName mystoragetaskresourcegroup `
    -Location westus `
    -Enabled `
    -Description 'my powershell storage task' `
    -IfCondition $conditions `
    -IfOperation $policyoperation,$tagoperation `
    -EnableSystemAssignedIdentity:$true
    

Создать назначение

Назначение задачи хранения указывает учетную запись хранилища. После включения задачи хранения условия и операции задачи будут применены к этой учетной записи хранения. Назначение также содержит свойства конфигурации, которые помогают нацеливаться на определенные блобы или указывать, когда и как часто выполняется задача. Вы можете добавить задание для каждой учетной записи, которую вы хотите нацелить.

  1. Создайте назначение задачи хранилища с помощью команды New-AzStorageTaskAssignment. Следующее назначение направлено на контейнер учетной записи с именем mycontainer, mystorageaccount. Это назначение указывает, что задача будет выполняться только один раз и сохранит отчеты о выполнении в папку с именем storage-tasks-report. Задача запланирована на выполнение через 10 минут от текущего момента.

    $startTime = (Get-Date).AddMinutes(10)   
    
    New-AzStorageTaskAssignment `
    -ResourceGroupName mystoragetaskresourcegroup `
    -AccountName mystorageaccount `
    -name mystoragetaskAssignment `
    -TaskId $task.Id `
    -ReportPrefix "storage-tasks-report" `
    -TriggerType RunOnce `
    -StartOn $startTime.ToUniversalTime() `
    -Description "task assignment" `
    -Enabled:$true `
    -TargetPrefix "mycontainer/"
    
  2. Предоставьте задаче хранилища разрешение на выполнение операций в целевой учетной записи хранения. Назначьте роль Storage Blob Data Owner управляемого удостоверения, назначаемого системой задачи хранения, с помощью New-AzRoleAssignment команды.

    New-AzRoleAssignment `
    -ResourceGroupName mystoragetaskresourcegroup `
    -ResourceName mystorageaccount `
    -ResourceType "Microsoft.Storage/storageAccounts" `
    -ObjectId $task.IdentityPrincipalId  `
    -RoleDefinitionName "Storage Blob Data Owner"
    

Просмотр результатов выполнения задачи

После завершения выполнения задачи получите сводку отчёта о выполнении для каждого задания, используя команду Get-AzStorageActionTasksReport.

Get-AzStorageActionTasksReport `
-ResourceGroupName mystoragetaskresourcegroup `
-StorageTaskName mystoragetask | Format-List

Поле SummaryReportPath каждой сводки отчета содержит путь к подробному отчету. Этот отчет содержит список, в котором через запятую перечислены контейнер, блоб, выполненная операция и статус.

Очистите ресурсы

Удалите все созданные ресурсы. Самый простой способ удалить ресурсы — удалить группу ресурсов. При удалении группы ресурсов также удаляются все ресурсы, включенные в группу. В следующем примере удаление группы ресурсов удаляет учетную запись хранения и саму группу ресурсов.

Remove-AzResourceGroup -Name $ResourceGroup 

Дальнейшие шаги

Создание задачи хранилища

Справочник по командлетам действий хранилища Microsoft Azure PowerShell