【Azure Developer】使用 Azure PowerShell 执行 Azure 表存储操作时遇见的4个问题
要使用PowerShell操作Azure的表存储,需要经过以下步骤:
1:必须安装 Az 和 AzTable 模块。安装命令为:
#安装 Az 模块
Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force #安装 AzTable 模块
Install-Module AzTable
2:创建一个context,命令如下:
$Context = New-AzStorageContext -StorageAccountName "xxxx" -StorageAccountKey "xxxx"
3:使用Get-AzStorageTable -Context $Context 这个命令可以get到当前存储账户的所有table的名字
Get-AzStorageTable -Context $Context
4:若要使用 AzTable 对表执行操作,需要引用特定表的 CloudTable 属性。并使用 Get-AzTableRow 获取表数据
$cloudTable = (Get-AzStorageTable -Name $tableName -Context $ctx).CloudTable #使用下面的命令查询表实体 Get-AzTableRow -table $cloudTable | ft
但是,在使用时,先后遇见了以下4个问题:
问题一:如果只有存储账户名称,不提供存储账户所属资源组和存储账户访问密钥的情况下,如何查询存储账户中的诊断指标数据呢? New-AzStorageContext和Get-AzStorageAccount这两个命令,一个需要提供访问密钥,另一个需要提供资源组
【答】New-AzStorageContext如果不提供秘钥,可以为匿名存储帐户创建上下文,具体可参考文档:https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragecontext?view=azps-5.7.0
New-AzStorageContext -StorageAccountName "xxx" -Anonymous -Protocol "http"
Get-AzStorageAccount 这个命令如果不提供资源组,可以直接使用这条命令,会get到当前订阅下的所有storage,具体可参考文档:https://docs.microsoft.com/en-us/powershell/module/az.storage/Get-azStorageAccount?view=azps-5.7.0
问题二:需要从table中查询一个完整月度的数据,但是存储账户中是把数据存储到了多个表中,且有的表会同时存储上下两个月相邻时间的数据,请问有有什么更简便的方法来查询某一个月的数据吗?是否有参数来过滤时间呢?table中Timestamp字段使用的是UTC时间、还是本地时间?
【答】1)是不能联合获取的,只能是一个表一个表获取。 2)平台使用的是UTC时间,就是北京时间-8,例如:UTC时间2021-05-20T02:52:57Z对应的北京时间就是10:52:57。时间格式可参考文档:https://docs.microsoft.com/zh-cn/rest/api/storageservices/formatting-datetime-values
问题三: 从某一个table中查询指定几列的数据,查询条件是多个列值的组合。使用命令Get-AzTableRow -table $cloudTable | ft 返回的数据量太大
【答】在Get-AzTableRow -table $cloudTable ` 后面加上要查询的列名即可,设置列名可参考文档:https://docs.azure.cn/zh-cn/storage/tables/table-storage-how-to-use-powershell#retrieve-entities-for-a-specific-value-in-a-specific-column
Get-AzTableRow -table $cloudTable -partitionKey $partitionKey | ft
如果想使用过滤条件显示指定的行,可以使用-SelectColumn参数 Get-AzTableRow -Table $cloudTable -SelectColumn @('CounterName', 'Role','Maximum','Minimum'),同时多次测试发现下面截图中红色区域的4个参数即使不指定默认也是查询之后必带的参数

同时 Get-AzTableRow -table $cloudTable -partitionKey $partitionKey 也是可以使用的

问题四: 使用-SelectColumn参数出错

SelectColumn参数问题原因时AzTable安装的并不是最新版本(2.0.4),更新了module后,版本2.1.0再使用SelectColumn参数是正常的。
【Azure Developer】使用 Azure PowerShell 执行 Azure 表存储操作时遇见的4个问题的更多相关文章
- 【Azure Developer】使用Microsoft Graph API 批量创建用户,先后遇见的三个错误及解决办法
问题描述 在先前的一篇博文中,介绍了如何使用Microsoft Graph API来创建Azure AD用户(博文参考:[Azure Developer]使用Microsoft Graph API 如 ...
- 【Azure Developer】使用Postman获取Azure AD中注册应用程序的授权Token,及为Azure REST API设置Authorization
Azure Active Directory (Azure AD) is Microsoft's cloud-based identity and access management service, ...
- 【Azure Developer】使用PowerShell Where-Object方法过滤多维ArrayList时候,遇见的诡异问题 -- 当查找结果只有一个对象时,返回结果修改了对象结构,把多维变为一维
问题描述 编写PowerShell脚本,以多维(3维)数组中第二维度的值进行过滤,并打印出结果 #三维数组源数据 "A", "11", "Cheng ...
- 【Azure API 管理】解决API Management添加AAD Group时遇见的 Failed to query Azure Active Directory graph due to error 错误
问题描述 为APIM添加AAD Group时候,等待很长很长的时间,结果添加失败.错误消息为: Write Groups ValidationError :Failed to query Azure ...
- 【Azure API 管理】使用APIM进行XML内容读取时遇见的诡异错误 Expression evaluation failed. Object reference not set to an instance of an object.
问题描述 使用APIM,在 Inbound 中对请求的Body内容进行解析.客户端请求所传递的Request Body为XML格式,需要从Request Body中解析出多个(Element)节点值, ...
- hadoop执行hdfs文件到hbase表插入操作(xjl456852原创)
本例中需要将hdfs上的文本文件,解析后插入到hbase的表中. 本例用到的hadoop版本2.7.2 hbase版本1.2.2 hbase的表如下: create 'ns2:user', 'info ...
- 【Azure 环境】用 PowerShell 调用 AAD Token, 以及调用Azure REST API(如资源组列表)
问题描述 PowerShell 脚本调用Azure REST API, 但是所有的API都需要进行权限验证.要在请求的Header部分带上Authorization参数,并用来对List Resour ...
- 【Azure Developer】解决Azure Key Vault管理Storage的示例代码在中国区Azure遇见的各种认证/授权问题 - C# Example Code
问题描述 使用Azure密钥保管库(Key Vault)来托管存储账号(Storage Account)密钥的示例中,从Github中下载的示例代码在中国区Azure运行时候会遇见各种认证和授权问题, ...
- 使用MyBatis时需要注意到的事情------执行添加、修改和删除操作时,一定要记得提交事务
今天在重写添加操作代码时,发现自己写的代码没有任何报错,使用断点进行查询,发现一切正常,但是注册使用的数据就是无法添加到数据库里面 然后就去之前看过的视频里面去找错误,就发现这样一个小细节: 在视频里 ...
- 【Azure Developer】调用SDK的runPowerShellScript方法,在Azure VM中执行PowerShell脚本示例
当需要通过代码的方式执行PowerShell脚本时,可以参考以下的示例. Azure SDK中提供了两个方法来执行PowerShell脚本 (SDK Source Code: https://gith ...
随机推荐
- wap2app下拉刷新
支持全局刷新,支持vue项目 目前支持wap2app,uin-app全局下拉刷新 戳我阅读原文 --转载自微信公众号:酿俗
- 从python3到python2的踩坑
为什么要从py3到py2 背景:之前自学写过一些py3,而且我写的工具是基于python3来写的,但是公司项目是使用python2版本,希望已有工具或者新写的工具能同时在py2和py3上执行,所以记录 ...
- 8.4 C++ 运算符重载
C/C++语言是一种通用的编程语言,具有高效.灵活和可移植等特点.C语言主要用于系统编程,如操作系统.编译器.数据库等:C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统.图形用户界面 ...
- 又学了一招:微软科普Windows 11电脑自动清理释放硬盘
你是不是每次都等到电脑内存被占满,磁盘"红"成一片,才想起来去清理那些没用的程序or文件? 今天微软官方科普了一个小技巧:既然都用上了Windows 11 ,为什么不让电脑帮你自动 ...
- glTexImage2D: 读取位置XXX时发生访问冲突
在跟着Learn OpenGL教程学习纹理部分时,大家或许会加载一张自己喜欢的图片作为纹理,但加载某些图片时会报以下错误: 读取位置XXX时发生访问冲突. 这个错误通常出现在以下位置: uns ...
- (python)每日代码||2024.1.18||元组中的列表成员可以改变内容,不可以改变该列表成员
t = ([1,2,3],[2,3,4],3) print(t) t[0][1]=9 print(t) # ~ t[2]=9#TypeError: 'tuple' object does not su ...
- navicat破解(15以前的版本)
navicat破解各种不成功,很耽误事.所以,再次整理一个相对省事有效的办法.内容如下: 一:下载此激活工具 二:按下图生成激活码 1. 2. 点击手动激活 3. 将请求码按图粘贴,按图点击操作便可激 ...
- Linux 中通过虚拟地址获取物理地址并锁定
在 Linux 开发过程中,申请内存后,某些时候需要用物理地址传给其他外设进行写入或者读取操作,同时考虑到防止被操作系统 sawp,导致实际的物理地址发生变化,从而在操作对应的虚拟地址时无法正常运行等 ...
- 洛谷P3046 海底高铁 巧用差分统计经过区间次数
洛谷P3046 海底高铁 -差分统计经过区间次数 题目贴在这里P3406 海底高铁 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 分析 本题题干很长,但是题意理解很简单.就是给定n ...
- ASP.NET Core分布式项目实战(课程介绍,MVP,瀑布与敏捷)--学习笔记
任务1:课程介绍 课程目标: 1.进一步理解 ASP.NET Core 授权认证框架.MVC 管道 2.掌握 Oauth2,结合 Identity Sercer4 实现 OAuth2 和 OpenID ...