Я пытаюсь написать пример кода Python с использованием функции Boto3, чтобы проверить экземпляры Ec2 с именем тега «Ansible» и его значением «DB» или «APP», он должен вернуть соответствующие частные IP-адреса этих значений тегов.
попытался изменить фильтр, добавив [].
В коде, который я нашел в ссылках YouTube, нет [], даже после добавления я получаю эту ошибку.
#!/bin/python
import boto3
import json
def get_hosts(ec2,fv):
f=[{'Name':'tag:Ansible','values':[fv]}]
hosts=[]
for each_in in ec2.instances.filter(Filters=[f]):
print each_in.private_ip_address
hosts.append(each_in.private_ip_address)
return hosts
def main():
ec2=boto3.resource("ec2")
db_group = get_hosts(ec2,"db")
app_group = get_hosts(ec2,"app")
if __name__ =="__main__":
main()
Например, у меня есть 4 экземпляра с именем тега. Ansible имеет значения типа «db» в качестве 2 экземпляров и «app» еще в 2 экземплярах.
Мой вывод должен быть как
дБ [172.31.24.232,172.31.21.244]
приложение [172.31.30.42,172.31.26.116]