You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AZ CLI创建多个Azure存储对象复制策略

Azure 对象复制多策略创建解决方案

问题根因

你重复执行az storage account or-policy create未生成新策略,是因为未显式指定--policy-id参数时,AZ CLI会自动匹配当前已存在的同源+同目标存储账户的已有策略,直接执行更新操作,而非新建。

前置配额说明

Azure 对象复制功能有固定配额限制:

  • 同一对源/目标存储账户最多可创建5个复制策略
  • 每个复制策略最多可添加10条容器复制规则
    刚好可以覆盖你50+容器的复制需求。

解决方法

创建新策略时显式指定唯一的自定义--policy-id即可,示例如下:

手动创建第二个策略示例

# 取第11个容器作为第二个策略的首个规则绑定容器
second_policy_first_container=$(sed -n '11p' container_list.txt)
az storage account or-policy create \
    --account-name $DESTINATION_STORAGE_ACCOUNT \
    --resource-group $DESTINATION_RESOURCE_GROUP \
    --source-account $SOURCE_STORAGE_ACCOUNT \
    --destination-account $DESTINATION_STORAGE_ACCOUNT \
    --source-container $second_policy_first_container  \
    --destination-container $second_policy_first_container  \
    --min-creation-time '2010-09-01T00:00:00Z' \
    --policy-id 'or-policy-02' # 此处指定新的唯一策略ID,即可创建全新策略

自动批量创建多策略脚本

你可以直接使用以下脚本按每10个容器一组自动批量创建策略,无需手动拆分:

# 按10个容器为一组拆分,分组创建复制策略
group_size=10
containers=($(cat container_list.txt))
total_container=${#containers[@]}
policy_seq=1

for ((i=0; i<$total_container; i+=$group_size)); do
    # 取当前分组的第一个容器初始化策略
    first_container_of_group=${containers[$i]}
    current_policy_id="or-policy-$(printf "%02d" $policy_seq)"

    # 创建新的复制策略
    az storage account or-policy create \
        --account-name $DESTINATION_STORAGE_ACCOUNT \
        --resource-group $DESTINATION_RESOURCE_GROUP \
        --source-account $SOURCE_STORAGE_ACCOUNT \
        --destination-account $DESTINATION_STORAGE_ACCOUNT \
        --source-container $first_container_of_group \
        --destination-container $first_container_of_group \
        --min-creation-time '2010-09-01T00:00:00Z' \
        --policy-id $current_policy_id

    # 为当前分组剩余的容器添加复制规则
    for ((j=i+1; j<$(($i+$group_size)) && j<$total_container; j++)); do
        current_container=${containers[$j]}
        az storage account or-policy rule add \
            --account-name $DESTINATION_STORAGE_ACCOUNT \
            --resource-group $SOURCE_RESOURCE_GROUP \
            --source-container $current_container \
            --destination-container $current_container \
            --policy-id $current_policy_id
    done

    policy_seq=$(($policy_seq+1))
done

注意事项

  • 自定义的policy-id在同一个目标存储账户下必须唯一,不可重复
  • 所有策略的最小创建时间可根据实际需求调整,无需和第一个策略保持一致
  • 操作前需确认源、目标存储账户都已开启Blob版本控制功能,对象复制依赖该能力运行

内容的提问来源于stack exchange,提问作者Hound

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 00:15:00