如何通过Automation Account/Runbook从Blob Storage提取Excel/CSV数据
如何用Azure自动化Runbook访问Blob Storage并提取Excel数据
完全可以通过Automation Account的Runbook访问Blob Storage,下面是具体实现步骤:
一、配置访问权限
首先要给自动化账户的托管标识分配Blob存储的访问权限:
- 进入Azure门户,找到你的自动化账户,在“标识”页面启用系统托管标识。
- 导航到目标Blob存储账户,在“访问控制(IAM)”页面添加角色分配,给自动化账户的托管标识分配Storage Blob Data Reader(仅读取)或Storage Blob Data Contributor(读写)角色。
二、编写Runbook代码访问Blob并读取Excel
以PowerShell Runbook为例,步骤如下:
1. 连接Azure(托管标识自动认证)
# 通过系统托管标识登录Azure Connect-AzAccount -Identity
2. 下载Blob到Runbook临时目录
# 替换为你的存储账户、容器和Blob名称 $storageAccountName = "your-storage-account" $containerName = "your-container" $blobName = "data.xlsx" $tempPath = Join-Path $env:TEMP $blobName # 获取存储账户上下文 $storageContext = (Get-AzStorageAccount -ResourceGroupName "your-resource-group" -Name $storageAccountName).Context # 下载Blob到临时路径 Get-AzStorageBlobContent -Container $containerName -Blob $blobName -Context $storageContext -Destination $tempPath -Force
3. 提取Excel数据
需要先在自动化账户的“模块”页面导入ImportExcel模块,然后读取数据:
# 导入Excel处理模块 Import-Module ImportExcel # 读取指定工作表的数据 $excelData = Import-Excel -Path $tempPath -WorksheetName "SiteData" # 示例:打印第一行数据 Write-Output "第一个站点信息: $($excelData[0].SiteName) - $($excelData[0].Owner)"
三、用提取的数据创建SharePoint站点
需要先导入PnP.PowerShell模块,然后编写站点创建逻辑:
# 导入SharePoint管理模块 Import-Module PnP.PowerShell # 连接到SharePoint管理中心(托管标识认证) Connect-PnPOnline -Url "https://your-tenant-admin.sharepoint.com" -ManagedIdentity # 遍历Excel数据批量创建站点 foreach ($row in $excelData) { $siteUrl = "https://your-tenant.sharepoint.com/sites/$($row.SiteName)" # 创建团队站点 New-PnPSite -Type TeamSite -Title $row.SiteName -Url $siteUrl -Owner $row.Owner -Description $row.SiteDescription }
关键注意点
- 自动化账户需要提前添加所需模块:
Az.Accounts、Az.Storage、ImportExcel、PnP.PowerShell,可在“模块”页面搜索并导入。 - 托管标识除了Blob存储权限,还需要有SharePoint的站点创建权限(比如分配SharePoint管理员角色)。
- Runbook执行完成后,临时目录的文件会自动清理,无需手动删除。
内容的提问来源于stack exchange,提问作者Matthias
相关产品推荐
相关产品推荐

