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

如何用Azure服务连接替代SAS认证向Azure表存储插入数据?

使用Azure服务连接替代SAS字符串操作Azure表存储的实现方案

完全可行,以下是具体的实现步骤:

一、准备工作

  • 已在Azure DevOps中创建Azure资源管理器服务连接:选择对应订阅,配置完成后确保该服务连接可用
  • 为服务连接对应的身份(服务主体或托管标识)分配Azure表存储的权限:推荐分配Storage Table Data Contributor角色,确保拥有数据写入权限

二、配置Azure PowerShell任务

不要使用普通PowerShell任务,选择Azure PowerShell任务进行配置:

  • 在任务的Azure Subscription下拉菜单中,选择你创建好的服务连接名称
  • 指定合适的PowerShell版本(建议使用最新的Az模块版本,避免兼容性问题)

三、编写PowerShell脚本(认证+数据插入)

Azure PowerShell任务会自动通过服务连接完成身份验证,无需手动处理认证流程,直接调用Az模块命令即可:

# 导入Az.Table模块(若未自动加载则执行此命令)
Import-Module Az.Table -ErrorAction Stop

# 定义存储账户及表信息
$storageAccountName = "your-storage-account-name"
$tableName = "your-table-name"
$resourceGroupName = "your-resource-group-name"

# 获取存储账户上下文(自动通过服务连接完成认证)
$storageContext = (Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName).Context

# 构造要插入的表实体
$tableEntity = [Microsoft.Azure.Cosmos.Table.DynamicTableEntity]::new("YourPartitionKey", "YourRowKey")
$tableEntity.Properties.Add("UserName", "TestUser")
$tableEntity.Properties.Add("UserAge", 30)

# 插入实体到表存储
$cloudTable = (Get-AzStorageTable -Name $tableName -Context $storageContext).CloudTable
Add-AzTableRow -Table $cloudTable -Entity $tableEntity

Write-Host "数据已成功插入到Azure表存储"

四、关键注意事项

  • 权限检查:如果执行时出现权限错误,检查服务连接对应的身份是否已正确分配表存储的读写权限
  • 模块依赖:确保流水线代理已安装Az.Table模块,若未安装可在脚本开头添加Install-Module Az.Table -Force -AllowClobber(需注意代理的权限)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 13:43:10