如何验证在 boto3 中成功创建/附加的卷?

use*_*602 7 amazon-ec2 amazon-web-services boto3

我正在使用 boto3client.create_volumeclient.attach_volumeAPI,但返回值是字典,字典中的键Statecreatingcreate_volume 和attachingattach_volume。有没有办法检查卷是否在 boto3 中成功创建/附加?

Joh*_*ein 8

幸运的是,boto3 有一个叫做Waiters的概念,可以为你做等待!

请参阅:EC2.Waiter.VolumeInUse

EC2.Client.describe_volumes()每 15 秒轮询一次,直到达到成功状态。检查失败 40 次后返回错误。

对于那些使用 ec2 客户端 ( ec2 = boto3.client('ec2')) 的人,你可以这样做

ec2.get_waiter('volume_available').wait(VolumeIds=[new_volume['VolumeId']])


hel*_*loV 2

请参阅描述卷

传递您volume_iddescribe_volumes返回以下信息:

创建状态:

'State': 'creating'|'available'|'in-use'|'deleting'|'deleted'|'error'
Run Code Online (Sandbox Code Playgroud)

附件状态:

'State': 'attaching'|'attached'|'detaching'|'detached'
Run Code Online (Sandbox Code Playgroud)

以及有关您的音量的更多信息。