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

如何使用Python编写的Azure自动化Runbook访问Azure文件共享中的文件

Azure自动化Runbook访问Azure文件共享解决方案

错误原因

你当前使用的BlobServiceClient是Azure Blob存储对应的SDK类,仅可操作Blob容器资源,无法访问Azure文件共享,需要使用文件存储专用的SDK,同时完成自动化账户的权限配置。

步骤1:安装Python依赖包

首先在Azure自动化账户中安装文件存储SDK:

  • 进入自动化账户控制台 -> 共享资源 -> Python 包 -> 添加 Python 包
  • 搜索安装azure-storage-file-share包,选择匹配你Runbook的Python版本即可

步骤2:安全存储连接字符串

禁止明文写连接字符串,存储到自动化账户加密变量中:

  • 进入自动化账户 -> 共享资源 -> 变量 -> 添加变量
  • 变量名设为FileShareConnStr,值填写存储账户的访问连接字符串,类型选字符串,勾选加密后保存

步骤3:替换正确的Runbook代码

from azure.storage.fileshare import ShareServiceClient
from azure.identity import DefaultAzureCredential
from azure.mgmt.automation import AutomationClient
import os

# 读取自动化账户运行环境内置参数
subscription_id = os.environ["SUBSCRIPTION_ID"]
rg_name = os.environ["RESOURCE_GROUP_NAME"]
auto_account_name = os.environ["AUTOMATION_ACCOUNT_NAME"]

# 读取加密存储的连接字符串
cred = DefaultAzureCredential()
auto_client = AutomationClient(cred, subscription_id)
conn_str = auto_client.variable.get(rg_name, auto_account_name, "FileShareConnStr").value

# 初始化文件共享客户端,替换为你实际的文件共享名称
share_name = "你的文件共享名称"
share_client = ShareServiceClient.from_connection_string(conn_str).get_share_client(share_name)

# 遍历文件共享根目录下的所有文件和文件夹
for item in share_client.list_directories_and_files():
    print(item.name)

# 读取指定文件内容示例,替换为你实际的文件路径
file_client = share_client.get_file_client("testdir/test.txt")
content = file_client.download_file().readall()
print(content.decode("utf-8"))

测试场景可跳过变量读取步骤,直接将存储账户连接字符串赋值给conn_str变量快速验证,生产环境必须使用加密变量存储敏感信息。

步骤4:配置托管标识权限

确保自动化账户的系统分配托管标识有存储账户的访问权限:

  • 进入目标存储账户 -> 访问控制(IAM) -> 添加角色分配
  • 角色选择存储文件数据共享参与者,分配对象选择自动化账户的系统分配托管标识,保存后等待5分钟权限生效即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:54:04