簡體   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