gpt4 book ai didi

Python和Azure cli备份命令: is misspelled or not recognized by the system

转载 作者:行者123 更新时间:2023-12-03 03:46:28 34 4
gpt4 key购买 nike

我正在开发以下脚本来检查不同的备份并保持该过程,直到备份完成。

脚本:

from azure.cli.core import get_default_cli
import subprocess
import json


#VARS
AZCLIusr="CREDENTIALS"
AZCLIpwd="CREDENTIALS"
AZCLItenant="CREDENTIALS"
#######
print("#### LOGIN AZ #####")
get_default_cli().invoke(['login', '--service-principal', '--username', str(AZCLIusr), '-p', str(AZCLIpwd), '--tenant', str(AZCLItenant)])

print ("### VM LIST COMMAND #####")

##VARS##
rgAZ="RESOURCEGROUPNAME"
startDate="30-08-2021"
query="[?contains (properties.containerName, \'VMNAME\')].properties.status"
####

process = subprocess.Popen(['az','backup', 'job', '--resource-group', rgAZ, '--start-date', startDate, '--vault-name myRecoveryServicesVault' ], stdout=subprocess.PIPE)
out, err = process.communicate()
jsonLoads = json.loads(out)

print("### PRINT JSON FORMAT #####")
print(json.dumps(jsonLoads, indent=4, sort_keys=True))
print("### PRINT STRING FORMAT #####")
print(jsonLoads)

输出:

ERROR: 'VMNAME' is misspelled or not recognized by the system.

TRY THIS:

https://aka.ms/cli_ref
Read more about the command in reference docs
Traceback (most recent call last):
File "5py.py", line 24, in <module>
jsonLoads = json.loads(out)
File "/usr/lib/python3.7/json/__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.7/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.7/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

看起来不喜欢查询句子中的引号 ('')。它与花药一起使用只需命令:

process = subprocess.Popen(['az','vm','list', '-o', 'json'], stdout=subprocess.PIPE)
out, err = process.communicate()
jsonLoads = json.loads(out)

如果我通过终端启动 AZ QUERY,它会正常工作:

AZ CLI 查询:

az backup job list --resource-group RESOURCEGROUP--start-date 30-08-2021 --vault-name myRecoveryServicesVault --query "[?contains (properties.containerName, 'VMNAME')].properties.status"
Command group 'backup' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
[
"Completed"
]

如何避免这个拼写错误?有什么想法吗?

最佳答案

发现将云配置文件更改为“最新”在某些类似情况下很有用。

尝试如下:

az cloud set --name AzureCloud --profile "latest"

参见:Manage registered Azure clouds

关于Python和Azure cli备份命令: is misspelled or not recognized by the system,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69001507/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com