繁体   English   中英

如何使用 azure cli 和 rest 命令清除设置?

[英]How to clear settings using azure cli and rest command?

我想从keyVaultReferenceIdentity中删除设置

az rest --method PATCH --uri "${resourceId}?api-version=2021-01-01" --body "{""properties"":{""keyVaultReferenceIdentity"":null}}" --query properties.keyVaultReferenceIdentity -o json

但是为此我有

不支持的媒体类型({“错误”:{“代码”:“UnsupportedMediaType”,“消息”:“不支持内容媒体类型''。仅支持'application / json'。”}})

如果我添加标题:

$headers = @{"Content-Type" = "application/json" }


az rest --method PATCH --Headers $headers --uri "${resourceId}?api-version=2021-01-01" --body "{""properties"":{""keyVaultReferenceIdentity"":null}}" --query properties.keyVaultReferenceIdentity -o json

然后:

命令因意外错误而失败。 这是回溯:没有足够的值来解压(预期 2,得到 1)回溯(最后一次调用):文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\ azure/cli/core/util.py”,第 506 行,在 shell_safe_json_parse 文件“ json_init_.py ”中,第 370 行,在加载文件“json\decoder.py”中,第 337 行,在解码文件“json\decoder.py”中。 py”,第 355 行,在 raw_decode json.decoder.JSONDecodeError:期望值:第 1 行第 1 列(字符 0)

上述异常是以下异常的直接原因:

回溯(最近调用最后):文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/util.py”,第 815 行,在 send_raw_request 文件中“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/util.py”,第 531 行,在 shell_safe_json_parse azure.cli.core.azclierror.InvalidArgumentValueError 中:无法解析 JSON:System.Collections.Hashtable 错误详细信息:预期值:第 1 行第 1 列(字符 0)

在处理上述异常的过程中,又出现了一个异常:

追溯(最近调用最后):文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\knack/cli.py”,第 231 行,在调用文件“D:\ a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/ init .py", line 657, in execute File "D:\a\1\s\build_scripts \windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/ init.py ",第 720 行,在 _run_jobs_serially 文件“D:\a\1\s\build_scripts\windows\artifacts\cli\ Lib\site-packages\azure/cli/core/commands/ init.py ”,第 691 行,在 _run_job 文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure /cli/core/commands/ init .py”,第 328 行,在调用文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/ command_operation.py”,第 121 行,在处理程序文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/command_modules/util/custom.py”中,第 16 行, 在 rest_call 文件 "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cl i/core/util.py”,第 818 行,在 send_raw_request ValueError:没有足够的值来解压(预期 2,得到 1)

想法是清除keyVaultReferenceIdentity但是我可以找到有效的语法和参数组合。

我在 GH 上发现了这个问题,但没有帮助。

我用你的 CLI 命令做了一个重现,并根据正确的格式进行了修改并修复,下面是 CLI 命令,我们可以在其中执行它而不会出现任何错误。

az rest --method patch --headers "{'Content-Type': 'application/json'}" --uri /subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.Web/sites/CheckingLogs0805?api-version= 2015-08-01 --body "{'properties': {'siteConfig': {'keyVaultReferenceIdentity':null}}}" --query properties.keyVaultReferenceIdentity -o json

因此,上面的命令将修复您显示的错误消息(即 UnsupportedMediaType 和 JSONDecodeError

现在提出清除“keyVaultReferenceIdentity”值的问题。 这通常在创建时默认设置为 SystemAssigned。 这些值取自托管身份。

请查看文档以了解系统标识和托管标识的值。

从我修复的命令中,我们可以更改任何其他参数的值。

请参考屏幕截图,因为我已经更改了“属性”的值:{“enabled”:true}

本地截图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM