0
我有這個python腳本,下面列出了AWS EC2實例的實例ID,狀態和類型 。這工作正常,你可以看到下面。Flask Jinja2 for循環
[[email protected] ec2]# cat ec2.py
#!/usr/bin/env python
import boto3
ec2client = boto3.client('ec2')
response = ec2client.describe_instances()
for reservation in response["Reservations"]:
for instance in reservation["Instances"]:
print "{0}\t{1}\t{2}".format(instance["InstanceId"],
instance["State"]["Name"], instance["InstanceType"])
[[email protected] ec2]# ./ec2.py
i-xxxxxxxxxxxxxxxxx stopped t2.small
i-yyyyyyyyyyyyyyyyy running t2.medium
i-zzzzzzzzzzzzzzzzz stopped t2.medium
i-bbbbbbbbbbbbbbbbb stopped t2.small
i-ccccccccccccccccc running t2.medium
現在我試圖在使用Flask的網頁上顯示上面的輸出。但我是 得到錯誤說「」「 文件」/flask/ec2/app.py「,第15行,在list_instances instances = reservations [」實例「] TypeError:列表索引必須是整數,而不是str 」 「」
這是我做的到現在
[[email protected] ec2]# cat app.py
import boto3
from flask import Flask, render_template
app = Flask(__name__)
ec2client = boto3.client('ec2')
response = ec2client.describe_instances()
@app.route("/")
def list_instances():
reservations = response["Reservations"]
instances = reservations["Instances"]
return render_template("ec2.html", instances=instances)
if __name__ == '__main__':
app.run(port=5000, debug=True, host="0.0.0.0")
[[email protected] ec2]# cat templates/ec2.html
<html>
<head>
<title>EC2 List</title>
</head>
<body>
<h1>EC2 List</h1>
{% for instance in instances %}
<p>{{ instance }}</p>
{% endfor %}
</body>
</html>
有人可以幫我解決這個錯誤,並得到所需要的輸出?
現在感謝它的工作。我在 app.py中使用了'instances = response [「Reservations」]',然後循環到我的html中的實例。 – user3847894