为特定于租户的容器实施 Azure Data Lake 存储生命周期规则

问题描述 投票:0回答:1

我正在使用 Azure Data Lake Storage (ADLS),并拥有多租户设置,其中每个租户都有一个单独的容器。每个租户容器内的文件夹结构都是标准化的,并包含一个 Processed 目录,其结构如下:

<tenantIdContainer>\Processed

我正在尝试跨这些容器实施生命周期管理规则。目标是在特定时间段后自动将 Processed 目录中的文件移至冷存储。我最初尝试创建此规则涉及使用以 * 开头的通配符模式,但此方法不起作用。

我正在寻求有关如何在 ADLS 中为此类特定于租户的容器设置正确设置这些生命周期规则的指导。您能否就此提供一些指导?

azure storage azure-data-lake
1个回答
0
投票

为特定于租户的容器实施 Azure Data Lake 存储生命周期规则

我认为您不能在单个规则中应用此条件。您可以通过使用容器名称创建多个规则来应用此条件。

您可以使用下面的PowerShell脚本;它将为每个容器创建每个规则以实现 Azure 生命周期规则。

脚本:

Connect-AzAccount
Select-AzSubscription -SubscriptionId "xxxxx"

$ctx = New-AzStorageContext -StorageAccountName 'xxxx' -UseConnectedAccount
$containers = Get-AzStorageContainer -Context $ctx

$rules = @()

foreach ($container in $containers) {
    $path = "$($container.Name)/Processed/"
    $action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction TierToCool -DaysAfterModificationGreaterThan 30
    $filter = New-AzStorageAccountManagementPolicyFilter -PrefixMatch $path -BlobType BlockBlob
    $rule = New-AzStorageAccountManagementPolicyRule -Name "Move to cold storage-$($container.Name)" -Action $action -Filter $filter
    $rules += $rule
}

# Apply all the rules after the loop
Set-AzStorageAccountManagementPolicy -ResourceGroupName "xxxx" -StorageAccountName 'xxx' -Rule $rules

上述脚本为存储帐户中的每个容器创建单独的规则。这些规则存储在一个名为

$rules
的数组中,并且每个规则都在一个循环内添加到该数组中,该循环遍历存储帐户中的所有容器。创建所有规则后,脚本使用
Set-AzStorageAccountManagementPolicy
cmdlet 将它们应用到存储帐户。

输出:

ResourceGroupName  : xxxx
StorageAccountName : xxxx
Id                 : /subscriptions/xxx/resourceGroups/xxxx/providers/Microsoft.Storage/storageAccounts/xxx/managementPolicies/default
Type               : Microsoft.Storage/storageAccounts/managementPolicies
LastModifiedTime   : 23-01-2024 06:29:48
Rules              : [
                         {
                             "Enabled":  true,
                             "Name":  "Move to cold storage-3efaxxxx",
                             "Definition":  {
                                                "Actions":  {
                                                                "BaseBlob":  {
                                                                                 "TierToCool":  {
                                                                                                    
                     "DaysAfterModificationGreaterThan":  30,
                                                                                                    
                     "DaysAfterLastAccessTimeGreaterThan":  null,
                                                                                                    
                     "DaysAfterCreationGreaterThan":  null,
                                                                                                    
                     "DaysAfterLastTierChangeGreaterThan":  null
                                                                                                },
                                                                                 "TierToArchive":  null,
                                                                                 "Delete":  null,
                                                                                 "TierToCold":  null,
                                                                                 "TierToHot":  null,
                                                                                 "EnableAutoTierToHotFromCool":  null
                                                                             },
                                                                "Snapshot":  null,
                                                                "Version":  null
                                                            },
                                                "Filters":  {
                                                                "PrefixMatch":  [
                                                                                    
                     "3xxxx/Processed/"
                                                                                ],
                                                                "BlobTypes":  [
                                                                                  "blockBlob"
                                                                              ],
                                                                "BlobIndexMatch":  null
                                                            }
                                            }
                         },
                         {
                             "Enabled":  true,
                             "Name":  "Move to cold storage-72f98xxx",
                             "Definition":  {
                                                "Actions":  {
                                                                "BaseBlob":  {
                                                                                 "TierToCool":  {
                                                                                                    
                     "DaysAfterModificationGreaterThan":  30,
                                                                                                    
                     "DaysAfterLastAccessTimeGreaterThan":  null,
                                                                                                    
                     "DaysAfterCreationGreaterThan":  null,
                                                                                                    
                     "DaysAfterLastTierChangeGreaterThan":  null
                                                                                                },
                                                                                 "TierToArchive":  null,
                                                                                 "Delete":  null,
                                                                                 "TierToCold":  null,
                                                                                 "TierToHot":  null,
                                                                                 "EnableAutoTierToHotFromCool":  null
                                                                             },
                                                                "Snapshot":  null,
                                                                "Version":  null
                                                            },
                                                "Filters":  {
                                                                "PrefixMatch":  [
                                                                                    
                     "7xxxx/Processed/"
                                                                                ],
                                                                "BlobTypes":  [
                                                                                  "blockBlob"
                                                                              ],
                                                                "BlobIndexMatch":  null
                                                            }
                                            }
                         },
                         {
                             "Enabled":  true,
                             "Name":  "Move to cold storage-da10xxxxx",
                             "Definition":  {
                                                "Actions":  {
                                                                "BaseBlob":  {
                                                                                 "TierToCool":  {
                                                                                                    
                     "DaysAfterModificationGreaterThan":  30,
                                                                                                    
                     "DaysAfterLastAccessTimeGreaterThan":  null,
                                                                                                    
                     "DaysAfterCreationGreaterThan":  null,
                                                                                                    
                     "DaysAfterLastTierChangeGreaterThan":  null
                                                                                                },
                                                                                 "TierToArchive":  null,
                                                                                 "Delete":  null,
                                                                                 "TierToCold":  null,
                                                                                 "TierToHot":  null,
                                                                                 "EnableAutoTierToHotFromCool":  null
                                                                             },
                                                                "Snapshot":  null,
                                                                "Version":  null
                                                            },
                                                "Filters":  {
                                                                "PrefixMatch":  [
                                                                                    
                     "dxxxx/Processed/"
                                                                                ],
                                                                "BlobTypes":  [
                                                                                  "blockBlob"
                                                                              ],
                                                                "BlobIndexMatch":  null
                                                            }
                                        }
                     }
                 ]

enter image description here

参考:

配置生命周期管理策略-Azure 存储 |微软学习

© www.soinside.com 2019 - 2024. All rights reserved.