이 빠른 시작에서는 Azure PowerShell을 사용하여 스토리지 작업을 만들고 Azure Storage 계정에 할당하는 방법을 알아봅니다. 그런 다음 실행 결과를 검토합니다. 스토리지 작업은 스토리지 계정에 있는 모든 Microsoft Word 문서에 시간 기반 불변성 정책을 적용합니다.
필수 조건
Azure 구독. 무료로 계정 만들기를 참조하세요.
Azure 스토리지 계정. 스토리지 계정 만들기를 참조하세요. 계정을 만들 때 버전 수준 불변성 지원을 사용하도록 설정하고 계층 구조 네임스페이스 기능을 사용하도록 설정하지 않도록 해야 합니다.
퍼블릭 중에는 스토리지 작업과 동일한 지역에 있는 스토리지 계정만 대상으로 지정할 수 있습니다.
Storage Blob 데이터 소유자 역할은 스토리지 계정 또는 리소스 그룹의 컨텍스트에서 사용자 ID에 할당됩니다.
스토리지 계정에 작업을 할당하는 데 필요한 RBAC 작업이 포함된 리소스 그룹의 컨텍스트에서 사용자 ID에 할당된 사용자 지정 역할입니다. 작업을 할당하는 데 필요한 사용 권한을 참조하세요.
.NET Framework 4.7.2 이상이 설치되어 있습니다. 자세한 내용은 .NET Framework 다운로드를 참조하세요.
PowerShell 버전
5.1이상
PowerShell 모듈 설치
최신 버전의 PowerShellGet이 설치되어 있는지 확인합니다.
Install-Module PowerShellGet -Repository PSGallery -ForcePowerShell 콘솔을 닫은 다음 다시 엽니다.
Az.Storage PowerShell 모듈 버전 7.1.1-preview 이상을 설치합니다. 다른 버전의 PowerShell 모듈을 제거해야 할 수도 있습니다. Azure PowerShell을 설치하는 방법에 대한 자세한 내용은 PowerShellGet을 사용하여 Azure PowerShell 설치를 참조하세요.
Install-Module Az.Storage -Repository PsGallery -RequiredVersion 7.1.1-preview -AllowClobber -AllowPrerelease -ForceAz.StorageAction 모듈을 설치합니다.
Install-Module -Name Az.StorageAction -Repository PSGallery -ForcePowerShell 모듈 설치 방법에 대한 자세한 내용은 Azure PowerShell 모듈 설치를 참조하세요.
Azure 계정에 로그인
Windows PowerShell 명령 창을 열고
Connect-AzAccount명령을 실행하여 Azure 계정에 로그인한 다음 화면의 안내에 따라 진행합니다.Connect-AzAccountID가 둘 이상의 구독과 연결되어 있고 구독을 선택하라는 메시지가 표시되지 않는 경우 활성 구독을 작동하려는 스토리지 계정의 구독으로 설정합니다. 이 예제에서는
<subscription-id>자리 표시자 값을 해당 구독의 ID로 바꿉니다.Select-AzSubscription -SubscriptionId <subscription-id>
스토리지 태스크 만들기
JSON을 사용하여 조건을 정의합니다. 조건은 하나 이상의 절의 집합입니다. 각 절에는 속성, 값, 연산자가 포함됩니다. 다음 JSON에서 속성은
Name값이며.docx연산자는 다음과 같습니다endsWith. 이 절은 Microsoft Word 문서에서만 작업을 허용합니다.$conditions = "[[endsWith(Name, '.docx')]]"속성 및 연산자의 전체 목록은 Storage 작업 조건을 참조하세요.
팁 (조언)
동일한 문자열에 여러 조건을 추가하고 쉼표로 구분할 수 있습니다.
명령을 사용하여 각 작업을 정의합니다
New-AzStorageActionTaskOperationObject.다음 작업은 불변성 정책을 설정하는 작업을 만듭니다.
$policyoperation = New-AzStorageActionTaskOperationObject ` -Name SetBlobImmutabilityPolicy ` -Parameter @{"untilDate" = (Get-Date).AddDays(1); "mode" = "locked"} ` -OnFailure break ` -OnSuccess continue다음 작업은 Word 문서의 메타데이터에서 Blob 인덱스 태그를 설정합니다.
$tagoperation = New-AzStorageActionTaskOperationObject -Name SetBlobTags ` -Parameter @{"tagsetImmutabilityUpdatedBy"="StorageTaskQuickstart"} ` -OnFailure break ` -OnSuccess continue명령을 사용하여
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
할당 만들기
스토리지 작업 할당 은 스토리지 계정을 지정합니다. 스토리지 작업을 사용하도록 설정하면 작업의 조건과 작업이 해당 스토리지 계정에 적용됩니다. 또한 할당에는 특정 Blob을 대상으로 지정하거나 태스크가 실행되는 시기와 빈도를 지정하는 데 도움이 되는 구성 속성이 포함되어 있습니다. 대상으로 지정할 각 계정에 대한 할당을 추가할 수 있습니다.
명령을 사용하여 스토리지 작업 할당을 만듭니다
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/"대상 스토리지 계정에 대한 작업을 수행할 수 있는 스토리지 작업 권한을 부여합니다. 스토리지 작업의 시스템 할당 관리 ID에
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 자세한 보고서의 경로가 포함됩니다. 해당 보고서에는 쉼표로 구분된 컨테이너 목록, Blob 및 상태와 함께 수행된 작업이 포함됩니다.
자원을 정리하세요
만든 자산을 모두 제거합니다. 자산을 제거하는 가장 쉬운 방법은 리소스 그룹을 삭제하는 것입니다. 리소스 그룹을 제거하면 그룹 안에 포함된 모든 리소스가 삭제됩니다. 다음 예제에서 리소스 그룹을 제거하면 스토리지 계정 및 리소스 그룹 자체가 제거됩니다.
Remove-AzResourceGroup -Name $ResourceGroup