Azure自动化Runbook执行ADLS中Python脚本报错求助
解决方案
一、修复模块加载错误
报错根源是你使用的Azure.Storage.Blob是旧版Azure PowerShell模块,当前Azure自动化账户默认仅支持新版的Az.Storage模块,旧模块已停止维护且未预装在自动化环境中。按以下步骤处理:
- 登录Azure门户,进入你的自动化账户,左侧菜单点击「模块」。
- 检查模块列表中是否存在
Az.Storage,若没有则点击「添加模块」,从Azure模块库搜索并导入该模块。 - 将脚本中的
Import-Module Azure.Storage.Blob替换为Import-Module Az.Storage。
二、可执行的完整PowerShell Runbook代码
# 导入新版存储模块 Import-Module Az.Storage # 替换为你的存储账户实际信息 $storageAccountName = "你的ADLS存储账户名" $containerName = "存储容器名称" $blobPath = "test.py" # 脚本在容器内的路径,根目录直接写test.py,子目录格式为xxx/test.py $localTempPath = "C:\temp\test.py" # 临时保存脚本的本地路径 # 使用自动化账户托管身份连接Azure(无需手动输入密钥) Connect-AzAccount -Identity # 获取存储账户上下文 $storageCtx = New-AzStorageContext -StorageAccountName $storageAccountName -UseConnectedAccount # 将ADLS中的Python脚本下载到本地临时目录 Get-AzStorageBlobContent -Container $containerName -Blob $blobPath -Destination $localTempPath -Context $storageCtx -Force # 执行Python脚本(需确保自动化账户已配置Python运行时) python $localTempPath # 执行完成后清理临时文件 Remove-Item $localTempPath -Force
三、额外注意事项
- 给自动化账户的托管身份(或你使用的服务主体)分配ADLS存储账户的「存储Blob数据读取者」权限,否则无法下载脚本。
- 若自动化账户未配置Python运行时,进入自动化账户的「Python包」菜单,添加对应版本的Python(推荐3.8及以上),确保
python命令可正常调用。
内容的提问来源于stack exchange,提问作者Indranil Sarkar
相关产品推荐
相关产品推荐

