/ / AWS boto: jak odświeżyć subnet.state po utworzeniu? Utknął w "oczekujących" na zawsze i nie ma aktualizacji () - python, amazon-web-services, boto

AWS boto: jak odświeżyć subnet.state po utworzeniu? Utknął w "oczekujących" na zawsze i nie ma aktualizacji () - python, amazon-web-services, boto

Mam VPC. Wewnątrz VPC tworzę podsieć. Chciałbym być tak ostrożny, jak to możliwe, i nie przechodzić dalej, dopóki podsieć nie jest naprawdę gotowa, ale jeśli robię podsieć.state, to zawsze mówi "oczekuje", mimo że była ona aktywna przez pewien czas.

>>> subnet = {}
>>> subnet["public"] = conn.create_subnet(vpcid, "10.2.0.0/24")
>>> subnet["public"].state
u"pending"

Próbowałem wykonać subnet.update (), ale to nie działa.

>>> subnet["public"].update()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: "Subnet" object has no attribute "update"

Jaki jest najlepszy sposób aktualizacji stanu obiektu podsieci?

Odpowiedzi:

2 dla odpowiedzi № 1

Właśnie wpadłem na ten problem kilka minut temu. Chciałbym, aby była metoda update () na obiektach podsieci podobnych do obiektów VPC. Oto moje rozwiązanie:

#generic subnet creation method
def create_subnet(connection, vpc, cidr, name, test_mode=True):
print("Creating subnet with CIDR block", cidr)
subnet = connection.create_subnet(vpc.id, cidr_block=cidr, dry_run=test_mode)

#wait for subnet to become live
while subnet.state == "pending":
subnets = connection.get_all_subnets()
for item in subnets:
if item.id == subnet.id:
subnet.state = item.state
time.sleep(5)

#tag the subnet
subnet.add_tag("Name", name)
print("Done")
return subnet