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

如何在Azure中自动定时运行PowerShell脚本迁移数据到存储账户

Azure PowerShell迁移脚本定时自动运行实现方案

推荐方案:Azure自动化账户(适配现有脚本改造成本最低)

这个方案对你已经调试完成的PowerShell脚本兼容性最高,几乎不需要修改核心逻辑:

  • 首先创建Azure自动化账户,创建时建议开启系统分配托管身份,可以完全替代你原有手动获取Access Token的逻辑,不需要在脚本里硬编码任何密钥、服务主体信息,安全性更高
  • 给托管身份配置对应权限:给目标存储账户分配存储Blob数据贡献者角色,如果你的拉取数据源也需要Azure权限,同步给对应资源分配匹配的访问权限
  • 导入依赖模块:在自动化账户的「模块」界面,导入你脚本中用到的所有Azure PowerShell模块,比如Az.Accounts、Az.Storage等,直接从Azure模块库搜索安装即可
  • 新建PowerShell Runbook:在自动化账户的Runbook菜单下新建PowerShell类型的Runbook,把你现有脚本复制进去,只需要替换原有获取Access Token的代码:
    原有手动获取Token的逻辑替换为:
    # 用托管身份登录Azure
    Connect-AzAccount -Identity
    # 如果需要调用REST API的AccessToken,直接取即可
    $accessToken = (Get-AzAccessToken).Token
    
    如果你不想修改原有Token获取逻辑,也可以把用到的服务主体凭据存在自动化账户的「凭据」存储中,脚本里用Get-AutomationPSCredential '自定义凭据名'获取凭据即可,不需要明文写在脚本里
  • 测试运行:手动触发Runbook运行,查看输出日志确认数据拉取、写入Blob逻辑正常,和你本地运行结果一致
  • 配置定时调度:在Runbook的「调度」界面新建调度计划,设置你需要的运行频率、生效时间、对应时区,配置完成后就会自动按设定时间触发脚本运行,无需人工干预

备选方案:Azure Functions 定时触发器(适合短时间运行的轻量脚本)

如果你的脚本单次运行时长不超过10分钟,可以选这个轻量方案:

  • 创建PowerShell运行时的Azure Function应用,同样开启系统分配托管身份,配置和上述方案一致的权限
  • 新建定时触发器类型的函数,按照你的运行需求配置CRON表达式
  • 把你的迁移脚本复制到函数的run.ps1文件中,同样替换AccessToken获取逻辑为托管身份对应的代码
  • 测试运行正常后发布即可,函数会自动按CRON表达式设定的时间触发运行

注意事项

  • 禁止在脚本中硬编码任何密钥、连接字符串、账号密码,优先用托管身份+Azure RBAC权限控制访问,避免凭据泄露
  • 每次修改脚本后先手动测试运行,确认逻辑正常再绑定调度规则
  • 如果脚本单次运行时间较长,优先选择自动化账户方案,Runbook最高支持3天的运行时长,而消费计划的Azure Function最长仅支持10分钟运行时长

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:15:02