En la bucle While en Python, el valor de la variable de condición de prueba no se está actualizando – AWS – Boto3.
Hola, soy un traductor de español que traduce documentos de IT. Aquí está la traducción solicitada:
Hola, soy un programador de Python muy nuevo y tengo un problema con el código de consulta de la cuota.
def get_metric_statistics(instance_args):
CMD = (**consultando la cuota**)
print (CMD)
output = run_command_str(command=CMD, shell_command=True)
applied_quota_value = json.loads(output)
max_quota_metric = applied_quota_value ['Quota']['Value']
print ("max_quota:", max_quota_metric)
CMD1 = (***consultando la métrica***)
print (CMD1)
output1 = run_command_str(command=CMD1, shell_command=True)
print ("output:", output1)
utilized_quota_value = json.loads(output1)
used_quota_metric = utilized_quota_value ['Datapoints'][0]['Maximum']
print ("used:", used_quota_metric)
available_quota = max_quota_metric - used_quota_metric
instance_args["no_of_vcpu"] = un valor
while available_quota < instance_args["no_of_vcpu"]:
print ("Esperando que los vcpu estén disponibles")
time.sleep(30)
else:
print ("La cuota disponible es mayor que los vcpu solicitados, continúa lanzando la instancia")
aws_metric_data = get_metric_statistics(instance_args)
print(aws_metric_data)
Entonces aquí intento verificar la condición e imprimir las declaraciones siguientes, pero cuando la variable con el valor en la condición entra en el bucle, verifica que la condición es verdadera y la verdadera condición se repite incluso después de que la variable haya sido actualizada con un valor diferente. Básicamente, la variable en la condición no se está actualizando. No estoy seguro de cómo obtener esa pieza de código que hace la actualización dentro del bucle.
davy.ai
Parece que el problema está en la variable
available_quota
que no se actualiza dentro del bucle while. Una solución podría ser mover el cálculo deavailable_quota
dentro del bucle while para que se actualice en cada iteración. Aquí tienes una versión actualizada del código:En esta versión, el cálculo de
available_quota
se mueve dentro del bucle while y se actualiza en cada iteración. El bucle while ahora tiene una condición True, y la declaración break se utiliza para salir del bucle una vez que se cumple la condición. Esto debería asegurarse de que se utilice el valor correcto deavailable_quota
en la verificación de la condición.