【发布时间】:2020-07-31 14:54:09
【问题描述】:
我正在尝试从 Boto3 脚本获取 Ec2 库存信息,该脚本在 jupyter notebook 上运行良好,但是当我在我的项目 Linux 环境中运行时,我遇到了以下问题。
名称错误:名称“Instance_name”未定义
下面是我的脚本:
import boto3
import csv
import pprint as pprint
aws_mang_con=boto3.session.Session(profile_name='root')
ec2_cli=aws_mang_con.client('ec2')
cnt=1
csv_ob=open("demo3.csv","w",newline='')
csv_w=csv.writer(csv_ob)
csv_w.writerow(["S_NO","Enviroment",'Application','Componenets','Instance_id','IP','Instance_Name','Instance_Size','Status'])
response=ec2_cli.describe_instances()['Reservations']
for each_item in response:
for instances in each_item['Instances']:
for tags in instances['Tags']:
if tags['Key'] in 'Name':
name=tags['Value']
print(name)
elif tags['Key'] in 'Application':
application=tags['Value']
print(application)
elif tags['Key'] in 'Components':
components=tags['Value']
print(components)
csv_w.writerow([cnt,'dev',application,components,instances['PrivateIpadress'],name,instances['InstanceType'],instances['State']['Name']])
cnt+=1
csv_ob.close()
这里还需要添加什么,因为它在我的本地 jupyter 笔记本上运行良好,但在我的项目 Linux 机器上显示上述错误。任何帮助将不胜感激?
【问题讨论】:
-
请发布完整的回溯错误。
-
Traceback(最近一次调用最后):文件“ec2.py”,第 19 行,在
csv_w.writerow([cnt,'dev',application,components,instances['InstanceId' ],instances['PrivateIpAddress'],Instance_name,instances['InstanceType'],instances['State']['Name']]) NameError: name 'Instance_name' is not defined -
该回溯与您发布的代码不对应。在代码中,你有
name,但在回溯中你有Instance_name -
是的,我只是在更改名称和测试,所以如果我们写名称或实例名称,它会给出相同的问题
-
请发布您遇到问题的实际代码以及错误。我怀疑您将
Instance_name更改为name时是否有同样的错误
标签: python amazon-ec2