阿里云OpenAPI获取操作系统信息不对,您看看是哪个参数有问题?
根据您提供的代码,我发现以下几个问题:
在获取操作系统信息时,os_info = describe_response_dict.get(OSName',Unknown’)
这一行代码中的引号使用不正确。应该将 OSName',Unknown’
修改为 'OSName', 'Unknown'
。
在创建新的sheet时,sheet.append([Instance ID',Hostname’,‘OS’])
这一行代码中的引号使用不正确。应该将 Instance ID',Hostname’,‘OS’
修改为 'Instance ID', 'Hostname', 'OS'
。
在添加数据到sheet时,sheet.append([instance_id,hostname, os_info])
这一行代码中的变量名应该与之前定义的变量名保持一致。将 os_info
修改为 os_name
。
修改后的代码如下:
for instance in instances:
instance_id = instance['InstanceId']
# 获取实例的详细信息,包括主机名和操作系统信息
describe_request = DescribeInstanceAttributeRequest.DescribeInstanceAttributeRequest()
describe_response = client.do_action_with_exception(describe_request)
describe_request.set_InstanceId(instance_id)
describe_response_dict = json.loads(describe_response.decode('utf-8'))
# 解析describe_response获取主机名和操作系统信息
hostname = describe_response_dict['HostName']
os_name = describe_response_dict.get('OSName', 'Unknown')
# 获取操作系统名称
# 检查是否已存在对应别名的sheet,如果不存在则创建新的sheet
if alias not in workbook.sheetnames:
workbook.create_sheet(title=alias)
else:
sheet = workbook[alias]
sheet.append(['Instance ID', 'Hostname', 'OS'])
sheet = workbook[alias]
sheet.append([instance_id, hostname, os_name])
这个接口不会返回OSName,DescribeInstances接口可以
你换成DescribeInstancesRequest ,此回答整理自钉群“OpenAPI 开发者门户 - 值班服务群3群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。