如何使用az cli获取不带双引号的Key Vault单独密钥值
解决Azure CLI获取Key Vault密钥自带双引号问题
你可以通过以下两种方式获取无额外双引号的纯密钥值:
- 方案1:限定查询字段+TSV输出
你之前使用--output tsv返回多组值是因为未通过--query限定仅返回value字段,单字段的TSV输出不存在返回值顺序问题,也不会包裹双引号,可用命令如下:SECRET=$(az keyvault secret show --name $SecretName --vault-name $KeyVaultName --query "value" --output tsv) - 方案2:JSON输出配合jq提取原始值
如果你习惯使用默认JSON格式输出,可借助jq的-r参数直接输出原始字符串,自动剥离外层双引号:SECRET=$(az keyvault secret show --name $SecretName --vault-name $KeyVaultName | jq -r '.value')
问题原因说明
Azure CLI默认输出格式为JSON,字符串类型的字段返回时会自动包裹双引号,直接作为变量传入后续REST请求时会导致签名/参数校验失败。你之前使用TSV输出返回多组值是未限制查询字段导致的,仅查询value单字段时TSV输出只会返回纯文本值,不存在顺序风险。
内容的提问来源于stack exchange,提问作者SeaDude
相关产品推荐
相关产品推荐

