存储任务可以对 Azure 存储帐户中的 Blob 执行操作。 创建任务时,可以定义每个对象(容器或 Blob)必须满足的条件,以及要对对象执行的操作。 还可以标识一个或多个 Azure 存储帐户目标。 请参阅什么是 Azure 存储操作?。
在 Azure 门户中,搜索“存储任务”。 然后,在“服务”下选择“存储任务 - Azure 存储操作”。
在“Azure 存储操作 | 存储任务”页,选择“创建”。
“基本信息”选项卡
“基本信息”选项卡上提供了存储任务的基本信息。 下表描述了“基本信息”选项卡上的字段。
部分 |
字段 |
必需或可选 |
说明 |
项目详细信息 |
订阅 |
必须 |
选择新存储任务的订阅。 |
项目详细信息 |
资源组 |
必须 |
为此存储任务创建新的资源组,或选择现有的资源组。 有关详细信息,请参阅资源组。 |
实例详细信息 |
存储任务名称 |
必须 |
为存储任务选择唯一的名称。 存储任务名称的长度必须介于 3 到 18 个字符之间,并且只能包含小写字母和数字。 |
实例详细信息 |
区域 |
必须 |
为存储任务选择相应的区域。 有关详细信息,请参阅 Azure 中的区域和可用性区域。 |
实例详细信息 |
用户分配的标识 |
可选 |
(可选)将用户分配的托管标识与此存储任务相关联。 用户分配的托管标识是一种托管标识,表示为独立的 Azure 资源,与使用它的资源分开管理。 以后无法关联。 因此,如果要使用用户分配的托管标识,则必须在创建存储任务时选择一个。 默认情况下,预配存储任务时会创建系统分配的托管标识。 若要了解详细信息,请参阅 存储任务分配 若要选择用户分配的托管标识,请选择 选择标识。 在 “选择用户分配的托管标识 ”页上,筛选并选择托管标识。 然后选择“添加”。 只能在创建存储任务时添加选择用户分配的托管标识。 |
下图显示了“基本信息”选项卡的示例。
“条件”选项卡
在“条件”选项卡上,定义每个对象(容器或 Blob)必须满足的条件,以及要对该对象执行的操作。
必须至少定义一个条件和一个操作。 要向条件添加子句,请选择“添加新子句”。 要添加操作,请选择“添加新操作”。
下表描述了“条件”选项卡上的字段。
部分 |
字段 |
必需或可选 |
说明 |
如果 |
和/或 |
必须 |
将两个或多个谓词组合成逻辑 AND 或逻辑 OR 表达式的运算符。 |
如果 |
Blob 属性 |
必须 |
你希望在子句中使用的 Blob 或容器属性。 请参阅支持的 Blob 属性 |
如果 |
操作员 |
必须 |
定义子句中每个属性必须如何与相应值相关的运算符。 请参阅支持的运算符 |
如果 |
属性值 |
必须 |
与相应属性相关的值。 |
则 |
运营 |
必须 |
当对象满足此任务中定义的条件时要执行的操作。 请参阅支持的操作 |
则 |
参数 |
必须 |
操作使用的值。 |
下图显示了“条件”选项卡的示例。
可以选择 “预览条件 ”以查看受已定义的条件影响的 blob 列表。 若要了解详细信息,请参阅 预览条件的效果。
“分配”选项卡
分配会标识存储帐户和该账户中任务将面向的对象子集。 分配还指定任务何时运行,以及存储执行报告的位置。
要添加分配,请选择“添加分配”。 此步骤是可选的。 无需添加工作分配来创建任务。
下表描述了“添加分配”窗格中显示的字段。
选择要分配给存储任务的系统分配托管标识的角色。 若要确保任务分配成功,请使用具有 Blob 数据所有者权限的角色。 若要了解详细信息,请参阅 存储任务的 Azure 角色
部分 |
字段 |
必需或可选 |
说明 |
选择范围 |
订阅 |
必须 |
要添加到此分配的存储帐户的订阅。 |
选择范围 |
选择存储帐户 |
必须 |
要添加到此分配的存储帐户。 |
选择范围 |
分配名称 |
必须 |
分配的名称。 赋值名称长度必须介于 2 到 62 个字符之间,并且只能包含字母和数字。 |
角色分配 |
分配名称 |
必须 |
要分配给存储任务的托管标识的角色。 若要详细了解要选择的角色,请参阅 执行任务操作的权限。 |
筛选对象 |
筛选条件 |
必须 |
使用前缀或针对整个存储帐户运行任务来筛选对象的选项。 |
筛选对象 |
Blob 前缀 |
可选 |
用于缩小任务评估的 Blob 范围的字符串前缀。 仅当选择使用 Blob 前缀进行筛选,才需要填写此字段。 |
触发器详细信息 |
运行频率 |
必须 |
选择是一次还是多次运行任务的选项。 |
触发器详细信息 |
开始位置 |
必须 |
开始运行任务的日期和时间。 |
触发器详细信息 |
结束时间 |
必须 |
停止运行任务的日期和时间。 |
触发器详细信息 |
重复间隔(以天为单位) |
必须 |
每次运行之间间隔的天数。 |
触发器详细信息 |
报告导出容器 |
必须 |
存储任务执行报告的容器。 |
下图显示了“添加分配”窗格的示例。
在标记选项卡上,可以指定资源管理器标记以帮助整理 Azure 资源。 有关详细信息,请参阅标记资源、资源组和订阅以合理进行整理。
下图显示了新存储帐户的索引标记属性的标准配置。
“查看 + 创建”选项卡
导航到“查看 + 创建”选项卡时,Azure 会对你选择的存储任务设置运行验证。 如果验证通过,则可以继续创建存储任务。
如果验证失败,门户将指示需要修改哪些设置。
下图显示了创建新存储任务之前的“查看”选项卡数据。
首先,安装必要的 PowerShell 模块。 请参阅 安装 PowerShell 模块
使用 JSON 定义 条件 。 一个条件就是一个或多个条款的集合。 每个子句都包含一个属性、一个值和一个运算符。 若要了解详细信息,请参阅 存储任务条件。
$condition = "<condition-json>"
使用 New-AzStorageActionTaskOperationObject 命令定义每个操作。 若要了解详细信息,请参阅 存储任务操作
$operation = New-AzStorageActionTaskOperationObject `
-Name "<operation-name>" `
-Parameter @{"<parameter-name>"= "<parameter-value"} `
-OnFailure break `
-OnSuccess continue
使用 New-AzStorageActionTask 命令创建存储任务,并传入定义的任何条件和操作。 以下命令创建存储任务并启用任务的系统托管标识。 存储任务分配使用应用于该系统托管标识的权限来授权访问。
$task = New-AzStorageActionTask `
-Name "<storage-task-name>" `
-ResourceGroupName "<resource-group>" `
-Location "<___location>" `
-Enabled `
-Description "<description>" `
-IfCondition $condition `
-IfOperation $operation `
-EnableSystemAssignedIdentity:$true
如果希望通过用户分配的托管标识进行授权分配,则必须将该标识作为 New-AzStorageActionTask 命令的参数提供。 以下命令创建存储任务并指定用户分配的托管标识。 存储任务分配使用应用于用户分配的托管标识的权限来授权访问。
$managedIdentity = Get-AzUserAssignedIdentity -ResourceGroupName <resource-group> -Name <user-assigned-managed-identity-name>
$task = New-AzStorageActionTask `
-Name "<storage-task-name>" `
-ResourceGroupName "<resource-group>" `
-Location "<___location>" `
-Enabled `
-Description "<description>" `
-IfCondition $condition `
-IfOperation $operation `
-UserAssignedIdentity $managedIdentity.Id
若要了解如何使用 PowerShell 创建分配,请参阅 创建和管理存储任务分配。
使用 JSON 定义 条件 。 一个或多个子句的条件集合。 每个子句都包含一个属性、一个值和一个运算符。 若要了解详细信息,请参阅 存储任务条件。
conditionclause="<condition-json>"
使用 az storage-actions task create 命令创建存储任务,并传入条件和操作的 JSON 格式表达式。 本示例查找冷层中的 Blob 并将其移动到热层。 所有其他数据块都被删除。 以下命令创建存储任务并指定系统分配的托管标识。 存储任务分配使用应用于系统分配的托管标识的权限来授权访问。
az storage-actions task create -g myresourcegroup -n mystoragetask \
--identity "{type:SystemAssigned}" \
--action "{if:{condition:'[[equals(AccessTier,'/Cool'/)]]',operations:[{name:'SetBlobTier',parameters:{tier:'Hot'},onSuccess:'continue',onFailure:'break'}]},else:{operations:[{name:'DeleteBlob',onSuccess:'continue',onFailure:'break'}]}}" --description myStorageTask --enabled true
如果您希望通过用户分配的托管身份进行授权任务分配,则必须在az storage-actions task create命令中提供该身份作为参数。 以下命令创建存储任务并指定用户分配的托管标识。 存储任务分配使用应用于用户分配的托管标识的权限来授权访问。
$identityId=az identity show --name <user-assigned-managed-identity-name> \
--resource-group <resource-group> --query "id"
az storage-actions task create -g myresourcegroup -n mystoragetask \
--identity $identityId \
--action "{if:{condition:'[[equals(AccessTier,'/Cool'/)]]',operations:[{name:'SetBlobTier',parameters:{tier:'Hot'},onSuccess:'continue',onFailure:'break'}]},else:{operations:[{name:'DeleteBlob',onSuccess:'continue',onFailure:'break'}]}}" --description myStorageTask --enabled true
若要了解更多关于操作的信息,请参阅 存储任务操作。
若要了解如何使用 Azure CLI 创建分配,请参阅 创建和管理存储任务分配。
在 Bicep 模板中包含类似于以下内容的代码片段。 本示例设置单词文档的不可变性策略。
有关完整示例,请参阅 快速入门:使用 Bicep 创建存储任务。
resource storageTask 'Microsoft.StorageActions/storageTasks@2023-01-01' = {
name: storageTaskName
___location: 'westus'
identity: {
type: 'SystemAssigned'
}
properties: {
action: {
if: {
condition: '[[endsWith(Name, \'.docx\')]]'
operations: [
{
name: 'SetBlobImmutabilityPolicy'
onSuccess: 'continue'
onFailure: 'break'
parameters: {
untilDate: '2025-06-20T20:34:00'
mode: 'locked'
}
}
]
}
}
description: 'My storage task'
enabled: true
}
}
在 Azure 资源管理器模板中包含类似于以下内容的 JSON 代码片段。 本示例设置单词文档的不可变性策略。
有关完整示例,请参阅 快速入门:使用 ARM 模板创建存储任务。
"resources": [
{
"type": "Microsoft.StorageActions/storageTasks",
"apiVersion": "2023-01-01",
"name": "mystoragetask",
"___location": "westus",
"identity": {
"type": "SystemAssigned"
},
"properties": {
"action": {
"if": {
"condition": "[[[endsWith(Name, '.docx')]]",
"operations": [
{
"name": "SetBlobImmutabilityPolicy",
"onSuccess": "continue",
"onFailure": "break",
"parameters": {
"untilDate": "2025-06-20T20:34:00",
"mode": "locked"
}
},
]
}
},
"description": "my storage task",
"enabled": true
}
}
]