有人知道 SSM 可用的服务员类型吗?BOTO3 文档缺少一节。它说“见服务员部分”,但没有这样的部分。
在线搜索并没有太大帮助,因为它根本不是一个常见的话题。
有人知道 SSM 可用的服务员类型吗?BOTO3 文档缺少一节。它说“见服务员部分”,但没有这样的部分。
在线搜索并没有太大帮助,因为它根本不是一个常见的话题。
您可以按如下方式验证这一点:
ssm = boto3.client('ssm')
print(ssm.waiter_names)
这将打印出空数组:
[]
为了比较,对于ec2:
ec2 = boto3.client('ec2')
print(ec2.waiter_names)
将给出(未全部显示):
['export_task_completed',
'image_available',
'image_exists',
'instance_exists',
'instance_running',
'instance_status_ok',
'instance_stopped',
'subnet_available',
'system_status_ok',
'volume_available',
'volume_deleted',
'volume_in_use',
'vpc_available',
'vpc_exists',
'vpc_peering_connection_deleted',
'vpc_peering_connection_exists',
'vpn_connection_available',
'vpn_connection_deleted']
get_waiter
方法可能是从某个父类继承的。
这是您可以尝试的本土服务员:
def send_command_wait_for_succes(commandid, instanceid):
'''wait for success status, or end after 2 minutes'''
cnt = 0
while True:
response = ssm_client.get_command_invocation(
CommandId=commandid,
InstanceId=instanceid)
if response['Status'] != 'Success':
time.sleep(5)
cnt = cnt + 1
if cnt == 24:
return False
break
else:
return True
break
print(send_command_wait_for_succes(commandid, instanceid))
目前只有一个command_executed
服务员。
从boto3 文档:
import boto3
client = boto3.client('ssm')
waiter = client.get_waiter('command_executed')
waiter.wait(
CommandId='string',
InstanceId='string',
PluginName='string',
WaiterConfig={
'Delay': 123,
'MaxAttempts': 123
}
)